Skip to content

Commit 353f4e8

Browse files
claude[bot]claude
andauthored
feat(pm): declared unlocked mode where the verify lock has no flock (#11538)
The shared verification lock is declared Linux-only (maintainer ruling, 2026-08-22). A host with no usable `flock` no longer refuses at exit 99: it runs the command in a DECLARED UNLOCKED mode, writes the degradation into the VERDICT line so it is visible and auditable, and prints the disclosure its PR body must carry — the wording the two unlocked-verification precedents wrote by hand, promoted to the official format. Nothing is created on that path: no lockfile, no holder record, no queue ticket, no fd — so `kill -9` still leaves nothing to reap, which is the invariant a hand-rolled lockfile would have given up. The trigger is the FUNCTIONAL flock probe, never the platform name, so a Linux container without util-linux degrades the same way and a brew-equipped macOS takes the locked path. The probe file's creation is checked apart from the lock taken on it: an unusable temp dir stays a refusal rather than reading as "no flock" and silently dropping serialization for every agent in the container. Where flock works, the locked path is unchanged — the acquisition loops, the ordering layer, the budget and every verdict are byte-for-byte what they were. Claude-Session: https://claude.ai/code/session_015ahemw8RcTgqtxrj15PEZx Co-authored-by: Claude <noreply@anthropic.com>
1 parent 3637731 commit 353f4e8

2 files changed

Lines changed: 288 additions & 29 deletions

File tree

‎.claude/skills/pm-dispatch/references/true-green.md‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99

1010
- 重活(build/test)一律走共享验证锁入口 `bash scripts/pm/os-verify-lock.sh -c '<cmd>'`
1111
—— 结论读它印的 VERDICT 行,⛔ 不读裸 `$?`(排队语义与预算见 os-dev 定义)。
12+
- 该锁 **Linux-only**:宿主无可用 `flock` 时入口点不拒绝,改跑声明式 unlocked 模式 ——
13+
降级写进 VERDICT 行,并印出 PR 正文该照抄的申报原文(⛔ 别另写一套措辞)。
1214
- 门禁族派生:`node scripts/pm/dispatch-gates.mjs` **不传路径**,脚本自己从 merge-base
1315
取变更集;⛔ 不自己 `git diff` 喂清单 —— 两点差按此刻的 `origin/main` 求值,姊妹
1416
PR 的文件会被算进来,而退出码照样 0。

0 commit comments

Comments
 (0)