Skip to content

fix(ci): bump advisory deps to restore green CI (BUG-2278)#997

Merged
xarmian merged 1 commit into
mainfrom
fix/bug-2278-ci-dep-advisories
Jul 22, 2026
Merged

fix(ci): bump advisory deps to restore green CI (BUG-2278)#997
xarmian merged 1 commit into
mainfrom
fix/bug-2278-ci-dep-advisories

Conversation

@xarmian

@xarmian xarmian commented Jul 22, 2026

Copy link
Copy Markdown
Collaborator

What

Two newly-published upstream advisories postdate the last green main run and were failing the Go and Web CI jobs on every PR. Both are DoS-class in parsing/text deps — no product code change.

Go job — govulncheck (binary mode)

  • GO-2026-5970: infinite loop on invalid input in golang.org/x/text. Bump golang.org/x/text v0.38.0 → v0.39.0 via go get + go mod tidy. go mod tidy pulls the coordinated x/* release train it requires (crypto/term/mod/net/sys/tools). govulncheck -mode binary: 0 called.

Web job — npm audit --audit-level=high --omit=dev

  • linkify-it <=5.0.1 (high, GHSA-v245-v573-v5vm) + dompurify + markdown-it. npm audit fix (lockfile-only). Fixes all 3 advisories (audit now reports 0 vulns). As semver-compatible collateral within existing caret ranges it also refreshed the build toolchain (vite 8.0.11→8.1.5, @sveltejs/kit 2.59.1→2.70.1, rolldown rc.18→1.1.5). Tiptap exact-pins held (check:tiptap-pins green).
  • Also tightened the existing linkify-it security override floor ^5.0.1^5.0.2 so it expresses the patched minimum for this advisory rather than relying on npm's latest-in-range resolution. Lockfile was already at 5.0.2, so npm ci stays in sync (verified).

Verification

  • Go: go vet, go build, govulncheck -mode binary, go test ./... — all green
  • Web: npm ci, check:tiptap-pins, npm audit --audit-level=high --omit=dev (0 vulns), npm run build, npm run check (0 errors), npm run test (464 passed) — all green
  • Independent Codex review: CLEAN

Closes BUG-2278.

https://claude.ai/code/session_01EZ6yr6pAUFb1uffan912ra

Two newly-published upstream advisories postdate the last green main run
and were failing the Go and Web CI jobs on every PR. Both are DoS-class
in parsing/text deps; no product code change.

Go job (govulncheck binary mode):
- GO-2026-5970: infinite loop on invalid input in golang.org/x/text.
  Bump golang.org/x/text v0.38.0 -> v0.39.0 via `go get` + `go mod tidy`.
  go mod tidy pulls the coordinated x/* release train it requires
  (crypto/term/mod/net/sys/tools). govulncheck -mode binary: 0 called.

Web job (npm audit --audit-level=high --omit=dev):
- linkify-it <=5.0.1 (high, GHSA-v245-v573-v5vm) + dompurify + markdown-it.
  `npm audit fix` (lockfile-only). Fixes the 3 advisories (audit now
  reports 0 vulns). As semver-compatible collateral within existing caret
  ranges it also refreshed the build toolchain (vite 8.0.11->8.1.5,
  @sveltejs/kit 2.59.1->2.70.1, rolldown rc.18->1.1.5). Tiptap exact-pins
  held (check:tiptap-pins green).
- Also tighten the existing linkify-it security override floor
  ^5.0.1 -> ^5.0.2 so it expresses the patched minimum for THIS advisory
  rather than relying on npm's latest-in-range resolution. Lockfile was
  already at 5.0.2, so npm ci stays in sync (verified).

Gates: go vet, go build, govulncheck -mode binary, go test ./... all green;
web npm ci, check:tiptap-pins, audit, build, check, test (464) all green.
Independent Codex review: CLEAN.

Claude-Session: https://claude.ai/code/session_01EZ6yr6pAUFb1uffan912ra
@xarmian
xarmian merged commit 0f48bce into main Jul 22, 2026
5 of 6 checks passed
@xarmian
xarmian deleted the fix/bug-2278-ci-dep-advisories branch July 22, 2026 01:16
xarmian added a commit that referenced this pull request Jul 22, 2026
…ocus (#1001)

Completes the deferred upgrade from BUG-2278. The advisory-fix PR #997 had
dragged this toolchain in via `npm audit fix`; #999 reverted it because it
regressed the pane-focus E2E suite. Root-caused (see BUG-2278 residual): the
trigger is @sveltejs/kit 2.66.0 (PR #15452), which blurs the active element
to <body> BEFORE the component update during navigation. On the pane's
popstate pop path (handlePaneBack -> history.go(-1), which can't carry
keepFocus), that early blur (focusout only, no focusin) makes Kit's end-of-nav
reset_focus() body.focus() a no-op emitting no focusin — starving PaneHost's
focusin-only backstop, so focus strands on <body>. (Drill path uses
goto({keepFocus:true}) and is unaffected — which is why only the 5 pop/ESC
focus tests failed. vite/rolldown/svelte are not implicated.)

Fix: re-assert focusPaneRegion() after the popstate settles (next frame, so
it runs after Kit's microtask-scheduled reset_focus), removing the dependency
on an incidental focusin(body). ~12 lines in paneHostController.ts; no-op when
the pane closed or focus already landed in-pane.

Toolchain: vite 8.0.11->8.1.5, @sveltejs/kit 2.59.1->2.70.1, rolldown
rc.18->1.1.5 (lockfile only; package.json caret ranges + advisory overrides
unchanged). Advisory deps stay at their patched versions (audit 0 prod vulns).

Verified on the bumped toolchain: the 5 previously-failing pane-focus tests
pass, full pane e2e 41 passed (the one flaky test, :160, is a PRE-EXISTING
flake on main that flakes on the reverted toolchain too and passes on retry),
web check (0 errors), test (464), build, tiptap-pins, npm ci all green.

Claude-Session: https://claude.ai/code/session_01EZ6yr6pAUFb1uffan912ra
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