feat(web): JobKindConfig fase 5 — enqueue stop-freeze + codex-sandbox seed-correctie #91

Merged
janpeter merged 3 commits from claude/job-kind-config-phase5-web into main 2026-06-17 18:35:52 +02:00
Owner

Summary

Fase 5 (deel A — scrum4me-web) van de JobKindConfig-feature: enqueue stop-freeze + de gate-gedreven codex-sandbox seed-correctie.

Stop-freeze (live/DB-leading): alle web job-producerende paden stoppen met kind-defaults invriezen in ClaudeJob.requested_*. Na deze PR blijven requested_model/thinking_budget/permission_mode null (geen echte per-job override vandaag); de per-kind config wordt live op claim-time uit JobKindConfig geresolved (fase 3, mcp #59).

  • actions/ideas.ts, actions/user-questions.ts, actions/sprint-runs.ts (3 sites: SPRINT_BATCH / per-task / resume) — getJobConfigSnapshot-calls + ...snapshot-spreads verwijderd.
  • lib/job-config-snapshot.ts — verwijderd (geen importers meer).
  • lib/review-dispatch/enqueue.ts (auto-dispatch) schreef al geen requested_* → ongemoeid. actions/claude-jobs.ts (restart=update) ongemoeid.

Seed-correctie (fase-4 sandbox-gate NO-GO): prisma/seed-data/job-kind-defaults.tscodex_sandbox_mode voor alle 9 kinds → danger-full-access (was read-only/workspace-write op intentie). De fase-4 sandbox-gate draaide op 154 én max2 → NO-GO: codex' gebundelde bwrap kan geen user-namespace maken in de geharde container (Docker default seccomp blokkeert het, óók in een plain container). Omdat buildCodexArgs --sandbox <mode> doorgeeft, zou read-only/workspace-write élk codex-shell-commando laten falen. Corrigeert de intentie-seed uit fase 2 (#90, nog niet gedeployd) vóór de seed draait.

Test Plan

  • nieuwe __tests__/actions/web-enqueue-no-freeze.test.ts — bewijst dat startGrillJobAction geen requested_* meer zet
  • __tests__/job-kind-config-seed-data.test.ts — alle 9 kinds danger-full-access
  • npm run typecheck — exit 0
  • volledige suite: 186 files / 1526 tests groen

Afhankelijkheden

Fase 1 (#21/#22), fase 3 (#59) gemerged & bumpt (claim-time live-resolutie aanwezig). Op deploy: prisma migrate deploy (al in #90) + npm run seed (seedt nu de gecorrigeerde sandbox-waarden). Workers-helft van fase 5 komt in een aparte scrum4me-workers-PR.

🤖 Generated with Claude Code

## Summary Fase 5 (deel A — scrum4me-web) van de JobKindConfig-feature: enqueue **stop-freeze** + de gate-gedreven **codex-sandbox seed-correctie**. **Stop-freeze (live/DB-leading):** alle web job-producerende paden stoppen met kind-defaults invriezen in `ClaudeJob.requested_*`. Na deze PR blijven `requested_model/thinking_budget/permission_mode` **null** (geen echte per-job override vandaag); de per-kind config wordt **live op claim-time** uit `JobKindConfig` geresolved (fase 3, mcp #59). - `actions/ideas.ts`, `actions/user-questions.ts`, `actions/sprint-runs.ts` (3 sites: SPRINT_BATCH / per-task / resume) — `getJobConfigSnapshot`-calls + `...snapshot`-spreads verwijderd. - `lib/job-config-snapshot.ts` — verwijderd (geen importers meer). - `lib/review-dispatch/enqueue.ts` (auto-dispatch) schreef al geen `requested_*` → ongemoeid. `actions/claude-jobs.ts` (restart=update) ongemoeid. **Seed-correctie (fase-4 sandbox-gate NO-GO):** `prisma/seed-data/job-kind-defaults.ts` — `codex_sandbox_mode` voor **alle 9 kinds → `danger-full-access`** (was read-only/workspace-write op intentie). De fase-4 sandbox-gate draaide op **154 én max2** → NO-GO: codex' gebundelde bwrap kan geen user-namespace maken in de geharde container (Docker default seccomp blokkeert het, óók in een plain container). Omdat `buildCodexArgs` `--sandbox <mode>` doorgeeft, zou read-only/workspace-write élk codex-shell-commando laten falen. Corrigeert de intentie-seed uit fase 2 (#90, nog niet gedeployd) vóór de seed draait. ## Test Plan - [x] nieuwe `__tests__/actions/web-enqueue-no-freeze.test.ts` — bewijst dat `startGrillJobAction` geen `requested_*` meer zet - [x] `__tests__/job-kind-config-seed-data.test.ts` — alle 9 kinds `danger-full-access` - [x] `npm run typecheck` — exit 0 - [x] volledige suite: **186 files / 1526 tests groen** ## Afhankelijkheden Fase 1 (#21/#22), fase 3 (#59) gemerged & bumpt (claim-time live-resolutie aanwezig). Op deploy: `prisma migrate deploy` (al in #90) + `npm run seed` (seedt nu de gecorrigeerde sandbox-waarden). Workers-helft van fase 5 komt in een aparte scrum4me-workers-PR. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
ideas/user-questions/sprint-runs (3 sites) schrijven geen requested_* meer;
job-config-snapshot helper verwijderd. Per-kind config wordt live op claim-time
uit JobKindConfig geresolved (fase 3). Test: web-enqueue-no-freeze.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
De fase-4 sandbox-gate op 154 + max2 gaf NO-GO: codex' bwrap kan geen
user-namespace maken in de geharde container (Docker default seccomp).
read-only/workspace-write zou elk codex-shell-commando laten falen.
Corrigeert de intentie-seed uit fase 2 (#90, nog niet gedeployd).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
fix(test): typeer create-mock arg in web-enqueue-no-freeze (tsc)
All checks were successful
CI / Lint, Typecheck, Test & Build (pull_request) Successful in 3m30s
CI / Deploy Manual (workflow_dispatch) (pull_request) Has been skipped
CI / Detect deploy-relevant changes (pull_request) Has been skipped
CI / Deploy Preview (PR) (pull_request) Has been skipped
CI / Deploy Production (main) (pull_request) Has been skipped
56b06270c5
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign in to join this conversation.
No reviewers
No labels
No milestone
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
janpeter/Scrum4Me!91
No description provided.