What's New
Release notes and updates for the Branch AutoCAD plugin.
v1.1.3Latest
Friday, August 21, 2026 at 2:43 PM
Notes
- •Signed Leaf Solar Design updater release for Branch2025 PR #165. Includes the sibling LeafPlatformBridge.bundle in the real in-app update artifact and prevents stale bridge reuse on SkipBridge. Release source includes Branch2025 merges b966a373, 5ab8837b, and b8ffc156. Rollback: reinstall or update to v1.1.2.1.
v1.1.2(2 patches)
Monday, July 27, 2026 at 7:18 AM
Fixed
- •The reader only recognised PVcase-written blocks. Branch-written blocks
- •`LEAFSAT` assigned each row's layer by name, which failed against any
- •**Command outcome reporting across the palette**: dozens of operations (add/assign strings, inverter add/move/balance/position, homeruns, feeder routing, cable/yield/PVsyst exports, terrain promotion, mesh diff, pile mapping, shadow curtains) now report what happened — success, counts, or the specific reason they didn't run — instead of finishing silently.
- •**Live progress on long operations**: solves, string emission, shade simulation, pile drawing, site map fetches, mesh diffs, and palette auto-processing stream progress and keep the UI responsive instead of appearing frozen.
- •**Crash fixes**: hardened `LEAFLOGIN` against a frame crash, guarded tracker-to-panel-group conversion against a hard AutoCAD crash, fixed divide-by-zero in inverter/equipment placement, clamped the flow selector to prevent a palette crash, fixed a combiner-insertion document lock, and added global exception handlers so background faults surface as messages instead of killing AutoCAD.
- •**Drawing recognition robustness**: strings stored as legacy polylines, lines, curved paths, or XData are all detected and counted consistently; L2 equipment (inverters, PCS, electrical skids) is recognized by more block-name aliases, and unrecognized hardware is disclosed with a warning instead of silently dropped.
- •**Drawing units respected everywhere**: piling, layout metrics, and terrain shadow scaling all resolve the active drawing's units consistently.
- •**Step readiness accuracy**: electrical status counts are unified, yield export validates readiness (including feeder cabling and complete electrical data) before running, and the project summary gates on actual completion.
- •**Site imports behave**: the satellite raster underlay stays below your linework, re-runs after drawing changes, and lidar failures fall back gracefully with clamped grid sizes.
- •**GPU shading stability**: shade kernel launches are chunked, dependencies preload correctly, heatmap ray data persists, the panel shade datum auto-binds to the topo surface, and CPU worker counts are capped so the machine stays usable.
- •**String sizer results**: the hero voltage number paints red on a cold-Voc failure with a suggestion to try a different design standard, and racking defaults follow the project type.
- •**Sign-in flow**: the "Sign in required" prompt now includes a Sign in now button, auth expiry surfaces as a visible message, and login no longer risks a progress-palette crash.
- •**`LEAFTOPO`**: emits to ModelSpace (not the current viewport space) and reads the drawing's LATITUDE/LONGITUDE system variables first.
- •**Dialog polish**: Cancel buttons and sensible defaults added where missing, honest MPPT labels, inline guidance instead of focus-stealing modals, and Meters spelling corrected in the terrain units prompt.
- •**SolarEdge PDF import**: selection filters to panel groups so unrelated geometry can't be picked up.
- •**CEC database import**: bundled CEC CSV header variations parse correctly.
- •**Auto-updater**: cleans stale ProgramData bundles during the elevated update phase.
Added
- •**Ground-mount (PVCase parity) flow in the palette**: a new flow selectable in Project Setup that recognizes PVCase tracker blocks and civil linework (roads, fences, vegetation) directly, walks the ground-mount steps end-to-end, and adds string sizing options at the final step. `LEAFSETFLOW` switches the active flow from the command line.
- •**Lightweight cabling engine (`LEAFLITE` commands)**: a fast C# cabling path with a native `LEAFCABLEVIEW` renderer palette and ribbon button. Simulate before you commit — preview geometry matches the committed result exactly — then write the full cable set to the drawing in one replace. Includes a Direct-feeders toggle (straight combiner-to-inverter runs instead of the nearest-lane comb) and a "Feeders → drawing" button that erases and re-draws feeder routes. Adopt mode is the default: `LEAFLITEPLACE` works with your existing inverter positions and never moves them.
- •**Combiner and skid tools**: `LEAFSKIDRECONCILE` reconciles skid assignments, `LEAFPVCASESOLVE` runs a headless string/inverter solve, and homerun routing can now run through the cloud solver end-to-end.
- •**Terrain shading**: shadow curtains are drawn and stored in the drawing with streamed progress and diagnostics, a shade-compare launcher, and per-blocker explanations of what is casting shade on a selected area. Fence linework drapes to terrain and vegetation canopy heights interpolate so shading inputs reflect the real site.
- •**Site import from map**: fit a satellite/lidar site import to selected geometry, with auto-sized satellite requests, tiled large lidar fetches, vegetation height-mass import, and a mesh-diff viewer (with palette action) to compare terrain surfaces. 3DFACE terrain can be promoted straight to `LEAFTOPO`.
- •**Pile mapping**: piles map by racking block and tracker blocks seat on generated piles, with pre-scan and save progress shown throughout.
- •**PVsyst scene export**: export controls wired into the palette, with clear outcome reporting and a shade-fallback marker when full shade data isn't available.
- •**REopt integration re-enabled**: energy-model calls now pull location from the drawing's geolocation, and a profile comparison view lets you review scenarios side by side.
- •**Per-tracker-type string lengths**: `SOLVE` can assign different string lengths per tracker type, and stringing now addresses individual modules inside panel blocks (in-block panel references).
- •**Panel layer auto-detect**: the palette's Panel Groups step suggests candidate panel layers automatically, with a stricter detector that skips detail/legend/key layers.
- •**Frame group commands**: `LEAFFRAMEGROUPLIST`, `LEAFFRAMEGROUPRENAME`, and `LEAFFRAMEGROUPDELETE` manage tracker frame groups from the command line.
- •**Hardware catalog additions**: TMEIC NINJA-840 inverter and First Solar FS-Series 7 535W module.
- •**Palette accessibility**: tooltips and help text across the rooftop palette steps.
Changed
- •**REopt calls route through the Leaf proxy** — no local API key setup required for the default path.
- •**Ground-mount electrical steps** now share the same panel sequence as the Rooftop flow, so the two flows feel consistent.
- •**Command rename**: `PostionInv` is now `PositionInv`; the old misspelled name still works as a deprecated alias.
v1.1.1(3 patches)
Tuesday, April 28, 2026 at 8:49 PM
Fixed
- •**Auto-updater signing**: artifacts inside the update ZIP (`LeafUpdate.exe` + all plugin DLLs) are now properly code-signed. v1.1.1.1 shipped with unsigned files in the ZIP because the signing script hardcoded the project root path — when the release was built from a worktree, signing happened against the wrong directory while packaging used the worktree's never-signed bundle. End-users on v1.1.1.1 saw "Unknown publisher" UAC prompts and the update silently failed (AutoCAD fell back to the prior signed version on restart).
- •Deep search status flow stabilized after removing the legacy progress form.
Changed
- •No functional plugin changes vs v1.1.1.0 / v1.1.1.1. This is still a verification build for the auto-update path. End-users updating from v1.1.1.0 (or stuck on v1.1.1.1) should now see `LEAFVERSION` report `1.1.1.2` after the updater runs and AutoCAD restarts.
- •Build-digit bump for verifying the in-plugin auto-updater. Source code is byte-identical to v1.1.1.0 — no functional, UI, or behavioral changes. The only difference end-users will see is the version string ticking from `1.1.1.0` → `1.1.1.1` after the updater hot-swaps DLLs.
- •Palette steps refreshed across Zones, PanelGroups, Solve, Inverter, Homeruns, Export, ReOpt, Settings, and StringSizer to integrate combiner placement and cable sizing.
- •StringHomerun export and options forms reworked; OptimizerResultForm and StringSizer input/popup/result forms updated for the new pipeline.
- •TrunkRouter, HomerunSolution, AutoFillSimulator, CableTransferEngine, Inverter, and StringPlacement updated to feed the combiner + cable-sizing engines.
Added
- •**Combiner auto-placement** — new `LEAFCOMBINERAUTO` workflow places L1 combiner boxes from string layout: detects alleys between panel groups, partitions strings, picks centroid + snap positions, validates NEC voltage drop, and writes L1↔L2 assignments. Includes new combiner step panel and placement guide card in the palette.
- •**Cable sizing post-processor** — NEC-driven cable + conduit sizing applied automatically after routing: NEC OCPD sizing, conduit fill engine, project-level cable defaults, and pluggable wire gauge provider.
- •**Schedule tables** — new `LEAFINSERTSCHEDULES` command inserts equipment / string / combiner schedule tables directly into the drawing via a registry-driven table builder.
- •**Deep search history** — persistent history of deep-search runs with a status form and on-demand recall (replaces the old progress dialog).
- •**Equipment + assignment dialogs** — new `EquipmentTypeDialog` and `AssignModeDialog` for clearer per-step decisions.
v1.1.0
Wednesday, April 8, 2026 at 12:46 PM
Security Hardening Release
Changed
- •**Telemetry privacy controls** — new registry-based opt-out at `HKCU\Software\AEC BIM Tools Ltd\Branch\TelemetryMode`. Three modes:
- •**Full** (default) — all events with full payloads
- •**Errors** — only command execution, exceptions, and lifecycle events
- •**Off** — minimal anonymized billing pings only (no PII, no drawings, no stack traces)
- •**Bug report drawing attachment** now defaults to unchecked — attaching your DWG is always an explicit opt-in
Removed
- •Removed hardcoded Google Geocoding API key from shipped binary (zip-code lookup now returns gracefully with no network call; server-side proxy planned)
- •Removed hardcoded NREL API keys from shipped binary
- •Disabled REOPT command pending server-side API proxy (command was also using incorrect hardcoded coordinates)