Terminal History Demo

July 30, 2026 ยท View on GitHub

play-better-harness-history.mjs renders one project's historical findings.json files as an animated five-dimension Agent Work Loop trend.

For the English-only twenty evaluation demo:

asciinema rec --overwrite --window-size 100x30 --idle-time-limit 1 \
  --command "node dev/terminal-demo/play-better-harness-history.mjs \
    --history-root /path/to/project/.qoder/better-harness \
    --since 2026-07-17" \
  dev/terminal-demo/twenty-history.cast

agg --theme github-dark --font-size 22 --fps-cap 15 \
  --last-frame-duration 3 \
  dev/terminal-demo/twenty-history.cast \
  assets/demo/twenty-history.gif

ffmpeg -i assets/demo/twenty-history.gif -vf reverse -frames:v 1 assets/demo/twenty-history.png

The repository keeps the GIF as the recording source. The public website uses the static final-frame PNG so it does not autoplay or loop. Regenerate both files together after changing the recording; the reverse filter makes the GIF's last frame the single PNG output frame.

Run without a root to discover history below the current workspace, or select a workspace explicitly:

node dev/terminal-demo/play-better-harness-history.mjs --workspace /path/to/project

Discovery combines .qoder/better-harness and .codex/better-harness histories for that one project. The same product directory below another first-level hidden host directory is also recognized.

For a host-level location, pass one or more explicit roots. Home shorthand is expanded by the script, including when the argument is quoted:

node dev/terminal-demo/play-better-harness-history.mjs \
  --history-root '~/.qoder/better-harness' \
  --history-root '~/.xx/better-harness'

Point at one project-specific report root so unrelated histories are not mixed.

Use --limit N to retain only the latest N scans, or --no-animate --no-color for a stable text snapshot.

Use --since YYYY-MM-DD to exclude earlier report runs with known-invalid scores. The Twenty recording starts on 2026-07-17 and continues through the latest available scan.

--omit-zero learning-capture keeps each scan and its other four scores, but removes zero-valued Learning Capture anomalies from that dimension's trend. A legend count records how many values were omitted. It does not rewrite the source findings.json files.