Skip to content

agent enable: a failed package install is no longer a success - #187

Merged
graywolf336 merged 1 commit into
devfrom
fix/agent-enable-reports-partial-install
Sep 3, 2026
Merged

agent enable: a failed package install is no longer a success#187
graywolf336 merged 1 commit into
devfrom
fix/agent-enable-reports-partial-install

Conversation

@graywolf336

Copy link
Copy Markdown
Contributor

atomic agent enable falls back to built-in hooks when the integration package can't be installed. The fallback is right — turns still get recorded — but it exited 0 and printed the success blurb after the warning, so a partial install looked like a whole one.

What's actually missing in that state is the agent's Atomic skills and system prompt. Hook recording still works, which is why the gap survives unnoticed: nothing errors, runs complete, and the agent is quietly less capable than the same agent on the next machine. That is how it went unnoticed for weeks in practice.

Before — exit 0:

⚠ Integration install for Codex failed: … — falling back to built-in hooks.
✓ Installed 6 hooks for Codex
Each agent turn will be recorded as an Atomic change with: …

After — exit 4:

⚠ Partial install — the integration package did not land:
    Codex: cannot read /nonexistent/atomic-integration.toml …

  Turns are still recorded by the built-in hooks, but these agents
  are missing their Atomic skills and system prompt.
  Retry with 'atomic agent enable --force' once the package is reachable,
  or install from a local checkout with '--from <path>'.
✗ Remote operation failed: integration package install failed for Codex — …

RemoteError, not Internal: an unreachable package isn't a bug in Atomic, and Internal tells the user to file an issue.

Behaviour change. Anything scripting this will now fail on a partial install where it previously passed. That's the point; || true opts out where the fallback is genuinely acceptable. Flagging it explicitly in case that's too blunt for CI somewhere — happy to put it behind a flag instead.

Verified against a real repo: healthy install still exits 0, a forced package failure exits 4 with the block above. Plus 3 unit tests on the error itself, cargo fmt --all --check and clippy -- -D warnings clean, 11 tests in agent::enable pass.

`atomic agent enable` falls back to built-in hooks when the integration
package cannot be installed. That fallback is right — turns still get
recorded — but it exited 0 and printed the success blurb afterwards, so
a partial install was indistinguishable from a whole one.

What is actually missing in that state is the agent's Atomic skills and
its system prompt. Hook recording still works, which is exactly why the
gap survives unnoticed: nothing errors, runs complete, and the agent is
quietly less capable than the same agent on the next machine.

Now the summary names each agent that fell back and what it lost, and the
command exits non-zero. Behaviour change for anything scripting this: a
partial install that used to pass will now fail. That is the point, and
`|| true` opts out where the fallback is genuinely acceptable.

`RemoteError`, not `Internal` — an unreachable package is not a bug in
Atomic, and `Internal` tells the user to file an issue.
@graywolf336
graywolf336 merged commit a5cb6a8 into dev Sep 3, 2026
8 checks passed
@graywolf336
graywolf336 deleted the fix/agent-enable-reports-partial-install branch September 3, 2026 15:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants