SIGN IN SIGN UP

feat(daemon): keep temporary repositories out of the untraced fixup

AI agents create scratch repositories under the OS temp directory for their
own work, and the untraced-commit fixup was treating them like any other
family: remembering them in the repo-family store, stat'ing their reflogs
every tick, keeping "missing" rows for a week after they vanished and
letting them compete with real repositories for the store's recency cap.
On a dogfooding machine 307 of 310 remembered families were under /tmp.

Add `untraced_fixup_ignore`: a family whose canonical common dir is under a
temp root (`$TMPDIR`/`TEMP`/`TMP`, `/tmp`, `/var/tmp`, macOS `/var/folders`,
Windows `%TEMP%`) or matches an `untraced_fixup_ignored_paths` config glob is
dropped at the top of the scheduler's per-family loop, before the stat and
before any store write, is never persisted, and is forgotten from the store
on the next maintenance round. Every name is prefixed `untraced_fixup` on
purpose: only the fixup consults this, and traced commands and checkpoints
in such repositories keep their normal behaviour.

The temp-root part is gated by the `untraced_fixup_ignore_temp_repos`
feature flag (on by default); the test harness turns it off because every
test repository lives under the temp dir, and the tests covering the rule
opt back in. `fixup.scan` reports how many families it ignored.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
S
Sasha Varlamov committed
412e3fd1611dbf8e54062c963036be1d9949ed6f
Parent: db46762