mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-11-15 02:49:33 +01:00
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>
93 lines
2.8 KiB
JSON
93 lines
2.8 KiB
JSON
[
|
||
{
|
||
"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
|
||
}
|
||
]
|
||
}
|
||
]
|