22 lines
3.0 KiB
Markdown
22 lines
3.0 KiB
Markdown
# Obsolete panel-focus cleanup — 2026-09-12
|
|
|
|
Owner: delegated focus_pending_regression worker; integration and runtime evaluation: root.
|
|
|
|
Delivered commit: `07681f6694964843b81543c00cd007f252ea0558` (`Remove obsolete canvas panel focus mode`). Tracked worktree clean after commit.
|
|
|
|
Branch: `codex/remove-obsolete-panel-focus-956atf-20260912`, based on `e2c027e54c6be0d051820374f669c52278d90f97`. Worktree: `.local/always-active-canvas-20260912`. The previous issue 25 contribution and branch remain preserved. This follow-up supersedes the earlier handoff's decision to retain independent panel mode plumbing: the strict root gate established that its production entry points were gone.
|
|
|
|
## Finding and change
|
|
|
|
After the Canvas and Focus canvas buttons were removed, process and scenario `CanvasEvent::Focus` had no production constructors. Their focused flags only selected a layout that hid the explorer and inspector; they never enabled canvas editing. Keeping test-only constructors hid the obsolete paths from ordinary tests while failing the strict non-test gate.
|
|
|
|
Removed both presentation flags, panel-focus events and context arms, App dispatch/whitelist cases, and conditional panel layout. Removed the toolbar's now-unused one-way `canvas_workspace::Event::Focus` route. Existing F6 `ToggleFocus`, Tab `Traverse`, `ControlFocus`, and `Leave` remain intact, as do actual canvas focus ownership, text-field protection, and stale context guards. The normal canvas layout always includes its explorer and applicable inspector. Current guide instructions now describe clicking/F6 keyboard entry and the continuously available panels.
|
|
|
|
Migrated pending invalid-draft preservation tests to surviving Zoom events and Details disclosure changes while retaining accepted-snapshot, raw-draft, and epoch assertions. Mounted stale-drag tests now click the real ZoomIn control instead of constructing the removed panel event. Scenario caller/back coverage now establishes distinct real tool and camera state, retaining caller tool/shelf/camera/scroll/source/history restoration assertions. Existing mounted keyboard ownership regressions were retained.
|
|
|
|
## Verification and handoff
|
|
|
|
Root reviewed the complete 12-file source diff and found no source blocker. Source-only rustfmt completed for changed Rust files with edition 2024 and skip_children=true. `git diff --check` passed. Production-source searches found no remaining obsolete Focus constructors, panel focused flags, toggle_focus methods, or removed-button instructions.
|
|
|
|
No Cargo, compiler, native application, or Gitea operation was performed by this worker. Runtime acceptance and integration remain pending with root. Useful targeted test filters include `process_zoom_retains_rejected_draft_and_guards_selection`, `process_zoom_and_disclosures_preserve_rejected_raw_draft_and_accepted_source`, `behavior::topology::view::layout_tests`, and `behavior::scenario::workspace::tests`; the strict non-test gate must also rerun because it caught the original defect.
|