Commit Graph

73 Commits

Author SHA1 Message Date
DarkSky
c302425a05 fix(server): doc squash timeout (#13939) 2025-11-15 03:19:51 +08:00
德布劳外 · 贾贵
b53b4884cf refactor(core): align markdown conversion logic (#13254)
## Refactor

Align the Markdown conversion logic across all business modules:
1. frontend/backend apply: doc to markdown
2. insert/import markdown: use `markdownAdapter.toDoc`

> CLOSE AI-328 AI-379 AI-380

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Documentation**
* Clarified instructions and provided an explicit example for correct
list item formatting in the markdown editing tool.

* **Bug Fixes**
* Improved markdown parsing for lists, ensuring correct indentation and
handling of trailing newlines.
* Cleaned up markdown snapshot test files by removing redundant blank
lines for better readability.

* **Refactor**
* Updated markdown conversion logic to use a new parsing approach for
improved reliability and maintainability.
* Enhanced markdown generation method for document snapshots with
improved error handling.
* Refined markdown-to-snapshot conversion with more robust document
handling and snapshot extraction.

* **Chores**
* Added a new workspace dependency for enhanced markdown parsing
capabilities.
* Updated project references and workspace dependencies to include the
new markdown parsing package.

* **Tests**
* Temporarily disabled two markdown-related tests due to parse errors in
test mode.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-21 10:35:13 +00:00
fengmk2
340aae6476 refactor(server): updates merge delay reduced to 5 seconds (#13138)
close AF-2733



#### PR Dependency Tree


* **PR #13138** 👈

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Refactor**
* Reduced the delay for merging pending document updates from 30 seconds
to 5 seconds, resulting in faster update processing.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-10 09:41:28 +00:00
DarkSky
2b7a8dcd8a feat(server): use new content reader (#13007)
partial fix AI-280
2025-07-04 00:22:44 +00:00
fengmk2
c62627427c fix(server): save snapshot and delete updates in the same transaction (#12856)
close CLOUD-229



#### PR Dependency Tree


* **PR #12856** 👈

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **Refactor**
- Improved the internal handling of document updates and snapshots to
enhance reliability and maintainability. No changes to user-facing
features or functionality.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-06-20 05:23:34 +00:00
fengmk2
73402c8447 feat(server): parse ydoc to markdown (#12812)
close AI-190

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced an endpoint to retrieve a document's markdown content and
title.
- Added backend support for parsing document snapshots directly into
markdown format.

- **Tests**
- Added comprehensive tests and snapshot files for markdown retrieval,
including success and error scenarios.
- Improved test coverage for content type validation and markdown
parsing utilities.

- **Documentation**
- Enhanced internal documentation through detailed test cases and
snapshot references for new markdown features.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->








#### PR Dependency Tree


* **PR #12812** 👈
  * **PR #12846**
    * **PR #12811**

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)
2025-06-19 09:14:00 +08:00
forehalo
f38b8fef4d feat(server): handle account deleting properly (#12399)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

- **New Features**
  - Users are now prevented from deleting their account if they own one or more team workspaces. A clear error message instructs users to transfer ownership or delete those workspaces first.
  - Disabled (banned) users are explicitly prevented from signing in or re-registering.
  - Added new error messages and translations to improve clarity around account deletion restrictions.

- **Bug Fixes**
  - Disabled users are now explicitly handled to prevent sign-in attempts.

- **Tests**
  - Introduced comprehensive end-to-end tests covering account deletion, banning, and re-registration scenarios.

- **Chores**
  - Improved event handling for user deletion and subscription cancellation.
  - Updated localization resources with new error messages.
  - Renamed payment event handler class for clarity.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-23 03:57:29 +00:00
fengmk2
c525ca24fd test(server): use mocker (#12435)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->

## Summary by CodeRabbit

- **Tests**
  - Refactored test setup for the database-backed document reader to improve modularity and clarity.
  - Simplified database initialization and cleanup in tests.
  - Updated mocks and assertions to align with the new test structure.
  - Maintained existing test coverage and logic.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-22 04:25:20 +00:00
fengmk2
346c0df800 chore(server): support disable indexer plugin (#12408)
close CLOUD-220

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->

## Summary by CodeRabbit

- **New Features**
  - Introduced a new service to handle indexing-related events and scheduled tasks, improving the management of document and workspace indexing.
  - Added support for configuring the indexer feature via the AFFINE_INDEXER_ENABLED environment variable.

- **Bug Fixes**
  - Ensured that indexing and deletion jobs are only enqueued when the indexer feature is enabled.

- **Tests**
  - Added comprehensive tests for the new indexing event service, covering various configuration scenarios.
  - Removed obsolete test related to auto-indexing scheduling.

- **Chores**
  - Updated configuration descriptions and mappings to improve clarity and environment variable support.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-21 13:19:02 +00:00
fengmk2
8e9d50bfe9 chore(server): add prefix to indexer jobId (#12369) 2025-05-20 03:09:23 +00:00
fengmk2
afa984da54 feat(server): handle workspace doc updates (#11937) 2025-05-14 14:52:41 +00:00
renovate
b249939093 chore: bump up prisma monorepo to v6 (major) (#8964)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@prisma/client](https://www.prisma.io) ([source](https://redirect.github.com/prisma/prisma/tree/HEAD/packages/client)) | [`^5.22.0` -> `^6.0.0`](https://renovatebot.com/diffs/npm/@prisma%2fclient/5.22.0/6.0.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@prisma%2fclient/6.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@prisma%2fclient/6.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@prisma%2fclient/5.22.0/6.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@prisma%2fclient/5.22.0/6.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@prisma/instrumentation](https://www.prisma.io) ([source](https://redirect.github.com/prisma/prisma/tree/HEAD/packages/instrumentation)) | [`^5.22.0` -> `^6.0.0`](https://renovatebot.com/diffs/npm/@prisma%2finstrumentation/5.22.0/6.0.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@prisma%2finstrumentation/6.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@prisma%2finstrumentation/6.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@prisma%2finstrumentation/5.22.0/6.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@prisma%2finstrumentation/5.22.0/6.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [prisma](https://www.prisma.io) ([source](https://redirect.github.com/prisma/prisma/tree/HEAD/packages/cli)) | [`^5.22.0` -> `^6.0.0`](https://renovatebot.com/diffs/npm/prisma/5.22.0/6.0.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/prisma/6.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/prisma/6.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/prisma/5.22.0/6.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/prisma/5.22.0/6.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>prisma/prisma (@&#8203;prisma/client)</summary>

### [`v6.0.1`](https://redirect.github.com/prisma/prisma/compare/6.0.0...6.0.1)

[Compare Source](https://redirect.github.com/prisma/prisma/compare/6.0.0...6.0.1)

### [`v6.0.0`](https://redirect.github.com/prisma/prisma/releases/tag/6.0.0)

[Compare Source](https://redirect.github.com/prisma/prisma/compare/5.22.0...6.0.0)

We’re excited to share the Prisma ORM v6 release today 🎉

As this is a major release, it includes a few breaking changes that may affect your application. Before upgrading, we recommend that you check out our [upgrade guide](https://www.prisma.io/docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-6) to understand the impact on your application.

If you want to have an overview of what we accomplished since v5, check out our announcement blog post: [Prisma 6: Better Performance, More Flexibility & Type-Safe SQL](https://www.prisma.io/blog/prisma-6-better-performance-more-flexibility-and-type-safe-sql).

🌟 **Help us spread the word about Prisma by starring the repo ☝️ or [posting on X](https://twitter.com/intent/tweet?text=Check%20out%20the%20latest%20@&#8203;prisma%20release%20v6.0.0%20%F0%9F%9A%80%0D%0A%0D%0Ahttps://github.com/prisma/prisma/releases/tag/6.0.0) about the release.**

##### Breaking changes

⚠️ This section contains a list of breaking changes. If you upgrade your application to Prisma ORM v6 without addressing these, your application is going to break! **For detailed upgrade instructions, check out the [upgrade guide](https://www.prisma.io/docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-6).** ⚠️ 

##### Minimum supported Node.js versions

The new minimum supported Node.js versions for Prisma ORM v6 are:

-   for Node.js 18 the minimum supported version is **18.18.0**
-   for Node.js 20 the minimum supported version is **20.9.0**
-   for Node.js 22 the minimum supported version is **22.11.0**

There is no official support for Node.js <18.18.0, 19, 21, 23.

##### Minimum supported TypeScript version

The new minimum supported TypeScript version for Prisma ORM v6 is: **5.1.0**.

##### Schema change for implicit m-n relations on PostgreSQL

If you're using PostgreSQL and are defining [implicit many-to-many relations](https://www.prisma.io/docs/orm/prisma-schema/data-model/relations/many-to-many-relations#implicit-many-to-many-relations) in your Prisma schema, Prisma ORM maintains the [relation table](https://www.prisma.io/docs/orm/prisma-schema/data-model/relations/many-to-many-relations#relation-tables) for you under the hood. This relation table has `A` and `B` columns to represent the tables of the models that are part of this relation.

Previous versions of Prisma ORM used to create a *unique index* on these two columns. In Prisma v6, this unique index is changing to a *primary key* in order to [simplify for the default replica identity behaviour](https://redirect.github.com/prisma/prisma/issues/25196).

If you're defining implicit m-n relations in your Prisma schema, the next migration you'll create will contain `ALTER TABLE` statements for *all* the relation tables that belong to these relations.

##### Full-text search on PostgreSQL

The `fullTextSearch` Preview feature is promoted to General Availability only for MySQL. This means that if you're using PostgreSQL and currently make use of this Preview feature, you now need to use the new `fullTextSearchPostgres` Preview feature.

##### Usage of `Buffer`

Prisma v6 replaces the usage of [`Buffer`](https://nodejs.org/api/buffer.html) with [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) to represent fields of type `Bytes`. Make sure to replace all your occurrences of the `Buffer` type with the new `Uint8Array`.

##### Removed `NotFoundError`

In Prisma v6, we removed the `NotFoundError` in favor of `PrismaClientKnownRequestError` with error code [`P2025`](https://www.prisma.io/docs/orm/reference/error-reference#p2025) in [`findUniqueOrThrow()`](https://www.prisma.io/docs/orm/reference/prisma-client-reference#finduniqueorthrow) and [`findFirstOrThrow()`](https://www.prisma.io/docs/orm/reference/prisma-client-reference#findfirstorthrow). If you've relied on catching `NotFoundError` instances in your code, you need to adjust the code accordingly.

##### New keywords that can't be used as model names: `async`, `await`, `using`

With this release, you can't use `async`, `await` and `using` as model names any more.

***

⚠️ **For detailed upgrade instructions, check out the [upgrade guide](https://www.prisma.io/docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-6).**  ⚠️ 

##### Preview features promoted to General Availability

In this release, we are promoting a number of [Preview](https://www.prisma.io/docs/orm/more/releases#preview) features to [General Availability](https://www.prisma.io/docs/orm/more/releases#generally-available-ga).

##### `fullTextIndex`

If you use the [full-text index](https://www.prisma.io/docs/orm/prisma-schema/data-model/indexes#full-text-indexes-mysql-and-mongodb) feature in your app, you can now remove `fullTextIndex` from the `previewFeatures` in your Prisma schema:

```diff
generator client {
  provider        = "prisma-client-js"
- previewFeatures = ["fullTextIndex"]
}

```

##### `fullTextSearch`

If you use the [full-text search](https://www.prisma.io/docs/orm/prisma-client/queries/full-text-search) feature with **MySQL** in your app, you can now remove `fullTextSearch` from the `previewFeatures` in your Prisma schema:

```diff
generator client {
  provider        = "prisma-client-js"
- previewFeatures = ["fullTextSearch"]
}

```

If you are using it with **PostgreSQL**, you need to update the name of the feature flag to `fullTextSearchPostgres`:

```diff
generator client {
  provider        = "prisma-client-js"
- previewFeatures = ["fullTextSearch"]
+ previewFeatures = ["fullTextSearchPostgres"]
}
```

##### New features

We are also releasing new features with this release:

-   [cuid2() support](https://redirect.github.com/prisma/prisma-engines/pull/5047)
-   [Include unused enum definitions in `prisma generate`'s output](https://redirect.github.com/prisma/prisma/pull/25740)
-   [Improved compatibility with Deno 2](https://redirect.github.com/prisma/prisma/pull/25734)

##### Company news

##### 🚀 Prisma Postgres is free during Early Access

In case you missed it: We recently launched [Prisma Postgres](https://www.prisma.io/blog/announcing-prisma-postgres-early-access), a serverless database with zero cold starts, a generous free tier, connection pooling, real-time events, and a lot more! It’s entirely free during the Early Access phase, try it now!

##### ✨ Let us know what you think of Prisma ORM

We're always trying to improve! If you've recently used Prisma ORM, we'd appreciate hearing your thoughts about your experience via this [2min survey](https://pris.ly/orm/survey/release-5-22).

</details>

<details>
<summary>prisma/prisma (@&#8203;prisma/instrumentation)</summary>

### [`v6.0.1`](https://redirect.github.com/prisma/prisma/releases/tag/6.0.1)

[Compare Source](https://redirect.github.com/prisma/prisma/compare/6.0.0...6.0.1)

Today we are releasing the `6.0.1` patch release to address an issue with using Prisma Client generated in a custom output path with Next.js.

##### Changes

-   [Revert `"type": "commonjs"` addition in generated `package.json`](https://redirect.github.com/prisma/prisma/pull/25767)

### [`v6.0.0`](https://redirect.github.com/prisma/prisma/releases/tag/6.0.0)

[Compare Source](https://redirect.github.com/prisma/prisma/compare/5.22.0...6.0.0)

We’re excited to share the Prisma ORM v6 release today 🎉

As this is a major release, it includes a few breaking changes that may affect your application. Before upgrading, we recommend that you check out our [upgrade guide](https://www.prisma.io/docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-6) to understand the impact on your application.

If you want to have an overview of what we accomplished since v5, check out our announcement blog post: [Prisma 6: Better Performance, More Flexibility & Type-Safe SQL](https://www.prisma.io/blog/prisma-6-better-performance-more-flexibility-and-type-safe-sql).

🌟 **Help us spread the word about Prisma by starring the repo ☝️ or [posting on X](https://twitter.com/intent/tweet?text=Check%20out%20the%20latest%20@&#8203;prisma%20release%20v6.0.0%20%F0%9F%9A%80%0D%0A%0D%0Ahttps://github.com/prisma/prisma/releases/tag/6.0.0) about the release.**

#### Breaking changes

⚠️ This section contains a list of breaking changes. If you upgrade your application to Prisma ORM v6 without addressing these, your application is going to break! **For detailed upgrade instructions, check out the [upgrade guide](https://www.prisma.io/docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-6).** ⚠️ 

##### Minimum supported Node.js versions

The new minimum supported Node.js versions for Prisma ORM v6 are:

-   for Node.js 18 the minimum supported version is **18.18.0**
-   for Node.js 20 the minimum supported version is **20.9.0**
-   for Node.js 22 the minimum supported version is **22.11.0**

There is no official support for Node.js <18.18.0, 19, 21, 23.

##### Minimum supported TypeScript version

The new minimum supported TypeScript version for Prisma ORM v6 is: **5.1.0**.

##### Schema change for implicit m-n relations on PostgreSQL

If you're using PostgreSQL and are defining [implicit many-to-many relations](https://www.prisma.io/docs/orm/prisma-schema/data-model/relations/many-to-many-relations#implicit-many-to-many-relations) in your Prisma schema, Prisma ORM maintains the [relation table](https://www.prisma.io/docs/orm/prisma-schema/data-model/relations/many-to-many-relations#relation-tables) for you under the hood. This relation table has `A` and `B` columns to represent the tables of the models that are part of this relation.

Previous versions of Prisma ORM used to create a *unique index* on these two columns. In Prisma v6, this unique index is changing to a *primary key* in order to [simplify for the default replica identity behaviour](https://redirect.github.com/prisma/prisma/issues/25196).

If you're defining implicit m-n relations in your Prisma schema, the next migration you'll create will contain `ALTER TABLE` statements for *all* the relation tables that belong to these relations.

##### Full-text search on PostgreSQL

The `fullTextSearch` Preview feature is promoted to General Availability only for MySQL. This means that if you're using PostgreSQL and currently make use of this Preview feature, you now need to use the new `fullTextSearchPostgres` Preview feature.

##### Usage of `Buffer`

Prisma v6 replaces the usage of [`Buffer`](https://nodejs.org/api/buffer.html) with [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) to represent fields of type `Bytes`. Make sure to replace all your occurrences of the `Buffer` type with the new `Uint8Array`.

##### Removed `NotFoundError`

In Prisma v6, we removed the `NotFoundError` in favor of `PrismaClientKnownRequestError` with error code [`P2025`](https://www.prisma.io/docs/orm/reference/error-reference#p2025) in [`findUniqueOrThrow()`](https://www.prisma.io/docs/orm/reference/prisma-client-reference#finduniqueorthrow) and [`findFirstOrThrow()`](https://www.prisma.io/docs/orm/reference/prisma-client-reference#findfirstorthrow). If you've relied on catching `NotFoundError` instances in your code, you need to adjust the code accordingly.

##### New keywords that can't be used as model names: `async`, `await`, `using`

With this release, you can't use `async`, `await` and `using` as model names any more.

***

⚠️ **For detailed upgrade instructions, check out the [upgrade guide](https://www.prisma.io/docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-6).**  ⚠️ 

#### Preview features promoted to General Availability

In this release, we are promoting a number of [Preview](https://www.prisma.io/docs/orm/more/releases#preview) features to [General Availability](https://www.prisma.io/docs/orm/more/releases#generally-available-ga).

##### `fullTextIndex`

If you use the [full-text index](https://www.prisma.io/docs/orm/prisma-schema/data-model/indexes#full-text-indexes-mysql-and-mongodb) feature in your app, you can now remove `fullTextIndex` from the `previewFeatures` in your Prisma schema:

```diff
generator client {
  provider        = "prisma-client-js"
- previewFeatures = ["fullTextIndex"]
}

```

##### `fullTextSearch`

If you use the [full-text search](https://www.prisma.io/docs/orm/prisma-client/queries/full-text-search) feature with **MySQL** in your app, you can now remove `fullTextSearch` from the `previewFeatures` in your Prisma schema:

```diff
generator client {
  provider        = "prisma-client-js"
- previewFeatures = ["fullTextSearch"]
}

```

If you are using it with **PostgreSQL**, you need to update the name of the feature flag to `fullTextSearchPostgres`:

```diff
generator client {
  provider        = "prisma-client-js"
- previewFeatures = ["fullTextSearch"]
+ previewFeatures = ["fullTextSearchPostgres"]
}
```

#### New features

We are also releasing new features with this release:

-   [cuid2() support](https://redirect.github.com/prisma/prisma-engines/pull/5047)
-   [Include unused enum definitions in `prisma generate`'s output](https://redirect.github.com/prisma/prisma/pull/25740)
-   [Improved compatibility with Deno 2](https://redirect.github.com/prisma/prisma/pull/25734)

#### Company news

##### 🚀 Prisma Postgres is free during Early Access

In case you missed it: We recently launched [Prisma Postgres](https://www.prisma.io/blog/announcing-prisma-postgres-early-access), a serverless database with zero cold starts, a generous free tier, connection pooling, real-time events, and a lot more! It’s entirely free during the Early Access phase, try it now!

##### ✨ Let us know what you think of Prisma ORM

We're always trying to improve! If you've recently used Prisma ORM, we'd appreciate hearing your thoughts about your experience via this [2min survey](https://pris.ly/orm/survey/release-5-22).

</details>

<details>
<summary>prisma/prisma (prisma)</summary>

### [`v6.0.1`](https://redirect.github.com/prisma/prisma/compare/6.0.0...6.0.1)

[Compare Source](https://redirect.github.com/prisma/prisma/compare/6.0.0...6.0.1)

### [`v6.0.0`](https://redirect.github.com/prisma/prisma/releases/tag/6.0.0)

[Compare Source](https://redirect.github.com/prisma/prisma/compare/5.22.0...6.0.0)

We’re excited to share the Prisma ORM v6 release today 🎉

As this is a major release, it includes a few breaking changes that may affect your application. Before upgrading, we recommend that you check out our [upgrade guide](https://www.prisma.io/docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-6) to understand the impact on your application.

If you want to have an overview of what we accomplished since v5, check out our announcement blog post: [Prisma 6: Better Performance, More Flexibility & Type-Safe SQL](https://www.prisma.io/blog/prisma-6-better-performance-more-flexibility-and-type-safe-sql).

🌟 **Help us spread the word about Prisma by starring the repo ☝️ or [posting on X](https://twitter.com/intent/tweet?text=Check%20out%20the%20latest%20@&#8203;prisma%20release%20v6.0.0%20%F0%9F%9A%80%0D%0A%0D%0Ahttps://github.com/prisma/prisma/releases/tag/6.0.0) about the release.**

##### Breaking changes

⚠️ This section contains a list of breaking changes. If you upgrade your application to Prisma ORM v6 without addressing these, your application is going to break! **For detailed upgrade instructions, check out the [upgrade guide](https://www.prisma.io/docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-6).** ⚠️ 

##### Minimum supported Node.js versions

The new minimum supported Node.js versions for Prisma ORM v6 are:

-   for Node.js 18 the minimum supported version is **18.18.0**
-   for Node.js 20 the minimum supported version is **20.9.0**
-   for Node.js 22 the minimum supported version is **22.11.0**

There is no official support for Node.js <18.18.0, 19, 21, 23.

##### Minimum supported TypeScript version

The new minimum supported TypeScript version for Prisma ORM v6 is: **5.1.0**.

##### Schema change for implicit m-n relations on PostgreSQL

If you're using PostgreSQL and are defining [implicit many-to-many relations](https://www.prisma.io/docs/orm/prisma-schema/data-model/relations/many-to-many-relations#implicit-many-to-many-relations) in your Prisma schema, Prisma ORM maintains the [relation table](https://www.prisma.io/docs/orm/prisma-schema/data-model/relations/many-to-many-relations#relation-tables) for you under the hood. This relation table has `A` and `B` columns to represent the tables of the models that are part of this relation.

Previous versions of Prisma ORM used to create a *unique index* on these two columns. In Prisma v6, this unique index is changing to a *primary key* in order to [simplify for the default replica identity behaviour](https://redirect.github.com/prisma/prisma/issues/25196).

If you're defining implicit m-n relations in your Prisma schema, the next migration you'll create will contain `ALTER TABLE` statements for *all* the relation tables that belong to these relations.

##### Full-text search on PostgreSQL

The `fullTextSearch` Preview feature is promoted to General Availability only for MySQL. This means that if you're using PostgreSQL and currently make use of this Preview feature, you now need to use the new `fullTextSearchPostgres` Preview feature.

##### Usage of `Buffer`

Prisma v6 replaces the usage of [`Buffer`](https://nodejs.org/api/buffer.html) with [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) to represent fields of type `Bytes`. Make sure to replace all your occurrences of the `Buffer` type with the new `Uint8Array`.

##### Removed `NotFoundError`

In Prisma v6, we removed the `NotFoundError` in favor of `PrismaClientKnownRequestError` with error code [`P2025`](https://www.prisma.io/docs/orm/reference/error-reference#p2025) in [`findUniqueOrThrow()`](https://www.prisma.io/docs/orm/reference/prisma-client-reference#finduniqueorthrow) and [`findFirstOrThrow()`](https://www.prisma.io/docs/orm/reference/prisma-client-reference#findfirstorthrow). If you've relied on catching `NotFoundError` instances in your code, you need to adjust the code accordingly.

##### New keywords that can't be used as model names: `async`, `await`, `using`

With this release, you can't use `async`, `await` and `using` as model names any more.

***

⚠️ **For detailed upgrade instructions, check out the [upgrade guide](https://www.prisma.io/docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-6).**  ⚠️ 

##### Preview features promoted to General Availability

In this release, we are promoting a number of [Preview](https://www.prisma.io/docs/orm/more/releases#preview) features to [General Availability](https://www.prisma.io/docs/orm/more/releases#generally-available-ga).

##### `fullTextIndex`

If you use the [full-text index](https://www.prisma.io/docs/orm/prisma-schema/data-model/indexes#full-text-indexes-mysql-and-mongodb) feature in your app, you can now remove `fullTextIndex` from the `previewFeatures` in your Prisma schema:

```diff
generator client {
  provider        = "prisma-client-js"
- previewFeatures = ["fullTextIndex"]
}

```

##### `fullTextSearch`

If you use the [full-text search](https://www.prisma.io/docs/orm/prisma-client/queries/full-text-search) feature with **MySQL** in your app, you can now remove `fullTextSearch` from the `previewFeatures` in your Prisma schema:

```diff
generator client {
  provider        = "prisma-client-js"
- previewFeatures = ["fullTextSearch"]
}

```

If you are using it with **PostgreSQL**, you need to update the name of the feature flag to `fullTextSearchPostgres`:

```diff
generator client {
  provider        = "prisma-client-js"
- previewFeatures = ["fullTextSearch"]
+ previewFeatures = ["fullTextSearchPostgres"]
}
```

##### New features

We are also releasing new features with this release:

-   [cuid2() support](https://redirect.github.com/prisma/prisma-engines/pull/5047)
-   [Include unused enum definitions in `prisma generate`'s output](https://redirect.github.com/prisma/prisma/pull/25740)
-   [Improved compatibility with Deno 2](https://redirect.github.com/prisma/prisma/pull/25734)

##### Company news

##### 🚀 Prisma Postgres is free during Early Access

In case you missed it: We recently launched [Prisma Postgres](https://www.prisma.io/blog/announcing-prisma-postgres-early-access), a serverless database with zero cold starts, a generous free tier, connection pooling, real-time events, and a lot more! It’s entirely free during the Early Access phase, try it now!

##### ✨ Let us know what you think of Prisma ORM

We're always trying to improve! If you've recently used Prisma ORM, we'd appreciate hearing your thoughts about your experience via this [2min survey](https://pris.ly/orm/survey/release-5-22).

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuNTguMSIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
2025-04-15 09:05:00 +00:00
forehalo
6276732efc chore(server): reschedule doc merging jobs (#11318) 2025-04-01 10:57:54 +00:00
forehalo
0ea38680fa refactor(server): config system (#11081) 2025-03-27 12:32:28 +00:00
darkskygit
314e5795eb feat(server): add full content support for doc (#11149) 2025-03-25 03:25:41 +00:00
darkskygit
bf5d8b1211 feat(server): get full content for doc embedding (#11138) 2025-03-25 01:10:43 +00:00
fengmk2
ddd6c97b08 refactor(server): improve workspace content retrieval from database (#10964) 2025-03-19 12:16:53 +00:00
fengmk2
d00fd8316d refactor(server): remove unused randomDoc method (#10985)
close CLOUD-177
2025-03-19 06:45:22 +00:00
fengmk2
81694a1144 feat(server): add workspace name and avatarKey to database (#10513)
close CLOUD-153
2025-03-06 15:25:05 +00:00
fengmk2
c76b2504fe feat(server): add doc title and summary to database (#10505)
close CLOUD-152
2025-03-06 14:27:42 +00:00
fengmk2
687c26304a refactor(server): split HistoryModel from DocModel (#10604) 2025-03-05 12:10:28 +00:00
liuyi
61162c59fc refactor(server): permission (#10449) 2025-03-05 15:57:00 +08:00
fengmk2
b59f60c60b feat(server): add workspace avatar support in doc reader (#10390) 2025-02-28 12:41:26 +00:00
renovate
7227b7f8f6 chore: bump up oxlint version to v0.15.12 (#10206)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [oxlint](https://oxc.rs) ([source](https://redirect.github.com/oxc-project/oxc/tree/HEAD/npm/oxlint)) | [`0.15.10` -> `0.15.12`](https://renovatebot.com/diffs/npm/oxlint/0.15.10/0.15.12) | [![age](https://developer.mend.io/api/mc/badges/age/npm/oxlint/0.15.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/oxlint/0.15.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/oxlint/0.15.10/0.15.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/oxlint/0.15.10/0.15.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>oxc-project/oxc (oxlint)</summary>

### [`v0.15.12`](https://redirect.github.com/oxc-project/oxc/releases/tag/oxlint_v0.15.12): oxlint v0.15.12

[Compare Source](https://redirect.github.com/oxc-project/oxc/compare/oxlint_v0.15.11...oxlint_v0.15.12)

#### \[0.15.12] - 2025-02-24

##### Features

-   [`914dd46`](https://redirect.github.com/oxc-project/oxc/commit/914dd46) linter: Add eslint/max-depth ([#&#8203;9173](https://redirect.github.com/oxc-project/oxc/issues/9173)) (ikkz)
-   [`0b08159`](https://redirect.github.com/oxc-project/oxc/commit/0b08159) linter: Add eslint/max-lines-per-function ([#&#8203;9161](https://redirect.github.com/oxc-project/oxc/issues/9161)) (ikkz)
-   [`cc8dd48`](https://redirect.github.com/oxc-project/oxc/commit/cc8dd48) linter: Add unicorn/no-invalid-fetch-options rule ([#&#8203;9212](https://redirect.github.com/oxc-project/oxc/issues/9212)) (Mikhail Baev)
-   [`af13b1b`](https://redirect.github.com/oxc-project/oxc/commit/af13b1b) linter: Promote `eslint/no-eval` to `correctness` ([#&#8203;9231](https://redirect.github.com/oxc-project/oxc/issues/9231)) (dalaoshu)
-   [`542bbd7`](https://redirect.github.com/oxc-project/oxc/commit/542bbd7) linter: Support `import-x` plugin name ([#&#8203;9074](https://redirect.github.com/oxc-project/oxc/issues/9074)) (Sysix)
-   [`d266c29`](https://redirect.github.com/oxc-project/oxc/commit/d266c29) linter: Add eslint/max-nested-callbacks ([#&#8203;9172](https://redirect.github.com/oxc-project/oxc/issues/9172)) (ikkz)
-   [`86795d0`](https://redirect.github.com/oxc-project/oxc/commit/86795d0) linter: Implement grouped-accessor-pairs ([#&#8203;9065](https://redirect.github.com/oxc-project/oxc/issues/9065)) (yefan)
-   [`d70bad3`](https://redirect.github.com/oxc-project/oxc/commit/d70bad3) linter: Add eslint/no-unneeded-ternary rule ([#&#8203;9160](https://redirect.github.com/oxc-project/oxc/issues/9160)) (Cédric DIRAND)
-   [`4bd86e6`](https://redirect.github.com/oxc-project/oxc/commit/4bd86e6) linter: Add `fixer` for `unicorn/catch-error-name` ([#&#8203;9165](https://redirect.github.com/oxc-project/oxc/issues/9165)) (dalaoshu)

##### Bug Fixes

-   [`94bd2d8`](https://redirect.github.com/oxc-project/oxc/commit/94bd2d8) language_server: Fix `clippy::significant_drop_in_scrutinee` warning ([#&#8203;9234](https://redirect.github.com/oxc-project/oxc/issues/9234)) (Boshen)
-   [`69091c0`](https://redirect.github.com/oxc-project/oxc/commit/69091c0) linter: Correct default for `eslint/no-eval` ([#&#8203;9312](https://redirect.github.com/oxc-project/oxc/issues/9312)) (dalaoshu)
-   [`3031845`](https://redirect.github.com/oxc-project/oxc/commit/3031845) linter: Add option "allowTypeImports" for rule "no-restricted-imports" ([#&#8203;7894](https://redirect.github.com/oxc-project/oxc/issues/7894)) (Alexander S.)

##### Documentation

-   [`6c0f006`](https://redirect.github.com/oxc-project/oxc/commit/6c0f006) linter: Improve the documentation of eslint/no-useless-concat ([#&#8203;9179](https://redirect.github.com/oxc-project/oxc/issues/9179)) (Tom)
-   [`3414824`](https://redirect.github.com/oxc-project/oxc/commit/3414824) oxc: Enable `clippy::too_long_first_doc_paragraph` ([#&#8203;9237](https://redirect.github.com/oxc-project/oxc/issues/9237)) (Boshen)

##### Refactor

-   [`fb7df52`](https://redirect.github.com/oxc-project/oxc/commit/fb7df52) linter: Allow indirect `eval` by default for `eslint/no-eval` ([#&#8203;9302](https://redirect.github.com/oxc-project/oxc/issues/9302)) (dalaoshu)
-   [`b6fc0f6`](https://redirect.github.com/oxc-project/oxc/commit/b6fc0f6) linter: Improve `unicorn/consistent-function-scoping` ([#&#8203;9163](https://redirect.github.com/oxc-project/oxc/issues/9163)) (dalaoshu)

### [`v0.15.11`](https://redirect.github.com/oxc-project/oxc/blob/HEAD/npm/oxlint/CHANGELOG.md#01511---2025-02-16)

[Compare Source](https://redirect.github.com/oxc-project/oxc/compare/oxlint_v0.15.10...oxlint_v0.15.11)

##### Features

-   [`5d508a4`](https://redirect.github.com/oxc-project/oxc/commit/5d508a4) linter: Support `env` and `globals` in `overrides` configuration ([#&#8203;8915](https://redirect.github.com/oxc-project/oxc/issues/8915)) (Sysix)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNjcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-02-28 10:43:57 +00:00
fengmk2
b4097aef8e refactor(server): move bin content parser to doc reader (#10302) 2025-02-20 07:19:48 +00:00
fengmk2
e0b2b2b33c fix(server): convert error type to lower case (#10301) 2025-02-20 03:04:21 +00:00
liuyi
294002101d fix(server): wrong queue options for worker executor (#10267) 2025-02-19 04:44:23 +00:00
forehalo
da67c78152 feat(server): use job system (#10218) 2025-02-18 05:41:57 +00:00
fengmk2
db8557eafb fix(server): get doc diff from doc service (#10067)
close CLOUD-121

avoid sync server to merge doc updates

before

![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/hTwOityLamd4hitrae7M/054bf532-845d-427b-8cc4-f29e56f65720.png)

after

![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/hTwOityLamd4hitrae7M/fafe9244-c521-4af0-b131-5a6092eb5a16.png)
2025-02-12 10:20:23 +00:00
fengmk2
c8c7b7b65c feat(server): use x-cloud-trace-context instead of x-rpc-trace-id (#10068)
x-cloud-trace-context will be overwritten by lb,
and cannot be fake from internet access request

![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/hTwOityLamd4hitrae7M/6d3c47c1-ac9e-4bc9-a7f1-2be8f56dbf69.png)
2025-02-11 03:50:23 +00:00
fengmk2
0757f29f83 refactor(server): use doc model on doc cron job (#10057) 2025-02-10 09:52:44 +00:00
forehalo
c3f5b4abb4 test(server): utils (#10028) 2025-02-10 06:35:11 +00:00
fengmk2
e5d1cd9ea2 feat(server): use doc service (#9967)
close CLOUD-94
2025-02-08 05:27:56 +00:00
fengmk2
5d62c5e85c feat(server): implement doc service (#9961)
close CLOUD-94
2025-02-08 03:37:41 +00:00
fengmk2
36ed81bcc6 refactor(server): use doc model on PgWorkspaceDocStorageAdapter (#9852)
close CLOUD-104
2025-02-07 12:21:58 +00:00
forehalo
4b1c931503 fix(server): default page owner (#10015) 2025-02-07 07:31:56 +00:00
fengmk2
a2acacea3b refactor(server): use userDoc model on PgUserspaceDocStorageAdapter (#9845)
close CLOUD-104
2025-02-06 11:08:06 +08:00
forehalo
7826e2b7c8 refactor(server): use feature model (#9932) 2025-02-05 10:27:26 +00:00
forehalo
0ff8d3af6f feat(server): auto create page owner role (#9944) 2025-02-05 10:09:57 +00:00
forehalo
6370f45928 feat(server): cluster level event system (#9884) 2025-01-25 14:51:03 +00:00
Brooooooklyn
779029148e refactor(server): enhance the Logger usage (#9763) 2025-01-17 12:12:14 +00:00
Brooooooklyn
482b534a90 chore(server): setup winston logger (#9561)
There is no impact on the existing logger, as the current logger is used with `new Logger(Context)` and does not utilize dependency injection. In the next phase, gradually replace and supplement the existing `Logger`.
2025-01-07 09:15:08 +00:00
forehalo
0e73737407 refactor(server): make redis required module (#9121) 2024-12-13 06:27:15 +00:00
forehalo
81c68032e1 refactor(server): standalone runtime module (#9120) 2024-12-13 06:27:14 +00:00
forehalo
4c23991047 chore: rename fundamentals to base (#9119) 2024-12-13 06:27:13 +00:00
forehalo
2f80b4f822 feat(nbstore): add cloud implementation (#8810) 2024-12-10 10:48:27 +00:00
forehalo
63b58aad5c fix(server): reduce yjs binary size (#8681) 2024-11-04 05:45:06 +00:00
darkskygit
fa554b1054 feat: add copilot metrics (#8455)
fix CLOUD-73
2024-10-18 03:30:02 +00:00
forehalo
1d75d97a8f fix(server): handle hanging workspace after user account deleted (#8377)
fix CLOUD-74
2024-09-25 06:16:32 +00:00
Brooooooklyn
fe1eefdbb2 feat: init renderer server (#8088) 2024-09-10 04:03:59 +00:00