4.1 KiB
Current Home/recovery cross-feature review — 2026-09-06
Bounded read-only review of current home.rs, home/tests.rs, recovery.rs,
app/checkpoints.rs, app open/save/result handlers, app/save_as_tests.rs, and
semantic ordered/recovery adapters. No native input or Cargo was used for this
review. Existing native evidence is release-current-native-verification.md;
it records actual older-binary source/property/Annotation/Binding recovery and
state routing, not acceptance of every current source change.
Finding and authorized correction
P2: Home Resume discarded the actual workspace choice. home_event sent
Page::Diagram, which is deliberately explicit Architecture navigation. Open
the state-only saved fixture (Behavior), visit Home, then Resume: that navigation
clears the active state view to an empty Architecture page. Text/Data/Traceability
also returned to Architecture. This is navigation loss, not model loss.
Root authorized a bounded correction after this finding: App now remembers its
last actual non-Home page; Home Resume requests that page. Constructor state-view
routing initializes the remembered page correctly; explicit Architecture keeps
its existing behavior. Three focused home_resume tests cover all eight pages,
repeated Home navigation, exact state view and explicit Architecture, raw invalid
source/property drafts, and accepted-document identity. Source edits are limited
to app.rs and app/checkpoints.rs. Formatting/diff checks passed. Tests and
native recheck are pending root's current build queue; earlier compiled test
binaries must not be claimed to include this correction.
Other reviewed boundaries
- Old v1 semantic checkpoints: the actual synthetic
.local/native-qa/semantic-before-crash.jsonhas checkpoint version 1, semantic version 1, one decision, and noordersfield. The current closedSavedschema addsorderswith#[serde(default)]; it restores an empty order-draft map while retaining existing decisions/rows/references. Its exact accepted-model fingerprint is still checked, andrefreshrecomputes a plan rather than executing saved commands. No incompatibility found by inspection. A current deserialize/replan regression now removes that field from valid and rejected raw v1 candidates, checks exact intent retention and rejects a changed accepted model. It is authored but awaits the root test run; the prior native restore predates the ordered addition. - Current restored Home card:
checkpoint_loadedremoves the restored ID from the displayed entries immediately, and Refresh filters both current and restored IDs. Save retires checkpoints only when all accepted/raw/workflow work is clean. The current focused test checks immediate removal. Distinct retained generations after a second crash are not proof of duplicate identity; the old snapshot intentionally remains until clean save/discard. - Failed saves: current result handlers leave the accepted document, raw workspace, recents, save destination, and recovery checkpoints in place on failure; pending multi-file save recovery is surfaced separately. Successful renamed Save-as adoption is revision checked and does not add semantic history. No new failure-path defect found. Previously closed late-write races were not rerun or counted as new review evidence.
- Externally changed includes: ordinary Save retains the loaded physical expectations; a recovered checkpoint opens detached and retains no old disk binding. Save-as uses the destination's admission/expectation path and refuses collisions rather than silently overwriting an original include. No new cross-feature overwrite path found. This is code review plus existing focused tests, not a new fault-injected disk or native run.
Limits: no current-binary crash execution, filesystem permission failure, Linux runtime, execution of the new old-v1 deserialize test, or post-fix Home Resume native acceptance was performed here. One concrete navigation finding was reported and implemented; the remaining reviewed paths produced no additional concrete correctness defect.