Fix ops-agent fd-secret capability contract #156

Merged
janpeter merged 1 commit from codex/idea-169-ops-agent-capability-contracts into main 2026-08-26 09:17:40 +02:00
Owner

Samenvatting

  • Voegt capability metadata-validatie toe aan ops-agent commands.yml: kind, request_schema, secret, output.
  • Ondersteunt anchored args.patterns voor begrensde runtime-argumenten.
  • Laat /agent/v1/exec body field secret fail-closed naar child fd 3 sturen voor secret: fd commands.
  • Weigert ontbrekende/lege fd-secrets voor fd-capabilities.
  • Weigert secrets voor commands zonder fd-secret contract.
  • Weigert fd-secret commands in flows, omdat flows geen request-secret source hebben.

Context

Dit adresseert de T486 server-STOP voor IDEA-169: ops-agent had geen veilig fd3-secret transport en kon runtime targetwaarden niet declaratief allowlisten.

Verificatie

  • git diff --check
  • npm -C ops-agent run check
  • npm run typecheck
  • npm test -- test/control-room-whitelist.test.ts test/ops-agent-exec-capability-secret.test.ts test/ops-agent-flow-capability-secret.test.ts test/flow-reconcile.test.ts test/scrum4me-workers-build-metadata-flow.test.ts test/worker-skills-flow.test.ts test/system-power-flow-files.test.ts test/hub-whitelist-entries.test.ts => 8 files / 41 tests passed
  • npm test -- test/control-room-legacy-routes.test.ts test/control-room-agent-routes.test.ts => 2 files / 89 tests passed before the final test-only amend; no route code changed after that.
## Samenvatting - Voegt capability metadata-validatie toe aan ops-agent commands.yml: kind, request_schema, secret, output. - Ondersteunt anchored args.patterns voor begrensde runtime-argumenten. - Laat /agent/v1/exec body field `secret` fail-closed naar child fd 3 sturen voor `secret: fd` commands. - Weigert ontbrekende/lege fd-secrets voor fd-capabilities. - Weigert secrets voor commands zonder fd-secret contract. - Weigert fd-secret commands in flows, omdat flows geen request-secret source hebben. ## Context Dit adresseert de T486 server-STOP voor IDEA-169: ops-agent had geen veilig fd3-secret transport en kon runtime targetwaarden niet declaratief allowlisten. ## Verificatie - `git diff --check` - `npm -C ops-agent run check` - `npm run typecheck` - `npm test -- test/control-room-whitelist.test.ts test/ops-agent-exec-capability-secret.test.ts test/ops-agent-flow-capability-secret.test.ts test/flow-reconcile.test.ts test/scrum4me-workers-build-metadata-flow.test.ts test/worker-skills-flow.test.ts test/system-power-flow-files.test.ts test/hub-whitelist-entries.test.ts` => 8 files / 41 tests passed - `npm test -- test/control-room-legacy-routes.test.ts test/control-room-agent-routes.test.ts` => 2 files / 89 tests passed before the final test-only amend; no route code changed after that.
s4m-codex-reviewer approved these changes 2026-08-26 09:11:05 +02:00
Dismissed
s4m-codex-reviewer left a comment

APPROVED

Geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden.

Findings

  • Geen blocking of error-severity findings gevonden.

Review

De wijziging houdt het fd-secret contract fail-closed: commands moeten secret: fd declareren, /agent/v1/exec weigert ontbrekende secrets voor fd-capabilities en weigert onverwachte secrets voor non-secret commands, en flow-executie blokkeert fd-secret commands omdat flows geen request-body-secretbron hebben. De whitelist-validatie voor capability metadata en anchored argument patterns is passend afgebakend en de nieuwe tests dekken de belangrijkste regressierisico's.

# APPROVED Geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden. ## Findings - Geen blocking of error-severity findings gevonden. ## Review De wijziging houdt het fd-secret contract fail-closed: commands moeten `secret: fd` declareren, `/agent/v1/exec` weigert ontbrekende secrets voor fd-capabilities en weigert onverwachte secrets voor non-secret commands, en flow-executie blokkeert fd-secret commands omdat flows geen request-body-secretbron hebben. De whitelist-validatie voor capability metadata en anchored argument patterns is passend afgebakend en de nieuwe tests dekken de belangrijkste regressierisico's.
janpeter force-pushed codex/idea-169-ops-agent-capability-contracts from 8efa6d4f28
Some checks failed
CI / Ops-agent checks (pull_request) Has been cancelled
CI / Deploy artifact checks (pull_request) Has been cancelled
CI / Mac foundation hermetic checks (pull_request) Has been cancelled
CI / Mac foundation reproducible build (pull_request) Has been cancelled
CI / Docker image build (pull_request) Has been cancelled
CI / Root app checks (pull_request) Has been cancelled
to 4959c0ea6a
All checks were successful
CI / Root app checks (pull_request) Successful in 6m30s
CI / Ops-agent checks (pull_request) Successful in 15s
CI / Deploy artifact checks (pull_request) Successful in 12s
CI / Mac foundation hermetic checks (pull_request) Successful in 2m30s
CI / Mac foundation reproducible build (pull_request) Successful in 3m19s
CI / Docker image build (pull_request) Successful in 2m7s
2026-08-26 09:12:54 +02:00
Compare
s4m-codex-reviewer left a comment

Verdict: APPROVED

Geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden.

Findings

  • Geen blokkerende of niet-blokkerende findings.

Review

De wijziging is klein en sluit aan op het bestaande ops-agent patroon: allowlisted argv blijft shell-vrij, nieuwe capability-metadata wordt fail-closed gevalideerd bij loadWhitelist, /agent/v1/exec accepteert secrets alleen wanneer de command-definitie secret: fd declareert, en flows worden expliciet geweigerd voor fd-secret commands omdat daar geen request-body secretbron bestaat.

De toegevoegde tests dekken de belangrijkste contracten: fd 3 transport, ontbrekende/lege secrets, accidental secret rejection, flow rejection, capability metadata-validatie en anchored argument patterns. De documentatievoorbeelden zijn mee aangepast.

# Verdict: APPROVED Geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden. ## Findings - Geen blokkerende of niet-blokkerende findings. ## Review De wijziging is klein en sluit aan op het bestaande ops-agent patroon: allowlisted argv blijft shell-vrij, nieuwe capability-metadata wordt fail-closed gevalideerd bij `loadWhitelist`, `/agent/v1/exec` accepteert secrets alleen wanneer de command-definitie `secret: fd` declareert, en flows worden expliciet geweigerd voor fd-secret commands omdat daar geen request-body secretbron bestaat. De toegevoegde tests dekken de belangrijkste contracten: fd 3 transport, ontbrekende/lege secrets, accidental secret rejection, flow rejection, capability metadata-validatie en anchored argument patterns. De documentatievoorbeelden zijn mee aangepast.
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
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
janpeter/Ops-dashboard!156
No description provided.