Skip to content

Progress, a folded transcript, and links between the graph and the log - #6

Merged
punnerud merged 1 commit into
mainfrom
feat/ui-progress-and-graph-links
Aug 10, 2026
Merged

Progress, a folded transcript, and links between the graph and the log#6
punnerud merged 1 commit into
mainfrom
feat/ui-progress-and-graph-links

Conversation

@punnerud

Copy link
Copy Markdown
Owner

Phase D of the reasoning plan — the part that is independent of the measurement work, so it lands first.

Progress. A thin bar replacing the bare status line. Deliberately not determinate: the number of steps is not known in advance, so a fraction would be inventing a denominator. It approaches a ceiling instead, and turns green on success or red on failure so a finished run cannot be mistaken for a stalled one.

A folded transcript. When the run ends the steps collapse behind one line — ▸ 6 thinking steps — click to show — between the question and the answer. The answer is never hidden.

Hover shows where it walked. Hovering a node lights up the path that reached it, following the strongest incoming edge back toward the start.

Click opens the log. Clicking a node unfolds the transcript, scrolls to that step and marks it, with a close button that folds it back up. Panels carry id="step-N" so the lookup is by id rather than by counting.

Next free port instead of dying. mpe-lkg died with Address already in use the moment you already had it running — the most common case there is. It now searches upward from the requested port, binding to test rather than asking whether the port is free (a check followed by a separate bind has a race between the two), and prints the port it actually chose even when you named one.

One existing test changed meaning rather than breaking: it waited for a step to be visible, and steps are no longer visible after a run finishes. It now waits for state="attached". That is the test correctly catching a real behaviour change.

9 new browser tests. 127 total, green on Linux 3.10–3.13, macOS and Windows.

Four things, all of them about being able to see what the run did.

PROGRESS. A thin bar above the transcript, replacing the bare status line. It
is deliberately not determinate: the number of steps is not known in advance,
so a fraction would be inventing a denominator. It approaches a ceiling
instead -- visible movement per step, never a false 'almost done' -- and turns
green on success or red on failure, so a finished run cannot be mistaken for a
stalled one.

A FOLDED TRANSCRIPT. When the run ends the steps collapse behind one line,
'6 thinking steps - click to show', between the question and the answer. That
is the reading order you want: what you asked, how much thinking it took, what
it concluded. The answer is never hidden.

HOVER SHOWS WHERE IT WALKED. Hovering a node lights up the path that reached
it, following the strongest incoming edge back toward the start -- the same
notion of 'strongest' the server already draws. Leaving the node clears it.

CLICK OPENS THE LOG. Clicking a node unfolds the transcript, scrolls to that
step and marks it, with a close button on the step that folds everything back
up. Step panels carry id='step-N' so the lookup is by id rather than by
counting, and the final-answer node falls back to the answer panel since it
has no step of its own.

Also: the server now takes the next free port instead of dying on
EADDRINUSE, which happens the moment you already have it running -- the most
common case there is. It binds to test rather than asking whether the port is
free, because a check followed by a separate bind has a race between the two.
The port it actually chose is printed, loudly, even when you named one:
silently landing somewhere else is worse than an error, because you go looking
at the wrong URL.

One existing test changed meaning rather than breaking: it waited for a step
to be *visible*, and steps are no longer visible after a run finishes. It now
waits for them to be attached. That is the test correctly catching a real
behaviour change.

9 new browser tests covering all four, plus the port search.
@punnerud
punnerud merged commit 3dfe888 into main Aug 10, 2026
6 checks passed
@punnerud
punnerud deleted the feat/ui-progress-and-graph-links branch August 10, 2026 13:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant