Skip to content

Conversation

@codebypk
Copy link

@codebypk codebypk commented Jan 16, 2026

New Sample
nest.js with fastify and swc as compiler

Not Updated
prisma@6.19.0 to prisma@7.2.0
langium@3.5.0 to langium@4.1.0

Summary by CodeRabbit

  • New Features

    • Added NestJS sample project demonstrating ZenStack integration with Fastify and access control patterns.
    • Enhanced development container setup with automated Node.js tooling configuration.
    • Improved CLI handling for non-interactive environments.
  • Chores

    • Updated pnpm package manager to v10.28.0.
    • Bumped numerous dependencies including build tools, frameworks, and testing utilities.
    • Standardized schema import references across samples.
  • Tests

    • Extended timeout for migration resolver test.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link

coderabbitai bot commented Jan 16, 2026

📝 Walkthrough

Walkthrough

This pull request updates dependencies across the monorepo (Node tooling, ESLint, TypeScript, ORM packages, and framework libraries), refactors Vue mutation type handling, introduces a new NestJS sample application with auth controllers and ORM integration, normalizes schema imports in sample projects, and modernizes utility code to use updated glob API patterns.

Changes

Cohort / File(s) Summary
DevContainer & Workspace Configuration
.devcontainer/devcontainer.json, pnpm-workspace.yaml
Enhanced dev container setup with multi-step Node.js toolchain initialization; updated workspace catalog dependency versions across TanStack, TypeScript, and build tools
Root Package Management
package.json
Bumped pnpm from 10.23.0 to 10.28.0; updated ESLint, TypeScript-ESLint, vitest, turbo, and other devDependencies; added @sveltejs/package TypeScript extension via packageExtensions
CLI & Utility Updates
packages/cli/package.json, packages/cli/src/utils/exec-utils.ts, packages/cli/test/migrate.test.ts
Upgraded CLI dependencies (commander, ora, execa, semver); added stdio handling for non-interactive environments; extended test timeout
Build & Template Tooling
packages/create-zenstack/package.json, packages/create-zenstack/src/templates.ts
Upgraded commander and ora; switched templates.ts to re-export from CLI templates module
ORM & Server Packages
packages/orm/package.json, packages/server/package.json
Updated ID generation libraries (cuid2, nanoid, ulid, uuid); bumped server framework versions (express, fastify, hono, elysia, h3); updated types and zod
Better Auth Integration
packages/auth-adapters/better-auth/package.json, packages/auth-adapters/better-auth/src/adapter.ts
Upgraded better-auth from ^1.3.0 to ^1.4.13; migrated imports from @better-auth/core to better-auth
Client Libraries
packages/clients/client-helpers/package.json, packages/clients/tanstack-query/package.json, packages/clients/tanstack-query/src/vue.ts
Updated superjson; upgraded TanStack query versions; refactored Vue mutation options to use MutationObserverOptions with new lifecycle type aliases and callback parameter typing
Supporting Packages
packages/ide/vscode/package.json, packages/plugins/policy/package.json, packages/zod/package.json, packages/language/package.json, packages/testtools/package.json
Updated @types/vscode, @types/pg, zod, glob devDependencies; modernized glob API calls from glob.sync() to globSync()
Script Utilities
scripts/bump-version.ts, scripts/test-generate.ts, packages/testtools/src/client.ts
Replaced glob.sync() calls with direct globSync() imports for updated API
Sample: NestJS
samples/nest.js/*
Added complete NestJS Fastify + SWC sample with controllers (auth, auto API, simple), database service, schema definitions, seed data, and build/lint configurations
Sample: Schema Imports
samples/next.js/zenstack/schema.zmodel, samples/nuxt/zenstack/schema.zmodel, samples/sveltekit/src/zenstack/schema.zmodel
Normalized relative schema imports to use explicit import statements
Sample: Next.js
samples/next.js/package.json
Updated build scripts to include --webpack flag; bumped eslint-config-next to 16.1.2
Sample: SvelteKit
samples/sveltekit/package.json
Bumped devDependencies for Vite, tsx, and SvelteKit plugin
Test Packages
tests/e2e/package.json, tests/runtimes/bun/package.json, tests/runtimes/edge-runtime/package.json
Updated ID generation and type definition packages; bumped bun-types

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Poem

🐰 A grand update hops through the code,
With dependencies refreshed on every node,
Vue mutations now typed with care,
NestJS sample blooming fair,
From glob calls synchronized with flair!

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 22.22% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title accurately describes the two main changes: updating dependencies across the monorepo and adding a new nest.js sample with Fastify+SWC configuration.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 8

🤖 Fix all issues with AI agents
In `@MY-CHANGES.md`:
- Around line 1-2: Replace the placeholder "ToDo" in the changelog entry with a
real release note or delete the file; specifically locate the markdown entry
containing the single-word placeholder "ToDo" and either populate it with a
meaningful change description (summary, date, author/PR reference) or remove the
MY-CHANGES.md file from the release to avoid shipping an empty/placeholder
changelog.

In `@packages/auth-adapters/better-auth/src/adapter.ts`:
- Around line 1-13: The import for DBAdapterDebugLogOption is coming from the
wrong package; replace the existing import of DBAdapterDebugLogOption from
'@better-auth/core/db/adapter' with an import from 'better-auth/adapters' so
DBAdapterDebugLogOption is imported alongside the adapter factory types
(referencing DBAdapterDebugLogOption and
createAdapterFactory/AdapterFactoryCustomizeAdapterCreator/AdapterFactoryOptions
to locate the relevant import block in adapter.ts), leaving the other imports
from 'better-auth' and '@zenstackhq/orm' unchanged.

In `@samples/nest.js/package.json`:
- Around line 5-7: The package.json scripts (notably the "db:init" script that
runs "npx tsx src/zenstack/seed.ts") rely on npx to fetch tsx at runtime; add
"tsx" to devDependencies (or alternatively change the script to use an
already-declared runtime like "ts-node") so the tool is installed upfront and
the script won't fail in offline/locked environments—update package.json
devDependencies to include "tsx" (and pin a compatible version) or modify the
"db:init" script to use "ts-node" if you prefer that runtime.

In `@samples/nest.js/README.md`:
- Line 3: Update the README sentence that currently reads "This sample
demonstrate three ways of using ZenStack in a NestJS application." to correct
subject-verb agreement by changing "demonstrate" to "demonstrates" so it reads
"This sample demonstrates three ways of using ZenStack in a NestJS application."

In `@samples/nest.js/src/db.service.ts`:
- Around line 11-14: The SQLite database path is currently CWD-relative
('./src/zenstack/dev.db') in the SqliteDialect/SQLite instantiation inside the
DB service constructor (where super(schema, { dialect: new SqliteDialect({
database: new SQLite(...) }) }) is called); change it to use a deterministic
absolute path or a configurable env var: read process.env.DB_PATH (fallback to a
path resolved with path.resolve or path.join based on __dirname, e.g., resolving
to the repo-relative zenstack/dev.db), and ensure you import Node's path and use
that resolved value when constructing new SQLite or pass the env value directly
so the path is not CWD-sensitive.

In `@samples/nest.js/src/utils.ts`:
- Around line 1-5: The isAdmin function reads req.headers['x-admin'] which may
be string | string[] | undefined; update isAdmin to normalize the header:
extract the header value from FastifyRequest.headers['x-admin'], if it's an
array use the first element, coerce to a string, trim and lowercase it, then
compare against '1' and 'true' to return a boolean; reference the isAdmin
function and the 'x-admin' header when making this change.

In `@samples/nest.js/src/zenstack/schema.zmodel`:
- Line 38: The procedure getUserFeeds declares userId as Int but the User model
defines id as String (User.id), causing a type mismatch; update the procedure
signature getUserFeeds(userId: Int, limit: Int?) to use a String for userId
(userId: String, limit: Int?) and adjust any callers to pass string IDs (or
alternatively change the User.id type if you intend numeric IDs), ensuring all
references to getUserFeeds and any query logic use the matching String type.

In `@samples/nest.js/src/zenstack/seed.ts`:
- Around line 3-39: Wrap the DB operations inside async function main() in a
try/finally so db.$disconnect() is always awaited (e.g., try { ... } finally {
await db.$disconnect(); }) and surface errors instead of using void main(): call
main().catch(err => { console.error(err); process.exit(1); }); update references
in the file (DbService, main, db.$disconnect()) accordingly.
🧹 Nitpick comments (11)
packages/cli/test/migrate.test.ts (1)

66-66: Minor formatting nit: add space after comma.

The timeout value is reasonable for this test involving multiple migration operations. However, consider adding a space after the comma for consistency with typical JavaScript/TypeScript formatting conventions.

💅 Suggested formatting fix
-    },200000);
+    }, 200000);
.devcontainer/devcontainer.json (1)

18-19: Potential version inconsistency with pnpm.

The command installs pnpm@latest via corepack, but the root package.json pins packageManager to pnpm@10.28.0. This could cause version drift between the container environment and CI/production. Based on learnings, the repo uses pinned pnpm versions.

Consider pinning the version in the postCreateCommand to match:

-    "postCreateCommand": "bash -lc 'set -euo pipefail; sudo npm -g i n; sudo n lts; hash -r; npm -g i npm@latest; corepack enable; corepack prepare pnpm@latest --activate; npm -g i typescript npm-check-updates; pnpm install'"
+    "postCreateCommand": "bash -lc 'set -euo pipefail; sudo npm -g i n; sudo n lts; hash -r; npm -g i npm@latest; corepack enable; corepack prepare pnpm@10.28.0 --activate; npm -g i typescript npm-check-updates; pnpm install'"
packages/create-zenstack/src/templates.ts (1)

1-1: Clarify or remove the cryptic path comment.

The comment //../../cli/src/actions/templates.ts is unclear. If this indicates the file was copied/moved from that location, consider making it more explicit or removing it if no longer relevant.

samples/nest.js/tsconfig.json (1)

19-23: Consider enabling stricter type checking for better sample quality.

Several strict options are disabled which may lead to subtle bugs:

  • noImplicitAny: false - allows implicit any types
  • strictBindCallApply: false - skips bind/call/apply checking
  • noFallthroughCasesInSwitch: false - allows unintentional switch fallthrough

For a sample project meant to demonstrate best practices, consider enabling these or using "strict": true to catch more issues.

samples/next.js/package.json (1)

7-8: Document why --webpack is used in the sample scripts.

The --webpack flag is supported in Next.js 16 and is used to opt out of the new Turbopack default. Since this is a sample, consider adding a comment or note in the sample README explaining this choice (e.g., "using Webpack for broader plugin compatibility" or "Turbopack support for this setup is still in development"). This clarifies the intent for developers using the sample.

samples/nest.js/src/zenstack/schema.zmodel (1)

37-37: Commented-out procedure differs from other samples.

The listPublicPosts procedure is active in the SvelteKit, Next.js, and Nuxt samples but commented out here. Consider uncommenting for consistency, or remove the comment if it's intentionally excluded.

samples/nest.js/src/db.service.ts (1)

6-17: Close the SQLite handle on shutdown.

better-sqlite3 keeps the file handle open; adding a NestJS lifecycle hook avoids locked files in dev/tests.

♻️ Proposed fix
-import { ClientOptions, ZenStackClient } from '@zenstackhq/orm';
+import { ClientOptions, ZenStackClient } from '@zenstackhq/orm';
+import { OnModuleDestroy } from '@nestjs/common';
 import { SqliteDialect } from '@zenstackhq/orm/dialects/sqlite';
 import SQLite from 'better-sqlite3';
 import { schema, SchemaType } from './zenstack/schema';
 
 export class DbService extends ZenStackClient<
   SchemaType,
   ClientOptions<SchemaType>
-> {
+> implements OnModuleDestroy {
+  private readonly db: ReturnType<typeof SQLite>;
+
   constructor() {
-    super(schema, {
-      dialect: new SqliteDialect({
-        database: new SQLite('./src/zenstack/dev.db'),
-      }),
+    const db = new SQLite('./src/zenstack/dev.db');
+    super(schema, {
+      dialect: new SqliteDialect({ database: db }),
       log: ['query', 'error'],
     });
+    this.db = db;
   }
+
+  onModuleDestroy() {
+    this.db.close();
+  }
 }
samples/nest.js/src/app-auth.controller.ts (1)

14-23: Use structured logger instead of console.log
console.log bypasses the app’s logging pipeline; prefer a controller-scoped logger for consistency.

♻️ Suggested change
-import { Controller, Get, Inject, Post } from '@nestjs/common';
+import { Controller, Get, Inject, Logger, Post } from '@nestjs/common';
 import { DbService } from './db.service';

 `@Controller`('api-auth')
 export class AppAuthController {
-  constructor(`@Inject`('AUTH_DB') private readonly dbService: DbService) {}
+  private readonly logger = new Logger(AppAuthController.name);
+  constructor(`@Inject`('AUTH_DB') private readonly dbService: DbService) {}

   `@Post`('/posts')
   createPost() {
-    console.log('Handling post');
+    this.logger.log('Handling post');
     return this.dbService.post.create({
samples/nest.js/src/app-auto.controller.ts (2)

18-21: Make the REST endpoint configurable
A hard-coded localhost endpoint will be wrong in non-local environments; consider reading from env/config.

♻️ Suggested change
   private readonly apiHandler = new RestApiHandler({
     schema,
-    endpoint: 'http://localhost:3000/api-auto',
+    endpoint: `${process.env.API_BASE_URL ?? 'http://localhost:3000'}/api-auto`,
   });

25-39: Normalize wildcard path before passing to the handler
Ensure a leading slash to avoid route mismatches; verify the expected path format for RestApiHandler.

♻️ Suggested change
-    const pathParam: string = params?.['*'] ?? ('' as string);
+    const rawPath: string = params?.['*'] ?? '';
+    const pathParam = rawPath.startsWith('/') ? rawPath : `/${rawPath}`;
samples/nest.js/src/main.ts (1)

8-14: Consider binding to 0.0.0.0 for containerized deployments.

"Fastify, in contrast, listens only on the loopback interface 127.0.0.1" by default. When deploying in containers (Docker, Kubernetes), this will prevent external traffic from reaching the server. Pass the host as the second argument to listen().

🔧 Suggested fix
 async function bootstrap() {
   const app = await NestFactory.create<NestFastifyApplication>(
     AppModule,
     new FastifyAdapter(),
   );
-  await app.listen(process.env.PORT ?? 3000);
+  await app.listen(process.env.PORT ?? 3000, '0.0.0.0');
 }
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 154ba29 and 300bed1.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (48)
  • .devcontainer/devcontainer.json
  • MY-CHANGES.md
  • package.json
  • packages/auth-adapters/better-auth/package.json
  • packages/auth-adapters/better-auth/src/adapter.ts
  • packages/cli/package.json
  • packages/cli/src/utils/exec-utils.ts
  • packages/cli/test/migrate.test.ts
  • packages/clients/client-helpers/package.json
  • packages/clients/tanstack-query/package.json
  • packages/clients/tanstack-query/src/vue.ts
  • packages/create-zenstack/package.json
  • packages/create-zenstack/src/templates.ts
  • packages/ide/vscode/package.json
  • packages/orm/package.json
  • packages/plugins/policy/package.json
  • packages/server/package.json
  • packages/testtools/package.json
  • packages/zod/package.json
  • pnpm-workspace.yaml
  • samples/nest.js/.gitignore
  • samples/nest.js/.prettierrc
  • samples/nest.js/README.md
  • samples/nest.js/eslint.config.mjs
  • samples/nest.js/nest-cli.json
  • samples/nest.js/package.json
  • samples/nest.js/src/app-auth.controller.ts
  • samples/nest.js/src/app-auto.controller.ts
  • samples/nest.js/src/app.controller.ts
  • samples/nest.js/src/app.module.ts
  • samples/nest.js/src/db.service.ts
  • samples/nest.js/src/main.ts
  • samples/nest.js/src/utils.ts
  • samples/nest.js/src/zenstack/input.ts
  • samples/nest.js/src/zenstack/models.ts
  • samples/nest.js/src/zenstack/schema.ts
  • samples/nest.js/src/zenstack/schema.zmodel
  • samples/nest.js/src/zenstack/seed.ts
  • samples/nest.js/tsconfig.build.json
  • samples/nest.js/tsconfig.json
  • samples/next.js/package.json
  • samples/next.js/zenstack/schema.zmodel
  • samples/nuxt/zenstack/schema.zmodel
  • samples/sveltekit/package.json
  • samples/sveltekit/src/zenstack/schema.zmodel
  • tests/e2e/package.json
  • tests/runtimes/bun/package.json
  • tests/runtimes/edge-runtime/package.json
🧰 Additional context used
📓 Path-based instructions (1)
**/*.zmodel

