Fail closed when aos acompose silently bypasses requested Ward launch #810

Closed
opened 2026-07-30 12:09:30 +00:00 by coilyco-ops · 0 comments
Member

Problem

The following command appears to request the integrated Ward, Agent Compose, and AOSguard launch:

aos acompose --warded --guarded --composed --role director --agent codex -- codex

With installed AOS v0.138.0, it instead selects the legacy acompose subcommand and starts the standalone _container-acompose path. It does not invoke ward agent director, and it silently drops the requested Ward lifecycle, broker boundary, and guarded capability.

This is materially different execution under a command that exits successfully. The operator can believe a director is Ward-brokered when it is actually a standalone AOS container.

The canonical integrated form works as intended:

aos --warded --guarded --composed --role director --agent codex

Cause

  • The acompose subcommand selects runAcompose.
  • Root capability flags remain accepted and readable after subcommand selection.
  • runAcompose calls the standalone composed-container launcher and does not honor --warded, --guarded, or --agent as integrated-launch selectors.
  • Ward routing exists only in the root runIntegratedLaunch action.

Outcome

Fail closed before Docker or Ward starts when the legacy aos acompose path receives integrated capability flags it does not honor. The error should identify the ignored or incompatible flag and show the canonical root launch shape.

Preserve the documented standalone form:

aos --role engineer acompose -- codex

Acceptance criteria

  • The exact reproduction exits nonzero before materialization or container launch.
  • aos acompose never silently ignores --warded, --guarded, or --agent.
  • The error points to aos --warded --guarded --composed --role <role> --agent <agent>.
  • The canonical integrated director command still renders a context bundle followed by ward agent director.
  • The documented standalone acompose command continues to work.
  • Tests cover capability flags both before and after the acompose token so parser ordering cannot reopen the bypass.
  • CLI help and the AOS launch documentation make the root-action versus legacy-subcommand boundary explicit.
## Problem The following command appears to request the integrated Ward, Agent Compose, and AOSguard launch: ```text aos acompose --warded --guarded --composed --role director --agent codex -- codex ``` With installed AOS v0.138.0, it instead selects the legacy `acompose` subcommand and starts the standalone `_container-acompose` path. It does not invoke `ward agent director`, and it silently drops the requested Ward lifecycle, broker boundary, and guarded capability. This is materially different execution under a command that exits successfully. The operator can believe a director is Ward-brokered when it is actually a standalone AOS container. The canonical integrated form works as intended: ```text aos --warded --guarded --composed --role director --agent codex ``` ## Cause * The `acompose` subcommand selects `runAcompose`. * Root capability flags remain accepted and readable after subcommand selection. * `runAcompose` calls the standalone composed-container launcher and does not honor `--warded`, `--guarded`, or `--agent` as integrated-launch selectors. * Ward routing exists only in the root `runIntegratedLaunch` action. ## Outcome Fail closed before Docker or Ward starts when the legacy `aos acompose` path receives integrated capability flags it does not honor. The error should identify the ignored or incompatible flag and show the canonical root launch shape. Preserve the documented standalone form: ```text aos --role engineer acompose -- codex ``` ## Acceptance criteria * The exact reproduction exits nonzero before materialization or container launch. * `aos acompose` never silently ignores `--warded`, `--guarded`, or `--agent`. * The error points to `aos --warded --guarded --composed --role <role> --agent <agent>`. * The canonical integrated director command still renders a context bundle followed by `ward agent director`. * The documented standalone `acompose` command continues to work. * Tests cover capability flags both before and after the `acompose` token so parser ordering cannot reopen the bypass. * CLI help and the AOS launch documentation make the root-action versus legacy-subcommand boundary explicit.
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
coilyco-flight-deck/agentic-os#810
No description provided.