Twinned from https://github.com/cfsh/ninefold/issues/365 by tools/beads/import_github.py's reconcile pass.
Suggestions from ninefold-reviewer's review of #364. All advisory — #364 is CONVERGED and none of these block it.
1. HintsShown still diverges from what's actually rendered, in both bail directions. #364 fixed the gated case (collapse→expand stuck at "" via the unchanged-signature short-circuit, ControlsGuide.cs:71-75). Two narrower siblings remain, both mouse-only today (_collapseBtn is FocusMode.None, so no probe can reach either):
ToggleCollapsed (:65-76) only calls Refresh() on expand, so after a collapse HintsShown keeps reporting the old rows until some other trigger (GuiFocusChanged / EditorState.Changed / HintsChanged) fires. The comment at :96-98 says "a collapsed guide reports \"\"" — true eventually, not immediately."".* Collapsed + any Refresh trigger zeroes it (:103); if the focus owner is freed before the expand (the repo's recurring rebuild-frees-focus class), Refresh() returns at :104 and HintsShown stays "" while _list visibly renders the stale rows.Both are unobservable in practice — HintsShown doesn't render, and only a mouse can collapse — and both fail loud rather than false-green. The clean retirement of the whole computed-vs-rendered question: derive HintsShown from _list's actual children at read time (a getter over the row labels) instead of assigning it along the rebuild path. Then every bail is correct by construction.
2. FindPropertyInTree's all-hidden fallback is silent. shared/VisualProbe.cs:573-582 notes ambiguity only when visible.Count > 1; when *no* carrier is visible it falls back to matches[0] with no note. That is the same silent-wrong-node class #351 item 3 targeted, in the zero-visible case (page guide hidden behind an open menu, say). A note when matches.Count > 1 && visible.Count == 0 would close it.
3. The "" grammar branch has no probe leg (N2 on the #364 thread, acknowledged untestable by design). The only ""-producing state is the collapsed guide, and collapse is mouse-only. If _collapseBtn ever takes focus, guide-cursor.json should gain a collapse → expect_hint: "" → expand → expect_hint: "*" leg.
None.
No comments.