Menu

#238 Basic ambient collectors: inline tailer + validated JSONL drop-in, with docs/AMBIENT.md (FM.3)

open
nobody
2026-08-03
2026-08-03
Anonymous
No

Originally created by: fu351

Make the ambient daemon useful with zero plugins installed.

Build

  • DropInCollector: watch .doberman/activity-inbox/*.jsonl. Each line must validate as an ActivityEvent; unknown fields, oversize lines, and half-written lines are rejected and counted, never sanitized. Consumed files are renamed .done. Per-tick file and line caps bound a flooding neighbor.
  • Inline-stream tailer: fold new decisions rows into doberman monitor status so inline and ambient activity read as one stream. Already-decided rows are displayed, never re-scored and never re-emitted.
  • docs/AMBIENT.md: the public integration contract, with the JSONL format, a worked emitter example, and the boundary statement verbatim: drop-in coverage is detect + alert, never enforcement; an integration that needs enforcement must sit inline.

Tests must prove: validation rejects and counts (including a smuggled unknown field and a truncated line); a synthetic secret in a malformed line never reaches the bus or a log; write-then-rename is respected; the tailer adds zero new decision rows; end-to-end, one dropped-in high-risk event becomes exactly one ambient alert row with reason codes intact and the observed-not-enforced prefix.

Blocked by [#237] (the daemon lands first).

Related

Tickets: #142
Tickets: #237

Discussion


Log in to post a comment.