From 09070e6e692c992a682a58dd5755e779a5164910 Mon Sep 17 00:00:00 2001 From: Dai Ha Date: Sat, 12 Sep 2026 08:46:21 +0700 Subject: [PATCH] fleetd #491: say which .gitignore protects a relative handoverPath --- 11-Features.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/11-Features.md b/11-Features.md index 088e8ea..9a0fb39 100644 --- a/11-Features.md +++ b/11-Features.md @@ -5489,6 +5489,15 @@ re-litigating: path. Everything downstream — the `open` response the lead writes to, the file the daemon stats, and the bootstrap prompt the fresh session reads — uses that one absolute path. An absolute `handoverPath` is used unchanged. +- **A relative `handoverPath` lands in the LEAD's repo, which is usually not the repo that ignores + it (#491).** The handover file is a snapshot of live state — unpushed branches, open questions — + so it must never be committed. The trap is which `.gitignore` protects it. On this host the lead's + `cwd` IS the `fleetd` checkout, so the rule in `fleetd/.gitignore` works and the distinction is + invisible. On fleet01 the lead's `cwd` is `/home/ltms/LTMS/kb` while fleetd sits in + `/home/ltms/LTMS/fleetd` — two different repositories, and `kb/.gitignore` has no `.handover` + rule. Measured 2026-09-12. So: put the ignore rule in the **lead's workspace repo**, or give an + absolute path outside every repository. Re-check with + `grep -n handover /.gitignore` — no output means the trap is live on that host. - **`confirm` returning `accepted` does NOT mean the pane has been cleared.** It means every gate passed and the roll is scheduled. The roll itself runs after the calling turn ends, and it may