From c5eb14ec4c0d31ac15c218e8825629932bb1abad Mon Sep 17 00:00:00 2001 From: Proactive Runtime Bot Date: Fri, 4 Sep 2026 02:04:24 +0200 Subject: [PATCH 1/3] fix(ci): stop Prettier auto-formatting .trajectories/, exempt it from the proof contract MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit .trajectories/compacted/*.{md,json} pre-exist on main and already fail `prettier --check .` (fails the Test workflow's "Check formatting" job on any PR that touches them). prettier-fmt-fix.yml runs `npm run format` over the whole repo on every pull_request push, not just the diff, so it kept re-committing the same reformat to any branch that reverted it — including independently on relay#1651, which hit the identical drift with an unrelated docs change. - .prettierignore: add `.trajectories/`, matching the existing `.agentworkforce/trajectories/` entry. - contract.mjs: add `.trajectories/` (session/compaction logs, never imported at runtime) and `.prettierignore` (formatter config, same class as the existing `.editorconfig` entry) to NON_RUNTIME_PATH_PATTERNS. Note for review: relayflow-pr-proof.yml runs via `pull_request_target` specifically so a PR can't alter its own proof logic by editing the PR-head copy of this script (see the workflow's own security-boundary comment) — which means this PR's own contract.mjs edit cannot take effect against itself and the RelayFlow proof check will show "changes runtime files" on this PR even though nothing here reaches a shipped artifact. That's an inherent bootstrap gap in the gate, not a defect in this diff — it needs a human read, not an automated one, this one time. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_014G5VNMxEt4F3fbjgiJkSuQ Session-Id: 2efee1c4-ab06-4d1a-a464-31f42774c883 --- .prettierignore | 1 + scripts/pr-proof/contract.mjs | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/.prettierignore b/.prettierignore index 7c88e95fd..2085ab091 100644 --- a/.prettierignore +++ b/.prettierignore @@ -8,3 +8,4 @@ web/content/docs/ packages/config/src/cli-registry.generated.ts tests/benchmarks/head-to-head.ts .agentworkforce/trajectories/ +.trajectories/ diff --git a/scripts/pr-proof/contract.mjs b/scripts/pr-proof/contract.mjs index 6179f67a5..cf021a148 100644 --- a/scripts/pr-proof/contract.mjs +++ b/scripts/pr-proof/contract.mjs @@ -123,6 +123,14 @@ const NON_RUNTIME_PATH_PATTERNS = Object.freeze([ // is the same CI scope already exempted via workflows/ and .github/. /^\.gitignore$/, /^\.editorconfig$/, + // Session/trajectory compaction logs (chief-brain journaling for coding + // agent sessions). Never imported by the CLI or broker at runtime — pure + // record-keeping. Nested, so the top-level `*.md` pattern above doesn't + // already cover `.trajectories/compacted/*.md`. + /^\.trajectories\//, + // Formatter config only — cannot change what ships. Same class as + // .editorconfig above. + /^\.prettierignore$/, ]); /** From 2abc787a4d230fda811b5d7694e326885c7139e6 Mon Sep 17 00:00:00 2001 From: Proactive Runtime Bot Date: Fri, 4 Sep 2026 02:19:24 +0200 Subject: [PATCH 2/3] ci: also pin npm@11.19.1 in node-compat's fresh-install job MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Node.js Compatibility failed on this PR with the exact npm/cli#8261 arborist crash relay#1652 fixes — expected, since this branch forked from main before that fix landed there. Applying the same pin here so this PR is green on its own regardless of merge order. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_014G5VNMxEt4F3fbjgiJkSuQ Session-Id: 2efee1c4-ab06-4d1a-a464-31f42774c883 --- .github/workflows/node-compat.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/node-compat.yml b/.github/workflows/node-compat.yml index 13c5732cd..f6d598c39 100644 --- a/.github/workflows/node-compat.yml +++ b/.github/workflows/node-compat.yml @@ -98,6 +98,14 @@ jobs: node --version npm --version + - name: Upgrade npm before fresh resolution + # npm <=10.9.x's arborist crashes re-resolving the harnesses + # package's peer set with no lockfile present (npm/cli#8261) — an + # npm-version bug, not a Node-version one. See relay#1652. Applied + # here too so this job passes independent of merge order with that + # PR. + run: npm install -g npm@11.19.1 + - name: Clean install run: | rm -rf node_modules package-lock.json From f9a25038ec8d7d7f9e907b156781f2f009b414a4 Mon Sep 17 00:00:00 2001 From: Proactive Runtime Bot Date: Fri, 4 Sep 2026 02:33:33 +0200 Subject: [PATCH 3/3] ci: also pin npm@11.19.1 in package-validation's fresh-install job MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Same npm/cli#8261 arborist crash relay#1652 fixes, hit here for the same reason as the node-compat.yml fix in the prior commit — this branch forked before that fix landed on main. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_014G5VNMxEt4F3fbjgiJkSuQ Session-Id: 2efee1c4-ab06-4d1a-a464-31f42774c883 --- .github/workflows/package-validation.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/package-validation.yml b/.github/workflows/package-validation.yml index 38da4d3a8..b3a8b82ea 100644 --- a/.github/workflows/package-validation.yml +++ b/.github/workflows/package-validation.yml @@ -214,6 +214,13 @@ jobs: with: node-version: '22.14.0' + - name: Upgrade npm before fresh resolution + # See node-compat.yml's identical step: npm <=10.9.x's arborist + # crashes re-resolving the harnesses package's peer set with no + # lockfile present (npm/cli#8261). See relay#1652. Applied here too + # so this job passes independent of merge order with that PR. + run: npm install -g npm@11.19.1 + # The publish workflow bumps versions, removes package-lock.json, then # runs npm install. This catches range-resolved dependency breaks before merge. - name: Install dependencies with publish resolution