Check whether the outcome improved
Define lifecycle outcomes
Write expected local state for accepted, running, complete, partial, failed, expired, and duplicate-submission cases. Include intended, completed, and failed counts plus the allowed next action. Keep reads and mutating batches separate.
Exercise progress and restart
Run lifecycle fixtures with delayed status, a process restart, result pagination, and a failed item. Confirm the same operation handle is used and pending work remains visible. Verify a complete status without results cannot silently mark all records done.
Check reconciliation safety
Repeat a status read and a result retrieval, then attempt a bounded recovery for partial work. Inspect each local record and side effect count. Confirm a duplicate request is blocked or clearly reviewed rather than creating another batch.
What to carry forward
Accept when lifecycle states match durable record evidence, partial work is visible, retries preserve the operation handle, and expired results have a clear review path. Keep external retention behavior partial when uncontrolled. Record batch fixtures and reconciliation outcomes.
Technical background: GitHub documentation.
Keep the decision with the work.
Use a Work Item in Aglet to record the problem, the evidence you have, and the next decision. Add an owner and priority, then keep updates in the discussion so the next person can follow the reasoning.
Create an account See the product workflow