Repository navigation
Releases: Sheernox/cedr
Release list
cedr v0.8.2
v0.8.2 · 5 changes from 1 contributor
Highlights
Bench results can now reach your team. cedr bench push sends saved results to a cedr.dev organization, so everyone can read what each change did in one place. Each result carries its repo name and, on GitHub Actions, its pull request and run.
Upgrade step: a machine with [sync] set now sends each Bench run when it finishes, unless auto = false. To stop it, pass --no-push on a run, or set [sync] auto = false, which also stops Route's automatic sync. Prompts, agent output and paths are never sent. See what is sent.
Features
- Bench adds
cedr bench push. With no ids it sends unsent results saved from the current repo, matched on the repo's name and root commit. Results from other repos are left alone unless you name them or pass--all. Sending a result again changes nothing. - Bench runs send themselves when they finish, under the same rule as Route's automatic sync. A failed send warns and never changes the run's report or exit code, and a busy app is retried.
- Bench runs record the repo name and, on GitHub Actions, the pull request number and run URL.
--reposets the name. - GitHub Action sends Bench results when
push-organdCEDR_API_KEYare set. A failed send only warns, and the Bench gate is unchanged. - Doctor says whether results are sent automatically, and to which organization.
Full changelog
What's Changed
- feat(bench): send results to an organization so a team reads them together
- fix(bench): keep a bare push to the current repo and send no local paths
- fix(bench): match a bare push on the repo's history, and retry a busy app
- build(banner): render the v0.8.2 release hero
- chore(release): cedr 0.8.2
Full Changelog: v0.8.1...v0.8.2
cedr v0.8.1
v0.8.1 · 4 changes from 1 contributor
Highlights
Council can now be tuned as finely as any other route. A member can review only the work sizes you choose, so a large change can get more reviewers than a small one. cedr route sync also says which machine it is pushing from, so the cedr.dev app can show council results per machine.
Upgrade step: upgrade every machine that shares a routes.toml before setting sizes on a council member, because older versions refuse the file.
Features
- Council members accept
sizes, the work sizes each one reviews. Every size must keep at least the quorum of members; validation fails otherwise, since that work could never pass. - Route sync sends this machine's id with each history batch, as
machinebesideorg. It is left out if the id cannot be read or made, and the records still sync.
Full changelog
What's Changed
- feat(council): let members review chosen work sizes
- feat(route): name the machine when pushing history
- build(banner): render the v0.8.1 release hero
- chore(release): cedr 0.8.1
Full Changelog: v0.8.0...v0.8.1
cedr v0.8.0
v0.8.0 · 27 changes from 1 contributor
Highlights
Bench is here. It tells you whether a change to your rules, a skill or a model helps before you merge it: real tasks against a baseline and a candidate, your tests deciding each trial, and a budget on every run that defaults to $2.00. Start with cedr bench init.
Route puts you in charge. Set its plan limits per plan and per route, send different work sizes to different models, and change all of it from the command line. Route and Council can also read Grok Build's plan usage and balance work onto it.
Guard watches remote MCP servers. A remote server has no version, so a pin could never notice its tools changing; cedr guard remote compares what a server lists now with what you locked.
Upgrade step: none; cedr updates itself. Upgrade every machine that shares a routes.toml before using Route's new keys in it, because older versions refuse them. A lock made with --remote needs this version or later to diff its surfaces.
Features
- Bench adds
cedr bench init,plan,run,history,showandbudget. It runs the unmodifiedclaudeandcodexCLIs, and any other agent through acommandharness, each trial in a fresh clone. Results record the models, CLI versions, commits and a digest of the agent files, and report pass rates with 95% intervals rather than a verdict. Set the cap with--budget-usd,cedr bench budgetor the app's Settings page. Ctrl-C stops the agent and keeps what the run measured. Doctor checks it, MCP gainsbench_plan,bench_historyandbench_show, and the GitHub Action gainsbench,bench-budget-usd,bench-fail-onandbench-allow-unpriced. Bench needs the repo's full history, so setfetch-depth: 0in CI. A suite is code, so run ones you trust. Contract: docs/bench.md. - Guard adds
cedr guard lock --remoteandcedr guard remote, which report added and removed tools, schema and description changes, new hosts and expanded capabilities. They send no credentials and contact only public HTTPS addresses. A server that is down or needs a login reports as that, never as unchanged.[remote] interval_minuteslimits how often a scheduled run really reads a server. Contract: docs/design.md. - Route has a built-in
grokreader for Grok Build's weekly allowance, which Council's picks use too.cedr monitor limitsshows the reading,cedr doctorchecks Grok Build's MCP registration, andcedr route importsets its effort option. The plan's pool is shared with the vendor's other products, so the percent can rise with no Grok Build turn. Contract: docs/route.md. - Route gives you control of its limits and models.
[thresholds]can now be set per plan and per route, session and weekly limits can differ (session_out,weekly_out), andconserve_sizesandunknown_sizeschoose what work a low or unread plan still takes. A candidate'ssizessends small and large work to different models.cedr route thresholds,add,remove,enableanddisablemake these changes for you, keeping your file's comments;cedr route showexplains what a route would pick at each size and why, andcedr route modelslists what you can choose from. Older cedr versions refuse aroutes.tomlusing the new keys, so upgrade every machine that shares one. Contract: docs/route.md. - Monitor adds
responseSetto each row it pushes, a digest of the responses behind the row, so a log copied between your machines counts once in the app. Past hours count once aftercedr monitor push --fullon each machine. The responses' identities never leave the machine. Contract: docs/monitor.md. - Versioning is now written down: what counts as public API, what each bump means, and how breaking changes reach you. Read docs/versioning.md.
Full changelog
What's Changed
- docs(agents): record an approval only when a maintainer gave it for that exact head
- docs: drop the 0.5.0 caveat from the self-update note
- docs: stop naming specific versions in examples so they cannot go stale
- docs(guard): drop the symlink gap that guard already handles (#16)
- feat(route): read grok build plan usage so picks can balance it (#16)
- feat(monitor): identify the responses behind each pushed row (#17)
- feat(guard): detect tool changes on remote mcp servers (#18)
- fix(guard): report servers that drop tools and keep overlapping reads apart (#19)
- fix(guard): fail when a remote read cannot be recorded (#20)
- test(guard): skip the unwritable directory case when running as root (#21)
- build(banner): render the v0.8.0 release hero
- docs: changelog for 0.8.0
- chore(release): cedr 0.8.0
- docs(agents): let agents choose changelog section order
- docs: define the version scheme and what it promises
- feat(bench): measure whether an agent change helps with task suites
- docs: lead the 0.8.0 changelog and hero with bench
- fix(bench): stop a run whose spend the budget cannot see
- feat(route): let users set thresholds and models per plan, route and size
- fix(bench): refuse to run when the saved budget cannot be read
- fix(bench): stop the agent on ctrl-c and keep saved runs readable
- fix(route): keep each comment on its own line when editing routes.toml
- docs: finish the 0.8.0 changelog after the release review
- fix(route): keep comments through awkward candidate lists and windows line endings
- fix(bench): report an interrupt as the stop reason and save the run if output is gone
- fix(route): name the routes file as given when reporting an edit
- docs: say how a copied log counts once in the 0.8.0 changelog
Full Changelog: v0.7.0...v0.8.0
cedr v0.7.0
v0.7.0 · 14 changes from 1 contributor
Highlights
cedr now works with Grok Build. Sync writes its files, Guard pins its skills and MCP servers, and Monitor counts its usage without opening a conversation. Route and Council don't cover it yet. cedr is also now developed in public in this repo, with issues and pull requests here. Upgrade step: none; cedr updates itself. A lock file that holds a Grok Build entry needs this version or later to read it.
Features
- Sync has an opt-in
groktarget that writes and imports.grok/files: MCP servers and permission rules in.grok/config.toml, plus rules, skills and hooks. Grok Build holds a repo's files back until the folder is trusted, andcedr syncsays so. Contract: docs/sync.md. - Guard discovers
.grok/config.tomland.grok/skills/, socedr guard lint,lockandverifycover them. Contract: docs/design.md. - Monitor has a
groksource that reads only each session'susage.jsonandevents.jsonl, never its conversation files. It counts a forked session's copied turns once, and a subagent's usage once inside its parent. Contract: docs/monitor.md. - Development moved here: read CONTRIBUTING.md to report a bug or propose a change.
Full changelog
What's Changed
- docs: show the v0.6.0 hero smaller in its release notes
- docs(readme): show all five products in one table so sync and monitor are found
- docs: show the v0.6.0 version in the beta chip's ring, larger
- fix(readme): stack product tiles over names so names stay inside their cells
- ci: pin every action to a commit so a moved tag cannot reach a release
- docs: make this repo the home of cedr development (#2)
- docs(readme): say that ideas start as issues and focused fixes can be pull requests (#3)
- feat: add grok build to sync, guard and monitor (#10)
- fix(monitor): correct grok usage and tool models collected before a session is complete (#11)
- fix(monitor): replace the app's copy of grok tool rows when their model or subagent mark changes (#11)
- docs(agents): prepare release pull requests without being asked (#12)
- build(banner): render the v0.7.0 release hero
- docs: changelog for 0.7.0
- chore(release): cedr 0.7.0
Full Changelog: v0.6.0...v0.7.0
cedr v0.6.0
v0.6.0 · 5 changes from 1 contributor
Highlights
Guard now has its own command, like every other cedr product: cedr guard lint, lock, verify, outdated and push. Upgrade step: none. cedr updates itself, and the old names such as cedr lint still run with the same flags, output and exit codes, so existing CI and scripts keep working.
Features
cedr guardholds all of Guard's commands:lint,lock,verify,outdated,push,surface,latestanddiff. Help and shell completions now list only the new form. Usage events record the name you typed, andcedr guard outdatedannotations carry the new title. Contract: docs/design.md.- The GitHub Action calls the old names on purpose, so a
versionpinned to an earlier release keeps working.
Full changelog
What's Changed
- feat(guard)!: move guard's commands under cedr guard like every other product
- build(banner): render release heroes smaller
- build(banner): render the v0.6.0 release hero
- docs: changelog for 0.6.0
- chore(release): cedr 0.6.0
Full Changelog: v0.5.2...v0.6.0
cedr v0.5.2
v0.5.2 · 4 changes from 1 contributor
Highlights
Monitor now counts Antigravity conversations that an interrupted turn cut off. Before, such a conversation looked as if it were still being written, so it was skipped on every run and cedr monitor sources kept reporting Antigravity as an error. Upgrade step: none; cedr updates itself.
Fixes
- An Antigravity conversation with more generations than finished steps is treated as being written only if it changed in the last 10 minutes. Once it has settled, its finished generations are counted, and the unfinished ones show as malformed in
cedr monitor sources. Contract: docs/monitor.md.
Full changelog
What's Changed
- fix(monitor): read interrupted antigravity conversations instead of skipping them
- build(banner): render the v0.5.2 release hero
- docs: changelog for 0.5.2
- chore(release): cedr 0.5.2
Full Changelog: v0.5.1...v0.5.2
cedr v0.5.1
v0.5.1 · 4 changes from 1 contributor
Highlights
Monitor counts Codex usage under the thread that produced it, and repairs what it already sent. A Codex rollout can carry responses from another thread (a subagent's or a forked thread's), and until now they all counted as one session. After updating, the first cedr monitor run rereads your Codex logs once, and the next cedr monitor push resends the affected hours so your organization's totals are not counted twice. Monitor also finds Antigravity conversations that T3 Code runs, and cedr monitor push --start now lets a machine send only usage from now on. Upgrade step: none; 0.5.0 updates itself.
Fixes
- Codex responses with a
thread_idcount under that thread's session, not the rollout's (Sheernox/cedr#1). Token totals were already right; session counts now are too. - Hours already pushed under the old sessions are resent once per organization, with an empty row for each old session left without usage, so the app replaces them rather than adding to them.
Features
- Antigravity in T3 Code: conversations under
~/.t3/userdata/providers/antigravity/are read alongside~/.gemini/antigravity*/; a conversation found in both counts once. Contract: docs/monitor.md. cedr monitor push --start all|now|<date>chooses where your organization's usage begins. It is saved per organization before anything is sent, and every later push (scheduled, automatic or--full) keeps to it. Moving it earlier sends the older usage once; moving it later stops sending older usage from the next whole hour but never removes what the app has. Without a choice, the first push sends your history as before and says so. Setup: cedr.dev/docs/monitor/setup.
Full changelog
What's Changed
- fix(monitor): attribute codex responses to their thread and repair sent hours
- build(banner): render the v0.5.1 release hero
- docs: changelog for 0.5.1
- chore(release): cedr 0.5.1
Full Changelog: v0.5.0...v0.5.1
cedr v0.5.0
v0.5.0 · 5 changes from 1 contributor
Highlights
cedr now keeps itself up to date. cedr update installs the latest release after checking it against the release's SHA-256 checksums and test-running the new binary, and once a day cedr does the same in the background. It never updates itself in CI, and an install from cargo install or in a directory you cannot write to tells you how to update instead. cedr also sends anonymous usage data, so we can see which commands, platforms and agents matter: the first run says what is sent, and cedr telemetry off turns it off. Upgrade step: this is the last manual upgrade. Download 0.5.0 as before and replace your cedr; from here on it updates itself.
Features
cedr updatefinds the latest stable release, downloads this platform's archive, checks it againstSHA256SUMS, confirms the new binary starts and reports the right version, then swaps it in (an atomic rename on Linux and macOS; on Windows the old binary is moved aside and back on failure).--checkonly reports,--version X.Y.Zinstalls a particular release, older ones included, and--format jsonprints the result for scripts. Contract: docs/update.md.- Daily background update, on by default: at most once a day a command starts the check in the background, never delaying it, and the next command prints
cedr: updated to 0.5.x. It only moves forward to a stable release. Turn it off withcedr update --auto offorCEDR_NO_AUTO_UPDATE=1; a failed update shows incedr doctor, whose version check now points atcedr update. - Anonymous usage data: each command records its name, exit code, duration, the cedr version, OS and architecture, which coding agents have their settings folder on the machine, and a few counts, with a random install ID that is not linked to you or your account. Never arguments, paths, repo names, error text or code. Events are sent in the background at most once an hour.
cedr telemetry statusshows what is on;cedr telemetry off,CEDR_TELEMETRY=0orDO_NOT_TRACK=1turn it off, andoffdeletes the install ID and anything not yet sent. Every field: cedr.dev/docs/cli/telemetry; contract: docs/telemetry.md.
Full changelog
What's Changed
- feat(cli): self-update with cedr update and opt-out anonymous telemetry
- docs(agents): open every changelog entry with a hero image of the release
- build(banner): render release banners alongside the readme banner
- docs: changelog for 0.5.0
- chore(release): cedr 0.5.0
Full Changelog: v0.4.2...v0.5.0
cedr v0.4.2
v0.4.2 · 4 changes from 1 contributor
Highlights
Release archives are named by operating system and architecture instead of the Rust target triple: cedr-linux-x86_64.tar.gz, cedr-linux-arm64.tar.gz, cedr-macos-arm64.tar.gz, cedr-macos-x86_64.tar.gz and cedr-windows-x86_64.zip, each unpacking to a folder of the same name. The GitHub Action downloads the new names; earlier releases keep their old ones. Release notes are now this changelog's entry for each tag.
Fixes
- Archive names no longer carry the target triple's
unknown,appleandpcvendor fields. - Each GitHub release now publishes its changelog entry instead of a generated one-line compare link.
Full changelog
What's Changed
- ci(release): publish each tag's changelog entry as its release notes
- build(release): name archives by os and architecture
- docs: changelog for 0.4.2
- chore(release): cedr 0.4.2
Full Changelog: v0.4.1...v0.4.2
cedr v0.4.1
v0.4.1 · 5 changes from 1 contributor
Highlights
Fixes from running the GitHub Action, the hourly push timer and Sync end to end on real repos, Linux and Windows. No upgrade step; if you pinned the action, move to Sheernox/cedr@v0.4.1.
Fixes
cedr syncno longer writes settings files that hold only empty lists when a repo has no permissions or hooks, and says once, instead of per entry, when MCP servers, permissions and hooks reach no agent.cedr monitor pushchecks its organization and key before reading any log, so a machine with nowhere to send counts says so at once.- Scheduled pushes start up to ten random minutes late, so machines do not all push on the hour, and Windows no longer leaves the task XML in the home folder.
cedr outdated --format githubputs each annotation on.cedr/guard.lockinstead of the workflow file.
Full changelog
What's Changed
- fix(sync): write no empty settings files, and note unused servers once instead of per entry
- fix(monitor): check where a push goes before reading logs, spread scheduled pushes, and tidy the windows task
- fix(guard): put cedr outdated annotations on the lock file instead of the workflow
- docs: changelog for 0.4.1
- chore(release): cedr 0.4.1
Full Changelog: v0.4.0...v0.4.1