📄 CodeRabbit inference engine (CLAUDE.md)

**/*.zmodel: Always run zenstack generate after modifying ZModel schemas
ZModel schema files should define database structure and policies that compile to TypeScript via zenstack generate

Files:

  • samples/next.js/zenstack/schema.zmodel
  • samples/nuxt/zenstack/schema.zmodel
  • samples/nest.js/src/zenstack/schema.zmodel
  • samples/sveltekit/src/zenstack/schema.zmodel
🧠 Learnings (13)
📓 Common learnings
Learnt from: CR
Repo: zenstackhq/zenstack-v3 PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T01:55:04.540Z
Learning: Applies to packages/zenstackhq/orm/**/*.{ts,tsx} : Implement plugin hooks at ORM, Kysely, and entity mutation levels for query interception and customization
Learnt from: CR
Repo: zenstackhq/zenstack-v3 PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T01:55:04.540Z
Learning: Use `pnpm` with workspaces for package management, pinned to version `pnpm10.12.1`
📚 Learning: 2025-11-26T01:55:04.540Z
Learnt from: CR
Repo: zenstackhq/zenstack-v3 PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T01:55:04.540Z
Learning: Applies to **/*.zmodel : ZModel schema files should define database structure and policies that compile to TypeScript via `zenstack generate`

Applied to files:

  • samples/nest.js/src/zenstack/models.ts
  • packages/zod/package.json
  • packages/create-zenstack/src/templates.ts
  • packages/orm/package.json
  • samples/nest.js/README.md
  • samples/next.js/zenstack/schema.zmodel
  • samples/nest.js/src/db.service.ts
  • samples/nuxt/zenstack/schema.zmodel
  • samples/nest.js/src/zenstack/schema.ts
  • packages/testtools/package.json
  • samples/nest.js/package.json
  • samples/nest.js/src/zenstack/schema.zmodel
  • samples/sveltekit/src/zenstack/schema.zmodel
  • samples/next.js/package.json
  • samples/nest.js/src/zenstack/input.ts
  • samples/sveltekit/package.json
📚 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:

  • samples/nest.js/src/zenstack/models.ts
  • samples/next.js/zenstack/schema.zmodel
  • samples/nest.js/src/zenstack/schema.ts
📚 Learning: 2025-11-26T01:55:04.540Z
Learnt from: CR
Repo: zenstackhq/zenstack-v3 PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T01:55:04.540Z
Learning: Applies to **/*.zmodel : Always run `zenstack generate` after modifying ZModel schemas

