v0.2.0
The Sarban core era: the engine says what it knows. Truthful surfaces, board correction verbs,
detach, structured transcripts — and the engine now knows what version it is and can update itself.
Added
conductor versionandGET /versionreport the semver, the git commit, whether the tree was
dirty at build time, the build date, and which binary answered — stamped by the build itself
rather than typed into a source file, so "is this run using stale engine code" has an answer.- Automatic tag-height versioning. The csproj no longer carries a hand-typed version number; the
v*tags are the single source of truth, and a release binary answers with its own tag. conductor update— checks the latest release, and swaps this binary for it. It verifies the
download against the release'sSHA256SUMS.txt, then runs the downloaded engine and asks its
version before replacing anything, and swaps by rename so a failure puts the old binary back.
It refuses while a run is live, because every task claim and background start during a session
spawns the engine again — a mid-run swap means the back half of a session runs on different code.
--checklooks without installing.doctorgained anupdateline: which engine is running and whether a newer release exists. Never
a failure (an offline machine is not a broken one), memoised for six hours in a user-level cache so
it costs nothing, and switchable off with--no-update-checkorCONDUCTOR_NO_UPDATE_CHECK.- Releases now publish a
SHA256SUMS.txtmanifest alongside the platform archives. CHANGELOG.md(this file), enforced at release time bytools/changelog-section.sh.conductor task --blocked-until,--todo,--blocked,--skippedand--amend, so the board
can be corrected rather than only appended to.conductor run --detach: the engine takes its own process group, prints its pid and control-plane
URL, and survives the shell that launched it.- Per-session digests on
/sessions— tool mix, files touched with counts, claims, and background
work as a storyline — built from structured tool events rather than truncated JSON blobs. - A
RUN-SUMMARY.mdat the end of a run;reportandstatuswork offline fromrun.db.
Fixed
- The release build could never have compiled.
-p:PublishSingleFile=true— the flag every platform
inrelease.ymlpublishes with — enables the single-file analyzer, and two reads of
Assembly.Locationwere IL3000 errors underTreatWarningsAsErrors. Since that workflow only runs
on av*tag push, nothing had ever exercised it. Both reads now useAppContext.BaseDirectory.
Changed
install.ps1andinstall.shprint the version they replaced and the version they installed
(before → after), so an operator can confirm a rebuild actually took.install.ps1gained
-SkipShim.- Telegram starts on every run path, and
/telegram/statuscarries a derivedwillDeliververdict
instead of leaving delivery to be discovered at the end of a run. conductor statusno longer reports a healthy run as interrupted while a gate is executing.- Gate verdicts wait for the session's tracked background children, retry a failed required gate
once, and judge the work rather than the environment. doctorfails on configurations that used to fail silently at runtime: a model set without the
model token, unknownRunIf/SkipIftokens, literal braces in prompt text, zero-gate stages.- History squashing runs after the stage's final state write, works on a dirty tree, reports real
counts, and un-marks the stage when it fails instead of claiming success.
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.1.0...v0.2.0