Skip to content

v3.7.4

Choose a tag to compare

@ym259 ym259 released this 13 May 14:39
· 14 commits to main since this release
7f0d387

[3.7.4] - 2026-05-13

Fixed

  • Windows での audit.py 並列書込が稀に取りこぼす不具合 (#16) —
    真因は audit.py の lock ではなく、v3.7.3 で導入した
    runtime._probe_local_fs() のレース。同関数は ~/.claude-bengo/.runtime-probe.tmp
    への write→unlink で local FS が使えるかを判定するが、全プロセスが
    同じパスを使うため Windows で並行 open/unlink が ERROR_SHARING_VIOLATION
    を投げ、probe が偽 False を返して surface を cowork と誤認した。
    cmd_record_is_cowork() が True なら silent exit 0 で抜けるため、
    fail=0・record だけが消える症状(ok=99, total=99)となっていた。
    probe ファイル名に os.getpid() を含めて per-PID 化し、レース自体を
    消した。
  • audit.py _FileLock の lock-budget を 30 秒に拡張(defense in depth)—
    Windows の msvcrt.locking(LK_LOCK, 1) は kernel 提供の retry が 10 回 /
    1 秒間隔(合計 10 秒)で諦めて IOError を投げる。CI worker の重 contention
    下で budget 不足になる潜在的経路を、LK_NBLCK(non-blocking)+ Python
    側 30 秒 budget + 10〜50ms exponential backoff で潰した。Linux / macOS
    fcntl.flock(LOCK_EX) 経路は影響なし。