Applied to files:

  • samples/nest.js/src/zenstack/models.ts
  • samples/next.js/zenstack/schema.zmodel
  • samples/nuxt/zenstack/schema.zmodel
  • samples/next.js/package.json
📚 Learning: 2025-11-26T01:55:04.540Z
Learnt from: CR
Repo: zenstackhq/zenstack-v3 PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T01:55:04.540Z
Learning: Applies to packages/zenstackhq/orm/**/*.{ts,tsx} : Implement plugin hooks at ORM, Kysely, and entity mutation levels for query interception and customization

Applied to files:

  • samples/nest.js/src/zenstack/models.ts
  • packages/orm/package.json
  • samples/nest.js/README.md
  • samples/next.js/zenstack/schema.zmodel
  • pnpm-workspace.yaml
  • samples/nest.js/src/zenstack/schema.ts
  • packages/testtools/package.json
  • packages/auth-adapters/better-auth/src/adapter.ts
  • packages/clients/tanstack-query/src/vue.ts
  • samples/nest.js/src/zenstack/schema.zmodel
  • samples/nest.js/src/zenstack/input.ts
📚 Learning: 2025-11-26T01:55:04.540Z
Learnt from: CR
Repo: zenstackhq/zenstack-v3 PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T01:55:04.540Z
Learning: Applies to packages/zenstackhq/orm/**/*.{ts,tsx} : Use Kysely as the query builder interface for low-level database queries, avoiding raw SQL when possible

