JobKindConfig fase 5 (workers, deel B): live config + stop-freeze #54

Merged
janpeter merged 5 commits from claude/job-kind-config-phase5-workers into main 2026-06-17 18:55:12 +02:00
Owner

JobKindConfig — fase 5 (workers, deel B): live config + stop-freeze

Sluit het stop-freeze-model af aan de workers-kant. Alle resolutie van per-kind runtime-config gebeurt nu live / DB-leading op claim-time (mcp getFullJobContext); de workers-app bevriest niets meer bij enqueue en spiegelt diezelfde live config in de preview- en context-view-paden.

Wijzigingen

B1 — enqueue stopt met invriezen (209caf5)

  • actions/manual-jobs.ts + actions/orchestrator-jobs.ts: getJobConfigSnapshot-call + ...snapshot-spread verwijderd, product-query teruggebracht tot select: { id: true }, de 'codex-default'-string-hack geschrapt. requested_* op de job = puur override, niet langer een bevroren kind-default.
  • Tests omgedraaid naar expect.not.objectContaining({ requested_model: …, … }).

B2 — preview-paden runtime-aware (4e66582)

  • lib/manual-job-draft.ts + lib/manual-jobs/launch-preview.ts: resolveJobConfigresolveRuntimeJobConfig; union-narrowing op config.runtime; CODEX-preview-model = 'codex (CLI-default)'; Claude-helpers typen op Extract<RuntimeJobConfig, { runtime: 'CLAUDE' }>.

B3 — context-view toont live JobKindConfig (c2cab4d)

  • lib/context-view/assemble.ts: verse prisma.jobKindConfig.findUnique + resolveRuntimeJobConfig(…, 'CLAUDE') (CONTEXT_KINDS zijn allemaal Claude-pad → CLAUDE-baseline, met narrow-throw).
  • lib/context-view/sections.ts: sourceLabellive · JobKindConfig + product (CLAUDE-baseline).

submodule-bump (523a473)

  • vendor/scrum4me-shared7c85a6c (merge #21 JobKindConfig-fundering + #22 .js-extensie-fix). Basis voor resolveRuntimeJobConfig.

B4 — dode helper weg (52f6d8a)

  • lib/job-config-snapshot.ts + zijn test verwijderd (dood na B1).
  • __tests__/lib/context-view-productdocs.test.ts: prisma- + @shared/job-config-mock bijgewerkt naar de live resolveRuntimeJobConfig-vorm.

Verify

npm run verify groen: lint + typecheck + 592 tests passed | 2 skipped (95 files).

Niet in deze PR

  • Fase 6: workers /settings/job-kinds admin-UI (volgende PR).
  • Geen migraties hier — workers draait alleen prisma generate. De job_kind_config-tabel + seed landen via scrum4me-web (fase 2 + fase-5-web, beide gemerged); op deploy: prisma migrate deploy + npm run seed.

🤖 Generated with Claude Code

## JobKindConfig — fase 5 (workers, deel B): live config + stop-freeze Sluit het stop-freeze-model af aan de workers-kant. Alle resolutie van per-kind runtime-config gebeurt nu **live / DB-leading** op claim-time (mcp `getFullJobContext`); de workers-app **bevriest niets meer** bij enqueue en spiegelt diezelfde live config in de preview- en context-view-paden. ### Wijzigingen **B1 — enqueue stopt met invriezen** (`209caf5`) - `actions/manual-jobs.ts` + `actions/orchestrator-jobs.ts`: `getJobConfigSnapshot`-call + `...snapshot`-spread verwijderd, product-query teruggebracht tot `select: { id: true }`, de `'codex-default'`-string-hack geschrapt. `requested_*` op de job = puur override, niet langer een bevroren kind-default. - Tests omgedraaid naar `expect.not.objectContaining({ requested_model: …, … })`. **B2 — preview-paden runtime-aware** (`4e66582`) - `lib/manual-job-draft.ts` + `lib/manual-jobs/launch-preview.ts`: `resolveJobConfig` → `resolveRuntimeJobConfig`; union-narrowing op `config.runtime`; CODEX-preview-model = `'codex (CLI-default)'`; Claude-helpers typen op `Extract<RuntimeJobConfig, { runtime: 'CLAUDE' }>`. **B3 — context-view toont live JobKindConfig** (`c2cab4d`) - `lib/context-view/assemble.ts`: verse `prisma.jobKindConfig.findUnique` + `resolveRuntimeJobConfig(…, 'CLAUDE')` (CONTEXT_KINDS zijn allemaal Claude-pad → CLAUDE-baseline, met narrow-throw). - `lib/context-view/sections.ts`: `sourceLabel` → `live · JobKindConfig + product (CLAUDE-baseline)`. **submodule-bump** (`523a473`) - `vendor/scrum4me-shared` → `7c85a6c` (merge #21 JobKindConfig-fundering + #22 `.js`-extensie-fix). Basis voor `resolveRuntimeJobConfig`. **B4 — dode helper weg** (`52f6d8a`) - `lib/job-config-snapshot.ts` + zijn test verwijderd (dood na B1). - `__tests__/lib/context-view-productdocs.test.ts`: prisma- + `@shared/job-config`-mock bijgewerkt naar de live `resolveRuntimeJobConfig`-vorm. ### Verify `npm run verify` groen: lint + typecheck + **592 tests passed | 2 skipped** (95 files). ### Niet in deze PR - Fase 6: workers `/settings/job-kinds` admin-UI (volgende PR). - Geen migraties hier — workers draait alleen `prisma generate`. De `job_kind_config`-tabel + seed landen via scrum4me-web (fase 2 + fase-5-web, beide gemerged); op deploy: `prisma migrate deploy` + `npm run seed`. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
manual-jobs/orchestrator-jobs schrijven geen requested_* meer; product-query =
pure bestaans-check. Live op claim-time uit JobKindConfig (fase 3). Tests omgekeerd
naar expect.not.objectContaining(requested_*).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
manual-job-draft + launch-preview gebruiken RuntimeJobConfig (union, narrowed op
runtime); CODEX-preview toont 'codex (CLI-default)' i.p.v. de literal 'codex-default'.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
assembleKindProductContext doet een verse jobKindConfig-lookup + resolveRuntimeJobConfig
(CLAUDE-baseline); sourceLabel → 'live · JobKindConfig + product'.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Vereiste basis voor resolveRuntimeJobConfig + de live JobKindConfig-resolutie
in de enqueue-/preview-/context-view-paden.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Stop-freeze: enqueue bevriest geen kind-defaults meer (B1), dus de snapshot-
helper is dood. Verwijderd incl. zijn test. context-view-productdocs-test:
prisma-mock + @shared/job-config-mock bijgewerkt naar de live
resolveRuntimeJobConfig-vorm (jobKindConfig.findUnique → null, runtime:'CLAUDE').

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-workers!54
No description provided.