Skip to content

Releases: abranchesia/doneguard

doneguard 0.6.0

Choose a tag to compare

@abranchesia abranchesia released this 31 Oct 14:25

Added

  • doneguard init --global: install and forget. It hooks doneguard into your agents' user config (Claude Code, Codex, Gemini CLI, Copilot, Antigravity, Kiro CLI V3; Cursor and Devin run Claude Code's), once per machine.
    • The first session in a git repo writes that repo's .doneguard.conf and keeps it out of git (.git/info/exclude). The quick checks are on; databases, the tests that need them and e2e are commented out.
    • Projects hooked on their own keep their hooks, and the global ones step aside there, so nothing runs twice.
    • init in a project no longer adds hooks for an agent that is hooked for every project.

doneguard 0.5.0

Choose a tag to compare

@abranchesia abranchesia released this 31 Oct 14:25

Added

  • A secrets group in cheats: AWS, Anthropic, OpenAI, Stripe, GitHub, Slack and Google keys, and private keys, added in the session to a file git would commit. They're shown cut short, so the key doesn't spread to the agent's transcript or a PR comment. init adds the group to new projects. In an existing .doneguard.conf, add secrets to the cheats line (a line with - already has it); init --update leaves that line as it is.
  • README FAQ: why not a hand-written stop hook.

Changed

  • Codex CLI and GitHub Copilot CLI are tested end to end in real sessions (✅), with recordings in the README.

doneguard 0.4.0: see it working

Choose a tag to compare

@abranchesia abranchesia released this 30 Oct 18:29

See doneguard working, not only when it blocks. And upgrading a project is one command.

uv tool upgrade doneguard
doneguard init --update        # in each project: adds the checks this version brings

A receipt in Claude Code

When everything passes, a line under the agent's answer says what was checked:

Stop says: doneguard: ✓ cheats · tsc · postgres · vitest · playwright (4.8 s)

doneguard report

The same checks as markdown, for a pull request or a CI run:

doneguard report --base origin/main | gh pr comment --body-file -
doneguard report --base origin/main >> $GITHUB_STEP_SUMMARY

Also new

  • doneguard init --update adds the newly detected checks to an existing .doneguard.conf, each where it works, and leaves your lines alone
  • doneguard doctor tells you when a newer doneguard is out
  • A "checked by doneguard" README badge: Show it

Full list: CHANGELOG.md

doneguard 0.3.0: no shortcuts

Choose a tag to compare

@abranchesia abranchesia released this 30 Oct 18:08

Your agent can't fake "done" anymore: no skipped tests, no silenced type checker, and no broken files it never opened.

uv tool upgrade doneguard      # or: uv tool install doneguard
doneguard init                 # existing projects: it lists the new lines to add

No shortcuts

init adds a cheats line. When the agent tries to stop, doneguard sends back what it added in the session to make checks pass without fixing anything: test.skip, .only, @pytest.mark.skip, @ts-ignore, eslint-disable, # noqa, as any, deleted test files…

[.] cheats: changes that hide failures instead of fixing them
src/cart.test.ts:7  test.skip  skips or focuses a test: that hides the failure instead of fixing it

It compares against a git snapshot taken when the session starts, so what's already in your code doesn't count. Each finding is flagged once: if the agent keeps it, it has to say why, and you're told. More

New errors in files the agent didn't touch

When a session starts, doneguard notes in the background the errors tsc, cargo, go vet… already report. When the agent stops, any new error counts, in any file. A caller the agent broke without opening it is caught, and old errors still never block anyone.

Also new

  • doneguard doctor: what each check needs (tools, Docker, Playwright browsers, hooks) and what's missing
  • doneguard check --base origin/main: everything a branch changed, for CI
  • doneguard --version
  • Integration CI: every push runs a real Postgres, vitest and Playwright on the demo project

Full list: CHANGELOG.md

doneguard 0.2.0: throwaway databases and e2e tests with evidence

Choose a tag to compare

@abranchesia abranchesia released this 30 Oct 17:31

Your agent now tests against a real database and in a real browser before it can say "done".

uv tool install doneguard      # new: on PyPI
doneguard init

Throwaway databases for tests

When the tests need Postgres, MySQL, Redis or MongoDB, doneguard starts one in Docker right before them. It points DATABASE_URL (and the URL variables from your .env, your shell and your ORM config) at it, runs your migrations and seed, runs the tests, and removes it. init detects the database from your dependencies, Prisma schema or docker-compose.yml. More

End-to-end tests with evidence

With Playwright, doneguard runs the e2e suite in Chromium and keeps a screenshot and a video of every test, plus traces of failures, in .doneguard/evidence/. When a test fails, the agent gets the failure screenshot and a snapshot of the page, and fixes it. More

Also new

  • Detection for Ruby (rubocop, rspec, rails test), go test, Gradle, .NET, Pest and PHPUnit, Deno, Biome, pytest-playwright
  • doneguard check prints a progress line per check
  • With an existing .doneguard.conf, init lists the checks it would add

Full list: CHANGELOG.md