Address Bob's notes 2 and 3 with documenting comments

Note 2: poll_fallback_seconds==0 silently means 'use default'. Document
in example yaml; no v1 way to disable polling, and we don't think
anyone needs that.

Note 3: Writer.locks grows unbounded. Bounded in practice (<10 agents);
add a comment for the future maintainer who may need to evict.

Notes 1 and 4 left unchanged: missingkey=zero is the friendlier choice
(produces a visible '<no value>' in the inbox rather than a silent
500); fsnotify double-fire is already handled by os.ErrNotExist on
second-read.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
bob-boat 2026-05-06 16:47:40 -04:00
parent 4ff8c3f78d
commit 3a586f38a9
2 changed files with 10 additions and 1 deletions

View file

@ -38,6 +38,11 @@ type Event struct {
//
// Concurrency: a single Writer is safe for use from multiple goroutines.
// One sync.Mutex per recipient bounds contention to per-file granularity.
//
// The locks map grows monotonically as new recipients appear. In practice
// the agent network has <10 recipients, so the leak is bounded; if this
// daemon ever lives in a system with thousands of recipients, replace the
// map with an LRU or shard-and-evict scheme.
type Writer struct {
dir string