Skip to content

fix(ci): restore a runnable required gate - #35

Merged
chh-ay merged 2 commits into
developfrom
fix/postcss-path-traversal-advisory
Jul 26, 2026
Merged

fix(ci): restore a runnable required gate#35
chh-ay merged 2 commits into
developfrom
fix/postcss-path-traversal-advisory

Conversation

@chh-ay

@chh-ay chh-ay commented Jul 26, 2026

Copy link
Copy Markdown
Owner

Problem

Required CI had two independent permanent blockers:

  1. postcss@8.5.16 is covered by GHSA-r28c-9q8g-f849, so Preflight failed on every branch, including unchanged develop.
  2. Matched Zero-Regression Performance unconditionally targeted sheetwrite-perf-i9-12900h-cachyos, while the repository runner API reports total_count: 0. GitHub therefore queued the job forever, and Required CI could never start because it required PERFORMANCE=success.

Neither fix can merge independently: the dependency-only PR hangs on the absent runner, while the workflow-only PR fails the dependency audit. This bootstrap PR contains both unblockers.

Change

  • Resolve every transitive PostCSS consumer to patched 8.5.23 through a root override. PostCSS remains transitive; no allowlist exception.
  • Remove the unavailable self-hosted timing-comparison job and its unconditional Required CI dependency.
  • Keep the deterministic benchmark smoke and safety ceilings already run by bench:verify in ordinary CI.
  • Keep the ten-round matched comparison as a documented, fail-closed local protocol. The harness, baseline comparator, raw artifacts, and regression thresholds are unchanged.
  • Update workflow contracts and the generated performance guide to describe the actual policy.

A single non-ephemeral workstation is not a reliable merge prerequisite. Timing evidence remains available when performance-sensitive work needs it, without letting missing runner registration deadlock every unrelated pull request.

Verification

  • bun run audit:js — 0 findings
  • bun run test:tooling — 134 pass, 0 fail
  • targeted docs/workflow contracts — 40 pass, 0 fail
  • bun run docs:check — passed
  • bun run changeset:ci — passed; the empty changeset records no package bump
  • bun run lint — no errors; one pre-existing warning for the 2 MiB conformance corpus
  • local matched harness build — passed
  • full local capture — 10/10 rounds for both engines, 0 failed cells

The fail-closed comparator then refused to issue a timing verdict, as designed, because this PR changes bun.lock for the patched PostCSS resolution. Runner identity, OS, CPU, Bun, Node, Chromium, power mode, and concurrency all match the baseline; the reported mismatch is limited to harness.sources.bun.lock and its aggregate digest. No baseline was rewritten or weakened to make this pass. This is dependency/harness staleness, not a measured regression result.

The workflow now has no job referencing sheetwrite-perf-i9-12900h-cachyos; branch protection requires only the aggregate Required CI, which can settle using GitHub-hosted jobs.

…sory

GHSA-r28c-9q8g-f849 (high, CVSS 7.5) covers postcss <= 8.5.17: a
`sourceMappingURL` comment in parsed CSS is resolved with `path.join`
and read from disk, so `../` segments escape the stylesheet's directory
and any reachable `.map` file can be disclosed through `result.map`.
The advisory reached the database on 2026-07-24 and has been failing
`audit:js` on every branch since, blocking all pull requests.

postcss is transitive here and only ever parses our own stylesheets, so
the practical exposure is low — but the audit is fail-closed by policy
and the fix costs nothing. An override rather than a direct dependency:
nothing in this repository imports postcss, and declaring it would
misrepresent the dependency graph.
@vercel

vercel Bot commented Jul 26, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
sheetwrite Ready Ready Preview, Comment Jul 26, 2026 10:31am

@chh-ay chh-ay changed the title fix(deps): take the patched postcss for the source-map traversal advisory fix(ci): restore a runnable required gate Jul 26, 2026
@chh-ay
chh-ay force-pushed the fix/postcss-path-traversal-advisory branch from 20cf1fa to ad36cdd Compare July 26, 2026 10:11
Required CI waited unconditionally for a runner label backed by zero
registered runners, so every pull request remained queued forever. A
single non-ephemeral workstation is not a reliable merge prerequisite.

Keep deterministic benchmark smoke and safety ceilings in ordinary CI.
Keep the ten-round matched protocol as a documented, fail-closed local
command for deliberate performance work, but remove it from the required
workflow and its contract assertions.
@chh-ay
chh-ay force-pushed the fix/postcss-path-traversal-advisory branch from ad36cdd to e6e4a6e Compare July 26, 2026 10:23
@chh-ay

chh-ay commented Jul 26, 2026

Copy link
Copy Markdown
Owner Author

CI follow-up on the corrected workflow run: Unit Tests & Coverage exposed a reproducible default-timeout bug in matched-formula-evidence.test.ts. The success path validates the complete canonical bootstrap artifact and takes ~8.0–8.9s locally; Bun's default is 5s. It failed locally 3/3 under the default (7.97–8.31s), then passed 3/3 with an explicit ceiling. The test now has a 60s timeout: generous enough for slower hosted CPUs, still bounded against a genuine hang, and no added happy-path runtime. Final targeted run: 9 pass / 0 fail in 8.86s.

@chh-ay
chh-ay merged commit 138e24c into develop Jul 26, 2026
11 checks passed
@chh-ay
chh-ay deleted the fix/postcss-path-traversal-advisory branch July 26, 2026 10:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant