Files
run/spool
npc0-hue e73fe765c3 Recover log streams stuck on straddling spool segments
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.
2026-09-16 13:34:45 +08:00
..
2026-08-26 09:56:43 +08:00
2026-08-26 09:56:43 +08:00
2026-08-26 09:56:43 +08:00

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.