@biffo/cli 0.301.22 → 0.301.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -87,21 +87,6 @@ jobs:
87
87
  - name: Build
88
88
  if: ${{ !cancelled() }}
89
89
  run: pnpm run build
90
- - name: Dependency audit
91
- if: ${{ !cancelled() }}
92
- # Fails on a real high/critical advisory, but treats a broken audit
93
- # registry as INCONCLUSIVE rather than reddening a required check for an
94
- # infrastructure hiccup (#591, #743). The raw `pnpm audit
95
- # --audit-level=high` this replaces exits non-zero identically whether it
96
- # found a vulnerability or simply could not parse the registry's
97
- # response, so any npm blip failed this job on every open PR at once.
98
- #
99
- # The relative path is deliberate. This job's working-directory is
100
- # apps/frontend, which is exactly the tree to audit, and the script
101
- # audits its own cwd — it is byte-identical to biffo-template's copy and
102
- # to every other satellite's, distributed by that repo's shared-sync.sh,
103
- # so it cannot assume a layout. Do not edit it here; edit it upstream.
104
- run: sh ../../scripts/js-dependency-audit.sh
105
90
  # The generic relocation of tabsii-platform#377 Phase 2's scale-guard --
106
91
  # the systemic half of that issue, built in biffo-template so every new
107
92
  # sibling (in any Biffo instance) is born with it. Ships as
@@ -170,6 +155,51 @@ jobs:
170
155
  - name: E2E tests
171
156
  run: pnpm run e2e
172
157
 
