A segment that the platform already acknowledged could still be extended by the next tailed line, so its checksum covered entries stored under a different batch. The platform then rejected the same body every second while RejectStreamAfter skipped it, because it only quarantined segments that start after the platform latest. Every newly allocated line was quarantined by the following recovery pass, so live log ingest never resumed. Quarantine pending segments that reach beyond the acknowledged range, never extend a segment the platform already stored, and log the gap recovery so a stalled stream is diagnosable from the spool alone.
run/spool
Local durable queues live here.
Required spool areas:
logs: unacknowledged log segments.jobs: accepted job journal for duplicate detection and reconciliation.artifacts: incomplete artifact transfer state.
Spool pressure must be visible in run capacity reports.
Channel Isolation
- Log and artifact retry state are stored in separate spool areas and are acknowledged independently.
- Acknowledging a log batch must not scan, remove, or block on artifact chunks.
- Acknowledging an artifact chunk must not scan, remove, or block on log batches.
- Control heartbeat and job ack/result payloads remain metadata-only; they must never carry spool file paths, artifact chunks, log entries, raw credentials, direct sockets, or large inline bodies.
- Artifact transfer backlog is lower priority than log flush, job lifecycle calls, and control heartbeat.