Skip to content

igris v0.6.0

Latest

Choose a tag to compare

@drilonrecica drilonrecica released this 14 Oct 16:18
· 13 commits to master since this release
v0.6.0

igris runs the tasks in your markdown project plan one at a time, each in a fresh Claude Code session, started with exactly the model your plan assigns to that task.

v0.6.0 is about trust. It is the first signed release, and every archive comes with an SBOM. A run can work on a branch of its own, so your checkout stays as it is while an unattended agent works. The commands igris runs no longer see your notification secrets, and the threat model is written down, reviewed and tied to tests. igris also stops calling for you while Claude is only waiting on background work. Everything is additive: no plan or config migration is needed.

Highlights

  • Signed releases. checksums.txt and the v0.6.0 tag are signed with the igris release key, an SSH key; checking a download needs only ssh-keygen (below). The key is in allowed_signers and the README.
  • Worktree mode. igris arise P1 --worktree (or worktree = true under [run]) runs the sessions, verify, task hooks and commits in .igris/worktrees/<run-id> on a new branch igris/<run-id>. Your checkout and branch stay as they are, and the plan stays in your checkout, where igris updates it as usual. An interrupted run continues in its worktree. A completed one tells you git merge igris/<run-id>; igris never merges. This is the safe way to leave an auto or skip-permissions run alone. See Worktree mode.
  • No "needs you" while Claude waits on background work. When Claude ends its turn with tests on a simulator, a long build or a scheduled wakeup still running, the card says waiting on background work (4m), and nothing is raised until waiting_limit (default 30m). This works with herdr too, which shows the turn as finished. When Claude stops without igris done and nothing is pending, igris first reminds it once before it calls you (nudge = false turns that off).
  • Secrets stay out of your project's commands. Verify commands, task hooks and git never get the environment variables your notification tokens come from (env: references). The new [run] env limits verify and hooks to the variables you list. See What verify and hooks see.
  • A threat model and a second security review. docs/threat-model.md says what igris protects and from whom, lists the accepted risks, and maps every safety rule to the test that enforces it. The review of everything added since v0.1 found 12 issues, none high: 10 are fixed and 2 accepted, all listed there.
  • Supply chain. An SPDX SBOM per archive, govulncheck on every push and weekly, a check that the release build is reproducible on Linux and macOS, and short fuzz runs in CI. Built with Go 1.27.2, which fixes 8 standard-library advisories that affected builds up to 0.5.1 (see Security in the CHANGELOG).
  • Hover. With the mouse on, whatever a click would act on is underlined while the pointer is over it.

Upgrade

brew upgrade igris                         # or: brew install drilonrecica/tap/igris
go install github.com/drilonrecica/igris/cmd/igris@v0.6.0

Or download the archive for your platform below, with checksums.txt and checksums.txt.sig, verify them, and put the binary on your PATH:

curl -fsSLO https://raw.githubusercontent.com/drilonrecica/igris/v0.6.0/allowed_signers
ssh-keygen -Y verify -f allowed_signers -I igris -n file -s checksums.txt.sig < checksums.txt
sha256sum --ignore-missing -c checksums.txt    # macOS: shasum -a 256 --ignore-missing -c checksums.txt
tar xzf igris_0.6.0_<os>_<arch>.tar.gz
install -m 755 igris ~/.local/bin/igris
igris version

The first command must print Good "file" signature for igris. Check that allowed_signers holds the key printed in the README's Verifying a download.

Your v0.5 plans and configs work unchanged and keep their config hash, so a run interrupted under v0.5 resumes without a config-changed notice.

Behavior changes

  • state.json is checked more strictly. A file whose current task, mode, verify attempts or worktree igris didn't write (a session's edit, or yours) is reported as damaged with "delete the file to start a new run". Files igris wrote read as before.
  • Verify, task hooks and git no longer get your notification secrets' variables, with or without [run] env. A verify command that read one of them on purpose has to get it another way.
  • Everything igris prints to stderr is cleaned of escape sequences, so colored output from a git hook shows as plain text in igris's error messages.
  • The verify excerpt sent back to a session is at most 16 KiB (still the last 60 lines).
  • The TUI asks the terminal for all mouse motion to draw hover; [tui] mouse = false turns the mouse off entirely.
  • A secret set to env:PATH or env:HOME is now a config error, and check and arise warn about a webhook URL from an env: reference that is plain http://.

Known limitations

  • Linux and macOS; Windows through WSL2 only, not yet verified on a real Windows machine.
  • Releases before 0.6.0 are not signed (checksums only).
  • On a public ntfy server without a token, the topic is the only protection: use a long random one, or set a token.

See CHANGELOG.md for every change in this release and the README for the full guide.