Repository navigation
Show live executions and a timeline of every execution in the Pi panel - #126
Merged
Merged
Conversation
… graph in the Pi panel (#94)
Epsirom
force-pushed
the
chrok/jolly-bohr-320482
branch
from
October 25, 2026 13:33
73cb3c2 to
43b86e4
Compare
… executions; rename history to timeline
…iew does not draw the open one
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.
Change
Closes #94, part of RSI Mode (#118).
The
/braidpanel used to draw one box per node from the latest graph definition, so loop rounds collapsed into one box, replaced and removed instances disappeared, and skipped branches looked like pending ones. The panel now draws the execution-only graph from #113 with one box per execution, in two views. Pressgto switch between them. The title (Braid · live view/Braid · timeline view) and the footer show the active view, and the panel keeps the choice while it is open.waits predecessors, …). Running ones showmodel/tool,hold, or paused. When nothing is live, for example after the job finishes, the view says so and points to the timeline.review@2). Skipped executions are marked⊘ … skipped · reason, pending ones○. Superseded executions (superseded → x@n) and executions of removed nodes (removed) stay in the graph.predecessorExecutionIds. Dotted edges show the input a pending execution will use or the upstream result a skipped one saw. A dottedreplacesedge links a replaced execution to its replacement.≡ node@1–kbox per node, and pending, running, and held ones never fold.eexpands every generation. At most 80 boxes are drawn either way.vselects an execution in either view. Enter opens that exact execution's session, andp/h/xact on it.gwhile selecting keeps the selection when the other view draws it, otherwise it moves to the newest drawn execution of the same node. Esc returns to the same execution. Scrolling, cropping, and reveal-on-select are reused.braidand status tool results in the conversation keep their one-box-per-node chart. Each box now also shows the wait reason, the running sub-state, the number of runs, and the tokens the node's executions used.Open questions from #94
eto toggle all of them.Notes
<br/>, so box labels wrap at 24 columns, as they did before this change. It has only two box shapes, so skipped executions are told apart by icon and text.· —elapsed placeholder.gfirst, because the live view of a finished job is empty.Verification
npm run check:piand the Pi test suite (193 tests) pass.test/graph-views.test.ts: the tool-result chart labels, the live view (pending, running, and held only, plus the empty state), timeline markers (superseded, removed, replaces, skipped vs pending), folding and the box limit, and an end-to-end panel test. That test runs a loop with a blocked round (live view while running, thengwith the selection kept), then finishes and checks expand, selection, Enter on an exact execution, Esc, and switching back to an empty live view.