Replace the oversized header and reference rail with stable editor slots and a retained supporting drawer. Bind diagnostic, result and menu actions to their original publication and visit; preserve effective selections on navigation and dismiss Actions, Find and the drawer one surface per Escape. Retain exact Windows source captures, eight final gates (871 desktop passes), independent reviews, native selection/rename/recovery trials and the original failures. All 526 tested inputs and staged evidence were byte-checked before commit. Combined preview integration and packaging remain with issue 27; Linux remains paused.
4.8 KiB
Independent Text integration review
Read-only static review of the actively integrated C:/ar-text-9e8r6t App, source-symbol controller/state and root/reference views. No implementation changes, compiler, GUI or network. This follows frozen-contribution-review.md; active parent edits are not a frozen acceptance checkpoint.
Three concrete findings were sent to the parent:
- Stale groups became impossible to expand. Reference group headers shared the
!stale && source_navigation_available()admission used for navigation rows. After an edit, retained collapsed groups and their full paths could not be examined. ToggleFile is presentation-only and already checks the retained stamp/group. Keep navigation disabled but allow expansion under normal interaction admission. Parent verified this, changed header admission and added an actual App-path stale-group regression; compilation remains separate. - Authority-only session reset stranded current diagnostics. The successful local Saved path resets the workspace navigation session on a new destination, after any sync_source publication, without rebinding diagnostics. Their publication SnapshotKey then no longer matches, leaving current warning/error links disabled with a waiting-for-checks notice until another lint. SourceRecovered has the same publication-before-session-reset ordering; hosted destination reset paths also need the centralized treatment. A real Saved receipt with nonempty current diagnostics is the discriminating case.
- Installing a repair workspace retained the previous project's references.
open_source_project's Err branch changes canvas_document and replaces Workspace but did not clear Text UI, results/display ownership/cache/back history. The old drawer could show stale results from a different installed project. Existing snapshot guards prevented jumping, so this is a presentation/session-lifetime defect rather than model corruption. Clear presentation while preserving only the occupied worker identity; a failed or canceled Open that installs nothing must still retain its existing state.
The parent's proposed centralized reset resolves the last two coherently: remember whether the old diagnostic publication matches the old source key; reset workspace session; replace SymbolState while retaining in_flight only; reset Text UI; republish the same diagnostics under a new generation only when the old publication was current. Never relabel already stale diagnostic bytes. These inspected reset sites change navigation/save authority without changing current source bytes. Old queued reveals miss the new editor/session ID; an old completion still releases its occupied slot but cannot find display ownership. Preserve global menu_sequence and the separate rename worker. Query serial overflow can call this before minting its new query; begin_references then explicitly opens the new query. Repair installation needs the analogous presentation reset before publishing newly loaded diagnostics. This proposal was reviewed statically; this note does not claim its execution or final readback.
Other inspected seams are consistent: every production assignment/replacement of source_diagnostics is routed through publish_source_diagnostics; current-file source edits and text history clear through it. The permanent root Popup blocks body input while a Text menu is open, and App blocks captured global shortcut messages; the duplicate captured-Escape bridge is disabled during that menu. Matching query completion releases the worker before display/navigation admission. Display ownership requires the latest Request and an exact current source snapshot; navigation additionally retains interaction/raw-interaction/path/cursor/modal checks. Hidden completion cannot reopen, focus or reset another tab. Admitted query start resets reference grouping/scroll once under a new visit ID, and the reference panel owns exactly one scroller. Primary and related Problems rows share the permanently mounted Guard, with None publication plus empty content while hidden.
Two evaluation boundaries remain with parent integration: full row details must stay reachable independently of hover, and the fixed summary must keep exception badges visible with long wide-glyph aliases at minimum center width. A single clipped summary string puts suffix badges at risk; use the actual mounted renderer to discriminate, not a character-count estimate. The resize/view owner is coordinating that concern. The updated actual sensor/highlighter/editor scroll tests are a separate contribution awaiting merged compilation; the earlier bare-editor test is not attributed that broader coverage.
Final combined correctness, geometry, focus, native interaction and source/history preservation remain the parent's gates. This review found bounded integration issues and reviewed their proposed correction; it is not #13 acceptance.