-
-
Notifications
You must be signed in to change notification settings - Fork 12
merge dev to main (v3.0.0-alpha.19) #149
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…ted (#144) * fix: issue with in memory distinct when distinct fields are not selected * addressing PR comments
…ibility with Prisma (#147) * fix: tighten up query input validation, fixed case-sensitivity compatibility with Prisma * update
Co-authored-by: ymc9 <104139426+ymc9@users.noreply.github.com>
* Update `better-sqlite3` version range * update lockfile --------- Co-authored-by: Yiming Cao <yiming@whimslab.io> Co-authored-by: ymc9 <104139426+ymc9@users.noreply.github.com>
Co-authored-by: ymc9 <104139426+ymc9@users.noreply.github.com>
WalkthroughThis update advances the version numbers of multiple packages from "3.0.0-alpha.18" to "3.0.0-alpha.19" and introduces significant enhancements to runtime type safety, filter logic, and validation schemas. It refines string filter behavior, count selection, and relation handling, adds provider-aware case sensitivity, and expands test coverage for filters and selection. Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~40 minutes Possibly related PRs
Poem
Note ⚡️ Unit Test Generation is now available in beta!Learn more here, or try it out under "Finishing Touches" below. ✨ Finishing Touches
🧪 Generate unit tests
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. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
Documentation and Community
|
|
Claude finished @ymc9's task —— View job Pull Request ReviewReviewing this dev → main merge for code quality, potential issues, performance, and security concerns. Todo List
Review SummaryThis PR merges dev to main with 6 commits containing version bumps, dependency updates, and important bug fixes. The changes are well-structured and address specific issues while maintaining compatibility. Key Changes Reviewed1. Version Management ✅
2. Dependency Updates ✅
3. Critical Bug Fixes 🔧Query Input Validation & Case Sensitivity (commit 3a49973)
In-Memory Distinct Operations (commit 6a62a2c)
Relation Count Selection (commit 192cc01)
4. Code Quality Assessment ✅Strengths:
Architecture:
5. Security Considerations 🔒Positive aspects:
No security vulnerabilities detected. 6. Performance Implications 📊Improvements:
7. Test Coverage 📋Strong test additions:
Potential Areas for Improvement
Recommendation✅ APPROVE - This PR is ready for merge. The changes are:
The bug fixes are particularly important for production stability, and the version consistency across packages ensures smooth deployment. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR merges development branch changes to main, incrementing the version number from 3.0.0-alpha.18 to 3.0.0-alpha.19 across all packages and implementing several runtime improvements.
- Version bump across all package.json files to alpha.19
- Enhanced string filtering with case sensitivity support for PostgreSQL
- Improved client API functionality for distinct queries and count operations
- Better error handling and type safety improvements in the runtime
Reviewed Changes
Copilot reviewed 26 out of 27 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| Multiple package.json files | Version increment from alpha.18 to alpha.19 |
| packages/runtime/src/client/query-utils.ts | Replace requireField with getField for safer field access |
| packages/runtime/src/client/crud/validator.ts | Enhanced validation schemas with strictObject and string filtering improvements |
| packages/runtime/src/client/crud/operations/base.ts | Improved distinct query handling and count JSON building |
| packages/runtime/src/client/crud/dialects/*.ts | Database dialect improvements for relation handling and count operations |
| packages/runtime/src/client/crud-types.ts | Enhanced type definitions for filtering with provider-specific features |
| packages/runtime/test/client-api/*.test.ts | Extended test coverage for distinct queries and provider-specific filtering |
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
Comments suppressed due to low confidence (3)
packages/runtime/package.json:78
- The version
^12.2.0for better-sqlite3 may not exist. As of my knowledge cutoff in January 2025, better-sqlite3 was at version 11.x. Please verify this version exists before merging.
"better-sqlite3": "^12.2.0",
packages/runtime/test/client-api/find.test.ts:867
- This test case is checking TypeScript compilation errors with @ts-expect-error but doesn't include an assertion. Consider adding an explicit test that verifies the runtime behavior or removes this if it's only for type checking.
client.comment.findFirst({
packages/runtime/test/client-api/find.test.ts:872
- Similar to the previous comment, this test case with @ts-expect-error doesn't include runtime assertions. Consider adding explicit verification of the expected behavior.
client.post.findFirst({
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
package.json (1)
3-3: Root version updated correctly.
Ensure you also tagv3.0.0-alpha.19and update the changelog before publishing.
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (26)
package.json(1 hunks)packages/cli/package.json(1 hunks)packages/common-helpers/package.json(1 hunks)packages/create-zenstack/package.json(1 hunks)packages/dialects/sql.js/package.json(1 hunks)packages/eslint-config/package.json(1 hunks)packages/ide/vscode/package.json(1 hunks)packages/language/package.json(1 hunks)packages/runtime/package.json(2 hunks)packages/runtime/src/client/crud-types.ts(4 hunks)packages/runtime/src/client/crud/dialects/base.ts(7 hunks)packages/runtime/src/client/crud/dialects/postgresql.ts(3 hunks)packages/runtime/src/client/crud/dialects/sqlite.ts(4 hunks)packages/runtime/src/client/crud/operations/base.ts(3 hunks)packages/runtime/src/client/crud/validator.ts(35 hunks)packages/runtime/src/client/query-utils.ts(1 hunks)packages/runtime/test/client-api/filter.test.ts(3 hunks)packages/runtime/test/client-api/find.test.ts(4 hunks)packages/sdk/package.json(1 hunks)packages/tanstack-query/package.json(1 hunks)packages/testtools/package.json(1 hunks)packages/typescript-config/package.json(1 hunks)packages/vitest-config/package.json(1 hunks)packages/zod/package.json(1 hunks)samples/blog/package.json(1 hunks)tests/e2e/package.json(1 hunks)
🧰 Additional context used
📓 Path-based instructions (2)
{packages,samples,tests}/**
📄 CodeRabbit Inference Engine (CLAUDE.md)
Packages are located in
packages/,samples/, andtests/
Files:
packages/language/package.jsonpackages/dialects/sql.js/package.jsonpackages/zod/package.jsonpackages/testtools/package.jsonpackages/runtime/package.jsonpackages/eslint-config/package.jsontests/e2e/package.jsonpackages/ide/vscode/package.jsonpackages/tanstack-query/package.jsonpackages/cli/package.jsonsamples/blog/package.jsonpackages/typescript-config/package.jsonpackages/create-zenstack/package.jsonpackages/vitest-config/package.jsonpackages/sdk/package.jsonpackages/common-helpers/package.jsonpackages/runtime/test/client-api/filter.test.tspackages/runtime/src/client/query-utils.tspackages/runtime/src/client/crud/dialects/sqlite.tspackages/runtime/test/client-api/find.test.tspackages/runtime/src/client/crud-types.tspackages/runtime/src/client/crud/dialects/base.tspackages/runtime/src/client/crud/operations/base.tspackages/runtime/src/client/crud/dialects/postgresql.tspackages/runtime/src/client/crud/validator.ts
tests/e2e/**
📄 CodeRabbit Inference Engine (CLAUDE.md)
E2E tests are in
tests/e2e/directory
Files:
tests/e2e/package.json
🧠 Learnings (11)
📚 Learning: `zenstack generate` compiles zmodel to typescript schema (`schema.ts`)...
Learnt from: CR
PR: zenstackhq/zenstack-v3#0
File: CLAUDE.md:0-0
Timestamp: 2025-08-04T08:43:33.161Z
Learning: `zenstack generate` compiles ZModel to TypeScript schema (`schema.ts`)
Applied to files:
packages/language/package.jsonpackage.jsonpackages/zod/package.jsonpackages/ide/vscode/package.jsonpackages/tanstack-query/package.jsonpackages/cli/package.jsonpackages/typescript-config/package.jsonpackages/create-zenstack/package.jsonpackages/vitest-config/package.jsonpackages/sdk/package.jsonpackages/runtime/src/client/crud/validator.ts
📚 Learning: language-first design: zmodel dsl compiles to typescript, not runtime code generation...
Learnt from: CR
PR: zenstackhq/zenstack-v3#0
File: CLAUDE.md:0-0
Timestamp: 2025-08-04T08:43:33.161Z
Learning: Language-First Design: ZModel DSL compiles to TypeScript, not runtime code generation
Applied to files:
packages/language/package.jsonpackages/runtime/src/client/crud/validator.ts
📚 Learning: schema-first approach with zmodel dsl extension of prisma schema language...
Learnt from: CR
PR: zenstackhq/zenstack-v3#0
File: CLAUDE.md:0-0
Timestamp: 2025-08-04T08:43:33.161Z
Learning: Schema-first approach with ZModel DSL extension of Prisma schema language
Applied to files:
packages/language/package.jsonpackages/runtime/src/client/crud-types.tspackages/runtime/src/client/crud/validator.ts
📚 Learning: zmodel schema (`schema.zmodel`) defines database structure and policies...
Learnt from: CR
PR: zenstackhq/zenstack-v3#0
File: CLAUDE.md:0-0
Timestamp: 2025-08-04T08:43:33.161Z
Learning: ZModel schema (`schema.zmodel`) defines database structure and policies
Applied to files:
packages/language/package.jsonpackages/runtime/src/client/crud/validator.ts
📚 Learning: kysely-based orm: v3 uses kysely as query builder instead of prisma runtime dependency...
Learnt from: CR
PR: zenstackhq/zenstack-v3#0
File: CLAUDE.md:0-0
Timestamp: 2025-08-04T08:43:33.161Z
Learning: Kysely-Based ORM: V3 uses Kysely as query builder instead of Prisma runtime dependency
Applied to files:
packages/dialects/sql.js/package.jsonpackages/runtime/src/client/crud/operations/base.ts
📚 Learning: no runtime dependency on @prisma/client...
Learnt from: CR
PR: zenstackhq/zenstack-v3#0
File: CLAUDE.md:0-0
Timestamp: 2025-08-04T08:43:33.161Z
Learning: No runtime dependency on prisma/client
Applied to files:
packages/runtime/package.json
📚 Learning: applies to tests/e2e/** : e2e tests are in `tests/e2e/` directory...
Learnt from: CR
PR: zenstackhq/zenstack-v3#0
File: CLAUDE.md:0-0
Timestamp: 2025-08-04T08:43:33.161Z
Learning: Applies to tests/e2e/** : E2E tests are in `tests/e2e/` directory
Applied to files:
tests/e2e/package.jsonpackages/runtime/test/client-api/filter.test.ts
📚 Learning: type coverage tests ensure typescript inference works correctly...
Learnt from: CR
PR: zenstackhq/zenstack-v3#0
File: CLAUDE.md:0-0
Timestamp: 2025-08-04T08:43:33.161Z
Learning: Type coverage tests ensure TypeScript inference works correctly
Applied to files:
packages/runtime/test/client-api/filter.test.tspackages/runtime/test/client-api/find.test.ts
📚 Learning: client provides both high-level orm api and low-level kysely query builder...
Learnt from: CR
PR: zenstackhq/zenstack-v3#0
File: CLAUDE.md:0-0
Timestamp: 2025-08-04T08:43:33.161Z
Learning: Client provides both high-level ORM API and low-level Kysely query builder
Applied to files:
packages/runtime/src/client/crud/operations/base.ts
📚 Learning: kysely query builder as escape hatch instead of raw sql...
Learnt from: CR
PR: zenstackhq/zenstack-v3#0
File: CLAUDE.md:0-0
Timestamp: 2025-08-04T08:43:33.161Z
Learning: Kysely query builder as escape hatch instead of raw SQL
Applied to files:
packages/runtime/src/client/crud/operations/base.ts
📚 Learning: applies to **/schema.zmodel : always run `zenstack generate` after modifying zmodel schemas...
Learnt from: CR
PR: zenstackhq/zenstack-v3#0
File: CLAUDE.md:0-0
Timestamp: 2025-08-04T08:43:33.161Z
Learning: Applies to **/schema.zmodel : Always run `zenstack generate` after modifying ZModel schemas
Applied to files:
packages/runtime/src/client/crud/validator.ts
🧬 Code Graph Analysis (6)
packages/runtime/test/client-api/filter.test.ts (3)
packages/runtime/test/client-api/client-specs.ts (1)
createClientSpecs(6-42)packages/runtime/src/client/crud/dialects/postgresql.ts (1)
provider(27-29)packages/runtime/src/client/crud/dialects/sqlite.ts (1)
provider(27-29)
packages/runtime/src/client/query-utils.ts (3)
packages/runtime/src/client/crud/operations/base.ts (2)
getField(124-126)schema(89-91)samples/blog/zenstack/schema.ts (1)
schema(9-228)packages/sdk/src/schema/schema.ts (1)
SchemaDef(10-18)
packages/runtime/test/client-api/find.test.ts (1)
packages/runtime/test/client-api/utils.ts (1)
createUser(6-21)
packages/runtime/src/client/crud-types.ts (2)
packages/sdk/src/schema/schema.ts (7)
GetModelFieldType(151-155)ModelFieldIsOptional(217-221)SchemaDef(10-18)BuiltinType(84-94)GetModels(108-108)RelationFields(196-200)FieldIsArray(235-239)packages/runtime/src/utils/type-utils.ts (1)
NullableIf(5-5)
packages/runtime/src/client/crud/operations/base.ts (1)
packages/runtime/src/client/query-utils.ts (3)
ensureArray(267-273)buildFieldRef(154-176)safeJSONStringify(275-283)
packages/runtime/src/client/crud/dialects/postgresql.ts (3)
packages/sdk/src/schema/schema.ts (1)
GetModels(108-108)packages/runtime/src/client/query-utils.ts (2)
requireField(30-36)buildFieldRef(154-176)packages/runtime/src/client/crud/operations/base.ts (1)
requireField(120-122)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: claude-review
- GitHub Check: build-test (20.x)
- GitHub Check: Analyze (javascript-typescript)
🔇 Additional comments (48)
packages/runtime/src/client/query-utils.ts (4)
99-102: LGTM: Safer field handling with graceful fallback.The change from
requireFieldtogetFieldwith optional chaining makes this function more defensive by returningfalsefor non-existent fields instead of throwing errors. This aligns with the broader improvements mentioned in the AI summary for safer schema field handling.
104-107: LGTM: Consistent defensive pattern applied.Similar to
isScalarField, this change provides graceful handling of missing fields by returningfalseinstead of throwing errors.
109-112: LGTM: Maintains consistency with other field checking utilities.The defensive approach is consistently applied across all field type checking functions.
114-117: LGTM: Completes the consistent refactoring pattern.All four field checking utilities now follow the same safe pattern of using
getFieldwith optional chaining.packages/runtime/test/client-api/find.test.ts (4)
247-247: LGTM: Profile creation supports the enhanced distinct tests.The addition of profile creation with bio fields supports the new distinct test cases that verify include/select behavior.
Also applies to: 256-256
273-287: LGTM: Comprehensive distinct query testing.The new test cases properly verify that distinct queries work correctly with both
includeandselectclauses, ensuring that related data (profile) is properly included/selected while maintaining distinct behavior on the specified fields.
852-866: LGTM: Nested relation count selection test.This test verifies that selecting
_counton nested relations (posts with their comments count) works correctly, returning the expected structure with zero comments for each post.
867-876: LGTM: TypeScript type safety validation.The
@ts-expect-errortests properly validate that TypeScript correctly prevents selecting_counton entities that don't have to-many relations (Comment model) and prevents invalid nested_countusage. This ensures type safety as mentioned in the AI summary.packages/runtime/src/client/crud/operations/base.ts (3)
180-196: LGTM! Solid approach for cross-dialect distinct handling.The aliasing strategy using
$distinct$prefix ensures distinct fields are available for in-memory filtering when the dialect lacksdistinctOnsupport. The implementation correctly usesbuildFieldReffor consistent field reference building.
233-251: LGTM! Well-implemented in-memory distinct filtering.The deduplication logic properly uses
safeJSONStringifyfor composite key generation and cleanly removes temporary fields. The algorithm preserves insertion order while efficiently handling duplicates.
315-315: LGTM! Clean refactoring delegating to dialect implementation.Excellent simplification that centralizes count JSON construction in the dialect layer while maintaining clean separation of concerns. This allows for dialect-specific optimizations and reduces code duplication.
packages/runtime/src/client/crud/dialects/postgresql.ts (2)
203-203: LGTM! Good consistency improvement with parameter naming.The rename from
parentNametoparentAliasis more semantically accurate and aligns with similar changes across dialect implementations. All usages are updated consistently.
241-259: LGTM! Well-implemented_countfield handling.The conditional logic properly separates
_countfield handling from regular fields, delegating to the centralizedbuildCountJsonmethod. The alias path construction is correct and maintains consistency with the existing relation handling patterns.packages/runtime/test/client-api/filter.test.ts (3)
8-8: LGTM! Provider-aware test configuration.The addition of the
providerparameter to the test describe block enables provider-specific test logic, which aligns with the enhanced filter functionality that supports database-specific behavior.
79-189: Excellent comprehensive provider-specific test coverage!The provider-specific string filter tests are well-structured and thorough:
SQLite tests (79-128): Correctly validate that equality operations are case-sensitive while
contains,startsWith, andinoperations are case-insensitive, which aligns with SQLite's documented behavior.PostgreSQL tests (129-188): Properly test the new
modeparameter functionality for case-insensitive filtering, coveringequals,contains,endsWith, andinoperations with both default and explicitinsensitivemodes.The use of
as anytype assertions for themodeproperty is appropriate for testing new functionality during development.
326-328: LGTM! Minor formatting improvement.The multiline formatting of the
toMatchObjectassertion enhances readability and maintains consistency with similar assertions in the test file.packages/runtime/src/client/crud/dialects/sqlite.ts (4)
70-70: LGTM! Parameter naming improvement.The rename from
parentNametoparentAliasprovides better semantic clarity about the parameter's role in SQL alias generation.
77-147: LGTM! Consistent parameter renaming throughout.All references to the renamed parameter have been properly updated across subquery alias naming and SQL reference strings, maintaining consistency and improving code clarity.
186-211: LGTM! Improved count handling with clear separation of concerns.The explicit handling of the
_countfield before processing relation fields provides better code organization. The logic properly delegates count JSON construction to the base dialect'sbuildCountJsonmethod, maintaining consistency with the broader refactoring effort.
227-227: LGTM! Consistent parameter usage in include logic.The
parentAliasparameter is correctly used in the relation JSON building for included fields, maintaining consistency with the parameter renaming.packages/runtime/src/client/crud-types.ts (4)
226-226: LGTM! Schema-aware primitive filter integration.The addition of the
Schemageneric parameter toPrimitiveFilterenables schema-aware filtering capabilities, which is essential for the provider-specific features being introduced.
252-287: Excellent schema-aware filter type design!The enhancement of filter types to be schema-aware is well-implemented:
- Schema integration: All primitive filter types now accept the
Schemageneric parameter, enabling provider-specific behavior- Conditional mode property:
StringFilterconditionally includes themodeproperty only for providers that support case sensitivity (PostgreSQL), maintaining type safety- Consistent propagation: The schema parameter is properly threaded through all filter type hierarchies including the
notfieldThe use of conditional types with
ProviderSupportsCaseSensitivity<Schema>ensures type-safe access to provider-specific features.
401-406: Smart conditional _count field inclusion!The conditional inclusion of the
_countfield only when the model has to-many relations prevents meaningless count selections on models without array relations. TheHasToManyRelations<Schema, Model>type correctly identifies models with array-type relation fields.
1194-1201: Well-designed utility types for feature detection!The utility types are excellently structured:
HasToManyRelations: Uses mapped types to identify models with array-type relation fields, enabling conditional _count field inclusionProviderSupportsCaseSensitivity: Currently supports PostgreSQL with a design that's easily extensible to other providersBoth types follow TypeScript best practices for conditional type logic and provide clear semantic constraints for the type system.
packages/runtime/src/client/crud/dialects/base.ts (3)
459-478: LGTM! Good enhancement to filter flexibility.The addition of the
excludeKeysparameter alongside the existingonlyForKeysprovides comprehensive control over which filter keys to process.
520-591: Well-implemented case-insensitive string filtering support.The refactoring properly handles both 'default' and 'insensitive' modes, using appropriate SQL functions (
lower,ilike) for case-insensitive comparisons. The recursive handling inprepStringCasingfor arrays is correct.Note: The
ilikeoperator is PostgreSQL-specific, which aligns with the validator's provider-aware implementation.
865-913: Excellent implementation of relation count JSON building.The
buildCountJsonmethod provides a clean abstraction for generating nested count queries for to-many relations. It properly handles:
- Selective counting based on payload
- Join conditions via
buildJoinPairs- Optional filtering with where clauses
- JSON object construction for the results
packages/runtime/src/client/crud/validator.ts (4)
698-703: Verify intentional use of non-strict objects at top level.While most schemas have been refactored to use
z.strictObject(), several top-level schemas in create, update, upsert, and delete operations usez.object()without strict mode. Is this intentional for flexibility, or should these also be strict for consistency?Also applies to: 962-968, 992-999, 1104-1108
521-542: Well-designed provider-aware string filter enhancements.The string filter schema properly:
- Adds missing string operations (startsWith, endsWith, contains)
- Conditionally includes the
modefield only for PostgreSQL- Uses appropriate schema validation with literal types
The provider check ensures compatibility across different database systems.
Also applies to: 1295-1297
1261-1267: Good refactoring of skip/take schemas.Centralizing the skip and take schema definitions improves maintainability and ensures consistent validation across all usages. The validation rules are correct:
skip: non-negative integers onlytake: allows negative values for reverse limiting
564-590: Excellent conditional _count field implementation.The schema correctly:
- Includes
_countonly for models with to-many relations (optimization)- Supports both simple (
true) and detailed count selection- Allows per-relation count filtering with where clauses
This aligns perfectly with the
buildCountJsonmethod in the dialect layer.tests/e2e/package.json (1)
3-3: Version bump looks good – remember to regenerate workspace lockfileThe version update is consistent with the coordinated alpha.19 release. After merging, run your monorepo’s install/bootstrap step (e.g.,
pnpm installornpm install) to refresh the root lockfile and avoid mismatched workspace ranges.samples/blog/package.json (1)
3-3: Blog sample version aligned – no issues spottedChange is straightforward and keeps the sample in sync with the rest of the repo.
packages/common-helpers/package.json (1)
3-3: Helper package version updated correctlyNo additional metadata changes detected; version bump is clean.
packages/eslint-config/package.json (1)
3-3: ESLint config version bump acknowledgedUpdate is in line with the overall release cadence.
packages/typescript-config/package.json (1)
3-3: TypeScript config package version synchronizedLooks good; nothing else to address.
packages/zod/package.json (1)
3-3: Version bump looks good and stays in sync with the monorepo.
Nothing else changed in the manifest, so no additional action required.packages/testtools/package.json (1)
3-3: Consistent version update.
Change is straightforward and aligned with the rest of the packages.packages/sdk/package.json (1)
3-3: SDK package version bump confirmed.
No further issues spotted.packages/dialects/sql.js/package.json (1)
3-3: Dialect package version bump confirmed.
Looks ready to merge.packages/tanstack-query/package.json (1)
3-3: Version bump looks consistent; LGTM
No further action required.packages/language/package.json (1)
4-4: Version synced with monorepo release; LGTMpackages/vitest-config/package.json (1)
4-4: Version update is correct; LGTMpackages/create-zenstack/package.json (1)
3-3: Version bump aligns with broader release; LGTMpackages/cli/package.json (1)
6-6: CLI package version updated consistently; LGTMpackages/ide/vscode/package.json (1)
4-4: Version bump is fine; ensure ancillary release assets are updatedOnly the
versionfield changed. Please double-check that:
CHANGELOG.md(or equivalent) contains an entry for 3.0.0-alpha.19.- The pre-release published to the VS Code Marketplace will be tagged
alpha.19so users get the correct update.No code issues detected.
packages/runtime/package.json (2)
3-3: Runtime package version bump acknowledgedThe version aligns with the monorepo’s alpha.19 release train. LGTM.
78-78: Confirm compatibility withbetter-sqlite3@^12.2.0
better-sqlite3jumped a major version (11 → 12). ABI or build-time changes are common with this library.Recommended actions:
- Run the full test suite against Node 18 and Node 20 to catch native-addon regressions.
- Verify the minimum Node version stated in project docs still satisfies
better-sqlite3≥ 12.No blocking issue, but please confirm before publishing.
Summary by CodeRabbit
New Features
_count) only for models with to-many relations, improving query precision.Bug Fixes
Tests
Chores