canvas migration PR1+PR2+PR3 — facade, ProcessMapBase absorption, FrameView shell#126
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Code + Spec Review — fixes requested before mergeTwo parallel reviewers (spec-compliance + code-quality) ran against Blockers (must fix before merge)
Recommend-fix (strongly suggested before merge)
Strengths (worth recording)
Side note — PR4 plan grounding (not your fix to make)The review surfaced two PR4 plan revisions needed (separate from this PR's fixes): a. b. PR4's pseudocode uses Both PR4 plan revisions land on Once #1 + #2 are resolved (and ideally #3-#6), this is ready to squash-merge. Codex can ship the fixes on the same branch — small focused commits. |
Update — PWA Zustand blocker dropped (ADR-078 supersedes the rule)The "PWA ADR-078 locks the architectural framing as α — same product, gated tiers: PWA + Azure share state architecture (domain Zustand stores); persistence is the tier gate (PWA opt-in IndexedDB Hub-of-one + Updated fix list for #126Blocker (must fix)
Recommend-fix (strongly suggested before merge)
After these land, this PR is ready to squash-merge. Side note — for Codex's awareness, not your fixPR4 plan now includes two grounding revisions (commit
These are PR4's prerequisites; they don't affect this PR. Just flagging so the rename in #126's surface (if you happen to touch it during the recommend-fixes) doesn't surprise you when PR4 starts. |
b987dbc to
b0da708
Compare
|
Implemented the #126 review fixes on Fixed:
Verification:
Ready for re-review. |
Summary
Canvas migration phases 1–3 of the eight-phase strangler-pattern delivery from
docs/superpowers/specs/2026-05-04-canvas-migration-design.md. Three sequential commits, single PR perfeedback_slice_size_capexception (each phase is small, self-contained, and forms one coherent surface unification).2df0362e<Canvas>component as a thin facade delegating toLayeredProcessViewWithCapability. Both apps' FrameView swaps mount to<Canvas>. No behavior change — users see identical UI.25769d93ProcessMapBaserendering moves inside Canvas asCanvas/internal/ProcessMapBase.tsx. PublicProcessMap/ProcessMapBase.tsxbecomes a deprecated re-export. ADR-076's b0 branching collapses into Canvas's "is map empty?" check.b987dbcaCanvasWorkspaceshared component absorbs the canvas-mount + filter-state plumbing. Both apps' FrameView reduces to thin route shells. Synthetic-investigationuseStateworkaround replaced by session-scopeduseSessionCanvasFiltershook (per Canvas Migration spec Decision 2 — three-layer state; canvas filters live in View layer).Architectural decisions honored
useSessionCanvasFiltersputs filter state in the View layer (session-scoped, transient) instead of investigation-bound persistencefeedback_slice_size_cap— each phase is independently revertable; bundled here because all three are mechanical no-behavior-change refactorsPre-merge gate
bash scripts/pr-ready-check.sh✅ green per Codex's verification:What's NOT in this PR
01de9177ahead of this PRLayeredProcessView/ProcessMapBase/FrameViewfiles happens after Specs 2–5 mergeTest plan
claude --chromewalk PWA: paste sample → land on FrameView (now<Canvas>facade) → all existing FRAME interactions work identicallyclaude --chromewalk Azure: same end-to-end checkuseSessionCanvasFiltersclears filter state on reload (View-layer transience)