chore(deps): sync the three upstream dependency commits - #524
Merged
Conversation
Ports `9c99bf16`, `9d46fc7e` and `20c1954d` — a contiguous run, taken in one PR per PORTING.md §6 4b, because separating them would rewrite the lockfile three times over the same packages. Not only versions. `9c99bf16` carries a runtime fix that exists because of one of its own bumps: `validateSchema` now unwraps its argument with `toRaw`, because Zod 4.5 resolves `~standard` through a lazy getter that captures `this`, so a schema held in reactive state arrives as a Vue proxy and the getter reads non-configurable `_zod` internals through it. Ported verbatim against an identical pre-image. This fork was on zod ^4.4.3, where the bug does not bite — it goes live with the ^4.5.4 bump in the same commit, so the fix arrives with its trigger rather than speculatively. Versions follow the delta rule: bump only where our pre-image matched upstream's. `nuxt-schema-org` stays at ^6.2.1 (a recorded dep-parity exception), and `packageManager` stays put because upstream's pre-image is not ours. `pnpm-workspace.yaml` gets one of upstream's two removals, each decided by measurement: - `minimumReleaseAgeExclude` removed. Verified, not assumed: without the block, `pnpm install` still reports the lockfile passing supply-chain policies, so `@nuxtjs/mdc@0.23.1` is old enough on its own now. Dropping a spent exception tightens the policy. - The `@nuxt/content>@nuxtjs/mdc` override kept, against upstream. Upstream can drop it having moved to content 3.16.0; here removing it demonstrably resolves two mdc copies, because the root peer `@nuxt/content: ^3.0.0` — deliberately wide — sits at 3.14.0. Its comment now records that. `20c1954d` moves 1316 snapshot lines. What reka 2.10.4 changes was derived from upstream's own diff rather than its notes, and our regenerated snapshots were checked against it rather than trusted: the same three deltas and nothing else. The RadioGroup one is a correction, not a loss — `aria-label` carried the item's *value* and won over the wrapping label, so a radio reading "Option 1" announced itself as "1". Also corrects the ledger guard added yesterday in #515. It asserted that no entry carries `pending-merge`, which §6 step 4 requires them to, so it went red on the very next port and would have blocked the process rather than guarding it. The real invariant is ordering: pending entries must form a suffix. Gate: dev:prepare, lint, typecheck, build (3.86 MB), test (340 files, 7694 passed), test:module.
This was referenced Sep 1, 2026
IgorShevchik
added a commit
that referenced
this pull request
Sep 1, 2026
The four entries written during this run carried `pending-merge` in both `pr` and `b24ui_sha`, because the entry goes in with the port before its PR has a number or a squash SHA. Both PRs have now merged: - `9c99bf16`, `9d46fc7e`, `20c1954d` → #524 / `1e33c0a2` - `e791d302` → #525 / `0a8c87ca` Bookkeeping only — no entry is added, the cursor does not move, and no decision changes. This is also the first run through the corrected ordering guard from #524: its previous form forbade `pending-merge` outright and would have blocked this exact sequence, while the corrected form allowed the four-entry tail during the port and now sees it emptied.
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.
Ports
9c99bf16,9d46fc7eand20c1954d— a contiguous run, taken in one PR per §6 4b, because separating them would rewrite the lockfile three times over the same packages. Cursor moves to20c1954d; one upstream commit remains in the queue (e791d302,fix(Select/SelectMenu): add responsive text size), which is a component change and gets its own PR.9c99bf16— not only versionsRenovate's title says dependencies; the commit carries a runtime fix that exists because of one of its own bumps:
Zod 4.5 resolves
~standardthrough a lazy getter that capturesthis. A schema held in reactive state arrives as a Vue proxy, so the getter reads the non-configurable_zodinternals through it — violating the proxy invariant and throwing. Ported verbatim against an identical pre-image atform.ts:80.Worth stating plainly: this fork was on
zod ^4.4.3, where the bug does not bite. It goes live with the^4.5.4bump in the same commit, which is also taken — so the fix arrives with its trigger rather than speculatively.Versions follow the delta rule (bump only where our pre-image matched upstream's). Left alone with reasons:
nuxt-schema-org(ours^6.2.1, a recordeddep-parityexception — any bump dragsnuxt-site-config4.2.3, which calls two functions absent from@nuxt/kit@4.5.2);packageManager(ourspnpm@11.20.0, upstream's pre-image is not ours); and packages this fork does not carry.pnpm-workspace.yaml: one removal taken, one refusedUpstream deletes both its mdc override and its whole
minimumReleaseAgeExclude. Decided separately, by measurement:minimumReleaseAgeExclude— removedpnpm installstill reports "Lockfile passes supply-chain policies (1794 entries)".@nuxtjs/mdc@0.23.1is simply old enough now. Dropping a spent exception tightens the policy.@nuxt/content>@nuxtjs/mdc— kept, against upstream^0.23.1vs 3.15's^0.22.2). Tested here instead of inherited: remove it, reinstall, read the lockfile — two mdc versions appear,0.22.2alongside0.23.1, exactly the failure the comment describes. The old copy comes from the root peer@nuxt/content: ^3.0.0, deliberately wide so consumers are not forced onto one minor, which resolves to 3.14.0.Method note, because the first attempt got it wrong. Counting copies with
find node_modules/.pnpmlies — the store keeps directories from earlier installs, and it showed a0.22.2the lockfile did not contain. The conclusion above was re-derived frompnpm-lock.yaml, which is the resolution.9d46fc7e— tiptap, plus a companion upstream has no need for25 declarations across five manifests move
^3.30.2 → ^3.30.5. Ourpnpm-workspace.yamlalso carries a'@tiptap/pm': ^3.30.2override whose comment ends "Keep in step with the @tiptap/* family version in package.json" — this is the commit that triggers that instruction. Left behind it would still resolve, but the pin would no longer say what it means. Verified: the lockfile holds exactly one@tiptap/pm@3.30.5.20c1954d— reka 2.10.4, and 1316 snapshot linesWhat 2.10.4 changes was derived from upstream's own snapshot diff rather than its release notes, by matching each
-/+pair and extracting the differing substring. Three changes:aria-label="<value>"removed from the radiobutton<div>inside the trigger becomes a<span>aria-controls="reka-select-content-…"removed from the triggerThe RadioGroup one is a correction, not a loss, and that was worth establishing before accepting it. Each radio sits inside its
<label data-slot="item">, which also holds the visible<span>Option 1</span>— an implicit association that already names it. Whilearia-labelwas present it won over that association, and what it carried was the item's value. A radio whose visible text read "Option 1" announced itself as "1". Removing it hands the name back to the visible text.Our snapshots were regenerated and then checked rather than trusted, since
-urewrites a real regression as readily as an expected change. The same extraction against our own diff gives the same three deltas and nothing else — and one further check, because a per-line diff can miss a deletion that lands everywhere at once: the set of attribute names in each of the three files is identical before and after.A correction to yesterday's guard
test/utils/sync-ledger.spec.ts, added in #515, asserted "no entry carriespending-merge". §6 step 4 requires them to: the entry is written in the same commit as the port, before its PR has a number or a squash SHA. It went red on the very next port — this one — and as written would have blocked the documented process rather than guarding it.The real invariant is ordering. Reconciliation happens in sequence, so pending entries must form a suffix; one sitting behind a reconciled entry means a bookkeeping PR was skipped, and that is the failure that is otherwise invisible. Three mutations verified: a pending entry in the middle goes red, this PR's three-entry tail stays green, a fully reconciled ledger stays green.
Verification
dev:prepare·lint·typecheck·build(3.86 MB) ·test— 340 files, 7694 passed, 6 skipped ·test:module.pnpm install --frozen-lockfilepasses against the committed lockfile.Generated by Claude Code