Skip to content

v0.2.2

Choose a tag to compare

@github-actions github-actions released this 01 Aug 00:01
· 541 commits to master since this release

0.2.1 built the rails and left them reading a gauge that was wired to nothing. This is the wire.

Fixed

  • The live token counters now move while the session runs. ClaudeProvider emitted each assistant
    message's usage to the event stream but never folded it onto the session state, so
    TokensInput/Output/CacheRead stayed null for the entire session and were first set by the
    terminal result envelope. Every rail that asks the live session what it has spent — the
    soft-break and the maxSessionTokens ceiling both do — therefore read zero until the session was
    already over. Observed on a real run within an hour of shipping 0.2.1: a session under a 6M ceiling
    reached 17.13M, and the log recorded the nudge and the ceiling firing in the same second, as the
    agent was exiting anyway. Both rails now fire when they can still change the outcome.
    Accumulation is safe because TryCountMessageOnce already rejects the re-emitted content blocks
    that would otherwise count a message three or four times, and ReadUsage still ASSIGNS the
    envelope's totals at the end, so the CLI's own number remains authoritative.

Two tests asserted the old behaviour and were rewritten rather than deleted: they encoded the
reasoning that live deltas must not touch the session totals because double-counting would break the
cap. The first half was right; the conclusion was backwards. Leaving those totals null did not
protect the cap, it disabled it.

Install

Download the archive for your platform, unpack it, and put the two binaries somewhere on
your PATH. They belong next to each other — the engine finds the Face by looking
beside itself.

Then, to see it work without credentials or spend:

conductor demo

Confirm what you unpacked with conductor version — it answers with this release's tag,
the commit it was built from, and the build date.

No .NET or Go install is needed: the engine is self-contained and the Face is a static
Go binary.

macOS: these binaries are not signed or notarised. On first run:
xattr -d com.apple.quarantine conductor conductor-face

Building from source instead: tools/install.sh (macOS/Linux) or
tools\install.ps1 (Windows).

Full Changelog: v0.2.1...v0.2.2