Third review round follow-through: enqueue_tx stamp source, sweep_expired handle form, with_tx signature, and B-block ambiguity pins

This commit is contained in:
glm-5.3-flash committed 2026-10-07 14:01:36 +00:00
1 parent 08dc1bf011
commit 83767e880b
11 files changed
+258 -101

No files matched your search

+8 -5
View File
@@ -1,6 +1,6 @@
---
status: draft
last_updated: 2026-10-07 (ADR-021 — third review round: tx reads, claimed_at, schedule queue validation)
last_updated: 2026-10-07 (ADR-021 + third-round follow-through: handle-form sweep_expired, ack_batch predicate, opts types)
---
# Queues, scheduler, outbox — semantics depth
@@ -88,9 +88,10 @@ made under; the ADRs carry the WHY.
▼
(gone)
expires lapse (any state) — sweep_expired(q) moves the row to
dead with last_error='expired'; also enforces dead-letter
retention. ack/cancel leave no row; get_job sees dead rows.
expires lapse (any state) — sweep_expired() on the queue handle
moves the row to dead with last_error='expired'; also enforces
dead-letter retention. ack/cancel leave no row; get_job sees
dead rows.
```
- **States**: `pending` → `processing` → `dead` (+ absence:
@@ -151,7 +152,9 @@ made under; the ADRs carry the WHY.
## Sweep / maintenance (ADR-010 §5–§6)
- `sweep_expired(queue)` moves *every* past-`expires_at` row (pending
- `sweep_expired()` on the queue handle (the queue-scoped form,
[ADR-019](decisions/019-mechanism-handle-surfaces.md) §1) moves
*every* past-`expires_at` row (pending
**and** processing) to dead, and enforces dead-letter retention —
the **no-stranded-rows property**
([ADR-010](decisions/010-queue-semantics-depth.md) §5): a job with