Uh oh!
There was an error while loading. Please reload this page.
fix(editor,markdown): complete the vite alias tables so the per-package test task resolves - #4218
Merged
Merged
Conversation
…ge test task resolves `packages/plugin-editor/vite.config.ts` and `packages/plugin-markdown/vite.config.ts` alias `@object-ui/fields` (and friends) to source, but not the workspace packages those sources in turn import. Both packages' `test.setupFiles` pull in the root `vitest.setup.tsx`, which imports the components / fields / plugin-dashboard / plugin-grid barrels, so the setup graph reaches `@object-ui/providers` from `packages/fields/src/widgets/FileField.tsx`. With no alias entry that specifier falls through to the workspace package's `exports` (`dist`), and `providers` is not in either package's `^build` closure, so `turbo run test` failed with `Failed to resolve import "@object-ui/providers"`. Completes both tables with every `@object-ui/*` specifier the aliased-to-source trees reach, in the root `vitest.config.mts` ordering: i18n, sdui-parser, providers, data-objectstack, mobile, permissions. Fixes#4194 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017Qqyix2QcnpUC9XeYVDzx3
The latest updates on your projects. Learn more about Vercel for GitHub. |
Contributor
✅ Console Performance Budget
📦 Bundle Size Report
Size Limits
|
yinlianghui
marked this pull request as ready for review
August 11, 2026 03:36
Uh oh!
There was an error while loading. Please reload this page.
yinlianghui pushed a commit
that referenced
this pull request
Aug 11, 2026
Picks up the rc.6 spec bump (#4169) and the vite alias completion (#4218) so this branch is verified against the same @objectstack/spec CI resolves. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017Qqyix2QcnpUC9XeYVDzx3
This was referenced Aug 11, 2026
Merged
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 freeto 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.
Fixes#4194
Premise check (first, before any edit)
Reproduced on the branch tip off
origin/main@433ff9fd3— the premise holds, unchanged after 8+ hours:Mechanism
Both configs alias
@object-ui/fields(and friends) to source, but not the workspace packages those sources in turn import.test.setupFilespulls in the rootvitest.setup.tsx, which imports the components / fields / plugin-dashboard / plugin-grid barrels, so the setup graph reaches@object-ui/providersfrompackages/fields/src/widgets/FileField.tsx. With no alias entry the specifier falls through to the workspace package'sexports(i.e.dist) — andprovidersis not in either package's^buildclosure, so nothing ever creates thatdist.Masked in day-to-day CI because
ci.ymlruns the canonical root Vitest (sharded), not per-packageturbo run test.Fix — the alias table completed, not the reachable graph trimmed
Per #3240's ruled direction applied by analogy. The card asked for all gaps, not just
providers, so the reachable set was measured rather than guessed: every@object-ui/*specifier imported by the src trees the aliases already point at.Six entries added to each config, in the root
vitest.config.mtsordering:providersfields/src/widgets/FileField.tsx,ImageField.tsxdistmobileplugin-grid/src/ObjectGrid.tsxdistpermissionsplugin-grid/src/ObjectGrid.tsxdisti18ncomponents/src/custom/navigation-overlay.tsxdistsdui-parsercomponents/src/renderers/layout/page.tsxdistdata-objectstackreact/src/context/AppShellContext.tsxdistThe three "silent divergence" rows were green only because those packages happen to sit in the
^buildclosure, so the per-package path was testingdistwhere the canonical root run testssrc— the two-verdicts-for-one-file shape #3240 documents.@object-ui/types/zodwas deliberately not added: the root table needs it ahead of@object-ui/typesbecause of Vite's prefix matching, but nothing in the reach set imports it, and the runs are green without it.Sweep: plugin-markdown has the same gap
The card asked to check it; it was red too, on the same signature, all 4 files:
Same fix applied, in this PR, with its own evidence below.
Evidence
Red-before / green-after of the same command, per package:
Note the before/after is not merely red-to-green: it was
0 test/no tests(the suite could not load at all), and it is now 7 and 29 tests actually executing.Canonical CI path unregressed, and the two paths now agree on the count (7 + 29 = 36):
Reverse verification
Predicted direction RED (the ordinary one — the resolve failure returns), with its precondition recorded first, since a
providers/distcreated by some unrelated build would have made the revert falsely green:Confirmed, then restored.
Changeset
Let the gate arbitrate rather than guessing, as the card directed. Verdict — none owed, and no
skip-changesetlabel (#3724):Other gates:
node scripts/check-control-bytes.mjsOK (3920 files);eslinton both changed files exits 0.Relationship to #3240's own execution
This is the targeted un-redding of two packages, not a move away from #3240's ruling. That ruling (Direction A — delete the 17 per-package vitest configs, root config becomes the single entry) is explicitly deferred to a dedicated quiet-window batch, and neither package here is among those 17: both carry a
vite.config.tswith atestblock, not avitest.config.ts. When A executes, both of these tables disappear along with the divergence they are patching.Generated by Claude Code