Files
ARCADIA-Studio/harness/experiments/canvas-a31b40d-windows-native-20260911/canvas-obsolete-paths-handoff.md

40 lines
5.8 KiB
Markdown

# Obsolete canvas paths: source-only cleanup freeze
Codex-956atf /root/behavior_canvas_resume, 2026-09-11. Root source lease started at abffa4b3f0a859d7439103100f59805804d46e55; root may advance documentation-only HEAD independently. This is an uncommitted 11-file desktop candidate. No Cargo/rustc/test/native/Git/index/Linux/WSL/VPN execution or other-agent work occurred here. Root owns execution, review, integration and shared records.
Removed scenario CanvasEvent::First and its unreachable App handler. Its three retained-message calls now use the live BeginOccurrence(Lifeline) palette path with the empty owner's current slot; previous-owner/layer rejection, pending owner, complete Project, source bundle and history assertions remain. No persistence/core/schema/REST or B4 semantic/lifecycle change.
Removed both Shelf::Tools variants. Existing disclosure tests now toggle the actual Selection/Details shelf twice, retaining viewport geometry, form scroll, raw draft, invocation, focus and accepted-source assertions. No duplicate test iteration claims obsolete Tools coverage.
Removed ScrollArea::Canvas. Page remains the sole live Details observer channel, preserving shared observer integration. Scenario and process each retain one named details_offset rather than two-slot arrays. Scenario caller frames copy that offset separately from camera presentation; one DetailsRestore token is consumed once after an owner/document/token-matching receipt. There is no per-channel pending array. Scene and Graph no longer carry the permanently-zero production scroll_offset or compensate raw pointer events with it: hit testing uses the existing camera pan/scale. No persisted geometry was introduced.
## Regression successors
- contextual_source_old_empty_action_cannot_open_a_previous_owner_or_layer -> contextual_source_empty_palette_lifeline_cannot_open_a_previous_owner_or_layer, using the actual BeginOccurrence path and adding exact SourceBundle equality.
- direct_scenario_scroll_and_real_resize_invalidate_only_pointer_context -> direct_scenario_camera_details_and_real_resize_invalidate_only_pointer_context: real Camera pan invalidates the pressed semantic context; repeated identical Details reports remain idempotent; stale owner/document/revision and pending-form assertions remain.
- Scenario exact nested caller navigation now sets actual Camera pan and separately checks Details offset. The App-root production caller/one-shot restore test still checks camera, selection, caller bindings, source, revision and history; its old synthetic-zero assertion now checks the real acknowledged Details offset.
- Scenario/process busy-save tests retain current Details notifications and stale-document rejection, save completion and pending drafts; camera is set before the existing injected busy state, then retained across save. Scenario subsequent real Scene pointer messages still resolve exact sender/receiver/slot.
- direct_scrolled_canvas_maps_raw_pointer_events_to_the_visible_slot -> direct_panned_canvas_maps_ordered_pointer_events_to_the_visible_slot; process click/click/drag and scaled control/link tests likewise use actual camera transforms. Workspace scale/slot/message/reorder cases remain, with actual screen points asserted inside viewport bounds. Complete creation/source/history assertions are retained.
- Existing mounted observer tests still check Details initial/clamped/remounted offsets, one-shot caller receipt, wrong document/owner/process rejection and pre-first-report identity. Only the nonexistent Canvas-area permutations were removed.
- The permanent palette/camera mounted tests and shared UserInterface/Cache/Task harness remain intact. No test function was deleted. All 21 scenario workspace tests remain, including all five scenario_form_focus_* gates and session replacement/recovery. form_session.rs remains verbatim SHA256 F5027FB3A5A5599A182E7D1A10DBA56DD66EB1F23A4BA4C4A1744C9A6A5B6E61.
## Validation and remaining gates
Standalone installed rustfmt --edition 2024 --config skip_children=true on exactly the 11 paths below, then --check: exit 0. Reference search found no First/Canvas/Tools obsolete variants, old offset arrays, or synthetic Scene/Graph offset fields. Scoped conflict-marker, trailing-whitespace and blank-EOF checks pass. These are source/format checks only; no test, renderer, native or Clippy pass is claimed for this candidate. Root must compile and rerun relevant/full desktop tests and strict all-target Clippy, then coordinate native input ownership. No further API adaptation outside these files is known.
## Exact SHA256 manifest
| Path | SHA256 |
| --- | --- |
| crates/oa-desktop/src/app.rs | B53BA98CCBE1E02E41EAAACB56DFEF24BB83BDEC72BC6F281606097377831F28 |
| crates/oa-desktop/src/app/process_canvas.rs | 5A913BFA1E9E08D3A8AF314D2A883D55D1F1EED30E288546946F77C9F61CEB9C |
| crates/oa-desktop/src/behavior.rs | FEE302474EBA7DC8C36E809B7087C6379843A6E7BF2DEF2779DE4B7BAB64952B |
| crates/oa-desktop/src/behavior/contextual_source_tests.rs | 044BD412DC45FFE440B1E251993946942DC3759DCB2D5DFE71BD8D6EF61CBCC7 |
| crates/oa-desktop/src/behavior/scenario.rs | CE99D5902F16629BE84F3F10F45CF632EEF037D22401E54482057552D983D017 |
| crates/oa-desktop/src/behavior/scenario/workspace.rs | 29F3BC14AA19AD110E60BAAAEA644A53DAABC0CFA7C8CA4542E9D5A2C11CB9D0 |
| crates/oa-desktop/src/behavior/scenario/workspace/tests.rs | 57649638930E4B47DCBC3F9F6A2F991DA4393DBC1EF243BBC09E01D40932F5BA |
| crates/oa-desktop/src/behavior/topology.rs | 26E24AD0F781A3304C46299B3BD906917E57FAC262E7F52FBA4ADC80A4358EC5 |
| crates/oa-desktop/src/behavior/topology/direct.rs | FA9CEAE78174D09904A9EBF90B0792AE9A2D8D26E3BE56A3891D5DE5345E49D0 |
| crates/oa-desktop/src/behavior/topology/direct_tests.rs | EDCCFE3CE8B224065A3540AA53C6340F13DB0CECD48ECC0A3904CD832A483964 |
| crates/oa-desktop/src/behavior/topology/layout_tests.rs | 9031B2B2BD7AF47ADA3F1811C71F3EE372B07A545FB59C319A99D625F2D29EB6 |