Conversation
closes #8791
📝 WalkthroughWalkthroughThis pull request fixes a race condition in dev mode by adding the Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Pull request overview
Fixes the tsdown --watch dev workflow in the monorepo by preventing dist/ from being cleaned on watcher startup (avoiding a turbo ^build/dev race), while also aligning several package build/export configurations.
Changes:
- Add
--no-cleantotsdown --watchdev scripts across packages andapps/live. - Enable
exports: truein severaltsdown.config.tsfiles and simplify packageexportsmaps. - Update root pnpm settings and refresh
pnpm-lock.yamlresolutions.
Reviewed changes
Copilot reviewed 21 out of 22 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
pnpm-lock.yaml |
Lockfile updates reflecting dependency graph/resolution changes (incl. tsdown/unrun and transitive bumps). |
package.json |
Expands pnpm.onlyBuiltDependencies to include additional native/binary deps. |
apps/live/package.json |
Adds --no-clean to tsdown --watch dev script while keeping --onSuccess behavior. |
packages/utils/tsdown.config.ts |
Enables tsdown exports generation. |
packages/utils/package.json |
Simplifies exports and updates dev script to --no-clean. |
packages/ui/tsdown.config.ts |
Enables tsdown exports generation. |
packages/ui/package.json |
Simplifies exports and updates dev script to --no-clean. |
packages/types/package.json |
Updates dev script to tsdown --watch --no-clean. |
packages/tailwind-config/package.json |
Moves postcss + @tailwindcss/postcss to dependencies. |
packages/shared-state/tsdown.config.ts |
Enables tsdown exports generation. |
packages/shared-state/package.json |
Simplifies exports and updates dev script to --no-clean. |
packages/services/tsdown.config.ts |
Enables tsdown exports generation. |
packages/services/package.json |
Simplifies exports and updates dev script to --no-clean. |
packages/propel/package.json |
Updates dev script to tsdown --watch --no-clean. |
packages/logger/package.json |
Updates dev script and adds inlinedDependencies. |
packages/i18n/tsdown.config.ts |
Enables tsdown exports generation. |
packages/i18n/package.json |
Simplifies exports and updates dev script to --no-clean. |
packages/hooks/tsdown.config.ts |
Enables tsdown exports generation. |
packages/hooks/package.json |
Simplifies exports and updates dev script to --no-clean. |
packages/editor/package.json |
Updates dev script to tsdown --watch --no-clean. |
packages/decorators/package.json |
Updates dev script and adds inlinedDependencies. |
packages/constants/package.json |
Updates dev script to tsdown --watch --no-clean. |
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (4)
packages/shared-state/package.json (1)
33-33: Consider usingcatalog:forzoddependency.This dependency uses a pinned version
^3.22.2instead ofcatalog:. As per coding guidelines, external dependencies should usecatalog:for consistency.Suggested change
- "zod": "^3.22.2" + "zod": "catalog:"🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@packages/shared-state/package.json` at line 33, The package.json entry for the zod dependency currently pins a semver version ("zod": "^3.22.2"); update this dependency to use the catalog specifier instead (replace the semver value for "zod" with the appropriate "catalog:" reference) so it aligns with the project's dependency sourcing guideline; locate the "zod" key in packages/shared-state/package.json and swap the version string to the catalog: form used elsewhere in the repo.packages/decorators/package.json (1)
27-27: Consider usingcatalog:for external devDependencies.Several devDependencies use pinned versions instead of
catalog::
@types/express:4.17.23@types/ws:^8.5.10reflect-metadata:^0.2.2As per coding guidelines, external dependencies should use
catalog:for consistency across the monorepo.Also applies to: 29-30
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@packages/decorators/package.json` at line 27, Update the devDependencies in package.json to use catalog: references instead of pinned versions for the external packages mentioned; replace "@types/express": "4.17.23", "@types/ws": "^8.5.10" and "reflect-metadata": "^0.2.2" with the corresponding "catalog:..." entries used by the monorepo (ensure the keys match the root catalog names), and apply the same change for the other two entries noted on lines 29-30 so all external devDependencies reference the shared catalog.packages/i18n/package.json (1)
27-27: Consider usingcatalog:forintl-messageformatdependency.This dependency uses a pinned version
^10.7.11instead ofcatalog:. As per coding guidelines, external dependencies should usecatalog:for consistency.Suggested change
- "intl-messageformat": "^10.7.11" + "intl-messageformat": "catalog:"🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@packages/i18n/package.json` at line 27, Replace the pinned version string for the dependency "intl-messageformat" in packages/i18n's package.json with the catalog: notation; locate the "intl-messageformat" entry and change its value from "^10.7.11" to the appropriate "catalog:..." specifier used by your project's dependency catalog to ensure consistency with other external dependencies.packages/services/package.json (1)
28-28: Consider usingcatalog:forfile-typedependency.This dependency uses a pinned version
^21.3.1instead ofcatalog:. As per coding guidelines, external dependencies should usecatalog:for consistency across the monorepo.Suggested change
- "file-type": "^21.3.1" + "file-type": "catalog:"🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@packages/services/package.json` at line 28, Replace the pinned version for the file-type dependency in package.json with the catalog specifier: locate the "file-type" entry and change its version string from "^21.3.1" to use the monorepo catalog syntax (e.g., "catalog:file-type") so the package resolves via the shared catalog; update the dependency entry for "file-type" accordingly and save package.json.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@packages/logger/package.json`:
- Around line 36-39: Remove the unsupported "inlinedDependencies" section from
package.json and, if you intended to control bundling of specific types, move
that configuration into tsdown.config.ts using the deps.onlyBundle option;
specifically delete the inlinedDependencies object and add an entry like
deps.onlyBundle = ["@types/express", "@types/express-serve-static-core"] (or
equivalent) in tsdown.config.ts so tsdown will actually process those packages.
---
Nitpick comments:
In `@packages/decorators/package.json`:
- Line 27: Update the devDependencies in package.json to use catalog: references
instead of pinned versions for the external packages mentioned; replace
"@types/express": "4.17.23", "@types/ws": "^8.5.10" and "reflect-metadata":
"^0.2.2" with the corresponding "catalog:..." entries used by the monorepo
(ensure the keys match the root catalog names), and apply the same change for
the other two entries noted on lines 29-30 so all external devDependencies
reference the shared catalog.
In `@packages/i18n/package.json`:
- Line 27: Replace the pinned version string for the dependency
"intl-messageformat" in packages/i18n's package.json with the catalog: notation;
locate the "intl-messageformat" entry and change its value from "^10.7.11" to
the appropriate "catalog:..." specifier used by your project's dependency
catalog to ensure consistency with other external dependencies.
In `@packages/services/package.json`:
- Line 28: Replace the pinned version for the file-type dependency in
package.json with the catalog specifier: locate the "file-type" entry and change
its version string from "^21.3.1" to use the monorepo catalog syntax (e.g.,
"catalog:file-type") so the package resolves via the shared catalog; update the
dependency entry for "file-type" accordingly and save package.json.
In `@packages/shared-state/package.json`:
- Line 33: The package.json entry for the zod dependency currently pins a semver
version ("zod": "^3.22.2"); update this dependency to use the catalog specifier
instead (replace the semver value for "zod" with the appropriate "catalog:"
reference) so it aligns with the project's dependency sourcing guideline; locate
the "zod" key in packages/shared-state/package.json and swap the version string
to the catalog: form used elsewhere in the repo.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 488180ed-0a13-4856-a427-a0050d2dca8b
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (21)
apps/live/package.jsonpackage.jsonpackages/constants/package.jsonpackages/decorators/package.jsonpackages/editor/package.jsonpackages/hooks/package.jsonpackages/hooks/tsdown.config.tspackages/i18n/package.jsonpackages/i18n/tsdown.config.tspackages/logger/package.jsonpackages/propel/package.jsonpackages/services/package.jsonpackages/services/tsdown.config.tspackages/shared-state/package.jsonpackages/shared-state/tsdown.config.tspackages/tailwind-config/package.jsonpackages/types/package.jsonpackages/ui/package.jsonpackages/ui/tsdown.config.tspackages/utils/package.jsonpackages/utils/tsdown.config.ts
closes #8791
Description
Type of Change
Screenshots and Media (if applicable)
Test Scenarios
References
Summary by CodeRabbit
Release Notes
@parcel/watcher,@swc/core,esbuild, andmsgpackr-extract