feat(dispatch): managed worker zonder vast product en met expliciete rebind (ISS-11) #188
No reviewers
Labels
No labels
severity/s2
severity/s3
severity/s4
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
janpeter/scrum4me-mcp!188
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/iss-11-bootstrap-nullable-rebind"
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?
T-168 (ST-054 / PBI-34, ISS-11): de managed-worker-bootstrap mag een worker aan alle producten binden en een bestaande worker expliciet herbinden. Dat is stap 1 om de dispatch-reviews voor alle actieve producten te laten werken. Plan: ProductDoc
plans/iss-11-multi-product-dispatch-reviews.Wijziging (
src/dispatch/managed-worker-bootstrap.ts)product_id: null: alle producten die het token mag claimen.claimwordt per scoped product vooraf geautoriseerd.refreshActor).claude_workers.product_id = NULLwordt daar al als "alle producten in scope" behandeld.rebind: true: wijzigt alleentoken_id/product_idvan dezelfde owner, instance, runtime, tier en capabilities.DISPATCH_BOOTSTRAP_BINDING_CONFLICTgelden.classifyBootstrapBindingenbootstrapClaimProducts.Tests
__tests__/dispatch/managed-bootstrap.test.ts. Eerst rood (8 falend), daarna groen.managed-worker.integration.test.tskrijgt een rebind- en null-productscenario tegen een echte DB. Draait in de CI-dispatch-gate; lokaal niet uitgevoerd, want er is geen test-DB.npm test: 251 bestanden en 2103 tests groen.npm run typecheckgroen.Docs:
docs/dispatch-managed-bootstrap.mdbeschrijft de all-products-binding en de rebind, met de verwijzing naar de rotatieprocedure.Geen deploy in deze PR; dat is T-169 na de merge.
🤖 Generated with Claude Code
COMMENT
Geen blokkerende codebevindingen; één niet-blokkerende testopmerking.
__tests__/dispatch/managed-worker.integration.test.ts:118: het expliciet in T-168 gevraagde negatieve scenario ontbreekt: een scoped token zonder claimrecht op één van zijn scoped producten. Test een scope met meerdere producten, waarvan één wordt geweigerd, en controleer dat de bootstrap faalt en de bestaande workerbinding intact blijft. De huidige code autoriseert wel elk scoped product; de test bewijst alleen het succesvolle één-productpad.plan gekoppeld via pr_refs — references: T-168, T-169, ST-054, PBI-34. Geen omitted onderdelen of afgekapte plandocumenten. De PR beschrijft expliciet stap 1/T-168; deploy, slot-/profielrotatie en eindacceptatie uit T-169–T-171 zijn vervolgwerk en geen blokkade voor deze PR.
De nullable productbinding, expliciete rebind, weigering van andere owner/runtime/tier/capabilities en behoud van slot-/profielautoriteit volgen het gekoppelde bootstrapcontract en de productdocumentatie. Geen schemawijziging; de bootstrapdocumentatie is bijgewerkt.
Verificatie op commit
623a47914178f276f7e4dbc917276152583223f7: bron- en test-typecheck geslaagd. De Forgejo PR-candidate-CI is succesvol. Lokale Vitest-uitvoering kon niet starten door de uitvoerbeperking op /tmp (native binding kon niet worden geladen); dispatch-integratie is lokaal niet uitgevoerd zonder testdatabase.npm run verifyuit het plan bestaat niet in package.json; de daadwerkelijke gates zijn typecheck, typecheck:tests, tests en de dispatch-CI-gate.