Flowable's async executor picks up the moved timer job and fires the boundary
event before the check can GET /management/jobs, so requiring that async job to
still exist raced and failed. The move alone fires the timer; the explicit
execute is now a best-effort nudge that tolerates the job already being gone.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The hosted escalation pump is a thin shell with logic in the unit-tested
processor, mirroring the existing OpenZaakJobPump exclusion (§5).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Record the escalation-via-external-worker decision (ADR-0015, from proposal #98)
and add the S-14 demo walkthrough that fires the 14-day timer early via Flowable's
management API to observe the reassignment to teamlead.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Extend the live verify-domain check: a third registration parks at Beoordelen,
its boundary timer is fired early via Flowable's management API, and the check
polls until the domain escalation worker reassigns the still-open task's
candidate group from behandelaar to teamlead (ADR-0015). Runs on the CI
verify-stack.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Gherkin scenarios for the two branches: a beoordeling left unclaimed for 14 days
escalates to the teamlead, and one completed before the timer fires does not.
Driven through the escalation worker against an in-memory Flowable stand-in.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add a non-interrupting P14D boundary timer on the Beoordelen user task that fires
an external-worker task (BeoordelingEscaleren) to the escalation end; wire the
hosted BeoordelingEscalatiePump and register the escalation client/processor in DI.
On timeout the still-open beoordeling is reassigned to teamlead (ADR-0015).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Failing tests for BeoordelingEscalatieProcessor: acquire the parked
BeoordelingEscaleren jobs, reassign each instance to teamlead, complete the job,
and leave a failed reassignment un-completed for redelivery. PumpOnceAsync is
stubbed to throw so the suite compiles and fails on the new behaviour only.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Implement the BeoordelingEscaleren escalation capability on the Flowable
Workflow Client: acquire escalation jobs, find the still-open Beoordelen task in
the instance and swap its candidate group behandelaar -> teamlead via task
identity links, and complete the job. Segregated onto IBeoordelingEscalatieClient
so the OpenZaak worker is unaffected (ADR-0015).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Failing Workflow Client tests for the 14-day escalation capability (ADR
proposal #98): acquire BeoordelingEscaleren external-worker jobs, reassign the
still-open Beoordelen task's candidate group behandelaar -> teamlead, and
complete the escalation job. Methods are stubbed to throw so the suite compiles
and fails on the new behaviour only.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>