The first head's `Refs guard` failed on this PR, correctly: spec 4's CEREMONY_FORGE_CLIENT=gh declaration made forge_preflight refuse by name on this forge. But that workflow runs on every pull request here, so the declaration as first written turns every future PR red until #199 lands — blocking the board for a gap that already has its own issue. Refusing and scheduling are different questions. This action must never produce a verdict from a graph it did not read, and it does not: on a forge it cannot speak it now says so by name, cites #199, states that no verdict was produced, and reaches the forge zero times. A preflight failure for any other reason stays fatal, and on a forge it CAN speak nothing changes. Also: five SC2016 findings in test/no-runtime-gh.test.sh. They were invisible locally because shellcheck-all.sh lints TRACKED files and the guard was still untracked when I ran it — a new file is exactly the case that check cannot see. Verified this time against CI's pinned shellcheck 0.10.0 with the file committed. test/run.sh: 28 test files, 0 failed, under CI's CEREMONY_REQUIRE_* env. shellcheck, actionlint, self-ref, marker and vendored guards all clean. Refs #198
1.9 KiB
Added
-
This tree carries upstream ceremony through
8c3a4d1(upstream0.6.0):lib/attention.sh,lib/read.sh,actions/refs-not-closing, the guarded reads, and the ruling and window rules (#198). -
test/no-runtime-gh.test.sh— the forge-portability guard: no runtimeghoutsidelib/forge-github.shunless the file declaresCEREMONY_FORGE_CLIENT=gh(#198). -
CHANGELOG.mdnames the upstream commit this tree carries, so a drill record can say which0.6.0it exercised (#197, #198).
Fixed
-
Eight runtime
ghcall sites arrived with the merge outside every conflict hunk, in functions upstream added to files this tree already owned. Seven are ported onto the shim; the eighth is named with its reason (#198). -
The open-PR gather reads
Refs, not only closing keywords. Reading one side for closing links and the other forRefsis what released a live claim in crew#321, and this tree carried that shape (#198). -
The merged record gains
merged_at, sopost_merge_pr_for_issueanswers the PR that merged last rather than the highest-numbered one. Without the column every sort key ties and the old order returns silently (#198). -
The open gather feeds
open_pr_issuesone record per physical body line. A whole decoded body as one record loses every declaration including the first, and reclaims a claim a live PR was holding (#198). -
The post-merge nudge links the issue on the forge in play rather than a hard-coded
github.com(#198). -
actions/refs-not-closingreports and skips on a forge it cannot speak, naming the client and #199, instead of standing red on every PR. It reaches the forge zero times, so no verdict is produced either way (#198). -
.github/scripts/release-path.shnameslib/forge.sh: #191 put the shim on the release doors' executable path here, so a doors-unchanged record that omitted it was measuring the wrong set (#198).