The cancellation reaches OpenZaak correctly (Geannuleerd status_created), but
the verify read-back ran 'docker run python:3-slim python -' without -i, so the
heredoc never reached the container's stdin and the script was empty — the check
always saw an empty status. Add -i so the read actually queries OpenZaak.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The new SetZaakToCancellationStatusAsync added surviving mutants (uncovered
null-guards and the failure-action messages) that dropped the ACL mutation
score below the 90% break threshold. Add null-argument and rejected-POST tests
for the cancellation path; score back to 93.46%.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Records the ZGW cancellation-modelling decision (distinct non-terminal
Geannuleerd status + Vervallen resultaat, resolved by name) and documents the
end-to-end timeout-cancellation path.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Adds an ACL↔OpenZaak integration test asserting SetZaakToCancellationStatusAsync
records the Geannuleerd status + a resultaat against real OpenZaak, and extends
the domain verify script to confirm a timed-out registration's zaak is cancelled
to Geannuleerd end-to-end.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
S-10c needs a distinct cancellation status/resultaat. Adds a non-terminal
Geannuleerd statustype (between Ontvangen and the Afgehandeld eindstatus) and a
second Vervallen resultaattype, both idempotent by omschrijving. Both
resultaattypen draw their selectielijstklasse from the zaaktype's single
procestype so they validate on publish.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Extends the S-10a feature to S-10c: a timed-out registration's zaak is
cancelled via the ACL, while documents-in-time leave the zaak untouched.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The expiry worker asks the ACL to cancel the zaak before advancing the
aggregate to VERLOPEN, so a lapsed document term is reflected in ZGW and not
only in the domain. Ordered ACL-first for redelivery safety; guarded so a
redelivered job neither re-saves nor re-cancels.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
S-10c: expiring the aggregate to VERLOPEN is not enough — the ZGW zaak must
also be cancelled through the ACL (§8.1). Adds IAclClient.CancelZaakAsync and
its client/fakes, and asserts the worker cancels a still-open registration's
zaak but leaves an already-resolved one untouched.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The ACL exposes zaak cancellation as a service operation the domain calls on
document-timeout expiry; it default-fills the zaaktype and dates the status
today, translating the domain intent to the ZGW cancellation status/resultaat.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
SetZaakToCancellationStatusAsync resolves the cancellation statustype and
resultaat by omschrijving and posts resultaat-then-status, mirroring the
approval path. Approval now resolves its Geregistreerd resultaat by name too,
since a second resultaattype now exists.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
S-10c: the document-timeout branch must set the zaak to a distinct
cancellation statustype (Geannuleerd) + resultaat (Vervallen), resolved by
omschrijving. With a second resultaattype present, approval must also
resolve its resultaat (Geregistreerd) by name rather than taking the first.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>