Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

watcher retries a deleted JSONL forever; and two watcher log paths exist (one abandoned since May)

Open
#732 0 comments 0 reactions 0 assignees View on GitHub

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

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 of database is locked warnings from an old build (the string Queue/write failed no 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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from EtanHey/brainlayer

All issues in EtanHey/brainlayer

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.