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:
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
|
||||
|
||||
Reference in new issue
Block a user