test(dispatch): inspect-tolerantie volledig gedekt + gedocumenteerd #105

Merged
janpeter merged 1 commit from test/t1973-review-followups into master 2026-10-03 18:13:27 +02:00
Owner

Waarom

Vervolgpunten uit de review van scrum4me-docker#104 (WARNING en INFO). Het gedrag staat al live; dit voegt dekking en documentatie toe.

Wat

Tests (__tests__/dispatch-supervisor.test.ts):

  • Een inspect die echt blijft hangen en pas na 10 s door bounded wordt beëindigd (met fake timers), telt als unknown. De poging rondt daarna normaal af, met één logcode DISPATCH_RUNTIME_INSPECT_RETRY.
  • stopRequired uit de heartbeat wordt ook tijdens een unknown-episode opgevolgd: de poging wordt gestopt en het resultaat geannuleerd.
  • Hetzelfde geldt voor een abortsignaal tijdens een unknown-episode.
  • Reset van de grens na een running-antwoord: twee korte episodes tellen niet bij elkaar op. Met een grens van 50 ms wordt de poging dan gewoon afgerond, met twee logregels.

Docs (docs/dispatch-runtime-operator.md, lifecycle-sectie): de grens van 180 s, doorlopende heartbeats, de reset na running, wat direct fataal blijft (weigering, transportfout, onverwachte staat) en de logcode.

Verificatie

  • Mutatietests: zonder de reset faalt de reset-test, en met een timeout die weer fataal is faalt de hang-test.
  • Supervisor-suite: 62 van 62. Volledige vitest: 1100 geslaagd, plus de 2 bestaande macOS-falers in transcript-retention.
  • tsc -p tsconfig.dispatch.json is schoon.

Alleen tests en documentatie; de productcode is niet gewijzigd.

🤖 Generated with Claude Code

## Waarom Vervolgpunten uit de review van scrum4me-docker#104 (WARNING en INFO). Het gedrag staat al live; dit voegt dekking en documentatie toe. ## Wat **Tests** (`__tests__/dispatch-supervisor.test.ts`): - Een inspect die **echt blijft hangen** en pas na 10 s door `bounded` wordt beëindigd (met fake timers), telt als `unknown`. De poging rondt daarna normaal af, met één logcode `DISPATCH_RUNTIME_INSPECT_RETRY`. - **`stopRequired`** uit de heartbeat wordt ook tijdens een `unknown`-episode opgevolgd: de poging wordt gestopt en het resultaat geannuleerd. - Hetzelfde geldt voor een **abortsignaal** tijdens een `unknown`-episode. - **Reset van de grens** na een `running`-antwoord: twee korte episodes tellen niet bij elkaar op. Met een grens van 50 ms wordt de poging dan gewoon afgerond, met twee logregels. **Docs** (`docs/dispatch-runtime-operator.md`, lifecycle-sectie): de grens van 180 s, doorlopende heartbeats, de reset na `running`, wat direct fataal blijft (weigering, transportfout, onverwachte staat) en de logcode. ## Verificatie - Mutatietests: zonder de reset faalt de reset-test, en met een timeout die weer fataal is faalt de hang-test. - Supervisor-suite: 62 van 62. Volledige vitest: 1100 geslaagd, plus de 2 bestaande macOS-falers in `transcript-retention`. - `tsc -p tsconfig.dispatch.json` is schoon. Alleen tests en documentatie; de productcode is niet gewijzigd. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
test(dispatch): inspect-tolerantie volledig gedekt + gedocumenteerd (review #104)
All checks were successful
CI / Compose config (pull_request) Successful in 4s
CI / Build-arg coverage (pull_request) Successful in 3s
CI / Docker build (pull_request) Successful in 7s
adcb3d53f4
Tests: een inspect die echt blijft hangen en pas door bounded (10 s, fake
timers) wordt beëindigd; stopRequired en een abortsignaal tijdens een
unknown-episode; en de reset van de grens na een running-antwoord. Mutaties
(geen reset, timeout weer fataal) worden gevangen.

Docs: lifecycle-sectie van docs/dispatch-runtime-operator.md beschrijft de
grens van 180 s, doorlopende heartbeats, wat direct fataal blijft en de logcode
DISPATCH_RUNTIME_INSPECT_RETRY.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
s4m-codex-reviewer left a comment

COMMENT

geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden.

Findings:

  • WARNING — __tests__/dispatch-supervisor.test.ts:535: De nieuwe reset-test gebruikt echte timers met slechts circa 25 ms marge tot de grace van 50 ms. Onder CPU-belasting kan een vertraagde tweede inspect de correcte implementatie al uncertain laten retourneren. Maak de tijd deterministisch met een bestuurbare klok, inclusief Date.now, en synchroniseer de inspect-/heartbeat-stappen.

De vier toegevoegde scenario’s sluiten inhoudelijk aan op de supervisor; de operatorhandleiding beschrijft de bestaande tolerantie. Geen blokkerende runtime- of architectuurbevindingen gevonden.

Verificatie op adcb3d53f4a7108b49b7026af551010f7233043d: dispatch-typecheck en diff-whitespacecontrole geslaagd. Testsuite niet uitvoerbaar in deze reviewomgeving: /tmp is noexec, waardoor de native Rolldown-module van Vitest niet kan laden. Testsucces is daarom niet onafhankelijk bevestigd; verdict COMMENT.

# COMMENT geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden. Findings: - **WARNING** — `__tests__/dispatch-supervisor.test.ts:535`: De nieuwe reset-test gebruikt echte timers met slechts circa 25 ms marge tot de grace van 50 ms. Onder CPU-belasting kan een vertraagde tweede inspect de correcte implementatie al `uncertain` laten retourneren. Maak de tijd deterministisch met een bestuurbare klok, inclusief `Date.now`, en synchroniseer de inspect-/heartbeat-stappen. De vier toegevoegde scenario’s sluiten inhoudelijk aan op de supervisor; de operatorhandleiding beschrijft de bestaande tolerantie. Geen blokkerende runtime- of architectuurbevindingen gevonden. Verificatie op `adcb3d53f4a7108b49b7026af551010f7233043d`: dispatch-typecheck en diff-whitespacecontrole geslaagd. Testsuite niet uitvoerbaar in deze reviewomgeving: `/tmp` is `noexec`, waardoor de native Rolldown-module van Vitest niet kan laden. Testsucces is daarom niet onafhankelijk bevestigd; verdict COMMENT.
janpeter merged commit 6902eb357c into master 2026-10-03 18:13:27 +02:00
Sign in to join this conversation.
No reviewers
No labels
severity/s3
No milestone
No project
No assignees
2 participants
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-docker!105
No description provided.