Applied to files:

  • samples/nest.js/src/zenstack/models.ts
  • packages/create-zenstack/src/templates.ts
  • packages/orm/package.json
  • samples/nest.js/README.md
  • samples/next.js/zenstack/schema.zmodel
  • samples/nest.js/src/db.service.ts
  • pnpm-workspace.yaml
  • tests/runtimes/bun/package.json
  • packages/testtools/package.json
  • packages/auth-adapters/better-auth/src/adapter.ts
  • packages/clients/tanstack-query/src/vue.ts
  • samples/nest.js/src/zenstack/input.ts
📚 Learning: 2025-12-30T15:07:06.254Z
Learnt from: mwillbanks
Repo: zenstackhq/zenstack-v3 PR: 550
File: packages/orm/src/client/crud/operations/base.ts:158-159
Timestamp: 2025-12-30T15:07:06.254Z
Learning: Do not use ts-expect-error in production code within the zenstackhq/zenstack-v3 repo (e.g., packages/*). Use explicit type annotations, targeted type assertions, or refactor to resolve the type error. ts-expect-error may be acceptable only in test files for stubbing or temporary silencing. Ensure production code is type-safe and maintainable.

Applied to files:

  • packages/cli/src/utils/exec-utils.ts
  • packages/create-zenstack/src/templates.ts
  • packages/auth-adapters/better-auth/src/adapter.ts
  • packages/clients/tanstack-query/src/vue.ts
📚 Learning: 2025-11-26T01:55:04.540Z
Learnt from: CR
Repo: zenstackhq/zenstack-v3 PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T01:55:04.540Z
Learning: Applies to tests/e2e/**/*.{ts,tsx} : E2E tests should validate real-world schema compatibility with established projects

Applied to files:

  • samples/nest.js/tsconfig.json
  • packages/orm/package.json
  • samples/nest.js/src/zenstack/schema.ts
  • tests/e2e/package.json
  • packages/server/package.json
📚 Learning: 2025-12-30T15:07:10.092Z
Learnt from: mwillbanks
Repo: zenstackhq/zenstack-v3 PR: 550
File: packages/orm/src/client/crud/operations/base.ts:158-159
Timestamp: 2025-12-30T15:07:10.092Z
Learning: In the zenstackhq/zenstack-v3 codebase, ts-expect-error should be heavily avoided in production code (packages/*). It is acceptable in test files but production code should use proper type annotations, type assertions, or refactoring to resolve type errors instead.

Applied to files:

  • packages/zod/package.json
  • packages/orm/package.json
  • samples/nest.js/README.md
  • packages/cli/package.json
  • packages/server/package.json
  • samples/sveltekit/package.json
📚 Learning: 2025-11-26T01:55:04.540Z
Learnt from: CR
Repo: zenstackhq/zenstack-v3 PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T01:55:04.540Z
Learning: Applies to packages/zenstackhq/orm/**/*.test.{ts,tsx} : ORM package tests should include comprehensive client API tests and policy tests

Applied to files:

  • packages/orm/package.json
  • samples/nest.js/README.md
  • samples/nest.js/src/zenstack/input.ts
📚 Learning: 2025-11-26T01:55:04.540Z
Learnt from: CR
Repo: zenstackhq/zenstack-v3 PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T01:55:04.540Z
Learning: Use `pnpm` with workspaces for package management, pinned to version `pnpm10.12.1`

Applied to files:

  • packages/orm/package.json
  • pnpm-workspace.yaml
  • packages/clients/client-helpers/package.json
  • packages/testtools/package.json
  • package.json
  • samples/nest.js/package.json
  • packages/cli/package.json
📚 Learning: 2025-11-26T01:55:04.540Z
Learnt from: CR
Repo: zenstackhq/zenstack-v3 PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T01:55:04.540Z
Learning: Applies to ide/vscode/**/{package.json,version.ts} : The VSCode IDE extension package should maintain a different version from other packages to comply with VSCode Marketplace requirements

Applied to files:

  • packages/ide/vscode/package.json
  • package.json
📚 Learning: 2025-11-26T01:55:04.540Z
Learnt from: CR
Repo: zenstackhq/zenstack-v3 PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T01:55:04.540Z
Learning: Use Turbo for build orchestration and run `pnpm build`, `pnpm watch`, `pnpm lint`, and `pnpm test` for development tasks

Applied to files:

  • package.json
  • samples/next.js/package.json
🧬 Code graph analysis (5)
samples/nest.js/src/zenstack/seed.ts (1)
samples/nest.js/src/db.service.ts (1)
  • DbService (6-18)
samples/nest.js/src/app-auth.controller.ts (4)
samples/nest.js/src/app-auto.controller.ts (1)
  • Controller (16-46)
samples/nest.js/src/app.controller.ts (1)
  • Controller (5-35)
samples/nest.js/src/db.service.ts (1)
  • DbService (6-18)
samples/nest.js/src/zenstack/models.ts (1)
  • Post (17-17)
samples/nest.js/src/app.controller.ts (2)
samples/nest.js/src/db.service.ts (1)
  • DbService (6-18)
samples/nest.js/src/zenstack/models.ts (1)
  • Post (17-17)
samples/nest.js/src/app-auto.controller.ts (3)
samples/nest.js/src/app-auth.controller.ts (1)
  • Controller (5-25)
samples/nest.js/src/app.controller.ts (1)
  • Controller (5-35)
samples/nest.js/src/db.service.ts (1)
  • DbService (6-18)
samples/nest.js/src/app.module.ts (3)
samples/nest.js/src/db.service.ts (1)
  • DbService (6-18)
samples/nest.js/src/utils.ts (1)
  • isAdmin (3-6)
packages/plugins/policy/src/plugin.ts (1)
  • PolicyPlugin (6-29)
🔇 Additional comments (49)
samples/nest.js/.prettierrc (1)

1-4: LGTM — clear, minimal Prettier config.

tests/runtimes/edge-runtime/package.json (1)

21-23: Verify edge-runtime typechecks after @types/pg bump.

Run the local typecheck/tests to confirm no new type errors were introduced:

#!/bin/bash
pnpm -C tests/runtimes/edge-runtime test:typecheck
pnpm -C tests/runtimes/edge-runtime test
packages/testtools/package.json (1)

40-41: I need the review comment to rewrite. Please provide the original review comment within <review_comment> tags along with any relevant context (such as file paths, code snippets, or links to executed capability results) so I can verify and rewrite it according to the required format.

packages/clients/client-helpers/package.json (1)

32-34: No breaking changes documented for superjson 2.2.6. The latest documented changes in the 2.2.x series (v2.2.2) include backward-compatible improvements: deserialization error handling and a DoS vulnerability fix. The update is safe to proceed with.

samples/nest.js/nest-cli.json (1)

1-14: LGTM!

Well-configured NestJS CLI setup. Using SWC with typeCheck: true provides faster builds while maintaining type safety. The deleteOutDir: true ensures clean builds.

packages/plugins/policy/package.json (1)

49-49: LGTM!

Type definition update aligns with the repo-wide dependency refresh. This is a safe devDependency update.

packages/zod/package.json (1)

37-40: LGTM!

Minor version bump within Zod 4.x is a safe update. Ensure the catalog: version in pnpm-workspace.yaml is compatible with or matches ^4.3.5 for consistency between devDependency and peerDependency.

packages/create-zenstack/package.json (1)

34-35: Verify ESM migration for ora and compatibility with new APIs.

These major version upgrades introduce breaking changes:

  • ora: 5.x → 9.x includes a critical migration from CommonJS to Pure ESM. Code using require('ora') will fail with ERR_REQUIRE_ESM. Requires Node.js 20+ in v9.
  • commander: 8.x → 14.x includes API changes (Option.preset, showSuggestionAfterError default behavior, boolean-option handling).

Verify the create-zenstack package has been migrated to ESM and its code is compatible with the new API signatures.

tests/runtimes/bun/package.json (1)

23-25: Dependency bumps look fine; please confirm runtime compatibility.
Line 23–25: Ensure bun-types@^1.3.6 matches the Bun version used in CI, and that @types/pg@^8.16.0 aligns with the pg catalog version.

packages/auth-adapters/better-auth/package.json (1)

44-49: Version bump OK; validate adapter compatibility.
Line 44–49: Please verify the adapter still compiles/behaves correctly against better-auth@^1.4.13 and the updated import paths (run adapter tests or a small integration).

samples/sveltekit/package.json (1)

27-38: Version updates look fine; confirm sample build still passes.
Line 27–38: Please verify these bumps remain compatible with the workspace’s cataloged @sveltejs/kit/svelte versions and run the sample build to confirm.

packages/ide/vscode/package.json (1)

40-40: Verify that engines.vscode was updated to match the @types/vscode bump.

Line 40: @types/vscode@^1.108.1 requires engines.vscode to be at least ^1.108.0. The VSCode extension publisher (vsce) enforces this minimum version alignment. If engines.vscode remains at ^1.90.0, vsce will reject the package, or TypeScript will allow APIs unavailable in v1.90, risking runtime failures.

Confirm that engines.vscode was also bumped to ^1.108.0 in this change, or downgrade @types/vscode to ^1.90.0 if the lower engine constraint must be maintained.

samples/nest.js/.gitignore (1)

1-58: LGTM for NestJS sample ignore coverage.

Captures common build artifacts, env files, and IDE configs cleanly.

packages/cli/src/utils/exec-utils.ts (1)

8-17: Default stdio handling looks solid.

Good safeguard against non-interactive hangs while preserving explicit stdio overrides.

packages/orm/package.json (2)

118-126: No action required. zod 4.3.5 and tsx 4.21.0 have no user-facing behavioral changes or breaking changes. The zod v4.3.5 release is documentation and maintenance-focused, and tsx 4.21.0 only upgraded esbuild. Both versions are stable and safe to use.

Likely an incorrect or invalid review comment.


84-98: Verify breaking changes for ID libs; uuid v13 and cuid2 v3 are confirmed breaking.

  • uuid v13.0.0 has a breaking export map change (browser exports become default). Named imports (import { v4 as uuidv4 }) remain the API, but this requires ESM-compatible tooling; confirm jest/build configs support ESM or map uuid appropriately. [build/toolchain risk]

  • @paralleldrive/cuid2 v3.0.6 is a semantic breaking change from old cuid: IDs are no longer k-sortable (not timestamp-ordered), default length is 24 chars, and the API changed to use init() factory. If ORM or its schema assumes k-sortable IDs, sorting by ID, or the old cuid format, this will break. [ID format/sorting risk]

  • nanoid v5.1.6: no breaking changes (patch-only fix).

  • ulid v3.0.2: requires Node 18+ (up from 16+) and is ESM-only; no API breaking changes documented.

Confirm ORM does not rely on cuid's k-sortability and that ID generation/schema logic is unaffected.

tests/e2e/package.json (1)

15-27: Verify ID generation behavior matches e2e test expectations for major library updates.

The uuid v13 update involves import/export mechanics (ESM-only with Node 18+ requirement) and is unlikely to affect test assertions. However, @paralleldrive/cuid2 v3 introduces a breaking semantic change: IDs are no longer k-sortable and no longer timestamp-based. Any e2e test fixtures or assertions that rely on ID ordering to verify sequence or assume timestamp encoding will break. Confirm no test code depends on ID monotonicity or uses IDs for timing/ordering validation, and check that bundle/import configurations support the ESM-only uuid v13 module resolution.

packages/create-zenstack/src/templates.ts (1)

30-59: LGTM!

The starter template provides a clean, working example demonstrating ZenStackClient with SQLite. The database paths are correctly aligned assuming the generated schema file will be at ./zenstack/schema.ts and the dev.db will be relative to it.

packages/clients/tanstack-query/package.json (1)

77-79: Peer dependency minimum versions may break existing users.

Changing peer dependencies from ^5.0.0 to ^5.90.17 (and similar for others) will cause npm/pnpm to emit warnings for users on older TanStack Query versions (e.g., 5.50.0). This effectively requires users to upgrade their TanStack Query packages.

If this is intentional due to API changes you depend on, consider documenting this in a changelog. If not, the previous floor versions (^5.0.0, ^6.0.0) provide broader compatibility:

     "peerDependencies": {
-        "@tanstack/react-query": "^5.90.17",
-        "@tanstack/svelte-query": "^6.0.15",
-        "@tanstack/vue-query": "^5.92.6"
+        "@tanstack/react-query": "^5.0.0",
+        "@tanstack/svelte-query": "^6.0.0",
+        "@tanstack/vue-query": "^5.0.0"
     },
packages/cli/package.json (3)

45-57: LGTM on minor/patch updates.

The patch and minor version updates (execa, mixpanel, package-manager-detector, semver, @types/semver) are low-risk incremental updates.


44-44: Verify CLI code updates for Commander v14 and Ora v9 major version jumps.

Commander v8→14 introduces significant breaking changes across 6 major versions that require code updates:

  • Node.js v20+ is now required (check CI/runtime environment)
  • Removed default CommonJS export: update imports from require('commander') to { program }
  • Excess command arguments now error by default (add .allowExcessArguments() or declare expected arguments)
  • Stricter validation for duplicate option flags and command names
  • Help class internals refactored; private Help APIs (e.g., Help.wrap) must migrate to public APIs

Ora v5→9 also has a critical breaking change:

  • Ora is now ESM-only; CommonJS require('ora') no longer works
  • Either migrate to ESM, use dynamic import, or declare allowSyntheticDefaultImports if using ESM in a CommonJS context

Confirm the CLI code has been updated to handle these changes and that Node v20+ is targeted in CI/runtime.


49-49: Verify CLI compatibility with Ora v9.

This is a major version jump from v5 to v9. Ora v9 is ESM-only and requires Node.js 20+. Ensure the CLI package is configured for ESM (or uses dynamic imports if CommonJS) and targets Node 20 or higher. While spinner method usage (.start(), .succeed(), .fail()) remains compatible, module resolution and runtime requirements are breaking changes.

samples/nest.js/tsconfig.json (1)

25-27: LGTM on ts-node SWC configuration.

The ts-node section with swc: true aligns with the PR description noting that this sample uses SWC as the compiler, providing faster TypeScript execution during development.

samples/nest.js/tsconfig.build.json (1)

1-3: LGTM for a minimal build tsconfig.
Please just confirm tsc -p samples/nest.js/tsconfig.build.json behaves as intended (exclusions effective, build output expected).

samples/nest.js/eslint.config.mjs (1)

1-35: Looks good; please verify lint passes with type-aware rules enabled.
projectService: true can fail if the TS project graph is misconfigured; confirm pnpm lint in the sample works cleanly.

pnpm-workspace.yaml (1)

7-35: Validate the widened catalog ranges don't introduce incompatible transitive upgrades.

Please ensure the workspace lockfile and CI reflect the intended resolved versions (especially React/Next/TanStack/TypeScript). Verify by running pnpm -r list --depth 0 and checking that resolved versions match expectations, particularly for breaking changes in major/minor version transitions.

samples/next.js/package.json (1)

32-32: eslint-config-next 16.1.2 is correctly aligned with Next.js 16.x. This version is the official ESLint config shipped for Next.js 16 and should be used with Next.js 16.x releases. No action required.

package.json (3)

52-58: Package extension added to fix @sveltejs/package peer dependency.

This extension ensures @sveltejs/package has access to TypeScript ^5.9.3, which is a reasonable workaround for peer dependency resolution issues.


5-5: Dependency updates look appropriate.

The pnpm and devDependency version bumps (eslint, vitest, prettier, tsup, tsx, turbo, typescript-eslint, yaml) are minor/patch updates that align the toolchain with current releases.

Also applies to: 28-43


33-33: Check if glob CLI is used directly in build scripts or package.json scripts.

Glob v13 has a breaking change: the CLI program was removed and moved to the separate glob-bin package. If your monorepo uses glob CLI in any build scripts or package.json scripts, you'll need to add glob-bin as a dependency. Programmatic usage of glob should be unaffected.

samples/sveltekit/src/zenstack/schema.zmodel (1)

1-28: Schema structure looks good for a sample application.

The User and Post models with their relations are well-defined. The cascade delete/update on the Post→User relation ensures referential integrity.

As per coding guidelines, remember to run zenstack generate after modifying this schema to compile it to TypeScript.

samples/next.js/zenstack/schema.zmodel (1)

1-28: Schema is consistent with other samples; no access control policies present.

Note: The AI summary mentioned @@allow rules and an admin field for this schema, but these are not present in the actual code. The schema matches the simpler SvelteKit/Nuxt samples pattern.

As per coding guidelines, remember to run zenstack generate after modifying this schema.

samples/nuxt/zenstack/schema.zmodel (1)

1-28: Schema is consistent with other framework samples.

The structure mirrors the SvelteKit and Next.js samples, maintaining consistency across the sample applications.

As per coding guidelines, remember to run zenstack generate after modifying this schema.

samples/nest.js/src/zenstack/schema.zmodel (2)

6-8: Good addition of policy plugin for access control demonstration.

Including the @zenstackhq/plugin-policy plugin enables the @@allow rules defined on the models, making this sample more feature-complete for demonstrating ZenStack's access control capabilities.


10-35: Well-structured models with access control policies.

The User and Post models with @@allow rules demonstrate ZenStack's policy-based access control effectively. The cascade behavior on the Post→User relation is correctly configured.

As per coding guidelines, remember to run zenstack generate after modifying this schema.

samples/nest.js/src/zenstack/schema.ts (1)

8-127: LGTM for the generated schema output.

No issues spotted in this generated schema definition.

samples/nest.js/src/zenstack/models.ts (1)

8-17: LGTM for generated model type exports.

The model type aliases look consistent with the schema.

packages/server/package.json (1)

124-160: Confirm adapter compatibility with the bumped peer/dev dependency ranges.

These updates cover major/RC framework versions (Express 5.2.1, Fastify 5.7, Hono 4.11, H3 2.0.1-rc.8, Zod 4.3.5). Please re-run the server adapter test matrix and update any compatibility docs if needed.

samples/nest.js/src/app.controller.ts (1)

16-32: Avoid hard-coded authorId values.

The user ID should be derived from the current request context (authentication/JWT) rather than hard-coded. This ensures the post is correctly attributed to the actual authenticated user making the request, rather than assuming a fixed user ID exists in the database.

samples/nest.js/src/app-auth.controller.ts (2)

6-7: LGTM
Constructor wiring looks clean.


9-12: LGTM
Straightforward list handler.

samples/nest.js/src/zenstack/input.ts (1)

1-50: LGTM (generated types)
No concerns with the generated aliases.

samples/nest.js/src/app-auto.controller.ts (1)

23-23: LGTM

samples/nest.js/src/app.module.ts (2)

11-17: LGTM
Module wiring is clear.


18-26: No changes required. The $use() and $setAuth() methods both return new client instances (shallow clones) and do not mutate the original DbService. The current code correctly creates a per-request auth-bound client by chaining these methods, which is the documented pattern. Each request receives a distinct client instance, so there is no risk of auth context leakage or middleware accumulation across requests.

packages/clients/tanstack-query/src/vue.ts (4)

16-16: LGTM on the type migration to MutationObserverOptions.

Using MutationObserverOptions from @tanstack/query-core for the internal callback types is appropriate since it provides the framework-agnostic callback signatures. The Vue-specific UseMutationOptions is retained where needed (e.g., procedure mutations at line 156).

Also applies to: 119-121


141-145: Good type abstractions.

The new type aliases (MutationLifecycleOptions, ResolvedMutationOptions, MutationCallbackParams) centralize the mutation callback typing and make the lifecycle hook implementations more readable.


593-641: Lifecycle hooks are correctly implemented.

The unref() calls on user callbacks (lines 598, 620, 640) provide defensive handling for edge cases where callbacks might be ref-wrapped inside the options object. The callback parameters use the new MutationCallbackParams type for type safety, and return values are properly preserved for context propagation.


649-649: Correct reactive pattern for Vue Query.

Passing a getter function () => finalOptions.value rather than the computed ref directly is the proper pattern for Vue Query to reactively update when options change.

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@package.json`:
- Around line 30-44: Replace all uses of the old glob.sync API with the new
named export globSync: in the three affected modules (scripts/test-generate.ts,
scripts/bump-version.ts, and packages/testtools/src/client.ts) change the import
from "import { glob } from 'glob'" to "import { globSync } from 'glob'" and
update each call site from glob.sync(...) to globSync(...). Also review the
dependency versions: align the glob version pinned in
packages/language/package.json (currently ^11.1.0) with the root/testtools
(^13.0.0) by either upgrading packages/language to ^13.x or intentionally
keeping it at v11 and adding a comment/exemption—ensure package.json entries for
"glob" are consistent across the monorepo.
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 300bed1 and d3853b3.

📒 Files selected for processing (6)
  • package.json
  • packages/create-zenstack/src/templates.ts
  • samples/nest.js/src/zenstack/schema.zmodel
  • samples/next.js/zenstack/schema.zmodel
  • samples/nuxt/zenstack/schema.zmodel
  • samples/sveltekit/src/zenstack/schema.zmodel
✅ Files skipped from review due to trivial changes (1)
  • samples/next.js/zenstack/schema.zmodel
🚧 Files skipped from review as they are similar to previous changes (3)
  • samples/nest.js/src/zenstack/schema.zmodel
  • samples/sveltekit/src/zenstack/schema.zmodel
  • packages/create-zenstack/src/templates.ts
🧰 Additional context used
📓 Path-based instructions (1)
**/*.zmodel

📄 CodeRabbit inference engine (CLAUDE.md)

**/*.zmodel: Always run zenstack generate after modifying ZModel schemas
ZModel schema files should define database structure and policies that compile to TypeScript via zenstack generate

Files:

  • samples/nuxt/zenstack/schema.zmodel
🧠 Learnings (7)
📓 Common learnings
Learnt from: CR
Repo: zenstackhq/zenstack-v3 PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T01:55:04.540Z
Learning: Database migrations should use Prisma CLI under the hood via ZenStack commands
Learnt from: CR
Repo: zenstackhq/zenstack-v3 PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T01:55:04.540Z
Learning: Applies to packages/zenstackhq/orm/**/*.{ts,tsx} : Implement plugin hooks at ORM, Kysely, and entity mutation levels for query interception and customization
📚 Learning: 2025-11-26T01:55:04.540Z
Learnt from: CR
Repo: zenstackhq/zenstack-v3 PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T01:55:04.540Z
Learning: Applies to **/*.zmodel : ZModel schema files should define database structure and policies that compile to TypeScript via `zenstack generate`

Applied to files:

  • samples/nuxt/zenstack/schema.zmodel
📚 Learning: 2025-11-26T01:55:04.540Z
Learnt from: CR
Repo: zenstackhq/zenstack-v3 PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T01:55:04.540Z
Learning: Applies to **/*.zmodel : Always run `zenstack generate` after modifying ZModel schemas

Applied to files:

  • samples/nuxt/zenstack/schema.zmodel
📚 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:

  • samples/nuxt/zenstack/schema.zmodel
📚 Learning: 2025-11-26T01:55:04.540Z
Learnt from: CR
Repo: zenstackhq/zenstack-v3 PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T01:55:04.540Z
Learning: Use `pnpm` with workspaces for package management, pinned to version `pnpm10.12.1`

Applied to files:

  • package.json
📚 Learning: 2025-11-26T01:55:04.540Z
Learnt from: CR
Repo: zenstackhq/zenstack-v3 PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T01:55:04.540Z
Learning: Applies to ide/vscode/**/{package.json,version.ts} : The VSCode IDE extension package should maintain a different version from other packages to comply with VSCode Marketplace requirements

Applied to files:

  • package.json
📚 Learning: 2025-11-26T01:55:04.540Z
Learnt from: CR
Repo: zenstackhq/zenstack-v3 PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T01:55:04.540Z
Learning: Use Turbo for build orchestration and run `pnpm build`, `pnpm watch`, `pnpm lint`, and `pnpm test` for development tasks

Applied to files:

  • package.json
🔇 Additional comments (3)
samples/nuxt/zenstack/schema.zmodel (1)

1-1: LGTM!

The import statement correctly references the shared schema and aligns with the standardized import pattern applied across other sample apps in this PR. The relative path is accurate for this file's location.

As per coding guidelines, remember to run zenstack generate after modifying ZModel schemas when working with these samples.

package.json (2)

5-5: No action needed. The pnpm@10.28.0 pin at the root is intentional; the VSCode package correctly maintains pnpm@10.12.1 separately to comply with VSCode Marketplace requirements (as documented in repo learnings). These are separate, non-conflicting configurations.

Likely an incorrect or invalid review comment.


53-58: No action needed. The packageExtensions TypeScript version is already perfectly aligned with the workspace catalog. Both specify typescript: ^5.9.3, and the root devDependencies uses "catalog:" to inherit this same version. There is no version skew or risk of duplicate installations.

Likely an incorrect or invalid review comment.

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants