Some of the most important Agentix features are not flashy. They are guardrails around boring failure modes.
Two examples shaped the MVP: dirty Git trees and stale patches.
Dirty trees
A dirty Git tree makes automation harder to reason about. If files are already modified, an agent cannot easily tell which changes belong to the current proposal and which were pre-existing.
Agentix now refuses important flows when the tree is dirty, unless the user explicitly passes:
--allow-dirty
That gives the operator an escape hatch, but makes the risk explicit.
Nix flakes and tracked files
One lesson came from Nix flakes inside Git repositories: untracked files are invisible to the flake evaluation.
That means if Agentix creates a new module file, it also needs to add it to Git before verification. Otherwise Nix may not see the file.
Agentix now adds changed files to Git in the flows where new files are created, so verification sees what the final commit would see.
Stale patches
Saved patches can become stale. A patch that applied cleanly yesterday may fail today because the file has changed.
Agentix now checks patches before asking for approval. This matters because asking a human to approve a patch that cannot apply is bad UX and bad safety design.
The flow now looks like this:
check patch
if stale: refuse before prompt
if clean: show patch and ask for approval
This stale-patch protection was added to:
agentix applyagentix apply-verify- goal-runner apply flows
Proposal status
Agentix proposal listing now shows whether saved patches are clean or stale:
agentix proposals list --path ~/nixos-config
Example:
Saved proposals:
- [clean] clean.patch
- [stale] stale.patch
There is also JSON output:
agentix proposals list --path ~/nixos-config --json
This lets future tools and agents inspect proposal state without scraping human-readable output.
Stale-only cleanup
Agentix can now delete only stale proposals while preserving clean ones:
agentix proposals clean --path ~/nixos-config --stale
And with JSON output:
agentix proposals clean --path ~/nixos-config --stale --yes --json
agentix proposals prune-stale --path ~/nixos-config --yes --json
The result is a proposal lifecycle that is safer for humans and easier for future agents to reason about.