158
+ # Split out of the `js` job deliberately (biffo-template#1880): `pnpm
159
+ # audit`'s registry call has been chronically, intermittently unreachable
160
+ # since npm/GitHub retired the legacy audit endpoints on 2026-07-15, an
161
+ # ongoing upstream infrastructure condition unrelated to this repo's own
162
+ # code. Mirrors biffo-template's own root `ci.yml` split; see that repo's
163
+ # `js-audit` job and #1880 for the full evidence. `js` (required) no
164
+ # longer runs this step, so a registry hang can never again block this
165
+ # required check; this job runs the exact same script informationally on
166
+ # every push/PR (`continue-on-error: true`) and is deliberately NOT part
167
+ # of DEFAULT_STATUS_CHECKS/SIBLING_STATUS_CHECKS.
168
+ js-audit:
169
+ name: JS Dependency Audit (non-blocking, #1880)
170
+ runs-on: ${{ vars.RUNNER_LABEL || 'ubuntu-latest' }}
171
+ timeout-minutes: 20
172
+ continue-on-error: true
173
+ defaults:
174
+ run:
175
+ working-directory: apps/frontend
176
+ steps:
177
+ - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5
178
+ - uses: pnpm/action-setup@v4
179
+ with:
180
+ version: 9.15.9
181
+ - uses: actions/setup-node@v4
182
+ with:
183
+ node-version: ${{ env.NODE_VERSION }}
184
+ cache: pnpm
185
+ cache-dependency-path: apps/frontend/pnpm-lock.yaml
186
+ - run: pnpm install --frozen-lockfile
187
+ - name: Dependency audit
188
+ if: ${{ !cancelled() }}
189
+ # Fails on a real high/critical advisory, but treats a broken audit
190
+ # registry (non-JSON response, or the chronic #1880 timeout) as
191
+ # INCONCLUSIVE rather than blocking (#591, #743) — and this job's own
192
+ # non-required status is what stops that inconclusive result from
193
+ # blocking the merge queue in the first place.
194
+ #
195
+ # The relative path is deliberate. This job's working-directory is
196
+ # apps/frontend, which is exactly the tree to audit, and the script
197
+ # audits its own cwd — it is byte-identical to biffo-template's copy
198
+ # and to every other satellite's, distributed by that repo's
199
+ # shared-sync.sh, so it cannot assume a layout. Do not edit it here;
200
+ # edit it upstream.
201
+ run: sh ../../scripts/js-dependency-audit.sh
202
+
173
203
  python:
174
204
  name: Python (lint, types, test, security)
175
205
  runs-on: ${{ vars.RUNNER_LABEL || 'ubuntu-latest' }}
@@ -178,16 +208,14 @@ jobs:
178
208
  run:
179
209
  working-directory: services/api
180
210
  steps:
181
- # `fetch-depth: 0` matches the root repo's own `python` job (#1692) and is
182
- # required by the Dependency audit step below: py-dependency-audit.sh's
183
- # pre-existing-vs-introduced comparison (#1673) only activates when
184
- # `origin/${GITHUB_BASE_REF}` resolves locally, which a shallow (depth-1,
185
- # single-ref) checkout never provides. Without this, every finding blocks,
186
- # identical to pre-#1673 behaviour, on every repo scaffolded from this
187
- # skeleton (biffo-template#1803).
211
+ # `fetch-depth: 0` is no longer required here (#1882): it existed
212
+ # solely for py-dependency-audit.sh's pre-existing-vs-introduced
213
+ # comparison (#1673), which needed `origin/${GITHUB_BASE_REF}` to
214
+ # resolve locally -- that step, and the same full-depth checkout it
215
+ # needs, moved to the `python-audit` job below when the audit was
216
+ # split out of this required job. Nothing remaining in this job reads
217
+ # `origin/` state, so the default shallow checkout is correct here now.
188
218
  - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5
189
- with:
190
- fetch-depth: 0
191
219
  - uses: astral-sh/setup-uv@v5
192
220
  with:
193
221
  enable-cache: true
@@ -248,13 +276,6 @@ jobs:
248
276
  with:
249
277
  name: bandit-report
250
278
  path: services/api/bandit-report.json
251
- - name: Dependency audit
252
- if: ${{ !cancelled() }}
253
- # Same treatment as the JS job's Dependency audit above: fails on a real
254
- # advisory, INCONCLUSIVE on an unreachable PyPI/OSV (#591, #743). cwd is
255
- # services/api, which is the environment `uv sync` installed and so the
256
- # one to audit.
257
- run: sh ../../scripts/py-dependency-audit.sh
258
279
  - name: Routing smoke test — self-test
259
280
  if: ${{ !cancelled() }}
260
281
  # Not exercising this repo's own deployment (CI has none to reach) —
@@ -340,6 +361,39 @@ jobs:
340
361
  fi
341
362
  echo "PASS: every scripts/*.test.sh guard in this repo has a caller."
342
363
 
364
+ # Split out of the `python` job deliberately (biffo-template#1882, mirroring
365
+ # #1880/#1881's identical JS-side fix): `pip-audit`'s advisory lookups are
366
+ # exactly as registry-dependent and chronically unreliable as `pnpm audit`'s
367
+ # were. `python` (required) no longer runs this step, so a registry-side
368
+ # advisory event can never again block that job; this job runs the exact
369
+ # same script informationally on every push/PR (`continue-on-error: true`)
370
+ # and is deliberately NOT part of DEFAULT_STATUS_CHECKS/SIBLING_STATUS_CHECKS.
371
+ python-audit:
372
+ name: Python Dependency Audit (non-blocking, #1882)
373
+ runs-on: ${{ vars.RUNNER_LABEL || 'ubuntu-latest' }}
374
+ timeout-minutes: 20
375
+ continue-on-error: true
376
+ defaults:
377
+ run:
378
+ working-directory: services/api
379
+ steps:
380
+ - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5
381
+ with:
382
+ fetch-depth: 0
383
+ - uses: astral-sh/setup-uv@v5
384
+ with:
385
+ enable-cache: true
386
+ - run: uv sync --all-groups --locked
387
+ - name: Dependency audit
388
+ if: ${{ !cancelled() }}
389
+ # Same treatment as the JS job's Dependency audit: fails on a real
390
+ # advisory, INCONCLUSIVE on an unreachable PyPI/OSV (#591, #743) —
391
+ # and this job's own non-required status is what stops that
392
+ # inconclusive result from blocking the merge queue in the first
393
+ # place. cwd is services/api, which is the environment `uv sync`
394
+ # installed and so the one to audit.
395
+ run: sh ../../scripts/py-dependency-audit.sh
396
+
343
397
  security-secrets:
344
398
  name: Secret Scan
345
399
  runs-on: ${{ vars.RUNNER_LABEL || 'ubuntu-latest' }}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@biffo/cli",
3
- "version": "0.301.22",
3
+ "version": "0.301.24",
4
4
  "description": "Biffo project scaffolding CLI",
5
5
  "license": "MIT",
6
6
  "type": "module",