fix: unify agent installation across runtimes#1565
Draft
simple-agent-manager[bot] wants to merge 4 commits into
Draft
fix: unify agent installation across runtimes#1565simple-agent-manager[bot] wants to merge 4 commits into
simple-agent-manager[bot] wants to merge 4 commits into
Conversation
Contributor
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Summary
Validation
pnpm lint(0 errors; existing warnings only)pnpm typecheckpnpm test(including 5,894 API tests)pnpm buildImage size: 735,871,006 bytes. All catalog binaries resolve as uid 1000; a real non-root global npm fallback install succeeded under
SAM_AGENT_HOME.Staging Verification
Intentionally skipped by explicit user instruction. No staging deployment or mutation was performed. This PR must remain unmerged until the user later authorizes the next step.
End-to-End Verification
Manifest -> CI sync checker -> pinned Go install commands and Docker pre-bake. Agent-selection failure -> in-memory session error transition + persisted system chat message + existing BootLog/error reporter. Local Docker exercised the actual image boundary.
Post-Mortem
What broke
The first Codex instant session failed before producing output because runtime installation ran non-root against root-owned global paths.
Root cause
The cf-container image pre-baked only Claude while all other agents used root-oriented on-demand installers, and the TS/Go install sources had drifted.
Class of bug
Runtime capability and installation-source drift across execution environments.
Why it was not caught
No CI contract required every catalog agent to appear in the runtime installer and instant-session image.
Process fix included
quality:agent-install-manifestnow blocks catalog/Go/image drift in CI.Post-mortem file
tasks/archive/2026-07-11-unified-agent-installation.mdSpecialist Review Evidence
needs-human-reviewis required and merge is deferredExceptions
Agent Preflight
Classification
External References
Official npm and PyPI registries were queried for current package pins.
Codebase Impact Analysis
packages/shared,packages/vm-agent,apps/api/Dockerfile.vm-agent-container, and CI quality checks.Documentation & Specs
Internal task/archive and existing binary-install hardening backlog were updated; no public UX contract changed.
Constitution & Risk Check
Principle XI checked. Package versions are intentionally immutable supply/build inputs governed by one manifest, not deployment configuration. Primary risk is image growth; measured at 0.736 GB versus the 8 GB runtime disk budget.