• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

lancekrogers / claude-code-go / 36594190724
81%

Build:
DEFAULT BRANCH: main
Ran 29 Sep 2026 03:58PM UTC
Jobs 1
Files 15
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

29 Sep 2026 03:57PM UTC coverage: 81.455% (+0.01%) from 81.445%
36594190724

push

github

web-flow
VHS demo recordings, demo fixes, and resumed-session budget accounting (#28)

## Summary

Switches demo recording from expect + asciinema + agg to
[VHS](https://github.com/charmbracelet/vhs) and re-records all nine
GIFs. Recording showed several bugs in the demos and one in the SDK;
this PR fixes them too.

### SDK fix: resumed sessions were charged repeatedly (`pkg/claude`)

The CLI's `total_cost_usd` is a session's **running total**. A forked
session's total also includes its parent's. `BudgetTracker` (through the
completion hooks) and `MetricsPlugin` added that value on every run, so
each resumed turn charged all earlier spend again. With the CLI, two
resumed turns of about $0.11 each were tracked as $0.33.

- New `BudgetTracker.RecordSessionTotal(sessionID, parentSessionID,
total)` records only the increase over the last total seen for that
session. A fork starts from its parent's last total. The completion
hooks call it with `RunOptions.ResumeID` as the parent.
- `MetricsPlugin` adds only the per-session increase. It can't see the
parent, so a fork's first run still counts from 0 (documented).
- `AddSpend` is unchanged for callers that track per-run amounts.
`Reset`/`ResetSession` keep the per-session baselines, so a later resume
doesn't re-charge history.
- Tests: tracker cases (resume, fork, unrelated sessions, reset,
exceeded) and a `RunPromptCtx` resume test. With the fix reverted, the
integration test fails with 0.35 instead of 0.25.

### VHS recording

- `scripts/demo-tapes/`: one tape per demo, plus shared settings
(Catppuccin Mocha, window bar, padding, 1280×760) and a hidden setup
step.
- **Time-lapsed waits:** for each step that calls Claude, the GIF shows
the prompt being sent, skips the wait, and resumes on the reply. GIFs
now run 15–37s instead of minutes of idle time.
- The setup step pre-builds the demos and sets
`ENABLE_CLAUDEAI_MCP_SERVERS=false`, so the recorder's claude.ai
connectors don't leak into replies.
- `scripts/record-d... (continued)

24 of 28 new or added lines in 3 files covered. (85.71%)

2240 of 2750 relevant lines covered (81.45%)

0.93 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
96.36
-1.53% pkg/claude/budget.go
2
96.86
-0.98% pkg/claude/builtin_plugins.go
Jobs
ID Job ID Ran Files Coverage
1 36594190724.1 29 Sep 2026 03:58PM UTC 15
81.45
GitHub Action Run
Source Files on build 36594190724
  • Tree
  • List 15
  • Changed 3
  • Source Changed 3
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #36594190724
  • ba1e0592 on github
  • Prev Build on main (#35697584647)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc