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 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 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$/, ]); /**