FE-1509: Add the notebook's whole-net graph explorer - #9408
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
1 Skipped Deployment
|
3 tasks
kube
force-pushed
the
claude/fe-1509-notebook-explorer
branch
from
August 28, 2026 18:34
c71e5ae to
8982115
Compare
kube
force-pushed
the
claude/fe-1509-notebook-explorer
branch
from
August 28, 2026 18:44
8982115 to
55fb649
Compare
kube
force-pushed
the
claude/fe-1509-notebook-explorer
branch
from
August 28, 2026 19:13
55fb649 to
5ce2a16
Compare
kube
force-pushed
the
claude/fe-1509-notebook-explorer
branch
from
August 28, 2026 19:50
5ce2a16 to
0e5ac33
Compare
kube
force-pushed
the
claude/fe-1509-notebook-explorer
branch
2 times, most recently
from
August 28, 2026 21:04
b76cc7f to
1cb574e
Compare
kube
force-pushed
the
claude/fe-1509-notebook-explorer
branch
from
August 29, 2026 14:09
464ee85 to
35f33ad
Compare
kube
force-pushed
the
claude/fe-1509-notebook-explorer
branch
from
August 30, 2026 04:54
35f33ad to
eb454db
Compare
CiaranMn
previously approved these changes
Aug 30, 2026
Pure, unit-tested projections of an SDCPN for the notebook view built on top of them: the cell list and its dependency-edge index covering all five entity kinds, topological cell ordering with declarations inlined before their first user, and a cut-down Sugiyama layered layout with a focus mode that re-layers by hop distance.
A new global mode behind an enableNotebookView user setting, toggled in the viewport settings dialog and placed directly after Edit. The net renders as a list of one-line expandable cells with keyboard navigation on the worksheet focus flow (one roving tab stop, no edge wrap), fuzzy name search, kind filters, document/topological ordering, per-row dependent counts, and gutter connector lines from the selected cell to its dependencies and dependents. Everything an expanded cell shows edits in place through the same guarded mutations as the properties panel: names, fields, arc weights, type assignments, and code. Body parts join the focus flow — Enter engages a part's widgets or code editor, Tab cycles them, Escape reverts drafts and steps back out. Code edits only commit while the editor has focus, so programmatic model resets can never write back. The effective global mode is derived in one shared hook used by both the editor view and useReadOnlyReason, so the rendered view and the mutation rules never disagree when the flag is off.
A resizable right-hand pane drawing the whole net as a layered flow graph of places and transitions, laid out from the arc structure alone. Selection highlights dependencies, dependents, and both-direction neighbours; a focus mode re-layers the graph around the selection by hop distance, animated FLIP-style by a write-only requestAnimationFrame loop that runs before paint. The explorer joins the worksheet focus flow: its connection lists are a single-column grid (one roving tab stop, remounted per selection), and a horizontal move at their edge crosses back into the cell list at its remembered row. Explorer navigation can reveal a filtered-out kind, so row focus gains a one-shot retry that runs after the reveal renders.
kube
force-pushed
the
claude/fe-1509-notebook-explorer
branch
from
August 30, 2026 13:07
eb454db to
d8884e8
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit d8884e8. Configure here.
CiaranMn
approved these changes
Aug 30, 2026
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.

🌟 What is the purpose of this PR?
Third layer of the Notebook view stack, stacked on #9407: the whole-net graph explorer on the right of the notebook, with cycle and initial-place markers, selection highlighting, and an animated focus mode.
🔗 Related links
🔍 What does this change?
requestAnimationFrameloop interpolates node transforms and edge paths before paint, honouringprefers-reduced-motionand the animations setting.FocusStack): the cell list and the connection lists are sibling members, so ArrowLeft at the lists' edge crosses back into the cell list at its remembered row. The connection lists form a single-columnuseFocusGrid— vertical arrows walk every row across both sections, the pair is one roving tab stop — remounted per selection so the focus memory never points at a vanished row.Pre-Merge Checklist 🚀
🚢 Has this modified a publishable library?
This PR:
📜 Does this require a change to the docs?
The changes in this PR:
🕸️ Does this require a change to the Turbo Graph?
The changes in this PR:
🛡 What tests cover this?
net-graph-animation.test.tscovers the interpolation and layout-signature helpers; the layered and focused layouts are covered bynet-graph-layout.test.tsin the layer below. The animation timing and hover behaviour are exercised manually.❓ How to test this?
↻badge in the list or a ringed node in the graph; the whole cycle should light up in both.📹 Demo
Screenshot pending — to be added before review.