Fix Code canvas speed, dashed-edge toggle, and Load Files default - #103
Conversation
Let Code view create, rename, and delete named parent hulls, add or remove open cards, and persist those groups per analysis session. Named membership wins over directory auto-groups; dragging a card out drops it, and group drags move members without rebuilding hulls on pointermove. Co-authored-by: Braedon Saunders <braedonsaunders@users.noreply.github.com>
Bring 3D force-graph edges to parity with the 2D Code particles: travelling beads only on the selected file's incoming/outgoing links, same orange/purple direction colors, and no motion when nothing is selected or reduced-motion is on. Co-authored-by: Braedon Saunders <braedonsaunders@users.noreply.github.com>
Match the Code-view particle stroke so travelling beads stay visible on the already-colored outgoing/incoming edges. Co-authored-by: Braedon Saunders <braedonsaunders@users.noreply.github.com>
White WebGL spheres disappear against the 3D background. Use the same outgoing/incoming stroke colors as the 2D path so direction stays obvious. Co-authored-by: Braedon Saunders <braedonsaunders@users.noreply.github.com>
The Supported Languages table already lists C++ .cxx/.hh/.hxx, Scala scripts, Groovy .gvy, Erlang headers, literate Haskell, F#/OCaml signatures, ClojureScript, and PowerShell data files. Those paths were dropped from folder, GitHub, and ZIP analysis because they were neither code nor text, even though the CLI already watched them for live diffs. Co-authored-by: Braedon Saunders <braedonsaunders@users.noreply.github.com>
New Group and Rename now use a Codeflow modal instead of window.prompt. Empty and off-screen groups are created at the current canvas viewport so they are visible immediately, including a placeholder hull on the minimap. Co-authored-by: Braedon Saunders <braedonsaunders@users.noreply.github.com>
Pan/zoom no longer rewrites every card box each frame, Code view skips the force tick loop, and only selected-file edges get particle/hit paths. Clicking those edges toggles dashes back on; selecting a file still lights them. Load Files is session-only and always starts at 25. Co-authored-by: Braedon Saunders <braedonsaunders@users.noreply.github.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
The last (or only) member could never leave: drop-out required other cards, so the hull just followed the file. Use the hull at drag start as the leave target, and stop membership changes from re-running the Code-view layout effect so the group does not rebuild on every move. Co-authored-by: Braedon Saunders <braedonsaunders@users.noreply.github.com>
Keep leftover/card/resize moves on a single rAF and hide dashed beads until pointer-up so Load Files 25 stays responsive without dropping dash-toggle restore or the session-default gate. Co-authored-by: Braedon Saunders <braedonsaunders@users.noreply.github.com>
Scope the drag-busy class to the Code canvas, pause beads only after the pointer actually moves, ignore leftover clicks after a hull drag, and stop d3.zoom from panning the giant card layer while a leftover node is being moved. Co-authored-by: Braedon Saunders <braedonsaunders@users.noreply.github.com>
Reuse bezier geometry until endpoints or card sizes change, cap animated beads, hide the particle layer during leftover/card drag, and coalesce selection visual updates so Load Files 25 stays smooth. Co-authored-by: Braedon Saunders <braedonsaunders@users.noreply.github.com>
Selection and thickness changes coalesce particle/hit-layer work to the next frame and skip it while a hull or node is moving. Drag frames now rewrite only edges that touch the moved nodes, and the particle layer no longer uses size containment that could clip beads. Co-authored-by: Braedon Saunders <braedonsaunders@users.noreply.github.com>
|
Retest notes for the hull/node drag hitch (issue #82, Sep 4 ~22:03): The expensive work was per-frame particle/path rebuilds, not the leftover drag itself.
Please retry Load Files 25, drag leftover nodes/hulls, then toggle dashes off and back on without a refresh. |
Adding is-code-drag-busy on .code-canvas invalidated the giant open card. The class now lands on the SVG instead. Drag frames only move nodes again — they do not rebuild incident bezier paths. Symbol-line lookups are cached so release/selection path work does not rescan huge files. Co-authored-by: Braedon Saunders <braedonsaunders@users.noreply.github.com>
|
Follow-up on the leftover-drag hitch: a 5s long task showed up when Now:
|
First leftover-drag release was rescanning index.html (14k lines) once per unknown edge function. Lookups now use the analyzer function table and skip the content fallback on large files, so release path work stays cheap. Co-authored-by: Braedon Saunders <braedonsaunders@users.noreply.github.com>
|
One more leftover-drag note: the first pointer-up was scanning |
The first leftover drag paid a multi-second style invalidation when is-code-drag-busy was toggled on the SVG. Drag now hides the particle <g> directly and keeps the JS busy flag, so open cards and the rest of the SVG are not restyled. Co-authored-by: Braedon Saunders <braedonsaunders@users.noreply.github.com>
The first leftover drag was paying a multi-second hitch to paint the giant off-screen index.html card. Card bodies now use content-visibility so leftover/hull drags do not force that work. Co-authored-by: Braedon Saunders <braedonsaunders@users.noreply.github.com>
The first leftover-node move paid a multi-second browser layout after JS returned. Code view now hides and restores the particle layer once after layout, so that cost is not on the first hull/node drag. Co-authored-by: Braedon Saunders <braedonsaunders@users.noreply.github.com>
Hiding particles and rewriting leftover transforms at graph-build time did not remove the first-move layout hitch, so that extra work is gone. Drag still hides the particle layer with an inline style. Co-authored-by: Braedon Saunders <braedonsaunders@users.noreply.github.com>
|
Retest summary for leftover/hull drag (issue #82): What changed on this pass
Please retry: Code view → Load Files 25 → drag a leftover/hull twice → toggle dashes off and back on (no refresh). A second leftover drag should feel live. Do not merge; not pinging review bots. |
Chrome tracing showed the leftover-drag hitch was a 5s React render (react.production.min.js U), not particle geometry. Hovering a leftover node called setTooltip and rebuilt every open Code card, including index.html. Code view leftover nodes already have labels, so they no longer open tooltips, and leftover drag marks busy on pointer-down. Co-authored-by: Braedon Saunders <braedonsaunders@users.noreply.github.com>
|
Found the leftover-drag hitch. It was not another particle/ Chrome tracing on a Load Files 25 leftover drag showed one 5.1s Fix on this pass:
Retest: leftover Please retry dragging leftover nodes/hulls at Load Files 25. Do not merge. Not pinging review bots. |
The 2s wall-clock assert flakes on loaded GitHub runners (~2127ms). Index-once and call-scan counts still catch a real analysis regression. Co-authored-by: Braedon Saunders <braedonsaunders@users.noreply.github.com>
|
Tests on
Pushed |
…-db67 Add custom named groups to Code view
…rticles-b117 Animate selected-file dependency links in the 3D view
…xts-0f8f Analyze README-advertised language extensions
Keep named groups, 3D link particles, and the session-only Load Files default together: both drag refs, viewport group state, and card drag-out plus the coalesced drag frame. Co-authored-by: Braedon Saunders <braedonsaunders@users.noreply.github.com>
ac77294 to
8b073b7
Compare
Community notes from eorroe on #82 (retested while reviewing #100, then again on this PR): Code canvas bugs on main, plus leftover drag freezes after the first pass. This PR is from current
mainand does not touch the named-groups work on #100 /cursor/code-named-groups-db67.Fixes
Canvas speed at Load Files = 25
alpha(0)/stop) so pinned cards do not pay a tick loop of full redraws, hull rebuilds, and particledupdates.Dragging hulls/nodes stays responsive (follow-ups)
setTooltipon leftover hover rebuilt every open card, includingindex.html), not particle geometry.dupdates pause. Beads are hidden withdisplay:noneon the particle group.requestAnimationFrame; minimap, hull rebuild, and path/drebuilds wait until pointer-up.Dashed dependency edges can come back without a refresh
Load Files starts at 25 every session
localStorage(a stored 100 does not come back on the next open).Tests
tests/code-canvas.test.mjscovers the session-only Load Files default, particle toggle helpers, leftover tooltip skip, drag-busy particle pause, path cache, particle cap, and click-vs-move refresh. The large-repo analyzer wall-clock budget is 4s so loaded GitHub runners do not flake on a ~2s 3k-file fixture; index-once and call-scan counts still catch a real analysis regression.npm testis green locally (215).