feat(dispatch): kind draait met model en effort uit de jobconfig (M41 W1, T-1957) #99
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!99
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/m41-child-model"
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?
Waarom
M41 increment 5, W1, met daarin T-1957. Het kind (
model-codex) draaide altijd op de standaard van de Codex-CLI. Het run-log en Ops Worker Logs noemden intussen het model uit de jobconfig (model=gpt-5.6-sol effort=6000), dus de modelregel was misleidend. Besluit JP (2026-10-02): model en effort komen uit deQUEUE_REVIEW-jobconfig.Wat
lib/dispatch-runtime.ts:childModelFromConfig(modelConfig)maakt van de jobconfig{model, effort}:thinking_budgetwordt een Codex-effort: tot en met 6000medium, tot en met 12000high, daarbovenxhigh(maxbestaat niet in Codex); 0 of null geeft geen effort;low,medium,highofxhighheet, blijft ongewijzigd;^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$) of een config die niet voor CODEX is, geeft geenchildModel. Het kind draait dan de CLI-standaard.childModelmee in de broker-create.createSchemaaccepteert een optioneel, striktchildModel.buildContainerArgszet preciesDISPATCH_CODEX_MODELenDISPATCH_CODEX_REASONING_EFFORTin de omgeving van het kind, en weigert elke andere vorm.cli-default.Bewijs
__tests__/dispatch-child-model.test.ts(4 tests): mapping, validatie, env-argumenten en de create-aanroep van de runtime-port;cli-defaultvoor een niet-plain model en controleert dat er geen veld in de metaregel komt.npm test1047 groen, plus de 2 bekende macOS-failures intranscript-retention.tsc -p tsconfig.dispatch.jsongroen.Na merge en uitrol bewijst een echte reviewjob het gekozen model in transcript en run-log (acceptatie van increment 5).
Story ST-1618, taak T-1958 (Scrum4Me).
🤖 Generated with Claude Code
REQUEST_CHANGES
geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden.
childModelFromConfigkopieert de Claude-mapping (mapBudgetToEffort) terwijl de bestaande Codex-runnermapBudgetToCodexEffortuitvendor/scrum4me-shared/lib/codex-config.tsgebruikt. Reproductie: budget 6000 geeft hiermediumversus gedeeldlow; 12000 geefthighversusmedium; 24000 geeftxhighversushigh. Dezelfde jobconfig draait daardoor met een andere reasoning effort via dispatch dan via de reguliere Codex-runner, met gevolgen voor looptijd en gebruik. Hergebruik de Codex-helper en corrigeer de bijbehorende tests en operator-documentatie; de nieuwe tests leggen nu juist de afwijkende mapping vast.De modeldoorgifte via runtime → strikt gevalideerde broker → vaste omgevingsvariabelen sluit verder aan op de bestaande grenzen. Het run-log gebruikt dezelfde resolver als de runtime.
Verificatie op commit
697f9eae906bc1eba1a9f21f8d010b790fd8f761: TypeScript-controle (tsconfig.dispatch.json) geslaagd; bovenstaande mappingverschillen rechtstreeks gereproduceerd. Vitest kon niet starten door de uitvoer-/native-librarybeperking van/tmp; geen geslaagde testsuite geclaimd. Docker-integratietests niet uitgevoerd.BLOCKER verwerkt in
5ed7b11:childModelFromConfiggebruikt nu de gedeeldemapBudgetToCodexEffortuitvendor/scrum4me-shared/lib/codex-config.ts(6000 → low, 12000 → medium, meer → high), dezelfde mapping als de gewone Codex-runner. Een test vergelijkt de waarden 1, 6000, 6001, 12000, 12001, 24000, 99999 en 0 rechtstreeks met de gedeelde helper. Die test faalde tegen de vorige mapping. De run-logtest en de operator-doc zijn bijgewerkt.npm testgeeft 1048 groen (plus de 2 bekende macOS-failures), tsc groen.COMMENT
Geen blokkerende codefouten gevonden bij de statische beoordeling van commit
5ed7b1111ce4280b446667e7a734fce9fcc951bf. Model en effort worden vanuit de execution context doorgegeven via een strikt gevalideerd broker-object; de child-runner gebruikt de variabelen als CLI-argumenten. De numerieke mapping hergebruikt de gedeelde Codex-helper. Tests dekken de budgetgrenzen, broker-validatie, transport en run-log; de operator-documentatie is bijgewerkt. De geraadpleegde product-standaarden vragen hergebruik van bestaande utilities en verificatie.Findings
maxnaarxhighwordt gemapt. In werkelijkheid levertchildModelFromConfigvoormaxeffort:nullop en weigert het broker-schemamax. Pas de comment aan de werkelijke mapping aan./tmpgevenPermission deniedrespectievelijkfailed to map segment from shared object. Dit bewijst geen testregressie, maar laat de runtimeverificatie onbevestigd; daarom geen APPROVED.Verificatie: PR-head via Forgejo Git opgehaald en gecontroleerd;
node node_modules/typescript/bin/tsc -p tsconfig.dispatch.jsongeslaagd. Geen succesvolle test- of Docker-integratierun beschikbaar.geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden.