Skip to content

Comments

feat: bump more deps#14079

Merged
darkskygit merged 4 commits intocanaryfrom
darksky/bump-more-deps
Dec 10, 2025
Merged

feat: bump more deps#14079
darkskygit merged 4 commits intocanaryfrom
darksky/bump-more-deps

Conversation

@darkskygit
Copy link
Member

@darkskygit darkskygit commented Dec 10, 2025

Summary by CodeRabbit

  • Chores
    • Updated many project dependencies to newer patch/minor releases for improved compatibility and stability.
  • Bug Fixes / Behavior
    • Connector labels now remain visible while editing, improving label editing/preview behavior.
  • Documentation
    • Removed jobs listing from documentation.

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

@darkskygit darkskygit requested a review from a team as a code owner December 10, 2025 05:39
@github-actions github-actions bot added mod:infra Environment related issues and discussions docs Improvements or additions to documentation mod:i18n Related to i18n mod:component app:electron Related to electron app mod:dev app:server test Related to test cases mod:native app:core labels Dec 10, 2025
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 10, 2025

Walkthrough

Widespread 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

Cohort / File(s) Change Summary
Monorepo package manifests
package.json, docs/reference/package.json, blocksuite/docs/package.json, packages/*/*/package.json, blocksuite/**/**/package.json, tools/**/package.json, tests/**/package.json
Many package.json files updated: broad dependency/devDependency upgrades (notably rxjs → ^7.8.2, yjs → ^13.6.27, minimatch → ^10.1.1, nanoid → ^5.1.6, katex/shiki updates, React/@sentry/other frontend deps, tooling like prettier/vite/typedoc). No code added/removed beyond manifests.
Backend native packaging
packages/backend/native/Cargo.toml, packages/backend/native/LICENSE
Added LICENSE file with AFFiNE EE text; Cargo.toml formatting and new license-file entry.
Docs removals
docs/jobs.md
Removed entire jobs.md file (job postings removed).
Model behavioral change
blocksuite/affine/model/src/elements/connector/connector.ts
hasLabel() logic changed: label presence no longer requires labelEditing === false — label considered present when labelDisplay, labelXYWH, and non-empty text exist regardless of editing state.
Type / docs reflows
many *.md, *.ts, *.tsx files (docs/API updates, TS interfaces/classes across frontend/backend/framework)
Numerous non-functional reformatting and union-order changes in docs; many TypeScript declaration formatting changes (brace/generic reflow, extends linebreaks). Mostly cosmetic; a few doc return-type union orders inverted.
Test snapshots & tests
packages/backend/server/src/__tests__/__snapshots__/*, tests/blocksuite/e2e/**, other test files
Snapshot HTML MSO comment formatting adjusted; several e2e tests reformatted or un-fixed (some test.fixme -> active). Minor guard checks added in tests; no substantive test logic changes.
Framework small behavior refactor
blocksuite/framework/std/src/gfx/model/surface/surface-model.ts
Combined two onChange handler statements via comma operator (chained expressions) — functional behavior preserved but code condensed.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • Heterogeneous: mostly repetitive dependency bumps and formatting changes (low per-file complexity) but wide scope across many packages.
  • Areas needing extra attention:
    • packages touching runtime libs: React & @sentry/react upgrades (frontend apps/components).
    • CRDT/shared state libs: yjs bumps where multiple packages interoperate.
    • rxjs updates in runtime-critical packages.
    • The connector.hasLabel behavioral change in blocksuite/affine/model/src/elements/connector/connector.ts.
    • New LICENSE addition to backend native (legal/packaging review).

Suggested reviewers

  • CatsJuice
  • Saul-Mirone

Poem

🐰
I nibbled through manifests, hopped each line,
Bumped versions gently — tidy and fine.
A label now shows even while it’s being penned,
Jobs took a hop, a LICENSE came to lend.
Hooray — small changes, and then I’m off again!

Pre-merge checks and finishing touches

❌ Failed checks (1 warning, 1 inconclusive)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
Title check ❓ Inconclusive The title 'feat: bump more deps' is vague and generic, using 'more deps' without specifying which dependencies are being updated or their scope. Consider using a more descriptive title that indicates the primary scope of dependency updates, such as 'feat: bump dependencies across blocksuite and packages' or similar to clarify the extent of changes.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch darksky/bump-more-deps

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
Contributor

@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: 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.

📥 Commits

Reviewing files that changed from the base of the PR and between 40f3337 and e01c8dd.

⛔ Files ignored due to path filters (1)
  • yarn.lock is 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.json
  • blocksuite/affine/all/package.json
  • tools/utils/package.json
  • packages/frontend/apps/ios/package.json
  • blocksuite/affine/gfx/turbo-renderer/package.json
  • tools/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.json
  • packages/frontend/apps/electron-renderer/package.json
  • packages/frontend/component/package.json
  • packages/frontend/apps/android/package.json
  • packages/frontend/apps/mobile/package.json
  • packages/frontend/apps/ios/package.json
  • packages/frontend/i18n/package.json
  • packages/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.json
  • packages/frontend/apps/ios/package.json
  • blocksuite/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 root
packages/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/50 instead of bg-blue-500 bg-opacity-50)
  • CSS variable syntax changed to parentheses (e.g., bg-(--brand-color) instead of bg-[--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/react and @types/react-dom versions 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/vite to align with tailwindcss version.

The project uses tailwindcss@^4.1.17 but @tailwindcss/vite@^4.0.6. For consistency and to ensure all Vite-specific enhancements are available, update @tailwindcss/vite to ^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 undeci exist 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:

  1. Electron IPC integration and native module loading work with React 19.2.1
  2. cross-env 10.x properly handles Electron build environment variables
  3. 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.1 instead 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:

  1. Whether exact pinning is intentional (e.g., for peer dependency matching)
  2. Consistency with React version pinning across the monorepo
  3. If this could cause npm dedupe or multiple React instance issues

Consider 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 peerDependencies for 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:

  1. No ref callbacks in component library return values
  2. No deprecated React APIs used
  3. Storybook components render correctly with React 19.2.1
  4. Consider updating peerDependencies to ^19.2.0 for 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/routes package peerDependency (which specifies ^7.5.1). The admin package correctly depends on @affine/routes and 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 @theme blocks 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:

  1. 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.
  2. 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.
  3. 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_OPTIONS environment 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
Copy link

codecov bot commented Dec 10, 2025

Codecov Report

❌ Patch coverage is 94.73684% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 57.03%. Comparing base (40f3337) to head (f6291dd).
⚠️ Report is 1 commits behind head on canary.

Files with missing lines Patch % Lines
blocksuite/affine/widgets/toolbar/src/toolbar.ts 0.00% 1 Missing ⚠️
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     
Flag Coverage Δ
server-test 78.26% <100.00%> (+1.22%) ⬆️
unittest 31.89% <75.00%> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Contributor

@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

♻️ 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-dom is 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 statements

The 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 onChange in onElementsMapChange) 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.title for snapshot naming is consistent with other tests. One small nit: the suffix _finial.json looks 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.

📥 Commits

Reviewing files that changed from the base of the PR and between e01c8dd and f6291dd.

⛔ Files ignored due to path filters (2)
  • packages/backend/server/src/__tests__/__snapshots__/mails.spec.ts.snap is excluded by !**/*.snap
  • yarn.lock is 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-file field 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 | boolean to boolean | undefined in the lockedBySelf getter 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 a and b have been reordered from undefined | null | string to string | 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 generateNKeysBetween to 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 a and b have been reordered from null | string to string | 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 generateKeyBetweenV2 to 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 unchanged

