chore(APP-1014): dependency cleanup — deps refresh, ultracite 7.10, CodeQL - #1358
Open
tyhonchik wants to merge 3 commits into
Open
chore(APP-1014): dependency cleanup — deps refresh, ultracite 7.10, CodeQL#1358tyhonchik wants to merge 3 commits into
tyhonchik wants to merge 3 commits into
Conversation
|
E2E results (preview) Smoke
|
tyhonchik
force-pushed
the
app-1014-dependency-cleanup-adopt-ultracite-794-htmlparser212-esm
branch
from
September 1, 2026 11:46
76cac49 to
ff99150
Compare
This was referenced Sep 1, 2026
tyhonchik
force-pushed
the
app-1014-dependency-cleanup-adopt-ultracite-794-htmlparser212-esm
branch
from
September 1, 2026 12:38
ff99150 to
9e5e538
Compare
tyhonchik
force-pushed
the
app-1014-dependency-cleanup-adopt-ultracite-794-htmlparser212-esm
branch
from
September 2, 2026 15:14
9e5e538 to
504e4a1
Compare
…odeQL pins Dependencies: - pnpm up -r across the catalog (gov-ui-kit 2.11.2, next 16.3.2, Sentry 10.71, react-query 5.102, ai 7.0.79, rhf 7.86); deepmerge-ts 7 -> 8 closes its stack-exhaustion advisory (GHSA-ggr8-5vv4-36mx); pnpm 11.21 -> 11.24. Audit is down to the known unfixable elliptic low. - New hold: @assistant-ui/tap at 0.9.12 — 0.9.13+ loops forever under the exact-pinned @assistant-ui/react 0.14.27 and crashes the widget suites. - The isomorphic-dompurify>jsdom 26 pin now documents its real reason (jsdom 27+ pulls ESM-only deps Jest cannot parse); the dead autoInstallTypes setting is dropped; the sanitize-html hold is removed as redundant — gov-ui-kit 2.11.2 pins it to exactly 2.17.5 upstream, so the htmlparser2@12 migration stays blocked until the kit unpins. Adaptations to upstream behavior changes: - gov-ui-kit interactive rows are now an overlay link/button — tests select rows by role; react-query dropped the promise field from observer results; rhf 7.86 added getErrors to UseFormReturn. - The AI SDK stopped surfacing merged-stream errors to the outer onError, so the assistant's failed-turn refund moved into the model-stream error handler behind an idempotent guard. ultracite 7.8.3 -> ^7.10.6: - New preset rules that contradict deliberate house patterns are disabled in biome.json next to the existing offs (noAwaitInLoops, noJsxPropsBind, noIncrementDecrement, useDestructuring, noUnnecessaryConditions, and the useSortedKeys assist — alphabetizing object literals reorders built URL query strings). Rules kept on are satisfied in code: interface property signatures, { cause } on rethrown errors, two test-only fixes. CI: linear/linear-release-action pinned to the v0.17.1 commit SHA, closing the four CodeQL unpinned-tag alerts.
Mechanical output of pnpm lint under the new preset: package.json manifests reordered to the npm-standard key order with sorted scripts, plus one useless trailing return dropped. No behavior changes — this commit is listed in .git-blame-ignore-revs. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
tyhonchik
force-pushed
the
app-1014-dependency-cleanup-adopt-ultracite-794-htmlparser212-esm
branch
from
September 2, 2026 15:50
504e4a1 to
07a488d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Dependency cleanup per APP-1014 plus the CodeQL backlog.
pnpm auditgoes 2 → 1 (the known elliptic low with no upstream patch); dedupe, peers, lint, type-check, tests andnext buildare all green on the final tree. Three commits: everything semantic, the mechanical formatter output, and the blame-ignore entry pointing at it.Changes
pnpm up -racross all workspaces, pnpm 11.21 → 11.24 — gov-ui-kit 2.11.2, Next 16.3.2, Sentry 10.71, react-query 5.102, ai 7.0.79, rhf 7.86, user-event 14.6.6. Major taken:deepmerge-ts7 → 8, closing its high stack-exhaustion advisory (GHSA-ggr8-5vv4-36mx, out of cooldown). Still deliberately held: typescript 5.9, framer-motion 12, changesets 2, jest-dom 6.9.1, @types/node 24, jsdom 29, vercel 58.4.4 + @vercel/oidc 3.8.1 (3.8.2–3.8.5 still ship without provenance), @coinbase/cdp-sdk 1.52.0 (upstream is still the broken 1.55.0). pnpm 11.25 is inside the 7-day cooldown, hence 11.24. The deadautoInstallTypesworkspace setting (never a real pnpm option; 11.24 started warning) is dropped.pointer-events-nonecontent, so two click tests now select the row by role; react-query 5.102 removedpromisefrom observer results and rhf 7.86 addedgetErrors(test generators updated); the AI SDK stopped surfacing merged-stream errors to the outercreateUIMessageStreamonError, which silently skipped the assistant's failed-turn refund — the refund moved into the model-stream error handler behind an idempotent guard, with logging following the original error.@assistant-ui/tapat 0.9.12 — 0.9.13+ loops forever in itsuseSyncExternalStoreshim under the exact-pinned@assistant-ui/react0.14.27 and crashes every widget suite. Re-check when the assistant-ui pins move.isomorphic-dompurify>jsdom: 26.1.0pin now carries its real reason (jsdom 27+ pulls ESM-only deps Jest cannot parse — verified by lifting it and watching 43 suites fail).noAwaitInLoops(sequential awaits in e2e polling/retry loops are intentional),noJsxPropsBind,noIncrementDecrement,useDestructuring(~26 pre-existing spots — a migration of its own),noUnnecessaryConditions(false positives onRegExp.execnull checks and mutable class fields), and theuseSortedKeysassist — the config already declined property sorting under its old name, and alphabetizing object literals reorders built URL query strings (15 tests caught it). Rules kept on are satisfied in code: interface property signatures,{ cause }on rethrown errors (UploadFileErrorforwardsErrorOptions), two test-only fixes. The resulting mechanical reformat is a separatestyle:commit listed in.git-blame-ignore-revs(now with comments; GitHub picks the file up automatically, locally it is onegit config blame.ignoreRevsFile .git-blame-ignore-revs, already documented in the app README).transformIgnorePatternsbefore taking the bump.linear/linear-release-action@v0to the v0.17.1 commit SHA in the house pin style. The two untrusted-checkout alerts on the release-finalize workflows are dismissed as accepted-by-design with comments: they run only for merged PRs (merging requires write access) fromrelease/*branches, and checking out the tested SHA rather than the merge commit is deliberate — the tag must point at the exact CI-tested commit.pnpm dedupe --checkpasses with no peer errors and noignoreMissinghacks. Verified, nothing to change.Linear: APP-1014
🤖 Generated with Claude Code