## LTplus-AG/ifc-lite — v10.1.0…v10.1.2

_141 commits._

### Features
- **feat(viewer): basepoints, zones, rect-select, add-element and split SVG on the scene kernel (#6016)** (50a5e92)
- **feat(create): LandXML station equations as IfcReferent; profiles read through them (mapping v1.3) (#5634) (#5932)** (f34299c)
- **feat(viewer): parked-section chip and HUD hint replace the section badge, clip chip and hint strip (#5500) (#6021)** (d109ac2)
- **feat(viewer): Section tool bar on the HUD (#5499) (#5991)** (89cae49)
- **feat(create): map LandXML vertical profiles to IfcAlignmentVertical (#5634) (#5930)** (96b0404)
- **feat(flow-nodes): OpenCDE Documents API nodes and model.openFromSource (#5634) (#5935)** (dff671e)
- **feat(viewer): move gizmo/wall-handle wake onto the scene kernel projector (#5510) (#5993)** (0d07ad0)
- **feat(viewer): Presentation bottom panel replaces the floating basket dock (#5508) (#5987)** (0147e7b)
- **feat(flow-nodes): speckle.receive node with mapping corpus (#5634) (#5925)** (d85e898)
- **feat(viewer): docked Placement panel replaces floating reposition/georef forms (#5505) (#5974)** (28b14d3)
- **feat(viewer): Split, Space Sketch and Add element on the TOOL_HUD registry (#5503) (#5972)** (e530d6d)
- **feat(viewer): annotation pins, BCF markers and peer cursors on the scene kernel (#5511) (#5970)** (f64353f)
- **feat(viewer): chips and notices onto the HUD; storey and hidden counts into the status bar (#5504) (#5968)** (ff93c60)
- **feat(analytic): expose directrix lengths and bend angles (#5754) (#5765)** (0bc43e1)
- **feat(viewer): bottom strip gets a shared header — tabs, maximize, close (#5498)** (c8ed2e4)
- **feat(viewer): Measure tool bar on the HUD and a Measurements side panel (#5502) (#5955)** (d981574)
- **feat(flow-nodes): Autodesk Platform Services receive nodes aps.token and aps.modelProperties (#5634) (#5933)** (a51dd3d)
- **feat(viewer): one first-run card with "Load demo project" as its main action (#5840) (#5915)** (0b1c31e)
- **feat(flow-nodes): BCF API flow nodes over the gated network transport (#5634) (#5921)** (ca5ff8d)
- **feat(mcp): entity_create accepts an optional global_id (#5634) (#5934)** (356e151)
- **feat(renderer): physically based default specular, replace the fake glass branch (#5386) (#5623)** (40a58c9)
- **feat(viewer): Drawing inspector column with Overrides/Sheet/Underlays/Scan tabs (#5495) (#5640)** (a67d436)
- **feat(renderer): real edge pass with normal-crease and silhouette detection (#5385) (#5632)** (7b1473c)
- **feat(viewer): point clouds side panel replaces the floating card (#5507) (#5629)** (1a44db8)
- **feat(viewer): ViewportHud, a six-region HUD host with shared HUD controls (#5485) (#5631)** (7917c8d)
- **feat(viewer): the 2D drawing is the Drawing bottom panel (#5493) (#5550)** (8b14c29)
- **feat(rules): list, enumerated and table property values match any member (#5545)** (5c02af8)
- **feat(flow,sandbox,extensions): network requests and env secrets for flow graphs (#5167 3.3/3.5) (#5446)** (e40213f)
- **feat(create)!: remove the no-op ProjectParams.FileSchemaIdentifier (#5562) (#5722)** (cddb321)

### Fixes
- **fix(viewer): main green — overlay tokens without literal fallbacks, no purple in Georeference, drop unused test locals (#6030)** (9d852d1)
- **fix(export): port the IfcRelNests one-parent rule and the post-claim empty-container drop to Rust (#5802) (#6018)** (f30de14)
- **fix(release): check the release credential's API quota before the run acts (#5693) (#6004)** (678bfa2)
- **fix(viewer): move CesiumPlacementGizmo's rAF loop onto the scene kernel projector (#5995) (#6020)** (bb2bf7f)
- **fix(release): re-judge the Version Packages PR whenever main moves (#5951) (#5990)** (dfe0257)
- **fix(viewer): keep a clamped floating panel's title bar below the toolbar (#5957) (#5994)** (ac48987)
- **fix(viewer): clear the a11y and toolbar-parity breaks left by #5974 and #5987 (#6002)** (a9e0aad)
- **fix(viewer): stroke the BCF connector with its colour directly (#5996)** (6acff17)
- **fix(release): keep the examples' registry ranges out of changeset version (#5960) (#5963)** (0a030a1)
- **fix(viewer): space-validation reads standard Qto_SpaceBaseQuantities names, not substrings (#5539) (#5964)** (fca6459)
- **fix(server-bin): only fall back to a SHA256SUMS release that lists this archive (#5949)** (68bf0f5)
- **fix(viewer): Reset to axis keeps the on-screen side after a face pick (#5644 follow-up) (#5948)** (c8ef437)
- **fix(viewer): bring SpaceSketchOverlay back under its module-size budget (#5978)** (5b05a2e)
- **fix(viewer): bring CesiumOverlay back under its module-size budget (#5973)** (6708ef6)
- **fix(geometry): retry an open wall-frame cut on quantum-snapped operands (#5635) (#5943)** (3396e12)
- **fix(viewer): Section/Drawing contract — no auto-pop, visible parked state, floor plan docks without forcing ortho (#5497) (#5971)** (894553d)
- **fix(examples): viewer examples use workspace:* so version PRs cannot break the frozen install (#5962)** (6cfed74)
- **fix(viewer): one Reset layout for the whole workspace; clamp floating panels on screen (#5854) (#5916)** (c80cc58)
- **fix(viewer): record Bulk and CSV runs as one undo step (#5861) (#5912)** (66f3d7e)
- **fix(viewer): mobile panels collapse only on entering mobile mode, not on every resize (#5837) (#5910)** (371279c)
- **fix(export): derive BOS spatial rows from effective relationships (#5706)** (43f40a1)
- **fix(viewer): count live building storeys in metadata (#5249) (#5703)** (446bb05)
- **fix(viewer): Player/Publish for contributed flows, uninstall clears their Player values, normalise handler paths (#5634) (#5936)** (b34cdeb)
- **fix(viewer): attribute a flow run's mutations by SDK write, not time window (#5634) (#5926)** (293fec7)
- **fix(flow): do not memoise a Script run that used the network (#5634) (#5928)** (4c7bd47)
- **fix(viewer): keep existing property sets when adding a property (#5672) (#5799)** (256e150)
- **fix(viewer): touch pinch zooms toward the surface under the pinch (#5547) (#5803)** (8a59f6c)
- **fix(viewer): drawing paper follows the theme; print preview; PDF export dialog (#5496) (#5940)** (b93ff52)
- **fix(viewer): face-picked sections keep the same side on every face (#5644) (#5796)** (9187a1d)
- **fix(viewer): retire the edit-mode purple; edit mode uses the accent plus an Editing HUD chip (#5489) (#5807)** (244d98a)
- **fix(viewer): draw grid axis bubbles once, not once per storey (#5656) (#5666)** (45f74dd)
- **fix(export): drop containers emptied by the one-parent pass in MergedExporter (#5725) (#5789)** (42b3f21)
- **fix(export): keep one IfcRelNests parent per object in MergedExporter (#5726) (#5773)** (11478f7)
- **fix(viewer): section plane, gizmo and pick preview use the interaction accent (#5488) (#5790)** (8f824e6)
- **fix(viewer,bcf): one selection accent everywhere; the BCF overlay follows the theme (#5491) (#5804)** (7fae2b8)
- **fix(release): refuse a release commit that still carries a pending changeset (#5647) (#5779)** (06161d4)
- **fix(create): write (0,-1,0) for an Axis-only placement along -X (#5469) (#5920)** (d83d9fe)
- **fix(viewer): one filename builder for every model export (#5833) (#5913)** (0695e7d)
- **fix(viewer): IDS panel Re-run and split clear results / unload IDS (#5816) (#5911)** (41620b7)
- **fix(viewer): clash overlap follows theme, one X/Y/Z triad, neutral level chip, measure colours from tokens (#5490) (#5798)** (e7a658d)
- **fix(viewer): keep export dialogs open while an export runs (#5605) (#5660)** (bf5a1f5)
- **fix(viewer): keep global single-key shortcuts inside their context (#5596) (#5657)** (0133dc1)
- **fix(bcf,export): write ZIP version-needed 2.0 for DEFLATE entries (#3612) (#5906)** (e6ebbef)
- **fix(create): refuse a spliced type name on string properties too; treat an empty Type as undeclared (#5730) (#5908)** (dcdc8df)
- **fix(viewer): merge, cap and announce toasts properly (#5603) (#5678)** (45ed535)
- **fix(viewer): make the quantity-takeoff and space-validation templates report true numbers (#5728)** (b858265)
- **fix(ids): a typed authored value is data, never re-read as a token (#5249) (#5589)** (a2e5d2d)
- **fix(create): a created wall bounds rooms only on its own storey (#5642) (#5904)** (ddebcd9)
- **fix(server-bin): fall back to the newest release with this platform's binary (#5525) (#5734)** (6c98f57)
- **fix(geometry): re-planarise wall-local-frame cut operands to the world f32 quantum (#5635) (#5733)** (816b093)
- **fix(geometry): an unreadable composite parent span sweeps whole instead of failing the solid (#5566 follow-up) (#5903)** (975c430)
- **fix(viewer): initialize the playground mutation view before the first delete (#5681) (#5793)** (761537a)
- **fix(examples): current @ifc-lite majors, built by turbo, drop-to-open, collab build (#5538) (#5737)** (a1233a3)
- **fix(viewer): invalidate pre-fix LV95 geometry cache (#5743) (#5756)** (260a1ce)
- **fix(clash): trust a probe's ray parity only when it is clear of the surface (#5751) (#5764)** (d376d2c)
- **fix(export): pad IfcCartesianPointList2D/3D TagList in Rust IFC4→IFC4X3 conversion (#5755) (#5762)** (d2cfb9e)
- **fix(export): keep one IfcRelAggregates parent per object in the Rust merged exporter (#5727) (#5753)** (6bf4181)
- **fix(viewer): exempt drawingInspectorSlice from per-model teardown (#5495) (#5782)** (e1f8893)
- **fix(data): keep node:fs out of the browser bundle of @ifc-lite/data (#5768)** (4cfda4d)
- **fix(geometry): honor bare-conic sweep bounds without changing full-circle meshes (#5744) (#5747)** (b218ab4)
- **fix(server): getCached(cache_key) hits, and Parquet replays report from_cache (#5542) (#5741)** (f0e92a0)
- **fix(create): write numeric properties as their declared measure type (#5730) (#5731)** (91b1340)
- **fix(ci): fetch the dirty-PR scan's open PRs in pieces, retrying 5xx (#5729) (#5740)** (455d373)
- **fix(viewer): route command-palette exports through the toolbar export registry (#5601) (#5682)** (ab75ab4)
- **fix(viewer): make the IDS tour reach its anchors and open skipped panels (#5608) (#5669)** (b5a80d7)
- **fix(viewer): show BCF and collaboration failures to the user (#5600) (#5668)** (188f284)
- **fix(viewer): ask before the Share dialog uploads the model, default links to view (#5599) (#5667)** (8a4df95)
- **fix(viewer): frame the right-clicked entity from the context menu (#5597) (#5664)** (2e9f818)
- **fix(viewer): stop Esc resetting isolation, hidden set and basket (#5595) (#5663)** (4f4e4b8)
- **fix(viewer): make in-app copy match what the viewer does (#5606) (#5658)** (dd3e19c)
- **fix(viewer): show a reload notice for a stale-deployment worker failure (#5609) (#5655)** (35ca471)
- **fix(viewer): stop Ctrl+C and Delete wiping every measurement (#5598) (#5654)** (3cfcdbd)
- **fix(viewer): guard unexported edits and refresh the change count after CSV import (#5604) (#5653)** (9377171)
- **fix(geometry): read swept-solid StartParam/EndParam in the directrix's own parametrisation (#5566) (#5676)** (db7f991)
- **fix(review): judge the lane canary on the defect, not on one token (#5621) (#5677)** (6459cbd)
- **fix(viewer): point finished measurement strokes at a real CSS token (#5479) (#5584)** (e45496e)
- **fix(viewer): move SpaceMouse settings into Preferences (#5509) (#5626)** (3e12a37)
- **fix(create): bring ifc-creator.ts back under its module budget on main (#5738)** (e68d852)
- **fix(review): accept source quotes inside archived unified patches (#5563) (#5674)** (cf8ee14)
- **fix(viewer): keep nearby site objects in the opening fit; no crop from a partial first batch (#5633) (#5736)** (52ebaa1)
- **fix(create): write IfcAxis2Placement3D Axis and RefDirection both or neither (#5469) (#5671)** (e095908)
- **fix(export): keep a $ FILE_NAME author/organization absent on re-export (#5470) (#5675)** (7215c2a)
- **fix(geometry): preserve site-local mesh detail under RTC (#5689)** (477c1d5)
- **fix(export): keep one IfcRelAggregates parent per object in MergedExporter (#5471) (#5723)** (a0e1bfe)
- **fix(clash): OBB recognition independent of the element's distance from the origin (#5474) (#5724)** (bf32c6a)
- **fix(clash): a shared face no longer vetoes a certified overlap (#5717) (#5721)** (f947f8e)

### Backend
- **audit: detect spatial containment index reads (#5249) (#5697)** (3071904)
- **revert(geometry): back out the wall-frame snap (#5733); it regressed the geometry census (#5635) (#5905)** (2f07ac7)
- **renderer: drive selection, section-plane and overlay colours from theme (#5484) (#5637)** (34750d2)
- **viewer: scene-overlay kernel with one projector loop, shared SVG defs and world-anchored primitives (#5486) (#5636)** (2ac63cd)

### Tests
- **test(viewer): move the Section contrast case from the retired axis prompt to the HUD caption (#6024)** (5a0b30f)
- **test(viewer): mount the HUD host in the locale-activation re-render test (#5985)** (70208f2)
- **test(viewer): measure-quantities suites open the Qty tab of the Measurements panel (#5983)** (fedaf33)
- **test(e2e): drop removed setSuppressNextSection2DPanelAutoOpen from viewer smoke (#5981)** (93153d9)
- **test(bcf): compare the 400 kB snapshot bytes without toEqual (#5917) (#5919)** (043d3fe)
- **test(wasm): pin LV95 kilometre-local geometry (#5749) (#5757)** (bc1c803)
- **test(geometry): re-measure the #098 accept-gate pins after #5573 (#5760)** (5170a01)

### Docs
- **docs(bcf): stop documenting the removed BCFOverlayRenderer (#6011)** (e579765)

### Chore
- **chore: version packages (#5979)** (ca6fef8)
- **chore(lint): drop three unused locals left by #5994 and #6021; tighten the baseline (#6028)** (e1ef851)
- **chore(lint): tighten the unused-locals baseline on main; drop a dead handler mock (#6017)** (efb8054)
- **chore(lint): tighten the unused-locals baseline on main; drop a dead handler mock (#6015)** (635c33c)
- **chore(lint): tighten the unused-locals baseline after #5505 (#5989)** (3da0683)
- **refactor(viewer): ViewerLayout back under its module-size budget (#5961)** (268c0ba)
- **ci(viewer): overlay-palette gate for viewport hex/rgb, purple family and raw z-index (#5487) (#5953)** (85eca54)
- **refactor(viewer): delete the never-written per-model visibility maps (#5897) (#5909)** (8b075cb)
- **chore: version packages (#5771)** (f053ee6)
- **refactor(data): move readPackageVersion to a Node-only @ifc-lite/data/node subpath (#5945)** (ccc491e)
- **ci(viewer): ratchet jsx-a11y warnings and axe violations (#5607) (#5638)** (e747043)
- **chore(sdk): deprecate ExportGltfOptions ahead of removal (#5701) (#5735)** (a3dfacb)
- **refactor(viewer): extract store synchronization from oversized root store (#5766)** (9acac4b)
- **chore(viewer): delete the dead apps/viewer/tailwind.config.js (#5482) (#5592)** (4d036c7)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/LTplus-AG/ifc-lite?utm_source=github-action)._