The multiline Omit<HTMLProps<HTMLInputElement>, 'onInput'> is equivalent to the previous single-line form and keeps the intentional exclusion of the native onInput while 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 to PropsWithChildren for submenu props looks good

Using 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 behaviorally

Same as above: extending PropsWithChildren<RenameContentProps> is a stylistic/clarity improvement with no impact on consumers of RenameDialogProps.

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 in packages/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 in packages/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 extends clause 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 getMindMapNode call 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 good

Reformatting implements Omit<UpdateChatSession, 'userId' | 'title'> onto multiple lines does not alter semantics and keeps the input aligned with the UpdateChatSession model type. No further changes needed here.

packages/backend/server/src/core/permission/controller.ts (1)

29-31: Formatting-only change to generic declaration looks good

The 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‑op

The 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 from undefined | Value to Value | undefined in 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 for clone() return type.

The return type attributes have been reordered consistently: null | truetrue | null and null | stringstring | null across 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 for get() 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 root getter and many other methods throughout this file have been updated with consistent union type reordering: concrete types moved before nullable types. Examples include null | BlockModel<object>BlockModel<object> | null and undefined | BlockBlock | 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 in addBlock/addBlocks methods.

The parent parameter type has been reordered from null | string | BlockModel<object> to string | 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 in getBlock and getBlock$ methods.

