fix: align with j4k-align 17.15.4 #21
Loading…
Reference in a new issue
No description provided.
Delete branch "chore/align-17-15-4"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Moves
.node-versionfrom 26.12.1 to 26.13.0, the Node baked into thenode-ci:26-bookwormCI image, so CI runs stop downloading Node from GitHub.The next release drops Node 24:
engines.noderises to>=26.0.0,@types/nodeto^26.0.0, the README's requirement to match, and the checks workflow drops its Node 24.15.0 matrix leg to run once on.node-version.The rest is align's current render of the managed files. A new
same-repo-prjob fails fork and AGit PRs, which would otherwise read green with every guarded check skipped, and replaces thepr-flow-canaryjob. Releases now run only from the branch tip, andoxlint.config.tsadds thenodeTestpreset.Review
01M6GVF6ZVW02M412RX28YQ68B— headdd88066a2df7520e7ce0644aca492925c39713fbReview — j4k-oss/fta-check @
d4b4389ee4Scope: diff against base tree
6c125be78ce4Review finished: 6 succeeded, 0 failed, 4 skipped by dispatch
Triage: settled
Facts: current review-wide projection
Computed under:
Findings (1)
medium — The fork/AGit trust rule now lives in four hand-kept copies, and
same-repo-prrestates its negation with nothing tying the two together01M6GVQKPJ3JWV0ZTKRQG2SECZ.forgejo/workflows/commit-msg.yml(snippet)01M6GVRWP8QCCN0QRVFHAJKBJ8· valid: Grounded (exact) anchor shows the new same-repo-pr job's condition is a hand-written negation of the trust predicate: head.repo.full_name != github.repository || toJSON(flow) != '0'. The body quotes the positive guard used by commitlint, quality-checks (checks.yml) and dedupe-check (dedupe-check.yml), and the comments it cites say those guarded jobs rely on commit-msg.yml's same-repo-pr to fail fork/AGit PRs. One design decision, who counts as trusted, is therefore encoded in four places that must change together. The complement is correct only while all four agree, and nothing checks that. This is APoSD's Information Leakage red flag, and the claim gives a concrete cost: if one guard is edited, for example to admit AGit flow 1, without the complement, fork PRs are skipped with no failing job and read green, or every same-repo PR fails. The claim acknowledges that workflow expressions can't be shared across files and limits its fix to the realistic one: compute the predicate once in commit-msg.yml as a job output and drive both commitlint and the refusal from it, plus a drift check or comment for the others. No substantive objection survives. The 'probably because of workflow_call from release.yml' explanation for the placement is the reviewer's inference, but the defect does not depend on it. Medium fits: the duplicated knowledge already spans modules that must change in lockstep.Other claims
01M6GVQXZNFP5FBFXGKT3T2NQSmedium — The newenginesfloor of Node 26.0.0 is promised to users, but CI now runs only 26.13.0, so nothing checks the promiseCoverage
Coverage pass: 01M6GVF70DYMAYCZDQPDVR0T8N
Accounting: complete (all slots terminal; see slot results for failures)
Slot health: healthy
@ -130,0 +132,4 @@# the guard's exact complement: it fails those PRs and runs none of their code.# It also fails every PR if Forgejo stops sending a usable `flow`.same-repo-pr:if: github.event.pull_request.head.repo.full_name != github.repository || toJSON(github.event.pull_request.flow) != '0'medium — The fork/AGit trust rule now lives in four hand-kept copies, and
same-repo-prrestates its negation with nothing tying the two togetherlens
aposd-plain· armdefault· tally 1 valid / 0 invalid / 0 uncertainclaim
01M6GVQKPJ3JWV0ZTKRQG2SECZof review01M6GVF6ZVW02M412RX28YQ68BThe guards are tied together, in align rather than in the rendered files. These workflows are managed renders of j4k-align 17.15.4, and a direct edit is drift that the next audit reports. At tag
v17.15.4,src/workflow-untrusted-checkout-auth.test.tsasserts thatsame-repo-pr's condition is the exact complement of the fork guard (line 1971). It also asserts that every other accepted job guard wraps the fork guard and skips with it (line 1983), and it reports any plainpull_requestjob whoseif:is outside that allowlist. A new guarded job with a different condition, or an edited guard, fails align's tests before it can be rendered into a repository.Align renders
commit-msg.ymlwithsame-repo-prbesidechecks.ymlin every Forgejo repository it manages: all seven PRs in this rollout add the job. You said yourself that you found no current coverage gap, and no repository receiveschecks.ymlwithout it.