## LTplus-AG/ifc-lite — v10.2.0…v10.3.0

_116 commits._

### Features
- **feat(viewer): upload edited IFC models to Cesium ion (#6606)** (663711a)
- **feat(export): normalize map geometry through canonical Rust placements (#6634)** (4c0ebf2)
- **feat(viewer): expose saved session workflows in Player and startup prompt (#6612) (#6623)** (ae6e074)
- **feat(viewer): preserve registered references in drawing exports (#6615) (#6631)** (ed0af97)
- **feat(viewer): orchestrate immutable session evidence and artifacts (#6612) (#6622)** (1331193)
- **feat(viewer): add bounded Cesium ion upload transport foundation (#6633)** (04b3733)
- **feat(viewer): preflight scoped session inputs before side effects (#6612) (#6621)** (c3afd8e)
- **feat(viewer): freeze DXF references on section planes (#6615) (#6630)** (3f85c17)
- **feat(viewer): bound section projection depth before outlines and occlusion (#6615) (#6627)** (89e5950)
- **feat(export): normalize map units to metres on request (#6625)** (7780cb0)
- **feat(flow): define portable session automation contracts (#6612) (#6618)** (b13abd0)
- **feat(viewer): section IFC alignments at exact horizontal distance (#6609)** (89be760)
- **feat(geometry): expose bounded alignment axis sampling to Python (#6608)** (ab97764)
- **feat(processing): preserve per-face colors in geometry exports (#6605)** (f885099)
- **feat(viewer): assign construction stages through bulk editing (#6602)** (59b6549)
- **feat(viewer): add IDS and information validation outcome rings (#6591)** (4fbff07)
- **feat(viewer): add independent document page headings (#6590)** (d1213b4)
- **feat(viewer): allow independent document block titles (#6588)** (cfd1f5a)
- **feat(viewer): edit selected stair-flight dimensions atomically (#6232) (#6586)** (9d09f9f)
- **feat(viewer): draw authored grid axes and tags in plan (#6232) (#6585)** (51908ba)
- **feat(viewer): Curtain Wall and Grid commands with validated design-grid snapping (#6232) (#6511)** (b0617b5)
- **feat(viewer): save validation reports on explicit request (#6568) (#6583)** (3e27799)
- **feat(modelling): expose canonical wall joins and compound undo (#6232) (#6541)** (93098dc)
- **feat(documents): add persisted chart text sizing (#6573)** (0b6f0be)
- **feat(viewer): edit hosted door and window dimensions atomically (#6232) (#6571)** (1b1ea38)
- **feat(viewer): delete the Add element panel and Space Sketch; the Model workspace is the one way in (#6232 B1) (#6531)** (ff2d452)
- **feat(viewer): configure document table header text color (#6570)** (79f0faa)
- **feat(modelling): share atomic hosted placement across viewer, SDK and MCP (#6539)** (e8ced94)
- **feat(viewer): Trim/Extend in the Model workspace, walls joined through the join core (#6232 C1) (#6535)** (c380322)
- **feat(viewer): section picker for beams, columns and members; change a placed profile in the inspector (#6232 D2) (#6532)** (7f187a1)
- **feat(viewer): push/pull face handles, element.align and editable slab/column/beam dimensions (#6232 C4) (#6517)** (81dd482)
- **feat(viewer,create): wall joins in the Model workspace (#6232 B2) (#6519)** (e3b5f98)
- **feat(viewer): split.multi, one cut line through every crossed element in one undo step (#6232 C5) (#6518)** (8d6f2c6)
- **feat(viewer): Change sets panel; edits land in the active change set (#6232 D4) (#6505)** (a0fb646)
- **feat(create): copy an assembly with its parts; refuse a copy not tied to its storey (#6232 C3) (#6510)** (9eeefec)
- **feat(viewer): Room tool takes over Space Sketch — layout editing, Footprint, all storeys, weld, leaks (#6232 A4b) (#6496)** (003f4ff)
- **feat(viewer): configure document table order and header colour (#6527)** (c7dc4ae)
- **feat(viewer): retain saved model comparisons for document reports (#6526)** (3dfae0e)
- **feat(viewer): retain independent saved validation reports (#6523)** (a388918)
- **feat(viewer): named model fields and page breaks in documents (#6521)** (326e124)
- **feat(viewer): stair.place and railing.place in the Model workspace (#6232 D1) (#6512)** (499b68e)
- **feat(viewer): RGB text and background colours for document blocks (#6513)** (b037d46)
- **feat(viewer): Move and Rotate in the Model workspace (#6232 C2) (#6501)** (85251d5)
- **feat(viewer): copy, paste and array in the Model workspace (#6232 C3) (#6503)** (495591f)
- **feat(viewer): direct-edit handles in the Model workspace plan (#6232 B3) (#6504)** (797018c)
- **feat(create): in-store curtain wall and grid builders (#6232 B5) (#6495)** (ba5b8c0)
- **feat(viewer): per-file download progress rings in Sources (#6375, 2/2) (#6467)** (299d37c)
- **feat(create): wall join core — L/T/butt joins, IfcRelConnectsPathElements, Axis rep (#6232 A3) (#6468)** (a02add5)
- **feat(viewer): manual validation report block for documents (#6401) (#6486)** (331260e)
- **feat(viewer): duplicate action on chart cards (#6474) (#6487)** (241c3f1)
- **feat(viewer): place openings, doors and windows in walls (#6232 A1) (#6476)** (6acbc17)
- **feat(viewer): Model workspace hides the storeys above the active one in 3D (#6232 B4) (#6475)** (e875683)
- **feat(viewer): information-validation report block with severity, set rows and errors (#6372) (#6463)** (64c343b)
- **feat(viewer): Manual validation tab in the Data validation panel (#6401) (#6479)** (c942386)
- **feat(create): in-store stair and railing builders (#6232 A5) (#6466)** (455ddc3)
- **feat(viewer): Room tool — rooms from walls, Auto, Update rooms (#6232 A4) (#6472)** (e01487f)
- **feat(create): profiled in-store beams, columns and members (#6232 A5) (#6465)** (20c9c90)
- **feat(sources): stream provider downloads and report progress (#6375, 1/2) (#6460)** (9bbe599)
- **feat(viewer): space.place and per-kind tests for roof, plate and member (#6232 A2) (#6471)** (df6f6c7)
- **feat(viewer): Isolate / X-ray context actions on list group rows (#6368) (#6469)** (216453b)
- **feat(viewer): clicking a list group selects its members (#6368) (#6461)** (68c6ba5)
- **feat(viewer): editable storey plan beside 3D, selection synced both ways (#6232 M2.4) (#6394)** (0f3c5e7)

### Fixes
- **fix(viewer): scale section wheel zoom by input and honor navigation presets (#6614) (#6626)** (d0fe231)
- **fix(viewer): style and reduce prominence of federation save (#6604)** (9b59360)
- **fix(geometry): honor downward conic axes in profile trims (#6607)** (7a26cc3)
- **fix(viewer): preserve placement panel georef context when map is off (#6572)** (15ef047)
- **fix(viewer): distinguish IDS check and entity summary units (#6551) (#6599)** (646ad9a)
- **fix(viewer): keep slab openings with their split piece (#6589)** (9e2f15b)
- **fix(modelling): preserve shared hosted placements during trim and split (#6232) (#6582)** (ea8af2c)
- **fix(viewer): defer share metadata validation until consent (#6580)** (be69a07)
- **fix(clash): retain large occurrence arrays without spread argument overflow (#6579)** (d92c25d)
- **fix(viewer): reserve all IFCX entity and point-cloud IDs (#6564) (#6578)** (217b96b)
- **fix(viewer): prepare Home tools for measure and section tours (#6576) (#6577)** (33edd5a)
- **fix(geometry): preserve remeshing panic attribution through cleanup (#6562)** (1051a74)
- **fix(ids): bound compound lookup caches without reparsing entities (#6557)** (2c6be4a)
- **fix(viewer): share safe IndexedDB connection recovery for flavors (#6563)** (db2259f)
- **fix(geometry): stop shared-buffer retries after WASM traps (#6561)** (6dace7b)
- **fix(viewer): disable placement reset for locked models (#6558)** (a5a4503)
- **fix(charts): tolerate missing tooltip values (#6556)** (9d5f640)
- **fix(geometry): reuse validated opening-group retessellation (#6536)** (526a91b)
- **fix(viewer): group model tools when the rail exceeds viewport height (#6540)** (635edb8)
- **fix(viewer): share complete copy write for Duplicate (#6232) (#6538)** (7dda95f)
- **fix(parity): stabilize survey-coordinate volume evidence (#6534)** (4c21fc0)
- **fix(collab): retain per-model georeferencing and coordinate frames (#6522)** (ec983d3)
- **perf: add private-model streaming diagnostics for #6516 (#6525)** (9783ad8)
- **fix(renderer): retain valid authored frames during GPU upload (#6524)** (970be46)
- **fix(ids): correct pass percentage and add compact/long IDS report layouts (#6470) (#6494)** (4a9e7ad)
- **fix(viewer): keep popup prompts and modal cleanup in the source window (#6488) (#6514)** (d77a0a1)
- **fix(e2e): skip cleanly on hosted-GPU device loss via a shared helper (#6232 F3) (#6509)** (debb5cf)
- **fix(charts): measure and lay out long category labels instead of clipping them (#6480) (#6493)** (022be35)
- **fix(geometry): cut void host frame parts far from the RTC origin (#6478) (#6484)** (f450240)
- **fix(viewer): a Visible-elements chart no longer collapses to the bucket it isolated (#6473) (#6497)** (47d5b64)
- **fix(geometry): read IfcGridPlacement in the declared schema's layout (#6232 F2) (#6502)** (dd8e27c)
- **fix(geometry): keep far-apart items of one mapped source as separate frame parts (#6446) (#6482)** (19bbe65)
- **fix(charts): register GraphicComponent so the count chart draws its number (#6464) (#6483)** (068c184)
- **fix(viewer): validation results can restore the model's original colours (#6373) (#6462)** (84a49e9)
- **fix(viewer): an untouched HUD field never locks its shown value (#6232 F1) (#6481)** (79bb2fb)
- **fix(viewer): section plane no longer shows on every opened file (#6374) (#6457)** (0a900e6)
- **fix(viewer): document Text block keeps line breaks and takes Tab indents (#6370) (#6458)** (165dee3)
- **fix(geometry): keep far-apart item frames as separate single-mesh parts (#6349) (#6445)** (8a7f146)
- **fix(test): remove redundant WASM JS skip in quantity fixture (#6451)** (4ad3518)

### Backend
- **Retain independent live manual checklist reviews and document sources (#6529)** (d54bf5a)

### Tests
- **test(viewer): prove validation color restoration with real GPU frames (#6530)** (84c3e34)
- **test(e2e): give the swept-disk isolation witness something to isolate (#6232 F4) (#6520)** (8d37e3f)
- **test(viewer): align Qty empty-state copy assertion (#6456)** (fa790ba)
- **test(viewer): cover source quantity labels and mesh warning (#6455)** (d6e113d)

### Docs
- **docs: clarify section reference workflows and final validation (#6615) (#6637)** (980097e)
- **docs: keep Ion acceptance status tied to review history (#6636)** (1d53844)
- **docs: record Cesium ion placement acceptance and reproducible controls (#6616)** (ba8d334)
- **docs(perf): retain rejected approaches and historical controls (#6545)** (b602379)
- **docs(perf): preserve opening-work raw measurements in a reviewable stack (#6544)** (d10cfec)
- **docs(viewer): tighten mesh-area explanation within module budget (#6454)** (d58f9fd)

### Chore
- **chore: version packages (#6477)** (e79f273)
- **refactor(viewer): prepare native documents and PDF diagnostics once (#6612) (#6620)** (5d9bf65)
- **refactor(viewer): share native check execution and immutable report retention (#6612) (#6619)** (271f356)
- **refactor(viewer): extract cross-slice actions for validation-report stack (#6528)** (aeb1e8c)

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