summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSho Sakuma <me@m1sk9.dev>2026-08-05 04:37:05 +0900
committerSho Sakuma <me@m1sk9.dev>2026-08-05 04:37:05 +0900
commit8bff9150039b4d94830e43d0688bc03c6a082e64 (patch)
tree3aa83b9c4d8fa5fabb4b11823890e3204f308cbc
parent418be2d127ce2d6a3ed5e9c876deb9c2aafc089b (diff)
downloadLunaticChat-8bff9150039b4d94830e43d0688bc03c6a082e64.tar.gz
LunaticChat-8bff9150039b4d94830e43d0688bc03c6a082e64.tar.bz2
LunaticChat-8bff9150039b4d94830e43d0688bc03c6a082e64.zip
docs: add changelog pages to the documentation site
Release notes were written into the GitHub release body, which means they exist once, in English only, and are awkward to revise after publishing. Putting them on the site gives each release a Japanese and an English page that can be corrected later and linked from anywhere. The overview page states the versioning rules the version numbers alone do not convey: that dropping a supported platform is a MINOR bump, that the Paper and Velocity builds advance separately, and that the plugin version says nothing about compatibility. Co-Authored-By: Claude <noreply@anthropic.com>
-rw-r--r--website/.vitepress/config/en.ts31
-rw-r--r--website/.vitepress/config/ja.ts37
-rw-r--r--website/src/assets/changelog-default.md26
-rw-r--r--website/src/changelog/overview.md53
-rw-r--r--website/src/changelog/paper/v1.3.0.md60
-rw-r--r--website/src/changelog/velocity/v1.2.0.md23
-rw-r--r--website/src/ja/changelog/overview.md55
-rw-r--r--website/src/ja/changelog/paper/v1.3.0.md60
-rw-r--r--website/src/ja/changelog/velocity/v1.2.0.md23
9 files changed, 368 insertions, 0 deletions
diff --git a/website/.vitepress/config/en.ts b/website/.vitepress/config/en.ts
index 26076c9..b0bcb63 100644
--- a/website/.vitepress/config/en.ts
+++ b/website/.vitepress/config/en.ts
@@ -8,6 +8,7 @@ export const en: DefaultTheme.Config = {
nav: [
{ link: '/download', text: 'Download' },
{ link: '/docs/getting-started', text: 'Documentation' },
+ { link: '/changelog/overview', text: 'Changelog' },
],
sidebar: {
'/docs/': [
@@ -105,5 +106,35 @@ export const en: DefaultTheme.Config = {
],
},
],
+ '/changelog/': [
+ {
+ text: 'Paper',
+ items: [
+ {
+ text: 'v1',
+ items: [
+ {
+ link: '/changelog/paper/v1.3.0',
+ text: 'v1.3.0',
+ },
+ ],
+ },
+ ],
+ },
+ {
+ text: 'Velocity',
+ items: [
+ {
+ text: 'v1',
+ items: [
+ {
+ link: '/changelog/velocity/v1.2.0',
+ text: 'v1.2.0',
+ },
+ ],
+ },
+ ],
+ },
+ ],
},
};
diff --git a/website/.vitepress/config/ja.ts b/website/.vitepress/config/ja.ts
index 1f8f4c0..a497293 100644
--- a/website/.vitepress/config/ja.ts
+++ b/website/.vitepress/config/ja.ts
@@ -8,6 +8,7 @@ export const ja: DefaultTheme.Config = {
nav: [
{ link: '/ja/download', text: 'ダウンロード' },
{ link: '/ja/docs/getting-started', text: 'ドキュメント' },
+ { link: '/ja/changelog/overview', text: '更新履歴' },
],
sidebar: {
'/ja/docs/': [
@@ -105,5 +106,41 @@ export const ja: DefaultTheme.Config = {
],
},
],
+ '/ja/changelog/': [
+ /**
+ {
+ link: '/ja/changelog/overview',
+ text: 'パッチノート',
+ },
+ */
+ {
+ text: 'Paper',
+ items: [
+ {
+ text: 'v1',
+ items: [
+ {
+ link: '/ja/changelog/paper/v1.3.0',
+ text: 'v1.3.0',
+ },
+ ],
+ },
+ ],
+ },
+ {
+ text: 'Velocity',
+ items: [
+ {
+ text: 'v1',
+ items: [
+ {
+ link: '/ja/changelog/velocity/v1.2.0',
+ text: 'v1.2.0',
+ },
+ ],
+ },
+ ],
+ },
+ ],
},
};
diff --git a/website/src/assets/changelog-default.md b/website/src/assets/changelog-default.md
new file mode 100644
index 0000000..1e9be22
--- /dev/null
+++ b/website/src/assets/changelog-default.md
@@ -0,0 +1,26 @@
+---
+layout: doc
+---
+
+# vX.Y.Z
+
+<!--
+- Download:
+ - [GitHub](https://github.com/m1sk9/LunaticChat/releases/tag/paper/vX.Y.Z)
+ - [Modrinth](https://modrinth.com/plugin/lunaticchat/version/X.Y.Z)
+
+- Download:
+ - [GitHub](https://github.com/m1sk9/LunaticChat/releases/tag/velocity/vX.Y.Z)
+ - [Modrinth (Velocity)](https://modrinth.com/plugin/lunaticchat/version/X.Y.Z-velocity)
+
+-->
+
+## New Features
+
+## Improvements
+
+## Changes
+
+## Bug Fixes
+
+## Notes
diff --git a/website/src/changelog/overview.md b/website/src/changelog/overview.md
new file mode 100644
index 0000000..3e97de3
--- /dev/null
+++ b/website/src/changelog/overview.md
@@ -0,0 +1,53 @@
+---
+layout: doc
+---
+
+# Changelog
+
+The release history of LunaticChat.
+
+## Versioning
+
+::: tip
+
+For the details of independent versioning in LunaticChat, see [Build, Release & Versioning](/docs/developers/resource).
+
+:::
+
+LunaticChat follows semantic versioning. A version number consists of the three numbers `MAJOR.MINOR.PATCH`, each raised on the following basis.
+
+| Position | Raised when | Example |
+|----------|-------------|---------|
+| **MAJOR** | Used for the move from the pre-release (v0) line to the first stable release. It has not been raised since entering the stable line | `v0.11.0` → `v1.0.0` |
+| **MINOR** | A feature is added or changed, and **when a supported platform is dropped** | `v1.2.2` → `v1.3.0` (cross-server DM added, Paper 26.1 dropped) |
+| **PATCH** | Bug fixes and dependency updates only. No functional changes | `v1.2.0` → `v1.2.1` (dependency updates only) |
+
+::: warning Dropping support is done in a MINOR bump
+
+Cutting a runtime environment loose — "support for Paper 26.1 has ended", "support for Velocity 3.5.x has ended" — **is done in a MINOR bump**. MAJOR is not raised for it, so there can be combinations that stop working across nothing more than a minor version update. Check the changelog for the target version before updating.
+
+:::
+
+### The Paper and Velocity builds have separate version numbers
+
+The plugin for Paper / Folia and the plugin for Velocity are released independently, so their version numbers advance separately. Numbers that do not line up are the normal state of affairs.
+
+Releases are cut with a tag naming the target.
+
+| Tag | Released target |
+|-----|-----------------|
+| `paper/vX.Y.Z` | The Paper / Folia build only |
+| `velocity/vX.Y.Z` | The Velocity build only |
+| `vX.Y.Z` | Both at once (v1.0.0 on 2026-04-04 was the last of these; it is no longer used) |
+
+### The plugin version does not express compatibility
+
+Whether a Paper build and a Velocity build can talk to each other is decided by the **protocol version** embedded in both, not by the plugin version. Builds with distant version numbers may be combinable, and conversely builds with adjacent numbers may not be.
+
+For details, see [Paper / Velocity Compatibility](/docs/reference/compatibility).
+
+### Supported versions
+
+Only **the latest release of each platform** is supported. Fixes are not backported to older versions unless it is unavoidable.
+
+Nightly builds are generated automatically from in-development commits. They are not formal releases and are therefore not supported. When a nightly build is in use, a warning is shown on join and when `/lc status` is run.
diff --git a/website/src/changelog/paper/v1.3.0.md b/website/src/changelog/paper/v1.3.0.md
new file mode 100644
index 0000000..599a59a
--- /dev/null
+++ b/website/src/changelog/paper/v1.3.0.md
@@ -0,0 +1,60 @@
+---
+layout: doc
+---
+
+# v1.3.0
+
+- Download:
+ - [GitHub](https://github.com/m1sk9/LunaticChat/releases/tag/paper/v1.3.0)
+ - [Modrinth](https://modrinth.com/plugin/lunaticchat/version/1.3.0)
+
+## New Features
+
+- Added support for Paper 26.2 (Minecraft 26.2)
+ - Support for Paper 26.1 has ended at the same time.
+ - Paper 26.2 bundles Adventure 5.2.0, which is not binary compatible with 26.1.
+ - Builds from v1.3.0 onward therefore no longer run on Paper 26.1.
+- `/tell <player>@<server>` can now message a player on a server connected through Velocity
+ - Disabled by default.
+ - Enable it with `features.velocityIntegration.crossServerDirectMessage`.
+- Raised the protocol version to `1.0.1`.
+ - Paper and Velocity can be updated in either order.
+ - Cross-server direct messages do, however, require both sides to be updated.
+
+## Improvements
+
+- A failed player data save no longer aborts the remaining shutdown steps, so channel logs and the Velocity connection are always closed.
+- File persistence has been consolidated behind a single storage layer.
+ - As a result, a crash or a concurrent save can no longer leave a file in a half-written state.
+- Each player's messages are now delivered in the order they were sent.
+ - Work still queued when a player disconnects is discarded rather than delivered to a player who has already logged out.
+- Direct message delivery and channel message logging no longer run on the tick thread.
+- Cached romaji conversion results no longer wait for a permit from the shared API concurrency limiter.
+ - Previously, even a message whose every word was already cached could exhaust its conversion budget waiting for a permit it did not need, and be sent unconverted.
+- The words in a message are now converted concurrently.
+- Player settings are only rewritten when something has changed.
+ - Previously, every player quit re-serialized every player stored in the file, even when the bytes were identical.
+- When a player quits without an active channel, clearing their active channel no longer takes a snapshot of the channel caches.
+ - Previously, a mass disconnect produced one full snapshot per disconnecting player within a single tick.
+- Spy notification for direct messages and channel messages no longer builds its translation lookup and member set when no recipient is online.
+- Channel data writes are now batched instead of rewriting the whole file on every change.
+- Performed internal cleanup.
+
+## Changes
+
+- `config.yml` is now read with KAML, which changes how a broken file is treated.
+ - An unreadable configuration file no longer disables the plugin; it starts on its default settings instead.
+ - When a single value cannot be read, the other settings in the file are no longer all discarded: only that value falls back to its default, with a warning.
+- Per-player delivery queues are now bounded.
+ - A player who sends faster than delivery drains is refused with a warning, rather than building an unbounded backlog that arrives all at once minutes later.
+
+## Bug Fixes
+
+- Fixed the player argument of `/tell` matching partially
+ - This came from the switch away from the old Bukkit API.
+- Fixed `features.channelChat.messageLogging` never actually being read and falling back to its default values
+ - The loading was never implemented despite being documented, so it stayed at its defaults regardless of what the file said.
+- Fixed a slow Google IME reply silently stopping every subsequent message delivery for that player's session
+- Fixed a single conversion timeout permanently pinning a word to its hiragana form
+- Fixed `/reply` not recognizing a reply target that had just been recorded
+- Fixed reply target entries that had already been cleared on disconnect being recorded again
diff --git a/website/src/changelog/velocity/v1.2.0.md b/website/src/changelog/velocity/v1.2.0.md
new file mode 100644
index 0000000..272fb50
--- /dev/null
+++ b/website/src/changelog/velocity/v1.2.0.md
@@ -0,0 +1,23 @@
+---
+layout: doc
+---
+
+# v1.2.0
+
+- Download:
+ - [GitHub](https://github.com/m1sk9/LunaticChat/releases/tag/velocity/v1.2.0)
+ - [Modrinth (Velocity)](https://modrinth.com/plugin/lunaticchat/version/1.2.0-velocity)
+
+## New Features
+
+- Added support for Velocity 4.0.0
+ - Support for the Velocity 3.5.x line has ended.
+- Added cross-server direct message relay and player presence tracking.
+- Raised the protocol version to `1.0.1`.
+ - Paper and Velocity can be updated in either order.
+ - Cross-server direct messages do, however, require both sides to be updated.
+
+## Improvements
+
+- The Velocity JAR shrank from about 8.2 MiB to about 2.6 MiB.
+ - Paper-only dependencies (Ktor and the romaji conversion module) were separated out of the shared module and are no longer bundled into the Velocity build.
diff --git a/website/src/ja/changelog/overview.md b/website/src/ja/changelog/overview.md
new file mode 100644
index 0000000..108061d
--- /dev/null
+++ b/website/src/ja/changelog/overview.md
@@ -0,0 +1,55 @@
+---
+layout: doc
+---
+
+# 更新履歴
+
+LunaticChat に関する更新履歴です.
+
+## バージョニング
+
+::: tip
+
+LunaticChat における独立バージョニングの詳細は [ビルド・リリース・バージョニング](../docs/developers/resource.md) を参照してください.
+
+:::
+
+LunaticChat ではセマンティックバージョニングを採用しています.バージョン番号は `MAJOR.MINOR.PATCH` の 3 つの数字で構成され,それぞれ次の基準で上がります.
+
+| 位置 | 上がる条件 | 例 |
+|------|-----------|-----|
+| **MAJOR** | プレリリース (v0 系) から最初の安定版へ移行する際に使用しました.安定版に入って以降は使用していません | `v0.11.0` → `v1.0.0` |
+| **MINOR** | 機能の追加・変更,および**サポート対象プラットフォームの打ち切り** | `v1.2.2` → `v1.3.0` (サーバー間 DM の追加,Paper 26.1 の打ち切り) |
+| **PATCH** | 不具合修正と依存関係の更新のみ.機能の変更を含みません | `v1.2.0` → `v1.2.1` (依存更新のみ) |
+
+::: warning サポート打ち切りは MINOR で行います
+
+「Paper 26.1 のサポートを終了」「Velocity 3.5.x のサポートを終了」のような**動作環境の切り捨ては MINOR バンプで行います**.MAJOR は上がらないため,マイナーバージョンの更新であっても動作しなくなる組み合わせがありえます.更新の前に対象バージョンの更新履歴を確認してください.
+
+:::
+
+### Paper 版と Velocity 版は別のバージョン番号を持ちます
+
+Paper / Folia 向けプラグインと Velocity 向けプラグインは独立してリリースされるため,バージョン番号も別々に進みます.番号が揃っていないのは正常な状態です.
+
+リリースは対象を示すタグで行います.
+
+| タグ | リリース対象 |
+|------|-------------|
+| `paper/vX.Y.Z` | Paper / Folia 版のみ |
+| `velocity/vX.Y.Z` | Velocity 版のみ |
+| `vX.Y.Z` | 両方同時 (2026-04-04 の v1.0.0 が最後で,以降は使用していません) |
+
+### プラグインバージョンは互換性を表しません
+
+Paper 版と Velocity 版が通信できるかどうかは,プラグインバージョンではなく両者に埋め込まれた**プロトコルバージョン**で決まります.バージョン番号が離れていても組み合わせられる場合があり,逆に近い番号同士でも組み合わせられない場合があります.
+
+詳しくは [Paper / Velocity 互換性](/ja/docs/reference/compatibility) を参照してください.
+
+### サポート対象
+
+サポート対象は**各プラットフォームの最新リリースのみ**です.古いバージョンへの修正の backport は,どうしても必要な場合を除いて行いません.
+
+nightly ビルドは開発中のコミットから自動生成されるビルドであり,正式なリリースではないためサポート対象外です.nightly を使用している場合は,ログイン時と `/lc status` の実行時に警告が表示されます.
+
+
diff --git a/website/src/ja/changelog/paper/v1.3.0.md b/website/src/ja/changelog/paper/v1.3.0.md
new file mode 100644
index 0000000..78e241a
--- /dev/null
+++ b/website/src/ja/changelog/paper/v1.3.0.md
@@ -0,0 +1,60 @@
+---
+layout: doc
+---
+
+# v1.3.0
+
+- Download:
+ - [GitHub](https://github.com/m1sk9/LunaticChat/releases/tag/paper/v1.3.0)
+ - [Modrinth](https://modrinth.com/plugin/lunaticchat/version/1.3.0)
+
+## New Features
+
+- Paper 26.2 (Minecraft 26.2) をサポートしました
+ - 同時にPaper 26.1 のサポートは終了しました.
+ - Paper 26.2 では Adventure 5.2.0 を同梱しているため,26.1 とはバイナリ互換性が失われています.
+ - そのため, v1.3.0 以降のビルドは Paper 26.1 では使用できなくなりました.
+- `/tell <player>@<server>` で Velocity 間で接続しているサーバのプレイヤーにメッセージを送信できるように
+ - デフォルトでは無効化されています.
+ - `features.velocityIntegration.crossServerDirectMessage` で有効化できます.
+- プロトコルバージョンを `1.0.1` に引き上げました.
+ - Paper 側と Velocity 側はどちらを先に更新しても問題ありません.
+ - ただし,サーバー間ダイレクトメッセージ機能を使うには両側の更新が必要です.
+
+## Improvements
+
+- プレイヤーデータの保存に失敗しても,残りのシャットダウン処理が中断されなくなり,チャンネルログと Velocity 接続は必ずクローズされるようになりました.
+- ファイルの永続化処理が単一のストレージレイヤーの背後に統合されました.
+ - これにより,クラッシュや同時保存によってファイルが中途半端な状態のまま残ることがなくなりました.
+- 各プレイヤーのメッセージは送信順に配信されるようになりました.
+ - 切断時にまだキューに残っている作業は,既にログアウトしたプレイヤーに配信されるのではなく破棄されます.
+- ダイレクトメッセージ配信とチャンネルメッセージのロギングが,tick スレッド上で実行されなくなりました.
+- キャッシュ済みのローマ字変換結果が,共有 API 同時実行数リミッターの許可待ちをしなくなりました.
+ - これまでは,全ての単語がキャッシュ済みであるメッセージでも,不要な permit の取得待ちで変換予算を使い切ってしまい,未変換のまま送信されることがありました.
+- メッセージ中の単語の変換が並行して行われるようになりました.
+- プレイヤー設定は,変更があった場合のみ書き直されるようになりました.
+ - これまでは,プレイヤーが退出するたびに,同一バイト列であっても保存済みの全プレイヤーが再シリアライズされていました.
+- プレイヤーがアクティブなチャンネルを持たない状態で退出した際,そのプレイヤーのアクティブチャンネルをクリアする処理でチャンネルキャッシュのスナップショットが取られなくなりました.
+ - これまでは,大量切断時に 1 tick 内で切断人数分のフルスナップショットが発生していました.
+- ダイレクトメッセージおよびチャンネルメッセージのスパイ通知は,対象者がオンラインでない場合,翻訳ルックアップとメンバーセットの構築を行わなくなりました.
+- チャンネルデータの書き込みは,変更のたびにファイル全体を書き直すのではなく,まとめて行われるようになりました.
+- 内部的なクリーンアップを行いました.
+
+## Changes
+
+- 設定ファイルの読み込みに KAML を使用するようになりました.これにより壊れたファイルの扱いが変わります.
+ - 読み込み不能な設定ファイルがあっても,プラグインは無効化されず,デフォルト設定で起動するようになりました.
+ - 単一の値が読み込めない場合も,ファイル内の他の設定が全て破棄されることはなくなり,警告付きでその値のみデフォルトにフォールバックするようになりました.
+- プレイヤーごとの配信キューに上限が設けられました.
+ - 配信のドレイン速度を超えて送信するプレイヤーは,無制限にバックログを溜め込んで数分後にまとめて届くのではなく,警告と共に拒否されるようになりました.
+
+## Bug Fixes
+
+- `/tell` のプレイヤー引数が部分一致になっていた不具合を修正
+ - 旧 Bukkit API からの切り替えによるものです.
+- `features.channelChat.messageLogging` が実際には読み込まれず,デフォルト値としてフォールバックされる不具合を修正
+ - これまではドキュメントに記載があるにもかかわらず読み込み処理が実装されておらず,ファイルの記述に関わらず常にデフォルト値のままでした.
+- Google IME の応答が遅い場合に,そのプレイヤーのセッション中のメッセージ配信が以降すべて無言で止まってしまう不具合を修正
+- 一度の変換タイムアウトが原因で,ある単語が恒久的にひらがな表示に固定されてしまう不具合を修正
+- `/reply` が記録されたばかりの返信先を認識できない不具合を修正
+- `/reply` の対象者がログアウトした際,クリアされたはずのエントリが重複してチャットに挿入されてしまう不具合を修正
diff --git a/website/src/ja/changelog/velocity/v1.2.0.md b/website/src/ja/changelog/velocity/v1.2.0.md
new file mode 100644
index 0000000..18249c9
--- /dev/null
+++ b/website/src/ja/changelog/velocity/v1.2.0.md
@@ -0,0 +1,23 @@
+---
+layout: doc
+---
+
+# v1.2.0
+
+- Download:
+ - [GitHub](https://github.com/m1sk9/LunaticChat/releases/tag/velocity/v1.2.0)
+ - [Modrinth (Velocity)](https://modrinth.com/plugin/lunaticchat/version/1.2.0-velocity)
+
+## New Features
+
+- Velocity 4.0.0 をサポートしました
+ - Velocity 3.5.x 系統のサポートは終了しました.
+- サーバー間ダイレクトメッセージのリレー機能とプレイヤーのプレゼンス追跡機能を追加しました.
+- プロトコルバージョンを `1.0.1` に引き上げました.
+ - Paper 側と Velocity 側はどちらを先に更新しても問題ありません.
+ - ただし,サーバー間ダイレクトメッセージ機能を使うには両側の更新が必要です.
+
+## Improvements
+
+- Velocity 用 JAR のサイズが,約 8.2 MiB から約 2.6 MiB に縮小されました.
+ - Paper 専用の依存関係(Ktor とローマ字変換モジュール)が共有モジュールから分離され,Velocity ビルドに同梱されなくなったためです.