docs: re-point PROJECT_STATE.md and PLAN.md at what is actually current - #729
Merged
Conversation
Both were describing waves that closed months ago, which is a real cost: CLAUDE.md's Session Start Protocol tells every new agent to read them first, so a session picking them up rebuilt a picture from May. PROJECT_STATE.md said "Active milestone: Cross-Platform UI Crate" and tracked the #447/#493/#448/#449 GTK convergence chain as in-flight. That chain closed 2026-08-26. Replaced with #7 Platform-Neutral, GOALS.md as the north star, and the audit of 2026-09-01: - what closed (#448/#595, #669-#672 + draw.rs deletion, #676, the #621/#659/#660/#536 dedup sweep) - what is open and what actually gates each (#592 is 13-of-14, not done -- ai_panel is still unpainted on GTK; #593 unblocked; #658 is the only supply-blocked item; #146 needs re-triage) - the untracked residual, with production line counts over time: the two backends have been flat since 2026-07-01 while render.rs grew +2,420, so new work is going shared but the existing per-backend mass is not coming down. Names the four pockets, none of which was issue-shaped. - #657 as the trust gate, including the false blocker in its own body. The cross-backend coverage table is unchanged (still accurate); its status paragraph now says what remains is not paint. PLAN.md said "Current wave: TUI -> ShellApp, pick up at Stage 3." #595 closed with all ten stages landed and event_loop() deleted. There is no multi-stage wave in flight, so the current-wave section now says exactly that and points at GOALS.md. The wave itself is kept as a completed-work entry, including its scoping lesson (render_content/handle only ever get a &mut dyn Backend, never a raw Frame -- which is why both backend-runner migrations came in an order of magnitude over estimate), because that generalises to the next one. Docs-only, so exempt from the black-box test bar per CLAUDE.md. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016N1UjBkNdxrm4YEd6oYJAz
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
CLAUDE.md's Session Start Protocol tells every new agent to readPROJECT_STATE.mdandPLAN.mdfirst. Both were describing waves that closed months ago, so a session following that protocol rebuilt a picture from May and planned against it.PROJECT_STATE.md(last updated May 19) said "Active milestone: Cross-Platform UI Crate" and tracked the Migrate GTK widget tree to quadraui AppShell + run_with_shell() #447 → Full GTK run_with_shell migration: collapse 14 DAs to 1, strip Relm4 #493 → Migrate GTK event dispatch to ShellApp::handle(UiEvent) #448 → Migrate GTK click dispatch to FrameHitMap #449 GTK convergence chain as in-flight. That chain closed 2026-08-26.PLAN.md(last updated Jul 23) said "Current wave: TUI →ShellApp, pick up at Stage 3." TUI: migrate to quadraui ShellApp + run_with_shell (mirrors #493's GTK migration) #595 closed with all ten stages landed andevent_loop()deleted.What changed
PROJECT_STATE.md— active milestone is now #7 Platform-Neutral, withGOALS.mdnamed as the north star and the #5-supply / #7-consume split spelled out. Adds the 2026-09-01 audit:draw.rsdeletion, GTK: the VS Code-style Command Center (nav arrows + search box) was dropped by the #540 Relm4→ShellApp cutover and never re-wired #676, the vimcode: delete local fuzzy_score/fuzzy_score_with_positions — quadraui::text_util now ships equivalent logic (quadraui#474) #621/Adopt promoted quadraui helpers: driver tab geometry + SidebarSystem reveal #659/Retire four vimcode duplicates of logic quadraui already ships (tab scroll, measure, hit shim, split tree) #660/Migrate activity-bar keyboard nav onto quadraui AppShell (retire hand-rolled toolbar_selected arithmetic) — consume quadraui#386 #536 dedup sweep. Milestone Release v0.3.4 — bug fixes #7 at 29 closed / 4 open.ai_panelis still unpainted on GTK; #592-B: GTK live path — paint the panel surfaces (quickfix, bottom_tabs, debug_toolbar, panel_hover, ai_panel) #670 deferred it to a follow-up that was never filed,src/gtk/mod.rs:9364-9369). Ctrl+V paste silently does nothing on GTK — quadraui swallows the key, vimcode has no ClipboardPaste handler #593 unblocked. Adopt quadraui's shared preview-tab tier; delete vimcode's private copy #658 is the only supply-blocked item (quadraui#596/#480: TUI: Migrate Source Control panel (commit row, branch picker, help dialog) to shared primitives #597). Extend Lua plugin API to expose quadraui primitives #146 needs re-triage.render.rsgrew +2,420: new work is going shared, the existing per-backend mass is not coming down. Names the four pockets — mouse routing (~4,800 lines), the GTKMsgbus (124 variants / 301 sites), frame composition (~4,500), and 22 orphaned Relm4-era widget handles.The cross-backend coverage table is unchanged (still accurate); its status paragraph now says what remains is not paint.
PLAN.md— the current-wave section now says there is no wave in flight and points atGOALS.md. The TUI→ShellAppwave is kept as a completed-work entry with its scoping lesson (render_content/handleonly ever receive&mut dyn Backend, never a rawFrame— the reason both backend-runner migrations came in an order of magnitude over estimate), because that generalises to the next one. −226/+93 lines; the Phase B/C history below is untouched.Testing
Docs-only (pure
.md), so exempt from the black-box driver bar perCLAUDE.md.cargo test --no-fail-fastondevelopate02a824: green, 0 failures across all 46 test binaries.🤖 Generated with Claude Code
https://claude.ai/code/session_016N1UjBkNdxrm4YEd6oYJAz