Twinned from https://github.com/cfsh/ninefold/issues/464 by tools/beads/import_github.py's reconcile pass.
Suggestions from ninefold-reviewer's review of #453 (one screen at a time on a small panel, #439). All are advisory residuals below that PR's gate floor — it converged at pass 5 with every finding fixed. Nothing here is claimed.
ApplyLayout / TriangleJump reach into each other's state — give the page's transient state one ownerRaised by the PR author himself on the thread ("ApplyLayout and TriangleJump keep reaching into state the other owns, and every fix so far has been in that seam"). The thread's own record backs it: five of the fifteen findings landed there, and the last two rounds found only defects introduced while fixing the previous round's.
| finding | the seam |
|---|---|
| D1 | ApplyLayout's split branch set _songScreen.Visible and returned; the cards home's visibility actually rides on (_songWrap/_editWrap) are set only by ShowScreen |
| D2 | _flowFill parented once, but ApplyLayout moves the roll between screens |
| D6 | _homeSpacer belongs to home, was toggled only by ApplyLayout, and had to move to ShowScreen |
| D11 | ResetFlowWalk() added to ApplyLayout because the flip carries transient walk state |
| D13 | that same call, above the early return, hit the Root.SizeChanged path in both layouts |
Candidate shape: one method (or small type) that owns the page's transient state — _jumpCell, SongGrid.SetEditingCell, _flowFill visibility + parent, _homeSpacer, hint parenting — with ApplyLayout, ShowScreen and TriangleJump calling into it instead of each setting pieces directly. Worth deciding before more lands on TonapseHome.cs (already ~1360 lines).
tools/probes/single-screen-pill.json's _intent records the attempt and why it was removed: neither the L1/R1 taps nor the held-shoulder chord reached an empty bar under the probe, so the RollShown assertion passed identically with and without the fix. Removing it rather than shipping a green check that cannot fail was the right call — but the scenario (flip the layout while the fill panel is up) is still uncovered. A route that reliably parks the walk on an empty bar first would make it assertable.
By design — the fix's comment says the fallback cell "is only a place to stand". Consequence: after + new → name it → △ on the one-screen layout, the roll edits the pattern you minted while the SONG grid's editing ring sits on the last-visited bar, which holds something else. Consistent and better than the alternative it replaced; worth a look at whether the marker should be suppressed (or the walk left unarmed) while the open pattern is unplaced.
None.
No comments.