Files
Codeman/test/fixtures/story-corpus/python-cli-fix-loop.expected.json
T
Codeman maintainer 0effbb9ce4 perf(story-mode): no long tasks while stepping through turns; the rest of review round 4
Stepping through 40 turns made 46 long tasks of 51 to 286 ms, enough for
the app's guard to drop the terminal's WebGL renderer for the rest of the
page's life. Drawing switched off made none: the cost was canvas raster at
paint time, which the per-frame JS budget never saw. Now:

- Panel backgrounds are shared between panels and turns (kind × size ×
  palette), and a new one is built in four bands, one per frame (a wide
  halftone at 2x was ~35 ms in one go; a band is ~8 ms).
- At most two panels are drawn per frame, the first one served rotating so
  none starves; clocks still run for all.
- Measured on 20 turns stepped 40 times at 2x: 1 long task (52 ms), against
  39; the settled overlay is still ~2% of a core.

Also from round 4:
- The turn picker says when older turns were not loaded (`older` in the
  response: the transcript is longer than the part that was read).
- A compaction after the last turn closes that turn; a local command's
  output is the final panel's balloon ("Compacted"), without its markdown
  ticks, and a turn under a second reads "Done.".
- Exact durations keep their seconds past an hour, so the two captions never
  disagree on the minute ("1 h 10 min." / "1 h 9 min 39 s").
- A turn that arrives already finished is announced as new too.
- Whole files written by here-documents read "Claude writes 3 files."; the
  advisor's caption reads "a second opinion" instead of repeating its name.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-18 12:11:54 +02:00

93 lines
2.8 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[
{
"prompt": "Build a small Python command-line tool wcount.py in this folder that prints the line, word and chara",
"origin": "human",
"complete": true,
"interrupted": false,
"durationMs": 192853,
"toolCalls": 13,
"filesChanged": 3,
"added": 220,
"removed": 1,
"helpers": 0,
"helpersRunning": 0,
"panels": [
{
"kind": "mission",
"ok": null,
"story": "You give Claude a job.",
"director": "Prompt · 52 words",
"balloon": "Build a small Python command-line tool wcount.py in this folder that prints the line, word and character counts of the files given as arguments, like wc, with a --json flag that prints the counts as JSON, plus pytest te…",
"tests": null,
"events": 1
},
{
"kind": "investigate",
"ok": null,
"story": "Claude reads 1 file to find its way around.",
"director": "Bash ×2 · ls -la && git log --oneline -5 2>&1; git branch -a; python3… · 1 error",
"balloon": null,
"tests": null,
"events": 2
},
{
"kind": "backup",
"ok": null,
"story": "Claude asks the advisor for a second opinion.",
"director": "Advisor · a second opinion",
"balloon": null,
"tests": null,
"events": 1
},
{
"kind": "loop",
"ok": true,
"story": "Fix and test, 2 rounds. It passes in the end.",
"director": "3 checks · 5 edits · +218 −1 · last: ok",
"balloon": "All 19 tests pass, ruff check is clean, and the output matches real wc column for column.",
"tests": {
"passed": 19,
"failed": 0
},
"events": 7
},
{
"kind": "save",
"ok": true,
"story": "Claude saves the work.",
"director": "git commit -q -m \"chore: ignore Python and pytest caches · writes 1 file",
"balloon": null,
"tests": null,
"events": 1
},
{
"kind": "backup",
"ok": null,
"story": "Claude asks the advisor for a second opinion.",
"director": "Advisor · a second opinion",
"balloon": null,
"tests": null,
"events": 1
},
{
"kind": "run",
"ok": null,
"story": "Claude works in the terminal.",
"director": "Bash · python3 wcount.py nope nope2; echo \"exit=$?\"; wc nope nope2…",
"balloon": null,
"tests": null,
"events": 1
},
{
"kind": "complete",
"ok": null,
"story": "Done in 3 minutes.",
"director": "turn_duration · 3 min 13 s · 13 tool calls · 3 files changed",
"balloon": "I built wcount.py and test_wcount.py.",
"tests": null,
"events": 0
}
]
}
]