Files
claude-code 53328bfbe9 修三支閘的戳記釋放在 Linux 永遠失效:stat -c %Y 要排在 stat -f %m 前面
三支閘的 stamp_ok/退回機制都用 `stat -f %m … || stat -c %Y …` 取 mtime。
GNU (Linux) 的 `stat -f` 是 --file-system,%m 被當成檔名 ⇒ 把整張檔案系統表印到
stdout(被 $() 收進去)且 exit 1 ⇒ MT 變非數字 ⇒ case *[!0-9]* 命中 ⇒ 釋放章永遠失效。
dev 在 macOS(BSD `-f %m` 正常)所以本機測不出來,一到雲端 Linux 就咬。

實際後果(2026-08-23 雲端 cloud-worker 實撞):
- prod-write-guard:總管 touch /tmp/.prod-write-ok 也放行不了 ⇒ routine 的心跳打不出去
- main-and-prod-push-guard:arm 章在 Linux 形同虛設
- stage-before-prod-guard:stage 已驗的退回機制失效

改法:GNU 先、BSD 後(stat -c %Y … || stat -f %m …),兩平台都正確。

驗證(Linux):抽出 patched stamp_ok 實跑——
  新戳記→rc=0(釋放、單次消耗)/無戳記→rc=1(擋)/逾時>900s→rc=1(過期)。
反證:舊順序帶新戳記→rc=2(確認舊版在 Linux 是壞的)。
2026-08-23 20:55:59 +00:00
..