Both methods have their return types updated from undefined | Block to Block | undefined. Consistent with the broader Store API documentation standardization observed in this PR.

Also applies to: 325-325


355-355: Return type reordering in getModelById method.

The return type has been updated from null | Model to Model | 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, and getPrev methods all have their return types reordered from null | BlockModel<object> to BlockModel<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 in moveBlocks method.

The targetSibling parameter type has been reordered from null | BlockModel<object> to BlockModel<object> | null, continuing the consistent standardization pattern.


655-655: Return type reordering in getOptional extension method.

Both the signature and Returns documentation for the getOptional method have been updated to reflect T | null instead of null | 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 to extends clause; no semantic impact

The shift to a single-line extends Omit<MenuProps, 'items'>, IconAndNameEditorContentProps is type-equivalent to the prior multi-line form. No API or behavioral change here; the interface shape and its usage in IconAndNameEditorMenu remain 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:

  1. @AI-SDK packages (lines 31, 33): No breaking changes between current and ^2.0.54 / ^3.0.88 versions.
  2. @aws-sdk packages (lines 38–39): S3 and presigner at ^3.948.0—check for any authentication/request signature changes.
  3. stripe (line 119): Updated to ^17.7.0—verify no API surface changes affecting server code.
  4. 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:

  1. Storybook dev server starts without errors (npm run dev from this package)
  2. Storybook build completes (npm run build:storybook)
  3. .storybook/main config (if present) is valid ESM (using export default, not module.exports)
  4. All Storybook addons/plugins have versions compatible with Storybook 10 and Vite 7
  5. Node.js minimum version (20.19+ or 22.12+) is enforced in this repo's engines field and CI matrix

Vite 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 improvement

The added check for embedSyncedBoxInNote before 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 on EmbedSyncedDocBlockBoxInCanvas keeps the expectation from silently operating on null. 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 good

The 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: Stricter hasLabel conditions improve safety; confirm editing behavior is desired

The updated hasLabel() now only returns true when all of the following are satisfied: !labelEditing, labelDisplay, labelXYWH, and non‑empty text. 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.labelEditing guard, 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‑breaking

Using 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 behavior

The 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 solid

Setup, 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.fixme to a regular test so it runs in CI.

tests/blocksuite/e2e/drag.spec.ts (4)

254-285: Multi-block drag & drop scenario matches intended behavior

The 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 patterns

The 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 on boundingBox() are in place, so this looks safe.


555-616: Single-selection transfer between blocks is exercised clearly

The 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 to editorRect0 while the count stays at 1. The logic and guards around boundingBox() look sound.


618-720: Cross-note multi-block moves are well covered

Directly seeding six note+paragraph pairs via page.evaluate, then exercising two rounds of multi-block selection + drag with dragBetweenIndices and dragBetweenCoords, 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 live editors locator and boundingBox null-guards is consistent and should be robust.

@darkskygit darkskygit merged commit cb0ff04 into canary Dec 10, 2025
212 of 214 checks passed
@darkskygit darkskygit deleted the darksky/bump-more-deps branch December 10, 2025 08:02
darkskygit added a commit that referenced this pull request Jan 20, 2026
@coderabbitai coderabbitai bot mentioned this pull request Feb 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

app:core app:electron Related to electron app app:server docs Improvements or additions to documentation mod:component mod:dev mod:i18n Related to i18n mod:infra Environment related issues and discussions mod:native mod:server-native rust test Related to test cases

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

1 participant