item error handling

This commit is contained in:
lda
2026-05-22 21:06:04 +07:00 Verified
parent adbad56c80
commit f8426d2c9b
8 changed files with 314 additions and 72 deletions
@@ -55,6 +55,12 @@ Supported policy actions:
writes the full ordered error list once. On clean completion, `collect` writes an
empty list and emits `done`.
Current sync concurrent foreach supports `skip` and `collect`. Item node
exceptions under those policies mark the child item frame `FAILED`, store a
pending failed item result on the parent barrier, and wake the parent to refill
or finish. The failed frame stays visible for observability; the parent foreach
is responsible for turning handled item failures into aggregate control flow.
Collected error records include item index, frame id, failing node id, error
type/message, and the item value when it can be represented safely.
@@ -30,6 +30,10 @@ Already implemented:
- Barrier write validation rejects ambiguous sibling writes: same-path sibling
writes require a `mergeable` reducer, and ancestor/descendant
sibling writes are rejected.
- Concurrent `item_error.action="skip"` and `"collect"` are supported.
- `collect` writes ordered item error records to `collect_to`, writes an empty
list on clean success, and emits `completed_with_errors` only when failures
were collected.
## Non-Goals For Phase 4
@@ -112,7 +116,7 @@ Plan:
## Slice 4: Item Error Policies
Implement after barrier success commits are correct.
Implemented after barrier success commits became correct.
Scope: