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

@@ -66,6 +66,12 @@ Contract job states: **`pending` → `processing` → `dead`** (+ absence:
it. Not an interrupt — the holder's next ack/heartbeat returns
false, the same shape as expiry. `ack_batch` is the batch form of
ack (count returned; non-claimed ids silently not counted).
*(Acknowledged 2026-10-07, third review round follow-through: the
batch form applies §2's full validity predicate — processing state
**and** unexpired claim deadline — per id, not claim-state alone;
an id whose deadline lapsed is silently not counted, identically to
an acked-elsewhere or cancelled id. Per-id outcomes are
independent; partial success is ordinary.)*
- Claim ordering (same queue): `priority DESC`, then ready-time
(`run_at`) ascending, then enqueue order — FIFO under equal
priority, both references agree; pinned.
@@ -224,8 +230,10 @@ budget, exhaustion-by-reclaim, and `expires` lapses (§5).
### 5. `sweep_expired`: the no-stranded-rows property
Contract semantics for `sweep_expired(queue)` (the v1 skeleton's
maintenance entry point):
Contract semantics for `sweep_expired` (the v1 skeleton's
maintenance entry point; the queue-scoped handle form — name on the
handle — is pinned by [ADR-019](019-mechanism-handle-surfaces.md) §1,
2026-10-06):
- It moves to dead (`last_error = 'expired'`) **every row of the
queue past its `expires_at` in any state** — pending rows (honker