Skip to content

Releases: Sheernox/cedr

cedr v0.8.2

Choose a tag to compare

@github-actions github-actions released this 03 Nov 05:00

cedr v0.8.2: Bench, shared

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. --repo sets the name.
  • GitHub Action sends Bench results when push-org and CEDR_API_KEY are 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

Choose a tag to compare

@github-actions github-actions released this 02 Nov 06:27

cedr v0.8.1: council, tuned

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 machine beside org. 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

Choose a tag to compare

@github-actions github-actions released this 02 Nov 05:12

cedr v0.8.0: bench

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, show and budget. It runs the unmodified claude and codex CLIs, and any other agent through a command harness, 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 budget or the app's Settings page. Ctrl-C stops the agent and keeps what the run measured. Doctor checks it, MCP gains bench_plan, bench_history and bench_show, and the GitHub Action gains bench, bench-budget-usd, bench-fail-on and bench-allow-unpriced. Bench needs the repo's full history, so set fetch-depth: 0 in CI. A suite is code, so run ones you trust. Contract: docs/bench.md.
  • Guard adds cedr guard lock --remote and cedr 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_minutes limits how often a scheduled run really reads a server. Contract: docs/design.md.
  • Route has a built-in grok reader for Grok Build's weekly allowance, which Council's picks use too. cedr monitor limits shows the reading, cedr doctor checks Grok Build's MCP registration, and cedr route import sets 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), and conserve_sizes and unknown_sizes choose what work a low or unread plan still takes. A candidate's sizes sends small and large work to different models. cedr route thresholds, add, remove, enable and disable make these changes for you, keeping your file's comments; cedr route show explains what a route would pick at each size and why, and cedr route models lists what you can choose from. Older cedr versions refuse a routes.toml using the new keys, so upgrade every machine that shares one. Contract: docs/route.md.
  • Monitor adds responseSet to 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 after cedr monitor push --full on 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

Choose a tag to compare

@github-actions github-actions released this 01 Nov 21:57

cedr v0.7.0: grok build

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 grok target 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, and cedr sync says so. Contract: docs/sync.md.
  • Guard discovers .grok/config.toml and .grok/skills/, so cedr guard lint, lock and verify cover them. Contract: docs/design.md.
  • Monitor has a grok source that reads only each session's usage.json and events.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

Choose a tag to compare

@github-actions github-actions released this 01 Nov 15:33

cedr v0.6.0: cedr guard

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 guard holds all of Guard's commands: lint, lock, verify, outdated, push, surface, latest and diff. Help and shell completions now list only the new form. Usage events record the name you typed, and cedr guard outdated annotations carry the new title. Contract: docs/design.md.
  • The GitHub Action calls the old names on purpose, so a version pinned 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

Choose a tag to compare

@github-actions github-actions released this 31 Oct 07:49

cedr v0.5.2: nothing skipped

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

Choose a tag to compare

@github-actions github-actions released this 31 Oct 07:38

cedr v0.5.1: counted right

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_id count 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

Choose a tag to compare

@github-actions github-actions released this 30 Oct 17:23

cedr v0.5.0: self-updating

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 update finds the latest stable release, downloads this platform's archive, checks it against SHA256SUMS, 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). --check only reports, --version X.Y.Z installs a particular release, older ones included, and --format json prints 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 with cedr update --auto off or CEDR_NO_AUTO_UPDATE=1; a failed update shows in cedr doctor, whose version check now points at cedr 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 status shows what is on; cedr telemetry off, CEDR_TELEMETRY=0 or DO_NOT_TRACK=1 turn it off, and off deletes 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

Choose a tag to compare

@github-actions github-actions released this 30 Oct 15:54

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, apple and pc vendor 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

Choose a tag to compare

@github-actions github-actions released this 30 Oct 15:34

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 sync no 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 push checks 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 github puts each annotation on .cedr/guard.lock instead 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