-
-
Notifications
You must be signed in to change notification settings - Fork 11
merge dev to main (v3.0.0-beta.14) #347
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
* feat(server): migrate next.js server adapter * address PR comments
Co-authored-by: ymc9 <104139426+ymc9@users.noreply.github.com>
* feat(server): migrate rest api handler * addressing PR comments * update lock file * fix pg string json handling * update
* feat(server): migrate fastify adapter * addressing pr comments
* feat(server): migrate elysia adapter * addressing pr comments
* feat(server): migrate hono adapter * fix test
* feat(server): migrate nuxt adapter * addressing PR comments * addressing PR comments * fix
* feat(server): migrate tanstack-start adapter * prettier format
|
Warning Rate limit exceeded@ymc9 has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 17 minutes and 1 seconds before requesting another review. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (28)
WalkthroughRenames package imports from Changes
Estimated code review effort🎯 5 (Critical) | ⏱️ ~120 minutes Areas needing extra attention:
Possibly related PRs
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (1 passed)
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 |
|
Claude finished @ymc9's task —— View job Code Review for ZenStack v3.0.0-beta.14Completed comprehensive review of this substantial PR that merges dev to main for v3.0.0-beta.14 (18,563 additions, 3,736 deletions across 100 files). Review Checklist
Review SummaryThis is a well-structured release with significant new functionality. The code quality is high, following TypeScript best practices and maintaining consistency across the codebase. ✅ StrengthsArchitecture & Design
New Server Adapters
ORM Enhancements
Package Management
|
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 pull request renames the @zenstackhq/runtime package to @zenstackhq/orm across the codebase. This appears to be part of version 3.0.0-beta.14 release and includes:
- Package rename from
@zenstackhq/runtimeto@zenstackhq/orm - Import path updates across all test files, samples, and package dependencies
- Version bump from 3.0.0-beta.13 to 3.0.0-beta.14
- Some additional test cases added (duplicate sort fields handling)
- New adapter implementations for various frameworks (TanStack Start, SvelteKit, Hono, Fastify, Next.js)
- Refactoring of server adapter structure
Reviewed Changes
Copilot reviewed 145 out of 189 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| tests/regression/package.json | Updated dependency from @zenstackhq/runtime to @zenstackhq/orm |
| tests/e2e/package.json | Updated dependency from @zenstackhq/runtime to @zenstackhq/orm |
| Multiple test files | Updated import statements from @zenstackhq/runtime to @zenstackhq/orm |
| Generated schema files | Updated import paths from @zenstackhq/runtime/schema to @zenstackhq/orm/schema |
| Package files | Updated dependencies and version numbers |
| Server adapter files | New adapter implementations and refactoring |
| tests/e2e/orm/client-api/find.test.ts | Added test cases for duplicate sort fields |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
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: 6
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
packages/tanstack-query/src/react.ts (2)
45-45: Replaceanyreturn type with proper typing.The function returns
any, which defeats TypeScript's type safety. This should returnToModelHooks<Schema, Model>to ensure type correctness.Apply this diff:
-function toModelHooks<Schema extends SchemaDef, Model extends GetModels<Schema>>(schema: Schema, model: Model): any { +function toModelHooks<Schema extends SchemaDef, Model extends GetModels<Schema>>(schema: Schema, model: Model): ToModelHooks<Schema, Model> {
51-77: Stub implementations lack TanStack Query integration.The hook implementations return hardcoded mock data instead of using actual TanStack Query hooks (
useQuery,useMutation). This means the hooks won't provide real query/mutation functionality, caching, or state management.For a beta release being merged to main, consider:
- Implementing actual TanStack Query integration using
useQueryanduseMutationfrom@tanstack/react-query- Or clearly documenting that this is placeholder code if the functionality is intentionally deferred
Would you like me to generate a proper implementation using TanStack Query hooks, or should this be tracked as a follow-up issue?
🧹 Nitpick comments (1)
packages/server/src/adapter/next/pages-route-handler.ts (1)
36-36: Consider usingres.json()for consistency.Lines 36 and 39 use
res.send(), while line 18 usesres.json(). For consistency and to ensure proper Content-Type headers, consider usingres.json()throughout.- res.status(r.status).send(r.body); + res.status(r.status).json(r.body); } catch (err) { logInternalError(options.apiHandler.log, err); - res.status(500).send({ message: 'An internal server error occurred' }); + res.status(500).json({ message: 'An internal server error occurred' }); }Also applies to: 39-39
📜 Review details
Configuration used: Path: .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 (107)
BREAKINGCHANGES.md(1 hunks)CLAUDE.md(2 hunks)README.md(2 hunks)package.json(1 hunks)packages/cli/package.json(2 hunks)packages/cli/src/actions/generate.ts(1 hunks)packages/cli/src/actions/init.ts(1 hunks)packages/cli/src/actions/migrate.ts(1 hunks)packages/cli/src/actions/templates.ts(1 hunks)packages/cli/test/ts-schema-gen.test.ts(1 hunks)packages/common-helpers/package.json(1 hunks)packages/common-helpers/src/clone.ts(1 hunks)packages/common-helpers/src/index.ts(1 hunks)packages/config/eslint-config/package.json(1 hunks)packages/config/typescript-config/package.json(1 hunks)packages/config/vitest-config/package.json(1 hunks)packages/create-zenstack/package.json(1 hunks)packages/create-zenstack/src/index.ts(1 hunks)packages/dialects/sql.js/package.json(1 hunks)packages/language/package.json(1 hunks)packages/orm/package.json(1 hunks)packages/orm/src/client/crud/dialects/base-dialect.ts(3 hunks)packages/orm/src/client/crud/dialects/postgresql.ts(1 hunks)packages/orm/src/client/crud/operations/base.ts(1 hunks)packages/orm/src/client/crud/validator/index.ts(1 hunks)packages/plugins/policy/package.json(2 hunks)packages/plugins/policy/src/column-collector.ts(1 hunks)packages/plugins/policy/src/expression-evaluator.ts(1 hunks)packages/plugins/policy/src/expression-transformer.ts(2 hunks)packages/plugins/policy/src/functions.ts(1 hunks)packages/plugins/policy/src/plugin.ts(1 hunks)packages/plugins/policy/src/policy-handler.ts(2 hunks)packages/plugins/policy/src/types.ts(1 hunks)packages/plugins/policy/src/utils.ts(1 hunks)packages/sdk/package.json(1 hunks)packages/sdk/src/ts-schema-generator.ts(7 hunks)packages/server/package.json(3 hunks)packages/server/src/adapter/common.ts(1 hunks)packages/server/src/adapter/elysia/handler.ts(1 hunks)packages/server/src/adapter/elysia/index.ts(1 hunks)packages/server/src/adapter/express/index.ts(1 hunks)packages/server/src/adapter/express/middleware.ts(3 hunks)packages/server/src/adapter/fastify/index.ts(1 hunks)packages/server/src/adapter/fastify/plugin.ts(1 hunks)packages/server/src/adapter/hono/handler.ts(1 hunks)packages/server/src/adapter/hono/index.ts(1 hunks)packages/server/src/adapter/next/app-route-handler.ts(1 hunks)packages/server/src/adapter/next/index.ts(1 hunks)packages/server/src/adapter/next/pages-route-handler.ts(1 hunks)packages/server/src/adapter/nuxt/handler.ts(1 hunks)packages/server/src/adapter/nuxt/index.ts(1 hunks)packages/server/src/adapter/sveltekit/handler.ts(1 hunks)packages/server/src/adapter/sveltekit/index.ts(1 hunks)packages/server/src/adapter/tanstack-start/handler.ts(1 hunks)packages/server/src/adapter/tanstack-start/index.ts(1 hunks)packages/server/src/api/index.ts(1 hunks)packages/server/src/api/rest/index.ts(1 hunks)packages/server/src/api/rpc/index.ts(4 hunks)packages/server/src/api/utils.ts(2 hunks)packages/server/src/express/index.ts(0 hunks)packages/server/src/types.ts(2 hunks)packages/server/test/adapter/elysia.test.ts(1 hunks)packages/server/test/adapter/express.test.ts(2 hunks)packages/server/test/adapter/fastify.test.ts(1 hunks)packages/server/test/adapter/hono.test.ts(1 hunks)packages/server/test/adapter/next.test.ts(1 hunks)packages/server/test/adapter/sveltekit.test.ts(1 hunks)packages/server/test/adapter/tanstack-start.test.ts(1 hunks)packages/server/test/api/rpc.test.ts(1 hunks)packages/server/tsup.config.ts(1 hunks)packages/tanstack-query/package.json(2 hunks)packages/tanstack-query/src/react.ts(1 hunks)packages/testtools/package.json(2 hunks)packages/testtools/src/client.ts(1 hunks)packages/testtools/src/project.ts(1 hunks)packages/testtools/src/vitest-ext.ts(1 hunks)packages/zod/package.json(2 hunks)packages/zod/src/index.ts(1 hunks)packages/zod/src/types.ts(1 hunks)samples/blog/README.md(2 hunks)samples/blog/main.ts(1 hunks)samples/blog/package.json(2 hunks)samples/blog/zenstack/input.ts(1 hunks)samples/blog/zenstack/models.ts(1 hunks)samples/blog/zenstack/schema.ts(1 hunks)tests/e2e/orm/client-api/aggregate.test.ts(1 hunks)tests/e2e/orm/client-api/computed-fields.test.ts(2 hunks)tests/e2e/orm/client-api/count.test.ts(1 hunks)tests/e2e/orm/client-api/create-many-and-return.test.ts(1 hunks)tests/e2e/orm/client-api/create-many.test.ts(1 hunks)tests/e2e/orm/client-api/create.test.ts(1 hunks)tests/e2e/orm/client-api/default-values.test.ts(1 hunks)tests/e2e/orm/client-api/delegate.test.ts(1 hunks)tests/e2e/orm/client-api/delete-many.test.ts(1 hunks)tests/e2e/orm/client-api/delete.test.ts(1 hunks)tests/e2e/orm/client-api/filter.test.ts(1 hunks)tests/e2e/orm/client-api/find.test.ts(4 hunks)tests/e2e/orm/client-api/group-by.test.ts(1 hunks)tests/e2e/orm/client-api/name-mapping.test.ts(1 hunks)tests/e2e/orm/client-api/raw-query.test.ts(1 hunks)tests/e2e/orm/client-api/transaction.test.ts(1 hunks)tests/e2e/orm/client-api/undefined-values.test.ts(1 hunks)tests/e2e/orm/client-api/update-many.test.ts(1 hunks)tests/e2e/orm/client-api/update.test.ts(1 hunks)tests/e2e/orm/client-api/upsert.test.ts(1 hunks)tests/e2e/orm/client-api/utils.ts(1 hunks)tests/e2e/orm/plugin-infra/entity-mutation-hooks.test.ts(1 hunks)
⛔ Files not processed due to max files limit (38)
- tests/e2e/orm/plugin-infra/on-kysely-query.test.ts
- tests/e2e/orm/plugin-infra/on-query-hooks.test.ts
- tests/e2e/orm/policy/basic-schema-read.test.ts
- tests/e2e/orm/policy/crud/create.test.ts
- tests/e2e/orm/policy/migrated/client-extensions.test.ts
- tests/e2e/orm/policy/migrated/multi-field-unique.test.ts
- tests/e2e/orm/policy/migrated/todo-sample.test.ts
- tests/e2e/orm/schemas/basic/input.ts
- tests/e2e/orm/schemas/basic/models.ts
- tests/e2e/orm/schemas/basic/schema.ts
- tests/e2e/orm/schemas/delegate/input.ts
- tests/e2e/orm/schemas/delegate/models.ts
- tests/e2e/orm/schemas/delegate/schema.ts
- tests/e2e/orm/schemas/delegate/typecheck.ts
- tests/e2e/orm/schemas/name-mapping/input.ts
- tests/e2e/orm/schemas/name-mapping/models.ts
- tests/e2e/orm/schemas/name-mapping/schema.ts
- tests/e2e/orm/schemas/petstore/input.ts
- tests/e2e/orm/schemas/petstore/models.ts
- tests/e2e/orm/schemas/petstore/schema.ts
- tests/e2e/orm/schemas/todo/input.ts
- tests/e2e/orm/schemas/todo/models.ts
- tests/e2e/orm/schemas/todo/schema.ts
- tests/e2e/orm/schemas/typing/input.ts
- tests/e2e/orm/schemas/typing/models.ts
- tests/e2e/orm/schemas/typing/schema.ts
- tests/e2e/orm/schemas/typing/typecheck.ts
- tests/e2e/package.json
- tests/regression/package.json
- tests/regression/test/issue-204/input.ts
- tests/regression/test/issue-204/models.ts
- tests/regression/test/issue-204/schema.ts
- tests/regression/test/v2-migrated/issue-1135.test.ts
- tests/regression/test/v2-migrated/issue-1763.test.ts
- tests/regression/test/v2-migrated/issue-1857.test.ts
- tests/regression/test/v2-migrated/issue-1894.test.ts
- tests/regression/test/v2-migrated/issue-1991.test.ts
- tests/regression/test/v2-migrated/issue-1994.test.ts
💤 Files with no reviewable changes (1)
- packages/server/src/express/index.ts
🧰 Additional context used
📓 Path-based instructions (4)
{packages,samples,tests}/**
📄 CodeRabbit inference engine (CLAUDE.md)
Place packages only under
packages/,samples/, ortests/
Files:
packages/cli/src/actions/migrate.tstests/e2e/orm/client-api/create-many-and-return.test.tspackages/language/package.jsonpackages/testtools/src/vitest-ext.tstests/e2e/orm/client-api/upsert.test.tspackages/server/tsup.config.tstests/e2e/orm/client-api/delete.test.tspackages/orm/src/client/crud/validator/index.tstests/e2e/orm/client-api/update-many.test.tspackages/server/test/api/rpc.test.tspackages/config/typescript-config/package.jsontests/e2e/orm/client-api/delete-many.test.tstests/e2e/orm/client-api/create-many.test.tspackages/plugins/policy/package.jsonpackages/testtools/src/project.tspackages/server/src/adapter/hono/index.tspackages/sdk/package.jsonpackages/tanstack-query/package.jsonsamples/blog/zenstack/models.tspackages/plugins/policy/src/policy-handler.tstests/e2e/orm/client-api/raw-query.test.tssamples/blog/main.tspackages/server/src/adapter/next/pages-route-handler.tspackages/plugins/policy/src/expression-transformer.tspackages/tanstack-query/src/react.tspackages/plugins/policy/src/plugin.tspackages/common-helpers/src/clone.tssamples/blog/package.jsontests/e2e/orm/client-api/utils.tstests/e2e/orm/client-api/undefined-values.test.tspackages/plugins/policy/src/column-collector.tspackages/server/src/adapter/tanstack-start/index.tspackages/server/src/adapter/hono/handler.tstests/e2e/orm/client-api/filter.test.tstests/e2e/orm/client-api/count.test.tspackages/sdk/src/ts-schema-generator.tspackages/server/test/adapter/next.test.tspackages/cli/test/ts-schema-gen.test.tspackages/zod/package.jsonpackages/server/src/adapter/nuxt/index.tspackages/plugins/policy/src/types.tssamples/blog/README.mdpackages/server/src/types.tstests/e2e/orm/client-api/update.test.tspackages/testtools/package.jsonpackages/server/src/adapter/next/index.tspackages/create-zenstack/package.jsonpackages/zod/src/types.tspackages/orm/src/client/crud/dialects/postgresql.tspackages/orm/package.jsontests/e2e/orm/client-api/delegate.test.tspackages/config/eslint-config/package.jsonpackages/orm/src/client/crud/operations/base.tspackages/server/src/api/rpc/index.tspackages/server/src/adapter/elysia/handler.tspackages/server/src/adapter/next/app-route-handler.tstests/e2e/orm/client-api/aggregate.test.tspackages/plugins/policy/src/expression-evaluator.tspackages/server/test/adapter/fastify.test.tspackages/server/src/adapter/nuxt/handler.tspackages/server/src/adapter/common.tstests/e2e/orm/client-api/default-values.test.tspackages/zod/src/index.tspackages/server/test/adapter/elysia.test.tspackages/cli/src/actions/generate.tspackages/server/test/adapter/hono.test.tstests/e2e/orm/client-api/name-mapping.test.tspackages/server/src/adapter/express/middleware.tspackages/server/src/adapter/sveltekit/index.tspackages/common-helpers/src/index.tspackages/config/vitest-config/package.jsonpackages/server/test/adapter/express.test.tspackages/server/package.jsontests/e2e/orm/client-api/computed-fields.test.tspackages/server/src/adapter/fastify/index.tstests/e2e/orm/plugin-infra/entity-mutation-hooks.test.tstests/e2e/orm/client-api/group-by.test.tstests/e2e/orm/client-api/create.test.tspackages/dialects/sql.js/package.jsonpackages/testtools/src/client.tspackages/plugins/policy/src/utils.tspackages/server/test/adapter/sveltekit.test.tstests/e2e/orm/client-api/find.test.tstests/e2e/orm/client-api/transaction.test.tssamples/blog/zenstack/schema.tspackages/common-helpers/package.jsonpackages/server/src/adapter/elysia/index.tspackages/server/src/api/rest/index.tspackages/server/src/api/index.tspackages/server/src/adapter/tanstack-start/handler.tspackages/server/src/adapter/express/index.tspackages/plugins/policy/src/functions.tspackages/server/test/adapter/tanstack-start.test.tssamples/blog/zenstack/input.tspackages/server/src/adapter/fastify/plugin.tspackages/cli/src/actions/init.tspackages/create-zenstack/src/index.tspackages/cli/package.jsonpackages/orm/src/client/crud/dialects/base-dialect.tspackages/server/src/adapter/sveltekit/handler.tspackages/server/src/api/utils.tspackages/cli/src/actions/templates.ts
tests/e2e/**
📄 CodeRabbit inference engine (CLAUDE.md)
End-to-end tests must live under
tests/e2e/
Files:
tests/e2e/orm/client-api/create-many-and-return.test.tstests/e2e/orm/client-api/upsert.test.tstests/e2e/orm/client-api/delete.test.tstests/e2e/orm/client-api/update-many.test.tstests/e2e/orm/client-api/delete-many.test.tstests/e2e/orm/client-api/create-many.test.tstests/e2e/orm/client-api/raw-query.test.tstests/e2e/orm/client-api/utils.tstests/e2e/orm/client-api/undefined-values.test.tstests/e2e/orm/client-api/filter.test.tstests/e2e/orm/client-api/count.test.tstests/e2e/orm/client-api/update.test.tstests/e2e/orm/client-api/delegate.test.tstests/e2e/orm/client-api/aggregate.test.tstests/e2e/orm/client-api/default-values.test.tstests/e2e/orm/client-api/name-mapping.test.tstests/e2e/orm/client-api/computed-fields.test.tstests/e2e/orm/plugin-infra/entity-mutation-hooks.test.tstests/e2e/orm/client-api/group-by.test.tstests/e2e/orm/client-api/create.test.tstests/e2e/orm/client-api/find.test.tstests/e2e/orm/client-api/transaction.test.ts
package.json
📄 CodeRabbit inference engine (CLAUDE.md)
Pin the repository package manager to
pnpm@10.12.1via thepackageManagerfield
Files:
package.json
**/schema.ts
📄 CodeRabbit inference engine (CLAUDE.md)
The generated TypeScript schema should be named
schema.ts
Files:
samples/blog/zenstack/schema.ts
🧠 Learnings (9)
📚 Learning: 2025-09-04T12:38:14.150Z
Learnt from: CR
Repo: zenstackhq/zenstack-v3 PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-09-04T12:38:14.150Z
Learning: Database migrations use Prisma CLI under the hood
Applied to files:
packages/cli/src/actions/migrate.tsREADME.md
📚 Learning: 2025-09-04T12:38:14.150Z
Learnt from: CR
Repo: zenstackhq/zenstack-v3 PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-09-04T12:38:14.150Z
Learning: Applies to **/schema.zmodel : Name ZModel schema files `schema.zmodel`
Applied to files:
packages/language/package.jsonpackages/orm/src/client/crud/validator/index.tspackages/zod/src/types.tspackages/zod/src/index.ts
📚 Learning: 2025-10-21T16:09:31.218Z
Learnt from: ymc9
Repo: zenstackhq/zenstack-v3 PR: 319
File: packages/runtime/src/client/executor/zenstack-query-executor.ts:63-72
Timestamp: 2025-10-21T16:09:31.218Z
Learning: In ZenStack, TypeDefs can be inherited by models. When a TypeDef contains fields with `map` attributes, those mapped field names need to be processed by the QueryNameMapper since they become part of the inheriting model's schema. Therefore, when checking if a schema has mapped names (e.g., in `schemaHasMappedNames`), both `schema.models` and `schema.typeDefs` must be inspected for `@map` and `map` attributes.
Applied to files:
packages/orm/src/client/crud/validator/index.tssamples/blog/zenstack/models.tspackages/plugins/policy/src/policy-handler.tspackages/tanstack-query/src/react.tspackages/zod/src/types.tspackages/zod/src/index.tssamples/blog/zenstack/schema.ts
📚 Learning: 2025-09-04T12:38:14.150Z
Learnt from: CR
Repo: zenstackhq/zenstack-v3 PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-09-04T12:38:14.150Z
Learning: Always run `zenstack generate` after modifying ZModel schemas
Applied to files:
README.mdsamples/blog/zenstack/models.tspackages/sdk/src/ts-schema-generator.tspackages/cli/src/actions/generate.ts
📚 Learning: 2025-09-04T12:38:14.150Z
Learnt from: CR
Repo: zenstackhq/zenstack-v3 PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-09-04T12:38:14.150Z
Learning: Applies to **/schema.ts : The generated TypeScript schema should be named `schema.ts`
Applied to files:
packages/sdk/src/ts-schema-generator.tspackages/cli/test/ts-schema-gen.test.tspackages/zod/src/types.tspackages/zod/src/index.tssamples/blog/zenstack/schema.ts
📚 Learning: 2025-09-04T12:38:14.150Z
Learnt from: CR
Repo: zenstackhq/zenstack-v3 PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-09-04T12:38:14.150Z
Learning: Applies to tests/e2e/** : End-to-end tests must live under `tests/e2e/`
Applied to files:
CLAUDE.md
📚 Learning: 2025-09-04T12:38:14.150Z
Learnt from: CR
Repo: zenstackhq/zenstack-v3 PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-09-04T12:38:14.150Z
Learning: Applies to package.json : Pin the repository package manager to `pnpm10.12.1` via the `packageManager` field
Applied to files:
package.json
📚 Learning: 2025-09-04T12:38:14.150Z
Learnt from: CR
Repo: zenstackhq/zenstack-v3 PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-09-04T12:38:14.150Z
Learning: Applies to pnpm-workspace.yaml : Use pnpm workspaces for the monorepo
Applied to files:
packages/cli/package.json
📚 Learning: 2025-10-21T16:04:56.292Z
Learnt from: ymc9
Repo: zenstackhq/zenstack-v3 PR: 319
File: packages/runtime/src/client/crud/dialects/base-dialect.ts:745-747
Timestamp: 2025-10-21T16:04:56.292Z
Learning: In packages/runtime/src/client/crud/dialects/base-dialect.ts, it's intentional that buildCursorFilter applies default ordering (via makeDefaultOrderBy fallback) while buildOrderBy does not. This ensures cursor-based pagination always has stable ordering for correctness, while regular queries remain unordered unless explicitly specified. This design is to be consistent with Prisma's pagination requirements.
Applied to files:
packages/orm/src/client/crud/dialects/base-dialect.ts
🧬 Code graph analysis (24)
packages/server/src/adapter/next/pages-route-handler.ts (4)
packages/server/src/adapter/next/app-route-handler.ts (1)
factory(14-66)packages/sdk/src/schema/schema.ts (1)
SchemaDef(10-18)packages/server/src/adapter/next/index.ts (1)
PageRouteRequestHandlerOptions(12-22)packages/server/src/adapter/common.ts (1)
logInternalError(15-21)
packages/server/src/adapter/tanstack-start/index.ts (3)
packages/sdk/src/schema/schema.ts (1)
SchemaDef(10-18)packages/server/src/adapter/common.ts (1)
CommonAdapterOptions(8-13)packages/orm/src/client/contract.ts (1)
ClientContract(50-170)
packages/server/src/adapter/hono/handler.ts (3)
packages/sdk/src/schema/schema.ts (1)
SchemaDef(10-18)packages/server/src/adapter/common.ts (2)
CommonAdapterOptions(8-13)logInternalError(15-21)packages/orm/src/client/contract.ts (1)
ClientContract(50-170)
packages/server/test/adapter/next.test.ts (4)
packages/server/src/adapter/next/index.ts (2)
PageRouteRequestHandlerOptions(12-22)NextRequestHandler(48-56)packages/testtools/src/client.ts (2)
createTestClient(52-169)createPolicyTestClient(179-190)packages/server/src/api/rpc/index.ts (1)
RPCApiHandler(34-259)packages/server/src/api/rest/index.ts (1)
RestApiHandler(125-2079)
packages/server/src/adapter/next/index.ts (3)
packages/sdk/src/schema/schema.ts (1)
SchemaDef(10-18)packages/server/src/adapter/common.ts (1)
CommonAdapterOptions(8-13)packages/orm/src/client/contract.ts (1)
ClientContract(50-170)
packages/server/src/api/rpc/index.ts (4)
packages/server/src/types.ts (1)
LogConfig(17-17)packages/server/src/api/rest/index.ts (1)
log(288-290)packages/server/src/api/utils.ts (1)
log(9-27)packages/common-helpers/src/safe-json-stringify.ts (1)
safeJSONStringify(4-12)
packages/server/src/adapter/elysia/handler.ts (3)
packages/sdk/src/schema/schema.ts (1)
SchemaDef(10-18)packages/server/src/adapter/common.ts (2)
CommonAdapterOptions(8-13)logInternalError(15-21)packages/orm/src/client/contract.ts (1)
ClientContract(50-170)
packages/server/src/adapter/next/app-route-handler.ts (4)
packages/server/src/adapter/next/pages-route-handler.ts (1)
factory(12-42)packages/sdk/src/schema/schema.ts (1)
SchemaDef(10-18)packages/server/src/adapter/next/index.ts (1)
AppRouteRequestHandlerOptions(27-37)packages/server/src/adapter/common.ts (1)
logInternalError(15-21)
packages/server/test/adapter/fastify.test.ts (2)
packages/testtools/src/client.ts (1)
createTestClient(52-169)packages/server/test/utils.ts (1)
makeUrl(31-33)
packages/server/src/adapter/nuxt/handler.ts (3)
packages/sdk/src/schema/schema.ts (1)
SchemaDef(10-18)packages/server/src/adapter/common.ts (2)
CommonAdapterOptions(8-13)logInternalError(15-21)packages/orm/src/client/contract.ts (1)
ClientContract(50-170)
packages/server/src/adapter/common.ts (2)
packages/sdk/src/schema/schema.ts (1)
SchemaDef(10-18)packages/server/src/types.ts (2)
ApiHandler(67-82)LogConfig(17-17)
packages/server/test/adapter/elysia.test.ts (6)
packages/testtools/src/client.ts (1)
createTestClient(52-169)packages/server/src/api/rest/index.ts (1)
schema(284-286)packages/server/src/api/rpc/index.ts (1)
schema(37-39)packages/server/src/adapter/elysia/handler.ts (1)
createElysiaHandler(25-77)packages/server/test/utils.ts (1)
makeUrl(31-33)packages/server/src/types.ts (1)
Response(52-62)
packages/server/test/adapter/hono.test.ts (4)
packages/testtools/src/client.ts (1)
createTestClient(52-169)packages/server/src/adapter/hono/handler.ts (1)
createHonoHandler(17-55)packages/server/test/utils.ts (1)
makeUrl(31-33)packages/server/src/types.ts (1)
Response(52-62)
packages/server/src/adapter/express/middleware.ts (4)
packages/sdk/src/schema/schema.ts (1)
SchemaDef(10-18)packages/server/src/adapter/common.ts (2)
CommonAdapterOptions(8-13)logInternalError(15-21)packages/server/src/adapter/next/app-route-handler.ts (1)
factory(14-66)packages/server/src/adapter/next/pages-route-handler.ts (1)
factory(12-42)
packages/server/test/adapter/express.test.ts (3)
packages/testtools/src/client.ts (1)
createPolicyTestClient(179-190)packages/server/src/api/rest/index.ts (2)
schema(284-286)RestApiHandler(125-2079)packages/server/test/utils.ts (2)
schema(3-29)makeUrl(31-33)
packages/server/test/adapter/sveltekit.test.ts (2)
packages/testtools/src/client.ts (1)
createTestClient(52-169)packages/server/test/utils.ts (1)
makeUrl(31-33)
packages/server/src/api/rest/index.ts (9)
packages/sdk/src/schema/schema.ts (3)
SchemaDef(10-18)FieldDef(60-75)ModelDef(20-37)packages/server/src/types.ts (4)
LogConfig(17-17)ApiHandler(67-82)RequestContext(22-47)Response(52-62)packages/server/src/api/utils.ts (3)
registerCustomSerializers(32-53)getZodErrorMessage(58-64)log(9-27)packages/common-helpers/src/lower-case-first.ts (1)
lowerCaseFirst(1-3)packages/orm/src/client/errors.ts (5)
ZenStackError(4-4)InputValidationError(9-17)RejectedByPolicyError(68-76)NotFoundError(36-43)QueryError(22-26)packages/orm/src/client/contract.ts (1)
ClientContract(50-170)packages/common-helpers/src/enumerable.ts (1)
enumerate(9-17)packages/common-helpers/src/clone.ts (1)
clone(6-24)packages/common-helpers/src/param-case.ts (1)
paramCase(5-22)
packages/server/src/adapter/tanstack-start/handler.ts (4)
packages/sdk/src/schema/schema.ts (1)
SchemaDef(10-18)packages/server/src/adapter/tanstack-start/index.ts (1)
TanStackStartOptions(9-17)packages/server/src/types.ts (1)
Response(52-62)packages/server/src/adapter/common.ts (1)
logInternalError(15-21)
packages/server/test/adapter/tanstack-start.test.ts (3)
packages/server/src/adapter/tanstack-start/index.ts (2)
TanStackStartOptions(9-17)TanStackStartHandler(23-27)packages/sdk/src/schema/schema.ts (1)
SchemaDef(10-18)packages/testtools/src/client.ts (2)
createTestClient(52-169)createPolicyTestClient(179-190)
packages/server/src/adapter/fastify/plugin.ts (3)
packages/sdk/src/schema/schema.ts (1)
SchemaDef(10-18)packages/server/src/adapter/common.ts (2)
CommonAdapterOptions(8-13)logInternalError(15-21)packages/orm/src/client/contract.ts (1)
ClientContract(50-170)
packages/orm/src/client/crud/dialects/base-dialect.ts (2)
packages/common-helpers/src/enumerable.ts (1)
enumerate(9-17)packages/orm/src/client/query-utils.ts (1)
buildJoinPairs(193-211)
packages/server/src/adapter/sveltekit/handler.ts (4)
packages/sdk/src/schema/schema.ts (1)
SchemaDef(10-18)packages/server/src/adapter/common.ts (2)
CommonAdapterOptions(8-13)logInternalError(15-21)packages/orm/src/client/contract.ts (1)
ClientContract(50-170)packages/server/src/types.ts (1)
Response(52-62)
packages/server/src/api/utils.ts (1)
packages/orm/src/client/executor/zenstack-driver.ts (1)
error(172-179)
packages/cli/src/actions/templates.ts (1)
packages/create-zenstack/src/templates.ts (1)
STARTER_MAIN_TS(29-58)
🪛 GitHub Check: CodeQL
packages/server/test/adapter/express.test.ts
[failure] 103-106: Missing rate limiting
This route handler performs authorization, but is not rate-limited.
[failure] 158-162: Missing rate limiting
This route handler performs authorization, but is not rate-limited.
packages/server/src/adapter/fastify/plugin.ts
[failure] 31-53: Missing rate limiting
This route handler performs authorization, but is not rate-limited.
⏰ 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). (5)
- GitHub Check: Upload results
- GitHub Check: GitGuardian Security Checks
- GitHub Check: build-test (20.x, sqlite)
- GitHub Check: build-test (20.x, postgresql)
- GitHub Check: claude-review
* chore: several server adapter improvements * update
|
Claude finished @ymc9's task —— View job Code Review for ZenStack v3.0.0-beta.14Completed comprehensive review of this substantial PR that merges dev to main for v3.0.0-beta.14 (18,563 additions, 3,736 deletions across 100 files). Review Checklist
Review SummaryThis is a well-structured release with significant new functionality. The code quality is high, following TypeScript best practices and maintaining consistency across the codebase. ✅ StrengthsArchitecture & Design
New Server Adapters
ORM Enhancements
Package Management
|
* chore: require zod4 or above * update * update
|
Claude finished @ymc9's task —— View job Code Review for ZenStack v3.0.0-beta.14Completed comprehensive review of this substantial PR that merges dev to main for v3.0.0-beta.14 (18,563 additions, 3,736 deletions across 100 files). Review Checklist
Review SummaryThis is a well-structured release with significant new functionality. The code quality is high, following TypeScript best practices and maintaining consistency across the codebase. ✅ StrengthsArchitecture & Design
New Server Adapters
ORM Enhancements
Package Management
|
Summary by CodeRabbit
New Features
Breaking Changes
Chores