chore: align with j4k-align 17.17.1 #18
Loading…
Reference in a new issue
No description provided.
Delete branch "chore/align-17-17-1"
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?
Adds j4k-align's baked-Node guard before every
actions/setup-nodestep in the checks, dedupe-check and release workflows. The guard fails the job when its image does not already bake the Node version in.node-version(26.13.0), so setup-node never downloads Node from GitHub.The same repair updates the commit-msg workflow and
scripts/check-msg.shto align 17.17.1, including a header-rejection message that lists the allowed types.After this repair, align's audit is clean. The tsconfig drift, refused typed-lint solution and
typecheckfindings it reported before are gone without changes to those files.Review
01M6JMPF0GAKSXRDCWWY4PWWPS— head50827e423386afe86b8276eb45ac5770d218eeabReview — j4k-oss/askpplx @
79e3d6fe57Scope: diff against base tree
ad8b94c112f5Review finished: 6 succeeded, 0 failed, 4 skipped by dispatch
Triage: settled
Facts: current review-wide projection
Computed under:
Findings (2)
medium — The 28-line baked-Node policy step is pasted verbatim into checks.yml, dedupe-check.yml and release.yml
01M6JMXKY02WPD5EYVEJNF73R9.forgejo/workflows/checks.yml(snippet)01M6JMZAGJE9Q8RVB6EDW3P93S· valid: Grounded (exact) anchor confirms the baked-Node step with REQUIRED_NODE_VERSION_FILE in checks.yml. Reviewer reports the diff adds the identical step body to checks.yml, dedupe-check.yml and release.yml. They quote the shared pieces: the version-shape case pattern, the tool-cache marker path with a hard-coded x64, and the j4k-align/j4k/cluster remediation text. Three copies of a ~28-line shell policy that must change together, with nothing comparing them, is the Repetition red flag, and the diff adds it, so it is in scope. That the baked-pnpm step is already triplicated shows precedent, not a refutation. The open template question does not hold up: the reviewer says review.yml carries a 'Rendered by j4k-align' header and these three files do not, so there is no evidence of an upstream renderer. The error text pointing to concerns fixing the pin, not regenerating the workflow. The extra point about naming .node-version twice per job is minor but follows from the same structure. The proposed remedy is reasonable: one local composite action or one script that reads the pin from the same input setup-node uses. Medium fits because the maintenance cost spans three files.low — Baked-Node step accepts a REQUIRED_NODE_VERSION input that no job sets, plus an exactly-one guard to arbitrate it
01M6JMXWNTRM57R8W9YCJ997PC.forgejo/workflows/checks.yml(snippet)01M6JMZAGJE9Q8RVB6EDW3P93S· valid: Grounded (exact) anchor confirms the selector branch . Reviewer reports, from a grep of the subject tree, that all three copies set only REQUIRED_NODE_VERSION_FILE. That leaves the inline-version branch and the 'exactly one of' error branch unreachable in every job. The step is inline workflow shell, not a shared module with other callers, so the generality buys nothing and every reader of three workflows pays for it. The repository's AGENTS.md rule the reviewer quotes ('No parameter or option no caller passes') applies directly. The Overexposure label fits loosely: readers carry the cost, not callers. The supported defect is still an unused option plus extra nonobvious code. The external-template caveat is not supported by evidence: these files lack the 'Rendered by j4k-align' header that review.yml carries. The correction keeps the version-shape and tool-cache checks while reading .node-version directly. If claim ...R9's single-home fix is adopted, that home should take only the file input. Low severity is appropriate.Other claims
Coverage
Coverage pass: 01M6JMPF0KXS83CMXHZK4XQDBG
Accounting: complete (all slots terminal; see slot results for failures)
Slot health: healthy
@ -181,6 +181,36 @@ jobs:if: steps.baked-pnpm.outputs.match != 'true'uses: pnpm/action-setup@v5- name: Require the job image's baked Nodeenv:REQUIRED_NODE_VERSION_FILE: ".node-version"medium — The 28-line baked-Node policy step is pasted verbatim into checks.yml, dedupe-check.yml and release.yml
lens
aposd-plain· armdefault· tally 1 valid / 0 invalid / 0 uncertainclaim
01M6JMXKY02WPD5EYVEJNF73R9of review01M6JMPF0GAKSXRDCWWY4PWWPSNot a defect in this repository: these copies are generated, not hand-maintained. j4k-align renders the guard into every Forgejo workflow from one source,
src/template-scripts/baked-node-check-script.ts(align #1060), through{{templateScript "baked-node-check"}}in each workflow template. These workflow files are align-managed: before this PR, align 17.17.1's audit reported each of them as "Managed artifact is drifted", andj4k-align --fixoverwrites any local edit, so a change to the policy is made once in align and reaches every copy on the next repair. Align'ssrc/workflow-baked-node.test.tsalso asserts, for every template, that the guard's env names the same input (.node-versionor the inline version) that the followingactions/setup-nodestep receives, so the two names cannot diverge. A composite action or script here would be one more managed file with the same single source.@ -184,0 +186,4 @@REQUIRED_NODE_VERSION_FILE: ".node-version"run: |set -euif [ -n "${REQUIRED_NODE_VERSION:-}" ] && [ -z "${REQUIRED_NODE_VERSION_FILE:-}" ]; thenlow — Baked-Node step accepts a REQUIRED_NODE_VERSION input that no job sets, plus an exactly-one guard to arbitrate it
lens
aposd-plain· armdefault· tally 1 valid / 0 invalid / 0 uncertainclaim
01M6JMXWNTRM57R8W9YCJ997PCof review01M6JMPF0GAKSXRDCWWY4PWWPSNot a defect: the inline mode has a real caller. The guard is one shared script in j4k-align (
src/template-scripts/baked-node-check-script.ts, align #1060), rendered into every managed workflow that sets up Node.templates/workflows/credential-contract-forgejo.yml.hbspassesREQUIRED_NODE_VERSION: "{{nodeExecutionVersion}}"because itsactions/setup-nodestep takesnode-version, not a version file; j4k/cluster'scredential-contract.ymlrenders it asREQUIRED_NODE_VERSION: "26.13.0". The exactly-one check rejects a step that sets both or neither. This repository's workflows are align-managed, so dropping the branch here would be overwritten as drift on the nextj4k-align --fix.