Leo
|
5909c2a43a
|
逃生門要真的走得通:touch /tmp/.kbdb-down 從來沒放行過(inkstone/ISEP#122)
實撞(2026-09-02,做這張票的路上):KBDB 兩支工具都回 Connection closed,
照 history-first-guard.sh 印出來的那行 `touch /tmp/.kbdb-down` 打完再送同一個編輯,
**被一模一樣地擋第二次,訊息一字不差**。
根因(打出來的,不是推的):
$ touch /tmp/.kbdb-down
$ t=$(cat /tmp/.kbdb-down); echo "[$t]" → []
$ echo $((now - t)) → 1788318047 ≥ 3600
touch 造的是空檔,而那支閘讀的是**檔案內容**當時戳
⇒ 空字串被當成 0 ⇒「距今 17 億秒」⇒ 永遠不新鮮 ⇒ 恆擋。
⇒ 那行逃生門是印出來好看的,**沒有人照著打過一次**。
跟本票 comment 6071(scripts/ticket 沒有 handback 這個動詞)、
inkstone/ISEP#125(worktree 閘的逃生門原文照打 rc=2)是同一句話。
改法:內容不是數字就改用檔案的 mtime——touch 做的正是更新 mtime,
所以訊息那一行從此真的走得通;kbdb-asked-stamp.sh 寫數字的舊格式照樣相容。
路徑加 KBDB_STAMP_DIR 覆寫,只為了讓測試不去動這台機器真正的戳記
(清掉別的 session 的戳記=把閘弄成隨機的)。
沒有把閘弄鬆:過期的戳記照樣不算數(測試第 ⑦ 條守這件事),
文件/新檔/測試檔本來就不擋的三條也各有一格守著。
驗(hooks/tests/history-first-guard.test.sh,10 條,全離線):
修好後 10/10
修好前(路徑隔離) 9/10 —— ④「擋人的換成歷史警察了嗎」紅
⚠️ 第 ③ 條兩版都綠(它只驗離開碼,而過了第 0 道還有歷史警察會擋)
真正分辨得出新舊的是 ④,檔頭寫了怎麼重現這個對照。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-09-02 11:11:39 +08:00 |
|