feat(dispatch): Codex-reviewer-kind, release en run-log (M41 increment 2) #95
No reviewers
Labels
No labels
severity/s3
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
janpeter/scrum4me-docker!95
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/m41-reviewer-kind"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Samenvatting
M41 increment 2 (sprint S-2026-10-02-2, story ST-1615, taken T-1933…T-1939): een echte Codex-reviewer in de afgeschermde container, met logs en opruimen. Sluit ook T-1869 (egress-bridge in de modelimage) af.
model-codex(Dockerfile.dispatch,bin/run-dispatch-child.ts,lib/dispatch-child.ts):/sources/__dispatch_inputen de queue-prompt die opMCP_GIT_REFis vastgelegd;codex exec --json;result.jsonachter: een begrensdfailed-resultaat bij een ontbrekend of ongeldig resultaat en bij stop./sources/codex_api_key.codex-proces, nooit in argv.npm run test:dispatch-model-image. Met de echte broker en egress-image loopt een CONNECT viaHTTPS_PROXYdoor de bridge naar een toegestane gateway; een niet-toegestane host krijgt 403.assertProviderProxySupport(true)geldt alleen voor deze adapter.release: na het terminale antwoord worden de container en de pogingsmap verwijderd, inclusief de sleutelkopie.docker rmzonder-f.lib/dispatch-run-log.ts,lib/dispatch-redact.ts):run-one-job-formaat, met job-id uit de pogingscontext (scrum4me-mcp#176);<DISPATCH_WORKER_LOG_DIR>/dispatch/<slot>/runs/;deploy/queue-dispatch.worker-logs.compose.yml.npm run smoke:dispatch-live-review(niet in CI).Test
npm test: 1030 groen, plus 2 failures intranscript-retention.test.tsdie al vóór deze branch bestonden; die tests vereisen GNUchmod --reference, die macOS niet heeft.typecheck:dispatch: schoon.skills:verify: OK.test:dispatch-model-image: groen.api.openai.com:443gecontacteerd;releaseweg.Niet bewezen
Restrisico (B1): het model kan het sleutelbestand zelf lezen. Een gateway buiten het kind is de latere verharding.
Operatornotities
--tmpfs /tmpnodig.DISPATCH_AGENT_OUTPUT_KEYniet.🤖 Generated with Claude Code
De broker kent een nieuwe strikte operatie release({attemptId}). Die is alleen toegestaan als het eigen journaal 'stopped' met stopbewijs heeft, verwijdert precies de eigen container (id + labels, docker rm zonder -f) en de pogingsmap (bronnen incl. sleutelkopie, work, output), en laat journaal en stopbewijs staan met releasedAt. Tweede aanroep is een no-op; een crash halverwege wordt bij de volgende aanroep afgemaakt. De supervisor roept release aan na een terminaal antwoord op het resultaat (accepted/late, closeUnstarted, herstelpad), vóór het opruimen van het eigen journaal. Een release-fout verandert de uitkomst niet en wordt gelogd met een begrensde code. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>Verdict: APPROVED
Geen blokkerende findings aangetroffen.
c77da7731ba82ef674707bd05362539d73a53bf8. De volledige Vitest-run kon in deze runner niet starten omdat/tmpmetnoexecis gemount; de toegevoegde tests en relevante fout-, cleanup- en run-logpaden zijn aanvullend statisch beoordeeld.De implementatie houdt de broker-/child-grens intact, maakt credential-opruiming afhankelijk van terminale centrale bevestiging en documenteert de nieuwe model-image- en Worker Logs-operatie voldoende.