Conversation
WalkthroughWidespread dependency version bumps across the monorepo and many package.json files, small formatting/type-ordering edits in docs and TS declarations, a behavioral tweak to connector label detection, removal of docs/jobs.md, and addition of a LICENSE for packages/backend/native. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes
Suggested reviewers
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (1 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
package.json (1)
171-171: Critical: yjs patch resolution version mismatch with package dependencies.The root package.json resolutions field pins yjs@13.6.21 with a patch file (yjs-npm-13.6.21-c9f1f3397c.patch), but 20+ packages across the monorepo declare yjs@^13.6.27:
- Root:
"yjs": "patch:yjs@npm%3A13.6.21#~/.yarn/patches/yjs-npm-13.6.21-c9f1f3397c.patch"- All workspace packages:
"yjs": "^13.6.27"(y-octo, reader, infra, nbstore, frontend/core, ios, electron, blocksuite packages, backend/server, etc.)The patch file is explicitly versioned for 13.6.21 and may not apply correctly to 13.6.27, causing installation failures or incorrect patching behavior. Update the patch resolution to target yjs@13.6.27 or verify the patch is compatible across versions.
🧹 Nitpick comments (3)
packages/frontend/track/package.json (1)
11-11: Test @sentry/react 9.47.1 integration for behavioral consistency.The @sentry/react update from 9.2.0 to 9.47.1 contains no breaking changes or API deprecations. Within Sentry SDK v9, all releases between 9.2 and 9.47 are minor/patch updates with features, fixes, and behavioral improvements. Verify event capture, replay recordings (if enabled), log buffering, and session handling in your environment.
blocksuite/affine/blocks/note/package.json (1)
36-37: Standardize version constraint syntax for consistency.These dependencies use exact version pinning (e.g.,
"10.1.1"instead of"^10.1.1"), which is inconsistent with other blocksuite/affine packages in this PR that use caret constraints. Consider aligning the version syntax across the monorepo to standardize dependency management and allow automatic patch updates.Apply this diff to align with the caret constraint pattern used elsewhere:
- "minimatch": "10.1.1", - "rxjs": "7.8.2", + "minimatch": "^10.1.1", + "rxjs": "^7.8.2",blocksuite/affine/blocks/frame/package.json (1)
31-33: Standardize version constraint syntax and verify yjs compatibility.Like the note block, this file uses exact version pinning instead of caret constraints. Consider aligning with the monorepo's pattern. Additionally, the yjs minor bump (13.6.21 → 13.6.27) should be verified for compatibility with frame-specific functionality.
Apply this diff to align version constraint syntax:
- "minimatch": "10.1.1", - "rxjs": "7.8.2", - "yjs": "13.6.27", + "minimatch": "^10.1.1", + "rxjs": "^7.8.2", + "yjs": "^13.6.27",
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
⛔ Files ignored due to path filters (1)
yarn.lockis excluded by!**/yarn.lock,!**/*.lock
📒 Files selected for processing (99)
blocksuite/affine/all/package.json(2 hunks)blocksuite/affine/blocks/attachment/package.json(1 hunks)blocksuite/affine/blocks/bookmark/package.json(1 hunks)blocksuite/affine/blocks/callout/package.json(1 hunks)blocksuite/affine/blocks/code/package.json(1 hunks)blocksuite/affine/blocks/data-view/package.json(1 hunks)blocksuite/affine/blocks/database/package.json(1 hunks)blocksuite/affine/blocks/divider/package.json(1 hunks)blocksuite/affine/blocks/edgeless-text/package.json(1 hunks)blocksuite/affine/blocks/embed-doc/package.json(1 hunks)blocksuite/affine/blocks/embed/package.json(1 hunks)blocksuite/affine/blocks/frame/package.json(1 hunks)blocksuite/affine/blocks/image/package.json(1 hunks)blocksuite/affine/blocks/latex/package.json(1 hunks)blocksuite/affine/blocks/list/package.json(1 hunks)blocksuite/affine/blocks/note/package.json(1 hunks)blocksuite/affine/blocks/paragraph/package.json(1 hunks)blocksuite/affine/blocks/root/package.json(1 hunks)blocksuite/affine/blocks/surface-ref/package.json(1 hunks)blocksuite/affine/blocks/surface/package.json(1 hunks)blocksuite/affine/blocks/table/package.json(2 hunks)blocksuite/affine/components/package.json(1 hunks)blocksuite/affine/data-view/package.json(1 hunks)blocksuite/affine/foundation/package.json(1 hunks)blocksuite/affine/fragments/adapter-panel/package.json(1 hunks)blocksuite/affine/fragments/doc-title/package.json(1 hunks)blocksuite/affine/fragments/frame-panel/package.json(1 hunks)blocksuite/affine/fragments/outline/package.json(1 hunks)blocksuite/affine/gfx/brush/package.json(1 hunks)blocksuite/affine/gfx/connector/package.json(1 hunks)blocksuite/affine/gfx/group/package.json(1 hunks)blocksuite/affine/gfx/link/package.json(1 hunks)blocksuite/affine/gfx/mindmap/package.json(1 hunks)blocksuite/affine/gfx/note/package.json(1 hunks)blocksuite/affine/gfx/pointer/package.json(1 hunks)blocksuite/affine/gfx/shape/package.json(1 hunks)blocksuite/affine/gfx/template/package.json(1 hunks)blocksuite/affine/gfx/text/package.json(1 hunks)blocksuite/affine/gfx/turbo-renderer/package.json(1 hunks)blocksuite/affine/inlines/comment/package.json(1 hunks)blocksuite/affine/inlines/footnote/package.json(1 hunks)blocksuite/affine/inlines/latex/package.json(1 hunks)blocksuite/affine/inlines/link/package.json(1 hunks)blocksuite/affine/inlines/mention/package.json(1 hunks)blocksuite/affine/inlines/preset/package.json(1 hunks)blocksuite/affine/inlines/reference/package.json(1 hunks)blocksuite/affine/model/package.json(1 hunks)blocksuite/affine/rich-text/package.json(1 hunks)blocksuite/affine/shared/package.json(2 hunks)blocksuite/affine/widgets/drag-handle/package.json(1 hunks)blocksuite/affine/widgets/edgeless-auto-connect/package.json(1 hunks)blocksuite/affine/widgets/edgeless-dragging-area/package.json(1 hunks)blocksuite/affine/widgets/edgeless-selected-rect/package.json(1 hunks)blocksuite/affine/widgets/edgeless-toolbar/package.json(1 hunks)blocksuite/affine/widgets/edgeless-zoom-toolbar/package.json(1 hunks)blocksuite/affine/widgets/frame-title/package.json(1 hunks)blocksuite/affine/widgets/keyboard-toolbar/package.json(1 hunks)blocksuite/affine/widgets/linked-doc/package.json(1 hunks)blocksuite/affine/widgets/note-slicer/package.json(1 hunks)blocksuite/affine/widgets/page-dragging-area/package.json(1 hunks)blocksuite/affine/widgets/remote-selection/package.json(1 hunks)blocksuite/affine/widgets/scroll-anchoring/package.json(1 hunks)blocksuite/affine/widgets/slash-menu/package.json(1 hunks)blocksuite/affine/widgets/toolbar/package.json(1 hunks)blocksuite/affine/widgets/viewport-overlay/package.json(1 hunks)blocksuite/docs/package.json(1 hunks)blocksuite/framework/global/package.json(1 hunks)blocksuite/framework/std/package.json(2 hunks)blocksuite/framework/store/package.json(1 hunks)blocksuite/framework/sync/package.json(1 hunks)blocksuite/integration-test/package.json(2 hunks)blocksuite/playground/package.json(2 hunks)docs/reference/package.json(1 hunks)package.json(2 hunks)packages/backend/server/package.json(4 hunks)packages/common/graphql/package.json(1 hunks)packages/common/infra/package.json(2 hunks)packages/common/nbstore/package.json(1 hunks)packages/common/reader/package.json(1 hunks)packages/common/y-octo/node/package.json(1 hunks)packages/frontend/admin/package.json(2 hunks)packages/frontend/apps/android/package.json(1 hunks)packages/frontend/apps/electron-renderer/package.json(1 hunks)packages/frontend/apps/electron/package.json(3 hunks)packages/frontend/apps/ios/package.json(2 hunks)packages/frontend/apps/mobile/package.json(1 hunks)packages/frontend/apps/web/package.json(1 hunks)packages/frontend/component/package.json(3 hunks)packages/frontend/core/package.json(2 hunks)packages/frontend/i18n/package.json(1 hunks)packages/frontend/media-capture-playground/package.json(1 hunks)packages/frontend/native/package.json(1 hunks)packages/frontend/routes/package.json(1 hunks)packages/frontend/track/package.json(1 hunks)tests/blocksuite/package.json(1 hunks)tools/changelog/package.json(1 hunks)tools/cli/package.json(2 hunks)tools/copilot-result/package.json(1 hunks)tools/utils/package.json(1 hunks)
🧰 Additional context used
🧠 Learnings (4)
📚 Learning: 2025-11-27T03:23:11.880Z
Learnt from: CR
Repo: toeverything/AFFiNE PR: 0
File: packages/frontend/apps/ios/AGENTS.md:0-0
Timestamp: 2025-11-27T03:23:11.880Z
Learning: Applies to packages/frontend/apps/ios/**/*.{ts,tsx,js,jsx} : Follow ESLint/Prettier configuration from workspace root
Applied to files:
packages/frontend/apps/web/package.jsonblocksuite/affine/all/package.jsontools/utils/package.jsonpackages/frontend/apps/ios/package.jsonblocksuite/affine/gfx/turbo-renderer/package.jsontools/cli/package.json
📚 Learning: 2025-11-27T03:23:11.880Z
Learnt from: CR
Repo: toeverything/AFFiNE PR: 0
File: packages/frontend/apps/ios/AGENTS.md:0-0
Timestamp: 2025-11-27T03:23:11.880Z
Learning: Use React 19 as the UI framework
Applied to files:
packages/frontend/apps/web/package.jsonpackages/frontend/apps/electron-renderer/package.jsonpackages/frontend/component/package.jsonpackages/frontend/apps/android/package.jsonpackages/frontend/apps/mobile/package.jsonpackages/frontend/apps/ios/package.jsonpackages/frontend/i18n/package.jsonpackages/frontend/admin/package.json
📚 Learning: 2025-11-27T03:23:11.880Z
Learnt from: CR
Repo: toeverything/AFFiNE PR: 0
File: packages/frontend/apps/ios/AGENTS.md:0-0
Timestamp: 2025-11-27T03:23:11.880Z
Learning: Applies to packages/frontend/apps/ios/**/*.{ts,tsx} : Enable TypeScript strict mode
Applied to files:
blocksuite/affine/all/package.jsonpackages/frontend/apps/ios/package.jsonblocksuite/affine/gfx/turbo-renderer/package.json
📚 Learning: 2025-11-27T03:23:11.880Z
Learnt from: CR
Repo: toeverything/AFFiNE PR: 0
File: packages/frontend/apps/ios/AGENTS.md:0-0
Timestamp: 2025-11-27T03:23:11.880Z
Learning: Use `yarn build` to build the web application
Applied to files:
packages/frontend/apps/electron/package.json
⏰ 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). (20)
- GitHub Check: y-octo binding test on aarch64-pc-windows-msvc
- GitHub Check: E2E Test (5)
- GitHub Check: E2E BlockSuite Test (7)
- GitHub Check: E2E BlockSuite Test (10)
- GitHub Check: E2E BlockSuite Test (8)
- GitHub Check: E2E BlockSuite Test (9)
- GitHub Check: E2E BlockSuite Test (3)
- GitHub Check: E2E BlockSuite Test (2)
- GitHub Check: E2E BlockSuite Test (6)
- GitHub Check: E2E BlockSuite Test (4)
- GitHub Check: E2E BlockSuite Test (1)
- GitHub Check: E2E Mobile Test (5)
- GitHub Check: loom thread test
- GitHub Check: E2E Mobile Test (3)
- GitHub Check: E2E Mobile Test (4)
- GitHub Check: Lint Rust
- GitHub Check: E2E Mobile Test (1)
- GitHub Check: Lint
- GitHub Check: Typecheck
- GitHub Check: E2E Mobile Test (2)
🔇 Additional comments (113)
blocksuite/affine/inlines/link/package.json (1)
32-33: Dependencies align with monorepo-wide bumps.Both rxjs and yjs updates are consistent across the PR. Confirm yjs 13.6.27 compatibility (same verification as other files).
blocksuite/affine/widgets/edgeless-toolbar/package.json (1)
29-29: rxjs patch update is consistent across packages.LGTM pending verification of rxjs 7.8.2 changelog.
blocksuite/affine/inlines/comment/package.json (1)
27-28: Dependencies are consistently updated across monorepo.Both updates match other files in the PR. Pending yjs 13.6.27 verification from earlier comments.
blocksuite/affine/widgets/toolbar/package.json (1)
29-29: rxjs patch bump follows monorepo-wide pattern.LGTM pending rxjs 7.8.2 verification.
blocksuite/affine/fragments/adapter-panel/package.json (1)
26-26: rxjs patch version bump to 7.8.2 is a safe, low-risk update.The release includes three minor bugfixes: fixes for animationFrameScheduler task flushing, mergeWith Array handling, and TypeScript typings tightening for the subscriber. No breaking changes introduced.
tools/utils/package.json (1)
20-20: Prettier upgrade (3.3.3 → 3.7.4) introduces multiple formatting behavior changes; code must be reformatted.This 4-version jump spans several releases with documented formatting changes: 3.4.0 (template literals, tagged templates, CSS, HTML output), 3.5.0 (new formatting options, JSONC package.json parsing), 3.6.0 (parser/plugin formatting fixes), and 3.7.0 (TypeScript consistency improvements, import attributes). The package.json in this repo will be affected by 3.5.0's JSONC parsing. Ensure all code is reformatted with the new version before committing to avoid CI failures.
⛔ Skipped due to learnings
Learnt from: CR Repo: toeverything/AFFiNE PR: 0 File: packages/frontend/apps/ios/AGENTS.md:0-0 Timestamp: 2025-11-27T03:23:11.880Z Learning: Applies to packages/frontend/apps/ios/**/*.{ts,tsx,js,jsx} : Follow ESLint/Prettier configuration from workspace rootpackages/common/y-octo/node/package.json (1)
31-31: No action needed. The yjs bump from 13.6.24 → 13.6.27 contains only bug fixes and minor additions. v13.6.25 and v13.6.26 include safety checks for struct iteration, while v13.6.27 adds backward-compatible BigInt support in Y.Map.set. No breaking changes are documented across these patch releases.tools/changelog/package.json (1)
13-13: No significant concerns with the marked version bump.The bump from 15.0.3 to 15.0.12 is a patch-level update within the v15.x series. Patch versions in marked maintain API compatibility, so no output format changes or breaking changes are expected. The custom Renderer in tools/changelog/markdown.js uses the v15.x token structure correctly; this is not a new concern introduced by the version bump.
blocksuite/affine/gfx/text/package.json (1)
30-32: Dependency version bumps look good.No direct vulnerabilities have been found for minimatch 10.1.1, and the rxjs and yjs patches are routine maintenance updates. All use
^for semver ranges and are compatible with the upgrade.tools/copilot-result/package.json (1)
11-11: Patch bump for marked is safe.Routine patch-level update with no breaking changes expected.
blocksuite/affine/inlines/reference/package.json (1)
31-32: Patch bumps for rxjs and yjs are routine maintenance.No breaking changes expected in these minor version increments.
blocksuite/affine/blocks/paragraph/package.json (1)
29-30: Dependency updates are safe.Both minimatch and rxjs bumps are routine updates with no breaking changes.
blocksuite/affine/blocks/bookmark/package.json (1)
29-31: Dependency version bumps are appropriate.Routine maintenance updates with no breaking changes expected across all three dependencies.
blocksuite/affine/blocks/edgeless-text/package.json (1)
31-32: Dependency updates are safe.Both bumps follow the coordinated monorepo-wide update pattern with no breaking changes expected.
blocksuite/affine/widgets/frame-title/package.json (1)
25-25: Patch bump is routine.Patch-level rxjs update with no breaking changes expected.
blocksuite/affine/widgets/remote-selection/package.json (1)
26-26: Patch bump is routine.Patch-level rxjs update with no breaking changes expected.
blocksuite/affine/widgets/slash-menu/package.json (1)
27-27: Dependency patch bump looks good.RxJS 7.8.1 → 7.8.2 is a safe patch-level version bump with no breaking changes expected.
blocksuite/affine/widgets/keyboard-toolbar/package.json (1)
46-46: Dependency patch bump looks good.RxJS 7.8.1 → 7.8.2 is a safe patch-level version bump with no breaking changes expected.
blocksuite/affine/inlines/footnote/package.json (1)
32-33: Dependency patch bumps look good.Both RxJS 7.8.1 → 7.8.2 and Yjs 13.6.21 → 13.6.27 are patch-level version bumps with no breaking changes expected.
blocksuite/affine/widgets/scroll-anchoring/package.json (1)
21-21: Dependency patch bump looks good.RxJS 7.8.1 → 7.8.2 is a safe patch-level version bump with no breaking changes expected.
blocksuite/affine/inlines/mention/package.json (1)
31-32: Dependency patch bumps look good.Both RxJS 7.8.1 → 7.8.2 and Yjs 13.6.21 → 13.6.27 are patch-level version bumps with no breaking changes expected.
blocksuite/affine/gfx/note/package.json (1)
33-35: RxJS 7.8.1 → 7.8.2 and Yjs 13.6.21 → 13.6.27 are safe patch-level bumps. The minimatch bump from 10.0.1 → 10.1.1 is also safe—minimatch 10.1.x contains no breaking changes relative to 10.0.1.blocksuite/affine/blocks/data-view/package.json (1)
30-31: RxJS and minimatch version bumps are safe.RxJS 7.8.1 → 7.8.2 is a safe patch bump. The minimatch 10.0.1 → 10.1.1 minor version bump introduces no breaking changes—it adds a magicalBraces option and fixes makeRe correctness without altering the existing API surface.
blocksuite/affine/blocks/surface/package.json (1)
29-32: All dependency updates are safe to merge. RxJS 7.8.2 and Yjs 13.6.27 are patch-level bumps, and nanoid 5.1.6 introduces only TypeScript improvements (opaque types support) with no breaking changes compared to 5.0.7.blocksuite/affine/blocks/callout/package.json (1)
33-34: Dependency updates approved.Consistent with broader monorepo maintenance (minimatch ^10.1.1, rxjs ^7.8.2).
blocksuite/affine/widgets/page-dragging-area/package.json (1)
28-28: Minor patch update approved.rxjs patch bump (^7.8.2) is a safe incremental update.
blocksuite/affine/widgets/edgeless-auto-connect/package.json (1)
25-25: Patch update approved.rxjs ^7.8.2 is a routine maintenance increment.
blocksuite/affine/gfx/link/package.json (1)
33-35: Dependency updates approved.minimatch ^10.1.1, rxjs ^7.8.2, and yjs ^13.6.27 are all safe incremental updates consistent with the broader monorepo maintenance effort.
blocksuite/affine/gfx/connector/package.json (1)
31-33: Dependency updates approved.Identical safe updates to minimatch, rxjs, and yjs across the gfx modules.
blocksuite/affine/gfx/template/package.json (1)
32-34: Dependency updates approved.minimatch ^10.1.1, rxjs ^7.8.2, and yjs ^13.6.27 updates are consistent across the gfx modules.
blocksuite/affine/data-view/package.json (1)
30-31: Dependency and devDependency updates approved.rxjs ^7.8.2, yjs ^13.6.27, and vitest ^3.2.4 are routine maintenance updates appropriate for this release.
Also applies to: 35-35
blocksuite/affine/blocks/list/package.json (1)
30-31: Dependency version bumps look good.Both updates (minimatch to ^10.1.1, rxjs to ^7.8.2) are straightforward version increments suitable for a maintenance release. Security verification confirms neither package has known CVEs or vulnerabilities in these versions.
packages/common/reader/package.json (1)
18-18: Safe patch-level dependency upgrade.The yjs patch bump (13.6.21 → 13.6.27) is a minor maintenance release that maintains semantic versioning compatibility.
blocksuite/affine/widgets/note-slicer/package.json (1)
27-28: Safe patch-level upgrades for RxJS and Yjs.Both bumps (rxjs 7.8.1 → 7.8.2, yjs 13.6.21 → 13.6.27) are patch-level releases maintaining semver compatibility.
packages/common/graphql/package.json (1)
20-20: Verify prettier formatting stability after minor version bump.Prettier 3.4.2 → 3.7.4 spans a minor version upgrade that may introduce subtle formatting changes. Ensure that code formatting passes CI checks and formatters run cleanly across the codebase.
packages/frontend/track/package.json (1)
13-13: Verify intentional version constraint change for react-router-dom.The version constraint changed from fixed (6.30.0) to caret (^6.30.2), allowing minor/patch version flexibility. Confirm this is intentional rather than an accidental versioning change.
blocksuite/affine/gfx/mindmap/package.json (2)
37-37: Verify minimatch 10.1.1 glob pattern compatibility.Minimatch minor version bump (10.0.1 → 10.1.1) may include changes to glob matching behavior. Confirm no unexpected pattern matching regressions for any file inclusion/exclusion logic.
38-40: Safe patch-level upgrades for RxJS and Yjs.Patch-level releases (rxjs 7.8.1 → 7.8.2, yjs 13.6.21 → 13.6.27) maintain semantic versioning safety.
tools/cli/package.json (3)
19-19: Safe patch-level AWS SDK upgrade.The AWS SDK patch bump (3.947.0 → 3.948.0) is a standard maintenance release.
40-40: Verify prettier formatting stability (Tailwind CSS build context).Prettier 3.4.2 → 3.7.4 may affect formatting of Tailwind utility classes in this build tool. Given Tailwind CSS dependency update on line 45, ensure formatting remains stable and consistent.
45-45: Confirm Tailwind CSS v4 codebase migration is complete.The bump to tailwindcss 4.1.17 is a minor update within the v4 major version. Per the Tailwind v4 migration guide, v4 introduced breaking changes including:
- Important modifier moved to end (e.g.,
text-xl!instead of!text-xl)- Opacity utilities replaced with slash syntax (e.g.,
bg-blue-500/50instead ofbg-blue-500 bg-opacity-50)- CSS variable syntax changed to parentheses (e.g.,
bg-(--brand-color)instead ofbg-[--brand-color])Ensure that the Tailwind v4 migration is complete across the codebase and all CSS/config files conform to v4 syntax before deploying this version bump.
blocksuite/affine/model/package.json (1)
20-21: Safe patch-level upgrades for RxJS and Yjs.Patch-level releases (rxjs 7.8.1 → 7.8.2, yjs 13.6.21 → 13.6.27) maintain semantic versioning safety.
blocksuite/affine/fragments/frame-panel/package.json (2)
31-31: Verify minimatch 10.1.1 glob pattern compatibility.Minimatch minor version bump (10.0.1 → 10.1.1) may include changes to glob matching behavior. Ensure no unexpected pattern matching regressions.
32-32: Safe patch-level RxJS upgrade.Patch-level release (rxjs 7.8.1 → 7.8.2) maintains semantic versioning safety.
blocksuite/affine/blocks/surface-ref/package.json (1)
33-34: Verify nanoid minor version bump for compatibility.The rxjs patch update (7.8.1 → 7.8.2) is safe, but nanoid (5.0.7 → 5.1.6) is a minor version bump. While minor versions typically maintain backwards compatibility, confirm there are no breaking changes or API modifications affecting this package's usage.
blocksuite/affine/rich-text/package.json (1)
30-31: Verify yjs minor version bump for breaking changes.The rxjs patch update is safe, but yjs (13.6.21 → 13.6.27) is a minor version bump spanning multiple minor releases. Ensure the upgrade path includes no breaking changes or behavioral modifications, especially since yjs is a critical library for collaborative editing.
blocksuite/affine/inlines/preset/package.json (1)
38-38: Verify shiki and yjs minor version compatibility.This file contains multiple significant updates: rxjs patch (safe), but shiki (3.0.0 → 3.19.0) represents a substantial minor version jump across 19 releases, and yjs (13.6.21 → 13.6.27) is also a minor bump. Verify that shiki's newer releases don't introduce breaking changes to syntax highlighting behavior or API contracts used by this preset module.
Also applies to: 43-45
packages/frontend/native/package.json (1)
32-32: LGTM!The rxjs patch update is safe and aligns with other modules in the PR.
blocksuite/affine/blocks/database/package.json (1)
35-37: Verify yjs minor version bump.The minimatch and rxjs patch updates are safe, but yjs (13.6.21 → 13.6.27) is a minor version bump. Ensure this database block module—which likely relies on yjs for collaborative state management—remains compatible with the newer yjs version across its data structures and event handling.
blocksuite/affine/blocks/code/package.json (1)
34-36: Verify shiki major minor-version compatibility for syntax highlighting.The minimatch and rxjs patch updates are safe, but shiki (3.0.0 → 3.19.0) spans 19 minor versions. Since the code block relies on shiki for syntax highlighting, verify that this upgrade doesn't introduce breaking changes to highlighting behavior, language definitions, or the theme API.
packages/frontend/media-capture-playground/package.json (3)
17-18: Verify type definitions alignment with runtime React version.The dependencies specify React 19.2.1 and @types/react 19.0.8, but devDependencies specify older versions (@types/react 19.0.1, @types/react-dom 19.0.2). This mismatch could cause TypeScript type errors if React 19.2 introduces types not present in the older @types versions.
Align the devDependencies
@types/reactand@types/react-domversions to match the runtime versions in dependencies. Update:"devDependencies": { - "@types/react": "^19.0.1", - "@types/react-dom": "^19.0.2" + "@types/react": "^19.0.8", + "@types/react-dom": "^19.0.3" }Also applies to: 26-27, 37-39
26-27: No action required — React 19.2.1 is a compatible patch release.React 19.2.1 is a patch release (Dec 3, 2025) containing bug and security fixes for Server Components and Server Actions, not new hooks or APIs. No deprecated React patterns (defaultProps, propTypes, contextTypes, getChildContext) are used in this package, so the dependency specification is compatible and requires no changes.
32-32: Update@tailwindcss/viteto align with tailwindcss version.The project uses
tailwindcss@^4.1.17but@tailwindcss/vite@^4.0.6. For consistency and to ensure all Vite-specific enhancements are available, update@tailwindcss/viteto^4.1.x. Tailwind 4.0→4.1 is a routine upgrade with no breaking changes.blocksuite/affine/widgets/edgeless-zoom-toolbar/package.json (1)
27-27: Patch-level rxjs update is safe.The rxjs bump from 7.8.1 to 7.8.2 is a patch-level change that maintains API compatibility.
blocksuite/affine/blocks/table/package.json (2)
30-31: Patch-level updates are safe.The rxjs and yjs patch bumps maintain API compatibility.
13-13: @atlaskit/pragmatic-drag-and-drop 1.7.7 has no breaking changes.While this package jumps 3 minor versions (1.4.0 → 1.7.7), the 1.7.7 release contains only internal changes to border application with no breaking changes or API modifications. This version bump is safe to deploy.
blocksuite/affine/fragments/doc-title/package.json (1)
29-30: Minor version updates are within safe bounds.The minimatch and rxjs updates (minor and patch respectively) maintain backward compatibility.
blocksuite/affine/widgets/drag-handle/package.json (1)
34-35: Minor version updates are within safe bounds.The minimatch and rxjs updates maintain backward compatibility.
blocksuite/affine/blocks/embed/package.json (1)
33-35: Version updates are within safe bounds.The minimatch (minor), rxjs (patch), and yjs (patch) updates maintain backward compatibility.
blocksuite/affine/blocks/embed-doc/package.json (1)
33-35: Version updates are within safe bounds.The minimatch (minor), rxjs (patch), and yjs (patch) updates maintain backward compatibility.
blocksuite/affine/widgets/viewport-overlay/package.json (1)
26-26: Patch-level rxjs update is safe.The rxjs bump from 7.8.1 to 7.8.2 is a patch-level change that maintains API compatibility.
blocksuite/affine/foundation/package.json (1)
29-30: Patch updates approved.These are both patch-level updates (rxjs 7.8.2, yjs 13.6.27) within the existing version constraints and should be backward compatible.
blocksuite/affine/blocks/attachment/package.json (1)
29-30: Consistent patch and minor updates.The rxjs 7.8.2 patch update is safe. The minimatch 10.1.1 minor update follows the same pattern as other files—verify it has no breaking changes.
blocksuite/affine/widgets/linked-doc/package.json (1)
32-32: LGTM.Patch-level update to rxjs 7.8.2 is safe and consistent with other packages in this PR.
blocksuite/affine/widgets/edgeless-dragging-area/package.json (1)
26-27: LGTM.Patch-level updates to rxjs 7.8.2 and yjs 13.6.27 are safe and backward compatible.
blocksuite/affine/blocks/image/package.json (1)
31-32: Consistent updates.The rxjs 7.8.2 patch is safe. The minimatch 10.1.1 minor update should be verified for breaking changes (same as other packages).
blocksuite/affine/gfx/turbo-renderer/package.json (1)
16-16: LGTM.Patch-level update to rxjs 7.8.2 is safe and consistent across all packages in this PR.
blocksuite/affine/gfx/group/package.json (1)
31-33: Verify minimatch 10.1.1 compatibility with CommonJS consumers.This file bumps three dependencies:
- rxjs 7.8.1 → 7.8.2 (patch): backward compatible
- yjs 13.6.21 → 13.6.27 (patch): backward compatible
- minimatch 10.0.1 → 10.1.1 (minor): requires attention
minimatch 10.1.1 itself does not introduce new breaking changes, but the 10.0.2+ release line updated brace-expansion to v3+, which moved to ESM-only and breaks CommonJS consumers (ERR_REQUIRE_ESM). Verify that this monorepo either uses ES modules or has compatibility measures for CommonJS dependencies relying on minimatch 10.x.
blocksuite/playground/package.json (1)
27-27: Patch-level updates across build tooling and dependencies are appropriate.All versions are within compatible ranges (same major versions). The playground package being private and used for development makes these updates low-risk. No issues identified.
Also applies to: 30-31, 34-34, 43-46
blocksuite/integration-test/package.json (1)
25-26: Version alignment with blocksuite/playground is consistent and appropriate.Patch-level updates maintain consistency across the BlockSuite packages. No compatibility concerns identified.
Also applies to: 44-46
blocksuite/affine/inlines/latex/package.json (1)
32-32: Significant updates to KaTeX and Shiki are appropriate for a LaTeX inline package.The updates from KaTeX 0.16.11 to 0.16.27 and Shiki 3.0.0 to 3.19.0 (19 patches) represent meaningful maintenance updates. Both libraries maintain backward compatibility within their major versions. No API changes detected in the package exports.
Also applies to: 37-39
packages/frontend/i18n/package.json (2)
25-26: React 19.2.1 update is well-aligned with library roadmap.The upgrade from React ^19.0.0 to ^19.2.1 introduces minor improvements and bug fixes. Per React 19.2 documentation, this version is stable and includes performance enhancements (Performance Tracks, useEffectEvent, better SSR streaming). Verify that react-i18next ^15.2.0 compatibility remains solid.
20-26: Remove this review comment - no action needed.No references to
undeciexist anywhere in the codebase. The package was removed as part of an intentional dependency update ("bump more deps" commit), and no other code or packages depend on it.packages/common/nbstore/package.json (1)
25-25: Maintenance updates for core persistence and utility libraries are appropriate.The updates to lib0 (17 patches), yjs (6 patches), nanoid, and uuid represent standard maintenance within their major versions. These changes are particularly safe for a backend storage package as they primarily include bug fixes and internal improvements. The alignment with yjs updates is expected.
Also applies to: 27-29, 31-31
blocksuite/affine/widgets/edgeless-selected-rect/package.json (1)
30-31: Standard patch updates for a minimal widget package.These patch-level updates align with other BlockSuite packages in this PR. No compatibility concerns identified.
blocksuite/affine/blocks/root/package.json (1)
53-55: Consistent patch updates for foundational root block package.All versions are updated within safe semver ranges. The updates to minimatch, rxjs, and yjs align with the broader BlockSuite dependency refresh strategy.
blocksuite/affine/all/package.json (1)
82-82: > Likely an incorrect or invalid review comment.blocksuite/affine/gfx/pointer/package.json (1)
30-32: LGTM!Patch-level dependency bumps (minimatch, rxjs, yjs) are low-risk and backward compatible. These align with similar updates across the monorepo.
packages/frontend/apps/electron-renderer/package.json (1)
20-20: Verify React 19.2.1 and cross-env 10.1.0 compatibility for Electron renderer.Same concerns as the web app: React 19.0.0 → 19.2.1 has breaking changes (error handling, ref callbacks, deprecated APIs), and cross-env 7.x → 10.x is a major version jump. Electron renderer may have additional platform-specific compatibility considerations.
Confirm that:
- Electron IPC integration and native module loading work with React 19.2.1
- cross-env 10.x properly handles Electron build environment variables
- Renderer process builds and runs successfully with these versions
Also applies to: 26-29, 36-36
docs/reference/package.json (1)
10-10: LGTM!Patch-level updates to documentation-generation devDependencies (nodemon, typedoc) are low-risk and safe.
Also applies to: 12-12
blocksuite/affine/blocks/latex/package.json (1)
31-31: LGTM!Patch-level dependency updates (katex, rxjs) and minimatch version alignment are safe and consistent with updates across the monorepo.
Also applies to: 33-33, 35-35
packages/frontend/component/package.json (3)
64-65: Inconsistent version pinning for React.Lines 64-65 use explicit version
19.2.1instead of caret (^19.2.1) like other package.json files in the monorepo. This pins to an exact React version, potentially causing version mismatches or duplicate instances if parent packages specify^19.2.1.Verify:
- Whether exact pinning is intentional (e.g., for peer dependency matching)
- Consistency with React version pinning across the monorepo
- If this could cause
npm dedupeor multiple React instance issuesConsider aligning with the caret pattern used elsewhere unless there's a specific reason for exact pinning.
19-21: Verify React 19.2.1 breaking changes are compatible (component package).Same React 19.2.1 compatibility concerns as other frontend apps apply here:
- Error handling behavior changed
- ref callback behavior changed (must not return values)
- Deprecated APIs removed
Additionally, this package defines
peerDependenciesfor React (lines 19-20) which still specify^19.0.0. These should align with the updated actual dependency versions or accept the wider range.Verify:
- No ref callbacks in component library return values
- No deprecated React APIs used
- Storybook components render correctly with React 19.2.1
- Consider updating peerDependencies to
^19.2.0for clarity if intentionally requiring 19.2+Also applies to: 64-70
28-29: [rewritten comment]
[classification tag]blocksuite/affine/fragments/outline/package.json (1)
30-31: LGTM!Patch-level dependency bumps (minimatch, rxjs) are low-risk and backward compatible, consistent with updates across the monorepo.
packages/frontend/apps/web/package.json (1)
19-28: React 19.2.1 is a patch release with bug fixes—no breaking changes in this version bump.React 19.2.1 is a patch release (19.0.0→19.2.1) containing bug and security fixes, not breaking changes. The breaking changes listed (error handling, ref callbacks, deprecated APIs) are part of the broader React 19 release (vs. React 18), not specific to 19.2.1. This dependency update is compatible and safe.
The main improvements in 19.2.1 are Server Components and SSR/Suspense behavioral fixes. If the app uses SSR or Suspense features, test to ensure the Suspense reveal timing aligns with expectations, but this is a standard practice for patch upgrades rather than a breaking change issue.
blocksuite/affine/components/package.json (1)
31-31: The shiki 3.0.0 → 3.19.0 version bump is safe; no action needed.The concern about breaking changes in shiki 3.19.0 is not supported by the evidence. While shiki v3.0.0 introduced breaking changes from v2 (e.g., getHighlighter → createHighlighter), subsequent v3.x releases through v3.19.0 contain only features, bugfixes, and minor adjustments—no additional breaking changes. The codebase already uses the v3.x API correctly (createHighlighterCore, bundledLanguagesInfo, codeToTokensBase, getWasm), which are all stable across the v3 release line. All dependency updates in this change (katex, rxjs, shiki, yjs) are safe.
Likely an incorrect or invalid review comment.
packages/frontend/apps/mobile/package.json (2)
21-22: React 19.2.1 updates look good.The React and react-dom bumps from 19.0.0 to 19.2.1 align with your project guidelines (per learnings, use React 19). The devDependency types are appropriately pinned. Based on the React 19 library documentation, version 19.2.1 introduces Performance Tracks, useEffectEvent, Activity, and improved SSR streaming—all backward compatible.
19-23: No action required. The project has already migrated to cross-env v10.1.0 across all packages. The breaking changes (ESM-only, Node.js >= 20) do not affect the codebase, which uses cross-env exclusively via CLI in package.json scripts (e.g.,cross-env NODE_ENV=...). No programmatic imports or environment variable handling changes are present that would break compatibility with v10.packages/backend/server/package.json (1)
31-39: Backend dependency bumps look reasonable.The updates to AI SDK clients, AWS SDK packages, and utilities (nanoid, piscina, stripe, rxjs, yjs, semver, tldts) are mostly patch and minor version bumps within compatible ranges. Ensure that:
- AWS SDK v3.948.0 (presigner and client-s3) are compatible with your S3 client usage patterns
- OpenTelemetry instrumentation packages (0.55–0.208 versions) maintain compatible span/metric APIs
- Prisma 6.6.0 migrations (if any) don't break schema generation or client usage
Also applies to: 81-81, 104-104, 108-108, 110-110, 115-120, 124-124
packages/frontend/apps/electron/package.json (1)
53-53: Electron app dependency updates look good.All bumps are patch/minor versions with expected compatibility:
- @sentry/react 9.47.1 aligns with other frontend apps
- cross-env 10.1.0 matches mobile package (consistent approach)
- msw 2.12.4 adds test utility improvements
- yjs, rxjs, semver, uuid bumps are routine maintenance
Also applies to: 60-60, 70-76, 86-86
blocksuite/affine/gfx/shape/package.json (1)
31-33: BlockSuite dependency bumps approved.Patch and minor version updates to minimatch, rxjs, and yjs are safe and maintain compatibility.
packages/frontend/admin/package.json (3)
39-39: React and minor dependency bumps approved.React 19.2.1, react-dom 19.2.1, and minor updates to sonner, swr, vaul, and cross-env are appropriate. These support the Tailwind and React Router upgrades.
Also applies to: 49-49, 51-51, 55-57, 64-64
54-54: This is not a critical issue. The react-router-dom v7.10.1 in the admin package is intentional and required by the@affine/routespackage peerDependency (which specifies ^7.5.1). The admin package correctly depends on@affine/routesand uses v7-specific Sentry integrations. No action needed.
67-67: Verify Tailwind CSS v4 compatibility is properly configured.The upgrade to Tailwind CSS v4.1.17 is correctly implemented in package.json, and dependencies (shadcn-ui ^0.9.5, tailwind-merge ^3.4.0) are compatible. Global CSS shows proper v4 setup with
@import 'tailwindcss'directives and@themeblocks using CSS custom properties.However, the codebase maintains both a JavaScript config (tailwind.config.js in v3 style) and CSS-based theming in global.css (v4 style), which is uncommon. Additionally:
- Preflight handling: Confirm that Tailwind v4.1's opt-in Preflight is explicitly configured in tailwind.config.js if the current behavior depends on it.
- No breaking change issues detected: Searches found no deprecated patterns (old ! modifier syntax, opacity utilities, or outline-none). The color theme correctly uses CSS variables with hsl() format.
- Border color compatibility: The global.css already includes explicit styles for the v4 border-color default change, showing migration awareness.
Consider consolidating configuration to use either pure CSS-based (@theme) or pure JS config to avoid potential conflicts.
packages/frontend/core/package.json (1)
45-45: Core frontend package dependency updates approved.React 19.2.1 upgrade and accompanying library bumps (katex, shiki, mermaid, lib0, rxjs, yjs, semver, etc.) are all patch/minor versions with expected backward compatibility. The SWR update to 2.3.7 and data-fetching utilities maintain API compatibility.
Also applies to: 60-60, 67-67, 69-69, 72-96
packages/common/infra/package.json (1)
21-21: Infra package dependency updates approved.React 19.2.1 and utility bumps (foxact, nanoid, yjs, rxjs) are all patch/minor versions. The peerDependencies range for react-dom (^19.0.0) appropriately allows flexibility for consuming packages.
Also applies to: 30-31, 41-41
packages/frontend/apps/android/package.json (1)
27-27: Android app dependency updates approved.React 19.2.1, react-router-dom 6.30.2, and cross-env 10.1.0 updates align with other frontend apps and are backward compatible. Minor patch updates to supporting libraries maintain API consistency.
Also applies to: 32-34, 40-40
blocksuite/docs/package.json (1)
11-11: Safe patch-level documentation tooling update.The typedoc bump from 0.28.0 to 0.28.15 is a patch-level update with no expected breaking changes. Documentation generation should remain unaffected.
blocksuite/framework/sync/package.json (1)
16-16: Safe patch-level dependency updates.Both idb-keyval and rxjs are bumped to patch versions (6.2.2 and 7.8.2 respectively), which typically contain bug fixes and security improvements without breaking changes.
Also applies to: 18-18
tests/blocksuite/package.json (1)
14-14: Safe rxjs patch update for test package.The rxjs patch bump to 7.8.2 is safe for test integration with no expected breaking changes.
blocksuite/framework/global/package.json (1)
59-59: Safe dependency updates for global framework module.The lib0 and rxjs updates are patch-level bumps (0.2.114 and 7.8.2 respectively) with no expected breaking changes. These align with coordinated updates across the monorepo.
Also applies to: 61-61
blocksuite/affine/gfx/brush/package.json (1)
30-32: Safe minor and patch updates, pending yjs patch resolution.The minimatch and rxjs bumps are safe (minor and patch levels). The yjs 13.6.27 update is part of the coordinated upgrade but depends on resolving the yjs patch mismatch flagged in the root package.json.
package.json (1)
70-70: cross-env 10.1.0 is compatible with this codebase.The upgrade from v7.0.3 to v10.1.0 is safe. While v10 introduced breaking changes (ESM-only, Node.js >= 20 requirement), these do not affect the CLI usage pattern in this repository. cross-env is invoked only as a command-line tool in scripts with
NODE_OPTIONSenvironment variables—this usage remains unchanged. The repo's Node.js version (22.16.0, with engines constraint<23.0.0) satisfies v10's requirement of >= 20. msw 2.12.4 and other dependency updates are safe.blocksuite/framework/store/package.json (1)
18-18: No action needed—all dependency updates are compatible.The dependency updates in this file are safe:
- nanoid ^5.1.6: Fully backward compatible with v4 for ESM usage. The code uses the standard
nanoidGenerator(10)API, which is unchanged between v4 and v5.- yjs ^13.6.27: No breaking changes from v13.6.21 (used in root package.json). Both versions are compatible; the bump includes minor improvements (bigint support in Y.Map.set) with no API incompatibilities.
- lib0, minimatch, rxjs: Safe patch/minor updates.
packages/frontend/apps/ios/package.json (1)
31-31: @sentry/react 9.47.1 is safe; cross-env concern does not apply to this file.The @sentry/react upgrade from 9.2.0 to 9.47.1 contains no breaking changes—all intermediate versions between 9.2.0 and 9.47.1 are bugfixes and feature additions. React 19.2.1 and react-router-dom 6.30.2 are compatible updates.
The cross-env 10.1.0 breaking change concern (ESM-only, Node.js >= 20) does not apply here—the iOS app package.json does not use cross-env. The root package.json uses cross-env in build scripts and would need separate review if also upgraded to v10.
blocksuite/affine/shared/package.json (3)
42-42: Consistency confirmed for minimatch and rxjs.These patch updates align with the dependency alignment across the monorepo noted in the other package.json files.
Also applies to: 49-49
43-43: No API compatibility concerns with quick-lru 7.3.0.The update from ^7.0.1 to ^7.3.0 introduces only additive changes (new methods: .expiresIn(), evict(); new getters: .maxSize, .maxAge). All changes are backward compatible with no breaking changes or API modifications.
32-32: No issues with this update. The mdast-util-gfm-footnote 2.1.0 release is stable and published across multiple package registries. This is a standard minor version bump and poses no concerns.blocksuite/framework/std/package.json (3)
13-15: No action needed. The version bump from ^1.4.0 to ^1.7.7 contains no breaking changes—all updates between these versions are bugfixes, internal improvements, and minor enhancements (RTL behavior, reorder() fix, styling tweaks). The drag-and-drop API remains compatible with the codebase.
29-29: Both versions are valid, released, and secure.rxjs 7.8.2 (released Feb 22, 2025) and yjs 13.6.27 are stable releases with no known security vulnerabilities or advisories. These patch-level updates are safe to proceed with.
24-24: lib0 0.2.114 is compatible with yjs 13.6.27. yjs 13.6.27 requires lib0 "^0.2.99", and no breaking changes have been introduced between lib0 0.2.97 and 0.2.114.blocksuite/affine/blocks/divider/package.json (1)
27-28: No action required. Both minimatch@10.1.1 and rxjs@7.8.2 are released, stable, and have no known security advisories.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## canary #14079 +/- ##
==========================================
+ Coverage 56.47% 57.03% +0.55%
==========================================
Files 2757 2757
Lines 138234 138239 +5
Branches 21058 21160 +102
==========================================
+ Hits 78071 78844 +773
+ Misses 57940 57673 -267
+ Partials 2223 1722 -501
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (1)
packages/backend/server/package.json (1)
112-113: React version pinning inconsistency: align both dependencies to use caret syntax.Line 112 uses
"react": "^19.2.1"while line 113 uses"react-dom": "19.2.1". This inconsistency creates version resolution risk in the Yarn workspace. Both should use the same versioning strategy.Update line 113 to match:
- "react-dom": "19.2.1", + "react-dom": "^19.2.1",If exact pinning for
react-domis intentional, document the reason with an inline comment.
🧹 Nitpick comments (3)
packages/frontend/component/src/ui/button/icon-button.tsx (1)
13-25: Consider standardizing interface formatting across the codebase.These formatting changes are fine, but there's an inconsistency in the PR: some interfaces are reformatted from single-line to multi-line extends clauses (e.g., badge.tsx, button.tsx, panel.tsx), while others go from multi-line to single-line (e.g., input.tsx, indicator.tsx). Consider establishing and applying a consistent formatting rule, perhaps through Prettier or ESLint configuration.
blocksuite/framework/std/src/gfx/model/surface/surface-model.ts (1)
353-357: Avoid comma operator here; prefer straightforward sequential statementsThe new comma-expression wrapper:
onChange: payload => { (this.elementUpdated.next(payload), Object.keys(payload.props).forEach(key => { model.model.propsUpdated.next({ key }); })); }is functionally equivalent to the previous two-statement block but is less idiomatic and harder to read, especially since the rest of the file (e.g., the earlier
onChangeinonElementsMapChange) uses plain sequential statements.I’d suggest reverting to the simpler style for clarity and consistency:
onChange: payload => { this.elementUpdated.next(payload); Object.keys(payload.props).forEach(key => { model.model.propsUpdated.next({ key }); }); }tests/blocksuite/e2e/drag.spec.ts (1)
287-337: Snapshot-based nested multi-block move looks correct (minor naming nit)The nested-list setup and snapshot expectations are coherent, and using
testInfo.titlefor snapshot naming is consistent with other tests. One small nit: the suffix_finial.jsonlooks like a typo for_final.json; if that’s unintentional, consider renaming here and in the corresponding snapshot file when you turn this on.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
⛔ Files ignored due to path filters (2)
packages/backend/server/src/__tests__/__snapshots__/mails.spec.ts.snapis excluded by!**/*.snapyarn.lockis excluded by!**/yarn.lock,!**/*.lock
📒 Files selected for processing (98)
SECURITY.md(0 hunks)blocksuite/affine/blocks/code/src/highlight/const.ts(1 hunks)blocksuite/affine/blocks/surface/src/renderer/elements/index.ts(1 hunks)blocksuite/affine/data-view/src/core/logical/composite-type.ts(2 hunks)blocksuite/affine/data-view/src/core/logical/data-type.ts(2 hunks)blocksuite/affine/data-view/src/core/logical/type-variable.ts(1 hunks)blocksuite/affine/data-view/src/core/property/base-cell.ts(1 hunks)blocksuite/affine/data-view/src/core/view-manager/cell.ts(1 hunks)blocksuite/affine/data-view/src/core/view-manager/property.ts(1 hunks)blocksuite/affine/data-view/src/core/view-manager/single-view.ts(1 hunks)blocksuite/affine/data-view/src/core/widget/widget-base.ts(1 hunks)blocksuite/affine/data-view/src/view-presets/table/pc-virtual/virtual/virtual-scroll.ts(1 hunks)blocksuite/affine/model/src/elements/connector/connector.ts(1 hunks)blocksuite/affine/model/src/utils/helper.ts(1 hunks)blocksuite/affine/shared/src/services/virtual-keyboard-service.ts(1 hunks)blocksuite/affine/widgets/edgeless-toolbar/src/draggable/draggable-element.controller.ts(1 hunks)blocksuite/affine/widgets/toolbar/src/toolbar.ts(1 hunks)blocksuite/docs/api/@blocksuite/std/gfx/classes/GfxBlockElementModel.md(2 hunks)blocksuite/docs/api/@blocksuite/std/gfx/functions/generateKeyBetween.md(1 hunks)blocksuite/docs/api/@blocksuite/std/gfx/functions/generateKeyBetweenV2.md(1 hunks)blocksuite/docs/api/@blocksuite/std/gfx/functions/generateNKeysBetween.md(1 hunks)blocksuite/docs/api/@blocksuite/std/gfx/type-aliases/GfxCommonBlockProps.md(1 hunks)blocksuite/docs/api/@blocksuite/store/classes/Boxed.md(1 hunks)blocksuite/docs/api/@blocksuite/store/classes/Schema.md(2 hunks)blocksuite/docs/api/@blocksuite/store/classes/Store.md(17 hunks)blocksuite/docs/api/@blocksuite/store/classes/Text.md(1 hunks)blocksuite/framework/std/src/gfx/model/gfx-block-model.ts(1 hunks)blocksuite/framework/std/src/gfx/model/surface/element-model.ts(2 hunks)blocksuite/framework/std/src/gfx/model/surface/surface-model.ts(1 hunks)blocksuite/framework/std/src/gfx/view/view.ts(1 hunks)blocksuite/framework/std/src/view/element/gfx-block-component.ts(1 hunks)docs/jobs.md(0 hunks)packages/backend/native/Cargo.toml(1 hunks)packages/backend/native/LICENSE(1 hunks)packages/backend/server/package.json(4 hunks)packages/backend/server/src/__tests__/__snapshots__/mails.spec.ts.md(21 hunks)packages/backend/server/src/core/auth/session.ts(1 hunks)packages/backend/server/src/core/permission/controller.ts(1 hunks)packages/backend/server/src/plugins/copilot/resolver.ts(1 hunks)packages/backend/server/src/plugins/indexer/providers/def.ts(1 hunks)packages/common/infra/package.json(2 hunks)packages/common/infra/src/utils/object-pool.ts(1 hunks)packages/common/nbstore/src/connection/connection.ts(1 hunks)packages/frontend/admin/src/components/ui/badge.tsx(1 hunks)packages/frontend/admin/src/components/ui/button.tsx(1 hunks)packages/frontend/admin/src/components/ui/input.tsx(1 hunks)packages/frontend/admin/src/components/ui/sheet.tsx(1 hunks)packages/frontend/admin/src/components/ui/textarea.tsx(1 hunks)packages/frontend/admin/src/modules/accounts/components/data-table-column-header.tsx(1 hunks)packages/frontend/apps/electron/test/workspace/handlers.spec.ts(2 hunks)packages/frontend/component/package.json(3 hunks)packages/frontend/component/src/components/resize-panel/resize-panel.tsx(2 hunks)packages/frontend/component/src/components/setting-components/setting-header.tsx(1 hunks)packages/frontend/component/src/ui/button/button.tsx(1 hunks)packages/frontend/component/src/ui/button/icon-button.tsx(1 hunks)packages/frontend/component/src/ui/date-picker/calendar/types.tsx(1 hunks)packages/frontend/component/src/ui/date-picker/week-date-picker.tsx(1 hunks)packages/frontend/component/src/ui/editable/inline-edit.tsx(2 hunks)packages/frontend/component/src/ui/icon-name-editor/icon-name-editor.tsx(1 hunks)packages/frontend/component/src/ui/menu/menu.types.ts(1 hunks)packages/frontend/component/src/ui/resize-panel/resize-panel.tsx(1 hunks)packages/frontend/component/src/ui/skeleton/types.ts(1 hunks)packages/frontend/component/src/ui/themed-img/index.tsx(1 hunks)packages/frontend/core/package.json(2 hunks)packages/frontend/core/src/blocksuite/block-suite-page-list/utils.tsx(1 hunks)packages/frontend/core/src/components/affine/empty/types.ts(1 hunks)packages/frontend/core/src/components/member-selector/inline-member-list.tsx(1 hunks)packages/frontend/core/src/components/mobile/config-modal/index.tsx(1 hunks)packages/frontend/core/src/components/tags/inline-tag-list.tsx(1 hunks)packages/frontend/core/src/desktop/components/navigation-panel/layouts/empty-section.tsx(1 hunks)packages/frontend/core/src/desktop/components/navigation-panel/tree/node.tsx(1 hunks)packages/frontend/core/src/desktop/dialogs/create-workspace/server-selector.tsx(1 hunks)packages/frontend/core/src/desktop/dialogs/setting/general-setting/plans/layout.tsx(1 hunks)packages/frontend/core/src/desktop/dialogs/setting/workspace-setting/integration/setting.tsx(1 hunks)packages/frontend/core/src/desktop/pages/workspace/detail-page/tabs/journal/index.tsx(2 hunks)packages/frontend/core/src/mobile/components/navigation/layouts/add-item-placeholder.tsx(1 hunks)packages/frontend/core/src/mobile/components/navigation/layouts/collapsible-section.tsx(1 hunks)packages/frontend/core/src/mobile/components/navigation/tree/node.tsx(1 hunks)packages/frontend/core/src/mobile/components/page-header/index.tsx(1 hunks)packages/frontend/core/src/mobile/components/rename/type.ts(2 hunks)packages/frontend/core/src/mobile/components/search-input/index.tsx(1 hunks)packages/frontend/core/src/mobile/components/workspace-selector/current-card.tsx(1 hunks)packages/frontend/core/src/mobile/dialogs/setting/group.tsx(1 hunks)packages/frontend/core/src/mobile/pages/workspace/detail/journal-date-picker/index.tsx(1 hunks)packages/frontend/core/src/modules/media/audio-sync-diagram.md(0 hunks)packages/frontend/core/src/modules/template-doc/view/template-list-menu.tsx(1 hunks)packages/frontend/core/src/modules/workbench/view/split-view/indicator.tsx(1 hunks)packages/frontend/core/src/modules/workbench/view/split-view/panel.tsx(1 hunks)packages/frontend/routes/package.json(1 hunks)packages/frontend/track/src/events.ts(1 hunks)packages/frontend/track/src/types.ts(1 hunks)tests/affine-cloud-copilot/e2e/ai-action/regenerate-mindmap.spec.ts(1 hunks)tests/affine-cloud-copilot/e2e/chat-with/edgeless-mindmap.spec.ts(1 hunks)tests/blocksuite/e2e/drag.spec.ts(3 hunks)tests/blocksuite/e2e/edgeless/note/note.spec.ts(1 hunks)tests/blocksuite/e2e/edgeless/shape.spec.ts(1 hunks)tests/blocksuite/e2e/embed-synced-doc/edgeless.spec.ts(1 hunks)tests/blocksuite/e2e/linked-page.spec.ts(1 hunks)
💤 Files with no reviewable changes (3)
- SECURITY.md
- docs/jobs.md
- packages/frontend/core/src/modules/media/audio-sync-diagram.md
✅ Files skipped from review due to trivial changes (54)
- packages/frontend/core/src/components/tags/inline-tag-list.tsx
- blocksuite/docs/api/@blocksuite/std/gfx/functions/generateKeyBetween.md
- packages/frontend/component/src/ui/date-picker/week-date-picker.tsx
- packages/frontend/component/src/ui/button/button.tsx
- packages/frontend/core/src/mobile/components/workspace-selector/current-card.tsx
- packages/frontend/core/src/mobile/components/navigation/layouts/add-item-placeholder.tsx
- packages/frontend/core/src/desktop/dialogs/create-workspace/server-selector.tsx
- packages/frontend/core/src/desktop/components/navigation-panel/layouts/empty-section.tsx
- packages/common/nbstore/src/connection/connection.ts
- blocksuite/affine/blocks/code/src/highlight/const.ts
- packages/frontend/admin/src/components/ui/sheet.tsx
- blocksuite/affine/widgets/toolbar/src/toolbar.ts
- blocksuite/framework/std/src/view/element/gfx-block-component.ts
- packages/frontend/core/src/mobile/pages/workspace/detail/journal-date-picker/index.tsx
- packages/frontend/component/src/ui/resize-panel/resize-panel.tsx
- packages/frontend/core/src/desktop/components/navigation-panel/tree/node.tsx
- packages/backend/server/src/core/auth/session.ts
- packages/frontend/component/src/ui/themed-img/index.tsx
- packages/frontend/core/src/mobile/components/page-header/index.tsx
- packages/frontend/component/src/ui/editable/inline-edit.tsx
- blocksuite/affine/data-view/src/view-presets/table/pc-virtual/virtual/virtual-scroll.ts
- packages/frontend/component/src/ui/skeleton/types.ts
- packages/frontend/core/src/components/affine/empty/types.ts
- packages/frontend/component/src/ui/menu/menu.types.ts
- blocksuite/affine/data-view/src/core/view-manager/cell.ts
- blocksuite/affine/blocks/surface/src/renderer/elements/index.ts
- blocksuite/affine/model/src/utils/helper.ts
- packages/frontend/core/src/components/member-selector/inline-member-list.tsx
- packages/backend/server/src/tests/snapshots/mails.spec.ts.md
- packages/frontend/track/src/events.ts
- packages/frontend/core/src/desktop/dialogs/setting/workspace-setting/integration/setting.tsx
- blocksuite/affine/shared/src/services/virtual-keyboard-service.ts
- packages/frontend/core/src/mobile/components/navigation/layouts/collapsible-section.tsx
- tests/blocksuite/e2e/edgeless/shape.spec.ts
- blocksuite/framework/std/src/gfx/model/gfx-block-model.ts
- blocksuite/affine/data-view/src/core/logical/type-variable.ts
- packages/frontend/component/src/ui/date-picker/calendar/types.tsx
- blocksuite/affine/data-view/src/core/widget/widget-base.ts
- packages/frontend/core/src/desktop/dialogs/setting/general-setting/plans/layout.tsx
- packages/frontend/core/src/mobile/components/navigation/tree/node.tsx
- packages/frontend/admin/src/components/ui/textarea.tsx
- blocksuite/affine/data-view/src/core/view-manager/property.ts
- packages/common/infra/src/utils/object-pool.ts
- packages/frontend/core/src/desktop/pages/workspace/detail-page/tabs/journal/index.tsx
- packages/frontend/apps/electron/test/workspace/handlers.spec.ts
- tests/affine-cloud-copilot/e2e/chat-with/edgeless-mindmap.spec.ts
- blocksuite/framework/std/src/gfx/model/surface/element-model.ts
- tests/blocksuite/e2e/linked-page.spec.ts
- packages/frontend/track/src/types.ts
- blocksuite/affine/widgets/edgeless-toolbar/src/draggable/draggable-element.controller.ts
- blocksuite/affine/data-view/src/core/view-manager/single-view.ts
- packages/frontend/core/src/blocksuite/block-suite-page-list/utils.tsx
- blocksuite/affine/data-view/src/core/logical/composite-type.ts
- blocksuite/affine/data-view/src/core/logical/data-type.ts
🚧 Files skipped from review as they are similar to previous changes (3)
- packages/frontend/routes/package.json
- packages/common/infra/package.json
- packages/frontend/core/package.json
🧰 Additional context used
🧠 Learnings (2)
📚 Learning: 2025-11-27T03:23:11.880Z
Learnt from: CR
Repo: toeverything/AFFiNE PR: 0
File: packages/frontend/apps/ios/AGENTS.md:0-0
Timestamp: 2025-11-27T03:23:11.880Z
Learning: Applies to packages/frontend/apps/ios/**/*.{ts,tsx} : Implement getAiButtonFeatureFlag() API for native iOS bridge
Applied to files:
packages/frontend/admin/src/components/ui/button.tsx
📚 Learning: 2025-11-27T03:23:11.880Z
Learnt from: CR
Repo: toeverything/AFFiNE PR: 0
File: packages/frontend/apps/ios/AGENTS.md:0-0
Timestamp: 2025-11-27T03:23:11.880Z
Learning: Use React 19 as the UI framework
Applied to files:
packages/frontend/component/package.json
🧬 Code graph analysis (7)
packages/frontend/core/src/components/mobile/config-modal/index.tsx (1)
packages/frontend/core/src/mobile/dialogs/setting/group.tsx (1)
SettingGroupProps(12-19)
blocksuite/framework/std/src/gfx/view/view.ts (1)
blocksuite/framework/std/src/gfx/index.ts (2)
GfxLocalElementModel(87-87)GfxPrimitiveElementModel(83-83)
packages/backend/server/src/plugins/copilot/resolver.ts (2)
packages/common/graphql/src/schema.ts (1)
UpdateChatSessionInput(2671-2679)packages/backend/server/src/models/copilot-session.ts (1)
UpdateChatSession(88-88)
packages/frontend/component/src/components/resize-panel/resize-panel.tsx (1)
packages/frontend/component/src/ui/resize-panel/resize-panel.tsx (1)
ResizePanelProps(7-18)
packages/frontend/component/src/ui/icon-name-editor/icon-name-editor.tsx (1)
packages/frontend/component/src/ui/menu/menu.types.ts (1)
MenuProps(15-25)
tests/blocksuite/e2e/drag.spec.ts (2)
tests/blocksuite/e2e/utils/actions/misc.ts (6)
enterPlaygroundRoom(120-193)initEmptyParagraphState(260-278)initThreeParagraphs(570-578)focusRichText(544-554)getPageSnapshot(880-893)getEditorHostLocator(56-58)tests/blocksuite/e2e/utils/asserts.ts (1)
assertRichTexts(161-173)
tests/blocksuite/e2e/embed-synced-doc/edgeless.spec.ts (5)
tests/blocksuite/e2e/embed-synced-doc/utils.ts (1)
initEmbedSyncedDocState(18-120)tests/blocksuite/e2e/utils/actions/edgeless.ts (1)
switchEditorMode(126-130)blocksuite/framework/std/src/gfx/viewport.ts (1)
height(194-196)tests/blocksuite/e2e/utils/actions/misc.ts (1)
waitNextFrame(203-208)blocksuite/affine/data-view/src/core/common/dv-css.ts (1)
border(47-49)
⏰ 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). (20)
- GitHub Check: y-octo binding test on x86_64-pc-windows-msvc
- GitHub Check: Build AFFiNE native (aarch64-apple-darwin)
- GitHub Check: loom thread test
- GitHub Check: E2E BlockSuite Test (9)
- GitHub Check: fuzzing
- GitHub Check: E2E BlockSuite Test (10)
- GitHub Check: E2E BlockSuite Test (6)
- GitHub Check: E2E BlockSuite Test (5)
- GitHub Check: E2E BlockSuite Test (7)
- GitHub Check: E2E BlockSuite Test (4)
- GitHub Check: E2E BlockSuite Test (8)
- GitHub Check: E2E BlockSuite Test (1)
- GitHub Check: E2E BlockSuite Test (2)
- GitHub Check: Analyze (typescript, blocksuite)
- GitHub Check: Analyze (javascript, blocksuite)
- GitHub Check: Analyze (typescript, affine)
- GitHub Check: Analyze (javascript, affine)
- GitHub Check: Lint Rust
- GitHub Check: Lint
- GitHub Check: Typecheck
🔇 Additional comments (42)
packages/backend/native/Cargo.toml (1)
2-5: Formatting alignment and license metadata addition look good.The
license-filefield correctly references the new LICENSE file being added to this package. This is a valid Cargo.toml field and ensures proper license attribution when the package is published or referenced.packages/backend/native/LICENSE (1)
1-44: License file addition is well-structured and appropriate.The AFFiNE Enterprise Edition license clearly delineates production usage restrictions, modification rights, development/testing exemptions, and the relationship with the MPL2.0-licensed Community Edition. The dual-licensing approach is explicit and protects proprietary interests while allowing community contribution.
blocksuite/docs/api/@blocksuite/std/gfx/type-aliases/GfxCommonBlockProps.md (1)
14-14: Verify consistency and regeneration of auto-generated docs.The header capitalization change (Type declaration → Type Declaration) appears to be a style improvement. However, if these docs are auto-generated, verify that they were regenerated from the source rather than manually edited. Ensure consistency across all similar headers in the blocksuite API docs.
blocksuite/docs/api/@blocksuite/std/gfx/classes/GfxBlockElementModel.md (1)
77-85: Verify that type-order changes reflect the source declarations.The union type ordering has been changed from
undefined | booleantoboolean | undefinedin thelockedBySelfgetter return type (line 77) and setter parameter type (line 99). While union type ordering is semantically equivalent in TypeScript, confirm that these changes match the actual source declarations in the TypeScript code. If these docs are auto-generated, ensure the documentation was regenerated from the updated source.Also applies to: 99-99
blocksuite/docs/api/@blocksuite/std/gfx/functions/generateNKeysBetween.md (1)
23-23: Verify type union reordering against TypeScript source definitions.The parameter types for
aandbhave been reordered fromundefined | null | stringtostring | null | undefined. If this documentation is auto-generated from TypeScript source code, the changes should reflect updates to the actual type definitions. Please confirm that the underlying TypeScript type definitions have been updated to match.If these markdown docs are auto-generated, verify by examining the TypeScript source file(s) that define
generateNKeysBetweento confirm the type annotations match the new union ordering.Also applies to: 27-27
blocksuite/docs/api/@blocksuite/std/gfx/functions/generateKeyBetweenV2.md (1)
20-20: Verify type union reordering against TypeScript source definitions.The parameter types for
aandbhave been reordered fromnull | stringtostring | null. If this documentation is auto-generated, confirm the underlying TypeScript type definitions have been updated to match this reordering.Verify against the TypeScript source file(s) that define
generateKeyBetweenV2to ensure type annotations match the new union ordering. If auto-generated, this should be automatic; if manually edited, confirm accuracy.Also applies to: 24-24
packages/frontend/core/src/mobile/components/search-input/index.tsx (1)
19-22: Type change is purely formatting; API and behavior unchangedThe multiline
Omit<HTMLProps<HTMLInputElement>, 'onInput'>is equivalent to the previous single-line form and keeps the intentional exclusion of the nativeonInputwhile preserving all other input props. This is a safe, readability-only change.packages/frontend/core/src/mobile/components/rename/type.ts (2)
22-31: Refactor toPropsWithChildrenfor submenu props looks goodUsing
PropsWithChildren<RenameContentProps>cleanly encodes the child support without changing the public surface. No functional or typing regressions apparent.
33-37: Dialog props type tweak is a no-op behaviorallySame as above: extending
PropsWithChildren<RenameContentProps>is a stylistic/clarity improvement with no impact on consumers ofRenameDialogProps.packages/frontend/core/src/modules/template-doc/view/template-list-menu.tsx (1)
119-120: LGTM! Formatting refinement.The consolidation of the interface extends clause to a single line is a cosmetic change with no impact on type checking or runtime behavior. This aligns with the PR's broader formatting cleanup.
packages/frontend/core/src/components/mobile/config-modal/index.tsx (1)
111-118: LGTM!Formatting-only change that improves readability by breaking the long
extends Omit<...>clause across multiple lines. The interface semantics remain unchanged, and this aligns with the consistent formatting pattern used inpackages/frontend/core/src/mobile/dialogs/setting/group.tsx.packages/frontend/core/src/mobile/dialogs/setting/group.tsx (1)
12-19: LGTM!Formatting-only change that improves readability. The multi-line
extends Omit<...>clause is now consistent with the same pattern inpackages/frontend/core/src/components/mobile/config-modal/index.tsx.packages/backend/server/src/plugins/indexer/providers/def.ts (1)
61-64: LGTM! Formatting improvement.The multi-line formatting of the
extendsclause improves readability without altering the interface semantics.tests/affine-cloud-copilot/e2e/ai-action/regenerate-mindmap.spec.ts (1)
22-26: LGTM! Formatting-only change.The multi-line formatting of the
getMindMapNodecall improves readability without affecting functionality. This appears to be an incidental formatting change from the dependency updates.packages/backend/server/src/plugins/copilot/resolver.ts (1)
80-83: Formatting-only change to implemented type looks goodReformatting
implements Omit<UpdateChatSession, 'userId' | 'title'>onto multiple lines does not alter semantics and keeps the input aligned with theUpdateChatSessionmodel type. No further changes needed here.packages/backend/server/src/core/permission/controller.ts (1)
29-31: Formatting-only change to generic declaration looks goodThe multi-line generic parameter with a trailing comma is valid TypeScript and does not alter behavior or typing here. Consistent with automated formatting; no issues from this change.
blocksuite/framework/std/src/gfx/view/view.ts (1)
41-45: Generic parameter reformatting is semantic‑no‑opThe updated multi‑line formatting keeps the same constraint and default union type for
T; there’s no behavioral or API change. Looks good and consistent with typical TS union formatting.packages/frontend/admin/src/modules/accounts/components/data-table-column-header.tsx (1)
5-8: LGTM! Formatting change with no functional impact.The multi-line generic parameter formatting is syntactically correct and the interface signature remains functionally identical.
blocksuite/docs/api/@blocksuite/store/classes/Boxed.md (1)
40-40: Type union ordering standardized in documentation.The
getValue()return type has been reordered fromundefined | ValuetoValue | undefinedin both the signature and Returns section. In TypeScript, union type order is semantically equivalent, so this is a purely cosmetic documentation improvement for consistency.Also applies to: 46-46
blocksuite/docs/api/@blocksuite/store/classes/Text.md (1)
106-106: Type union ordering standardized forclone()return type.The return type attributes have been reordered consistently:
null | true→true | nullandnull | string→string | nullacross all six attributes. This is a non-functional documentation formatting change to improve consistency across the API docs.Also applies to: 112-112
blocksuite/docs/api/@blocksuite/store/classes/Schema.md (1)
38-38: Type union ordering standardized forget()return type.The return type has been reordered from
undefined | { ... }to{ ... } | undefined, placing the concrete object type before the undefined case. This is a non-functional documentation change aligned with the standardization pattern observed across other BlockSuite API docs in this PR.Also applies to: 52-52
blocksuite/docs/api/@blocksuite/store/classes/Store.md (7)
109-109: Type union ordering standardized across Store API documentation.The
rootgetter and many other methods throughout this file have been updated with consistent union type reordering: concrete types moved before nullable types. Examples includenull | BlockModel<object>→BlockModel<object> | nullandundefined | Block→Block | undefined.These are non-functional documentation formatting changes. In TypeScript, union type order is semantically equivalent and does not affect type checking or runtime behavior.
Also applies to: 115-115
149-149: Consistent parameter type reordering inaddBlock/addBlocksmethods.The
parentparameter type has been reordered fromnull | string | BlockModel<object>tostring | BlockModel<object> | null, moving concrete types before null. This follows the same standardization pattern across the Store API docs.Also applies to: 187-187
289-289: Return type reordering ingetBlockandgetBlock$methods.Both methods have their return types updated from
undefined | BlocktoBlock | undefined. Consistent with the broader Store API documentation standardization observed in this PR.Also applies to: 325-325
355-355: Return type reordering ingetModelByIdmethod.The return type has been updated from
null | ModeltoModel | null, aligning with the standardization pattern for nullable return types across the Store API.Also applies to: 375-375
405-405: Sibling navigation methods updated with consistent type union ordering.The
getNext,getParent, andgetPrevmethods all have their return types reordered fromnull | BlockModel<object>toBlockModel<object> | null. This maintains consistency across the Store API documentation for nullable block model returns.Also applies to: 419-419, 449-449, 463-463, 471-471, 485-485
559-559: Return type reordering inmoveBlocksmethod.The
targetSiblingparameter type has been reordered fromnull | BlockModel<object>toBlockModel<object> | null, continuing the consistent standardization pattern.
655-655: Return type reordering ingetOptionalextension method.Both the signature and Returns documentation for the
getOptionalmethod have been updated to reflectT | nullinstead ofnull | T, following the standardization pattern for optional return types.Also applies to: 670-670, 690-690
packages/frontend/component/src/ui/icon-name-editor/icon-name-editor.tsx (1)
27-34: Formatting-only change toextendsclause; no semantic impactThe shift to a single-line
extends Omit<MenuProps, 'items'>, IconAndNameEditorContentPropsis type-equivalent to the prior multi-line form. No API or behavioral change here; the interface shape and its usage inIconAndNameEditorMenuremain the same.packages/backend/server/package.json (1)
31-31: Dependency version bump audit.The remaining dependency updates appear to be straightforward version increments. To ensure compatibility and stability after these bumps, verify:
- @AI-SDK packages (lines 31, 33): No breaking changes between current and ^2.0.54 / ^3.0.88 versions.
- @aws-sdk packages (lines 38–39): S3 and presigner at ^3.948.0—check for any authentication/request signature changes.
- stripe (line 119): Updated to ^17.7.0—verify no API surface changes affecting server code.
- Peer dependency compatibility: Ensure
@react-email/components(line 76, pinned to 0.0.38 without changes) remains compatible with updated React ^19.2.1.Run a full test suite (unit, integration, e2e) post-merge to catch any runtime incompatibilities, especially for AI SDK integrations and AWS S3 operations.
Also applies to: 33-33, 38-39, 81-81, 104-104, 108-108, 110-110, 115-117, 119-120, 124-124, 153-153, 156-156
packages/frontend/component/package.json (2)
85-85: Verify Vite 7.2.7 and Storybook 10.1.5 compatibility before merge.These versions introduce breaking changes and have known compatibility issues (documented in the past review). Before merging, confirm:
- Storybook dev server starts without errors (
npm run devfrom this package)- Storybook build completes (
npm run build:storybook).storybook/mainconfig (if present) is valid ESM (using export default, not module.exports)- All Storybook addons/plugins have versions compatible with Storybook 10 and Vite 7
- Node.js minimum version (20.19+ or 22.12+) is enforced in this repo's
enginesfield and CI matrixVite 7 requires raising the Node.js minimum from 18 to 20.19+; verify this is propagated throughout the workspace.
Also applies to: 88-88
19-20: React 19.2.1 migration aligns with project standards.The bump to React 19.2.1 for both peer and direct dependencies is aligned with the project's adoption of React 19 and the library's modern feature set (new hooks, server components, improved JSX). Type definitions (
@types/react@^19.0.1) are compatible.Ensure downstream packages consuming this component package are also compatible with React 19 before full merge.
Also applies to: 64-64
tests/blocksuite/e2e/embed-synced-doc/edgeless.spec.ts (1)
26-76: Explicit boundingBox null guard is a solid robustness improvementThe added check for
embedSyncedBoxInNotebefore reading.height(and the explicit error message) makes this test safer and the failure mode clearer, without changing the core height assertion logic. Likewise, the null guard onEmbedSyncedDocBlockBoxInCanvaskeeps the expectation from silently operating onnull. This hunk looks good to me as-is.blocksuite/affine/data-view/src/core/property/base-cell.ts (1)
10-14: Formatting-only generic change looks goodThe updated multiline generic parameter formatting is purely stylistic and does not alter the class’s public surface or behavior. Consistent with the rest of the codebase.
blocksuite/affine/model/src/elements/connector/connector.ts (1)
280-287: StricterhasLabelconditions improve safety; confirm editing behavior is desiredThe updated
hasLabel()now only returnstruewhen all of the following are satisfied:!labelEditing,labelDisplay,labelXYWH, and non‑emptytext. This is a safer/clearer contract for geometry and hit‑testing (e.g., bounding, intersections, and move logic) since hidden, unpositioned, or empty labels are no longer treated as present.One thing to double‑check: with the existing
!this.labelEditingguard, labels are still considered absent while being edited. If the intent was to allow label geometry to participate in hit‑testing/bounds during editing, you may want to revisit that part of the condition; otherwise this change looks consistent.packages/frontend/component/src/components/resize-panel/resize-panel.tsx (2)
10-27: ResizeHandleProps formatting change is type‑safe and non‑breakingUsing
extends React.HtmlHTMLAttributes<HTMLDivElement>keeps the handle fully compatible with standard<div>props while exposing your existing custom fields; only the declaration layout changed, not behavior or types.
29-52: ResizePanelProps interface change preserves existing props and behaviorThe single‑line
extends React.HtmlHTMLAttributes<HTMLDivElement>retains all prior prop fields and compatibility with<div>attributes; this is a purely stylistic/type‑layout adjustment with no runtime effect.tests/blocksuite/e2e/edgeless/note/note.spec.ts (1)
382-443: Empty-note paragraph creation test flow looks solidSetup, drag sequence, and the final block-count assertion all align with the comments, and the extra boundingBox null-guards should help avoid flaky failures. No issues from my side; once the underlying behavior is stable, this looks ready to be promoted from
test.fixmeto a regulartestso it runs in CI.tests/blocksuite/e2e/drag.spec.ts (4)
254-285: Multi-block drag & drop scenario matches intended behaviorThe selection range, subsequent drag via
dragHandleFromBlockToBlockBottomById, and the expected text order['789', '123', '456']are consistent with the test name, and keeping the selection count at 2 after the drop matches the comment. Looks good as a fixme test to re-enable once the underlying DnD behavior is stable.
416-465: Block-level selection drag test is consistent with existing patternsThe flow—create three paragraphs, select two blocks via
dragBetweenIndices, verify two visible selections, then drag using editor-host coordinates and assert the new order['789', '123', '456']—matches the intended behavior and other tests’ style. Null-guards onboundingBox()are in place, so this looks safe.
555-616: Single-selection transfer between blocks is exercised clearlyThe test cleanly covers: creating two blocks, selecting the second via mouse movement, asserting a single selection whose rect matches
editorRect1, then clicking near the first block and verifying the selection moves toeditorRect0while the count stays at 1. The logic and guards aroundboundingBox()look sound.
618-720: Cross-note multi-block moves are well coveredDirectly seeding six note+paragraph pairs via
page.evaluate, then exercising two rounds of multi-block selection + drag withdragBetweenIndicesanddragBetweenCoords, and finally asserting the text orders['123', '987', '456', '789', '654', '321']then['654', '321', '123', '987', '456', '789']gives good coverage of the multi-note DnD behavior. The repeated use of a liveeditorslocator and boundingBox null-guards is consistent and should be robust.
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.