watcher retries a deleted JSONL forever; and two watcher log paths exist (one abandoned since May)
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 52/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- python
- Domain
- backend, documentation, observability-sre
Research direction
Start by locating the watcher ingestion error handling and the AGENTS.md logging guidance, then compare them with the launchd StandardOutPath and StandardErrorPath described here. Verify how a deleted JSONL source is retried and how the live log paths are configured. Done means deleted files reach a terminal state without repeated alarms and the documentation no longer directs readers to the stale paths.
Written by the indexing model from the issue text.
Description
Two findings from a live investigation on 2026-08-20, both about trusting the wrong source.
1. Watcher loops on a vanished file
The live watcher log repeats, indefinitely:
BRAINLAYER_ALARM watcher_file_ingestion_failed: watcher deferred a JSONL file because bytes could not be safely parsed
error: [Errno 2] No such file or directory: '.../395a1775-db97-47a8-b3b1-94a82e7252c0.jsonl'
error_type: FileNotFoundError read_offset: 6646525 observed_at: 2026-08-19T01:00:09Z
A FileNotFoundError is not a parse failure and is not transient — the file is gone. The watcher should confirm the deletion (inode/offset check), record the partial ingest as terminal for that source, and stop re-alarming. Today it re-emits the same alarm indefinitely, which trains everyone to ignore watcher alarms.
2. Two watcher log paths — one is a decoy
- LIVE (launchd
StandardOutPath/StandardErrorPath):~/Library/Logs/brainlayer/watch.{out,err}.log - STALE:
~/.local/share/brainlayer/logs/watch.{log,err}— last written May 18, still on disk, 5.3MB, ending in a burst ofdatabase is lockedwarnings from an old build (the stringQueue/write failedno longer exists in source).
An agent (me) tailed the stale path today and reported a 6,420-warning "chronic lock storm" that had not occurred in three months. AGENTS.md documents the ~/.local/share/brainlayer/logs/ path, which is what led there. Fix: delete or archive the abandoned files, make AGENTS.md name the launchd paths as the live ones, and ideally have the watcher refuse to start if the documented log path is not the one it writes to.
Related: Wave 4.5 self-verification (#713) — "log a human/agent will read is the live one" is exactly the class of assertion it should carry.
🤖 Generated with Claude Code
- Dominant language
- Python
- Stars
- 9
- Forks
- 7
- Avg merge
- 4h 50m
- Merged PRs (30d)
- 404
Getting set up
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from EtanHey/brainlayer
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
EtanHey/brainlayer#1431 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
EtanHey/brainlayer#1428 ·
Maintainers usually reply within 1 day
-
test(BrainBar): inject synthetic observabilityCadence in BackupsHealth/one-page fixtures (DCI-1)Open
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
EtanHey/brainlayer#1367 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 Half a day Newbie friendliness 78/100
EtanHey/brainlayer#1364 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
EtanHey/brainlayer#1362 ·
Maintainers usually reply within 1 day
All issues in EtanHey/brainlayer
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
GoogleCloudPlatform/gce-rescue#195 ·
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
Maintainers usually reply within 1 day
-
intake mcp-intake needs-ac needs-human-review priority:medium
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
Ikalus1988/MisakaNet#3848 · 2 comments ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 75/100
521xueweihan/HelloGitHub#4105 ·
-
bug size:XS
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
Maintainers usually reply within 1 day