COWMODSКаталог модов

KOKOTO WebChat

Multi-platform Minecraft web chat with map/standalone UI, DM & groups, secure server relay, moderation/content filters, rich media, notifications, and optional ImageEmojis-Bero/SimpleNicks-Bero integration.

Автор: KOKOTO1,4 тыс.5обновлён 4 окт. 2026 г.
УправлениеОбщениеУтилиты

Описание

KOKOTO WebChat

Chat screen

KOKOTO WebChat 5.3.3 is a compatibility-preserving maintenance update to the finalized 5.3.2 baseline. Relay remains protocol 2.2 and the configuration schema remains 5.3.0. This release focuses on notification lifecycle/visibility correctness, server-hosted offline Help, upload-retention semantics, desktop private-window presentation fixes, version/reporting consistency, and Forge 26.3 activation.

KOKOTO WebChat is a server-side Minecraft web chat for Bukkit/Paper/Spigot 1.18–26.3 (Java 17), Fabric exact targets 1.18.2–26.3, NeoForge exact targets 1.20.2–26.3, and Forge exact targets 1.18.2–26.3; mod-loader targets select Java 17/21/25 by Minecraft version. It can run as a standalone web chat or embed into supported map frontends including BlueMap, squaremap, Dynmap, Pl3xMap, LiveAtlas, uNmINeD, and Minecraft Overviewer. No client mod is required for the core chat features.

What's new in 5.3.3

  • Exact-message notification acknowledgement: Public, DM, and Group notifications are read or removed as soon as their exact target message is actually visible. The same guarded check runs after canonical inbox sync, post-render retries, foreground/focus changes, mobile visualViewport changes, resize, and orientation changes.
  • Deleted-message notification cleanup: deleting a Public, DM, or Group message removes the notification-inbox row targeting that exact message, including cross-server DM deletion and stale persisted rows.
  • Offline/local Help: User settings → Help opens bundled en/ko/ja/zh-CN documentation directly from the KWC server. Unsupported locales fall back to English, and administrators may install custom docs/<locale>/ Markdown translations. Real local screenshot assets are supported without remote image hotlinking.
  • Notification settings clarification: signed-in notification categories and keywords are account-wide, while browser Notification permission and Web Push registration remain browser/device specific.
  • Upload-retention correctness: upload.retention-days is an actual age limit; public and Group pinned-message snapshots can preserve referenced uploads when pinned.preserve-uploads is enabled; periodic cleanup also runs on long-lived servers.
  • Desktop DM/Group presentation fixes: touch-capable desktop systems are no longer misclassified as mobile only because they expose multiple touch points. Standalone desktop multi-window behavior remains available, and DM/Group sender/body typography matches public chat without changing timestamp/status sizing.
  • Presence count correctness: the online count uses the UUID-deduplicated union of Game and Web presence.
  • Pin/unpin confirmation and Filter Save placement: public/Group pin and unpin mutations ask for confirmation; Filter settings use the shared admin-header Save action.
  • Product/config version separation: release-version: "5.3.3" is the managed product display, while config-version: "5.3.0" remains the independent configuration-schema/migration marker. Loader runtime/version reporting is synchronized to 5.3.3.
  • Forge 26.3 support: Forge 26.3 is an active exact target pinned to Forge 66.0.3 with Java 25. The release matrix is 48 artifacts: Bukkit 1 + Fabric 17 + NeoForge 13 + Forge 17.
  • Build/release polish: Windows target progress counts match the 48-artifact matrix, Gradle/JDK bootstrap downloads report progress with bounded timeouts, and current release documentation/metadata are synchronized.

Highlights

  • 5.0.0 multi-platform architecture: shared behavior lives in kwc-core; Bukkit, Fabric, NeoForge, and Forge provide loader-specific server integration while reusing the same core and frontend/adapters
  • Two-way game ↔ web chat with linked Minecraft accounts and optional guest chat
  • BlueMap addon + standalone page with dark/light/high-contrast UI, PIP, draggable/resizable windows, search, replies, pins, and virtual scrolling
  • 1:1 direct messages with local and cross-server recipients, exact server+UUID routing, retry-safe delivery, unread/read state, and shared game/web threads
  • Group chat rooms with public/private visibility, invitations, passwords, retention limits, unread counts, delivery retry protection, and member management
  • Relay Protocol 2.2 for multi-server communities with explicit groups, reciprocal peers, independent per-peer send/receive policy, HKDF-SHA256/AES-256-GCM hop-by-hop protection, authenticated responses, replay/loop defenses, server badges and source filters
  • DiscordSRV integration plus Discord media caching and optional emoji-link augmentation
  • Uploads and rich previews for images, video, audio, YouTube/Shorts, with optional TikTok and X/Twitter embeds
  • Deterministic long-history virtual scrolling across images, GIFs, video, audio, YouTube/iframes and link previews, with scroll-anchor correction as media sizes settle
  • Unicode-aware content filtering for public/group chat and optional DM with Block/Mask/Replace, bulk word lists, custom rules, anti-evasion matching and Web Admin testing
  • Custom emoji management with multi-file administrator upload, plus optional ImageEmojis-Bero Bukkit/Paper integration using the same plugins/KOKOTO-WebChat/emojis tree; its resource-pack HTTP port remains a separate client-facing service
  • SimpleNicks-Bero nickname integration on Bukkit/Paper-family servers through player-display.mode: "display-name", while KWC retains the real linked account identity
  • Configurable message tokens such as :enter: / :newline: / :tab: with administrator-localizable aliases and printable custom substitutions
  • Web Push / keyword notifications and administrator update notifications
  • Per-account visual UI profiles plus account-synced keyword/notification preferences for signed-in users; device-local window state and Push endpoints stay local
  • Administrator Discord keyword alerts with KWC-owned matching/deduplication and DiscordSRV logical-channel selection
  • Administration and moderation tools for message deletion, pins, guest/IP mutes, session revocation, user restrictions, custom emoji management, and private-chat metadata
  • Optional read-only DM and group-chat body audit for explicitly allowlisted super administrators; both are disabled by default and every audit page read is logged
  • Built-in UI languages: English, Korean, Japanese, Simplified Chinese

Private messaging and delivery reliability

Cross-server DM targets are identified by server ID + player UUID, so a local player cannot be confused with a same-name player on another server. Remote messages stay pending until the destination confirms storage. Failed or uncertain sends can be retried with persistent relay/client message IDs without duplicating sender or receiver records.

DM and group-chat message state is shown compactly beside the timestamp. Normal successful delivery is silent; pending or failed delivery is shown only when needed. DM messages use a short unread label until the recipient reads them, then show ✓. Group messages show the number of recipients who have not read the message and change to ✓ when everyone has read it.

Multi-server relay

Relay Protocol 2.2 carries public chat and cross-server DM/read/delete flows inside explicit trust groups and capability-gates public reactions/typing, chat-event routing, and remote public-profile lookup while keeping Protocol major 2 as the wire-compatibility boundary. Each group has one shared secret; peers have no individual secret and must be configured reciprocally in the same group. Every message request authenticates/encrypts itself independently. /relay/v2/handshake is a stateless diagnostic identity/health probe and does not control routing. Messages use directional HKDF-SHA256 keys and AES-256-GCM hop-by-hop authenticated encryption; responses are HMAC-authenticated and timestamp/nonce/relay-ID/hop defenses reject replay or loops.

Each peer keeps enabled as a master switch and may independently configure send and receive for public-chat, event, dm, and profile. Missing entries default to enabled for compatibility. KWC Chat Events use the distinct event source rather than ordinary system, so remote event announcements can be rejected without suppressing unrelated system notices. Public reaction/typing follow public-chat; DM reaction/typing/read/delete follow dm.

Direct one-hop HTTP can be used with an explicit warning because relay payloads remain encrypted/authenticated. Forwarding filtering is per peer: an HTTP peer is excluded only as that forwarding hop, while other HTTPS peers in the same group remain eligible. Relay Protocol 2.2 is not end-to-end encryption: forwarding servers decrypt and re-encrypt as trusted participants. Legacy Relay v1 endpoints return HTTP 426.

On the first upgrade from 5.0.0, old flat relay settings are not converted into guessed groups. Relay is reset disabled so the operator can explicitly define the v2 trust groups before re-enabling it.

Administrator private-chat audit

Private message bodies are not automatically exposed to normal administrators. Optional audit access requires an exact Minecraft name/UUID in private-chat-super-admins and the corresponding feature switch:

direct-message:
  admin-audit:
    enabled: false

group-chat:
  admin-audit:
    enabled: false

Audit views are read-only. Group audit does not join the room or affect read/unread state. Every audit page read records the actor and pagination metadata without copying message bodies into the audit log.

Deployment

Fresh configurations start with the plugin master switch disabled so operators can review storage, authentication, uploads, retention, and web exposure before enabling it. During migration, the bundled config.yml is the only template: KWC creates a fresh current default and overlays existing operator values, so old comments/layout are replaced by the current bundled comments/layout. A fixed older-version config is backed up before reconstruction. <version>_auto_migration repeats this rebuild on startup/reload; exact <version> fixes the current-version config and prevents same-version rewriting. config-reference-<version>.yml is an administrator-readable exact default copy, not the migration source, and obsolete generated reference/migration files are cleaned up automatically. /kchat reload validates edited YAML before stopping live services; invalid YAML is rejected so the previous running configuration, UI language, and services remain active. Bundled UTF-8 starter filter-word lists for Korean, English, Japanese, and Simplified Chinese are initialized once when the starter-list marker is absent; existing or disabled files are preserved, and administrator deletions after initialization are not reversed.

For public deployments, placing BlueMap and KOKOTO WebChat behind HTTPS with Caddy or Nginx is recommended.

Optional integrations

  • BlueMap (Bukkit plus BlueMapAPI on Fabric/NeoForge 26.1.2/26.2/26.3 and Forge 26.1.2/26.2/26.3)
  • squaremap and Dynmap filesystem web adapters
  • Pl3xMap on Bukkit/Paper-family and Fabric
  • LiveAtlas, uNmINeD, and Minecraft Overviewer static-web adapters
  • DiscordSRV on Bukkit
  • ImageEmojis-Bero on Bukkit/Paper-family servers (shared KWC emoji path + runtime glyph resolution); general ImageEmojis operation follows the upstream plugin documentation
  • SimpleNicks-Bero on Bukkit/Paper-family servers through Bukkit display names; general SimpleNicks operation follows the upstream plugin documentation
  • Web Push notifications

See the bundled README and docs/ directory for full configuration, reverse-proxy, relay, security, migration, and troubleshooting guides.

AI assistance disclosure

Generative AI was used as a development assistant for code review, implementation and patching, documentation drafting, and multilingual translation. Project requirements, architecture/design decisions, integration, testing, compatibility verification, release validation, and final acceptance are human-directed and reviewed. AI-assisted output is reviewed and validated before inclusion.

Галерея

Chat screenChat settingsMedia upload, YoutubeMulti language support

Последние версии

Все версии →
release

KOKOTO WebChat 5.3.3

5.3.3
4 окт. 2026 г.178Minecraft: 1.20.2, 1.20.4, 1.20.6, 1.21.1, 1.21.3, 1.21.4, 1.21.5, 1.21.8, 1.21.10, 1.21.11, 26.1.2, 26.2, 26.3neoforge
Скачать
Что нового
## 5.3.3 5.3.3 is compared directly with the finalized 5.3.2 maintenance baseline. It keeps configuration schema **5.3.0** and Relay Protocol **2.2**. The release focuses on notification correctness, local/offline Help, upload-retention semantics, private-window presentation fixes, version/reporting consistency, and Forge 26.3 activation. ### Added - **Offline/local Help with custom translation packs**: the Web account **Help** button opens documentation served by the same KWC HTTP server. English, Korean, Japanese, and Simplified Chinese docs are bundled, unsupported UI locales fall back to English, and administrators may install `plugins/KOKOTO-WebChat/docs/<locale>/` Markdown translations without having them overwritten. Local Help renders Markdown as safe styled HTML with headings, lists, tables, code blocks, local navigation, and explicit online Docs/Wiki links. - **Local Help image support for real manual screenshots**: bundled Markdown may reference KWC-owned PNG/SVG/WebP images under `docs/assets/ui/`; offline Help serves the synchronized copy through same-origin `/help/assets/`. Remote Markdown images and path traversal remain blocked. The source tree includes an authoring guide so the Korean manual, translated Docs, Wiki mirror, and offline Help can share stable real-UI screenshots. ### Changed - **Animated GIF profile images**: custom profile avatars now accept GIF in addition to PNG/JPEG/WebP. The existing 2 MiB profile-image limit is unchanged; GIF bytes are preserved so animation remains intact in browser profile/avatar rendering. - **Release version and config schema version are separate**: generated/current config shows `release-version: "5.3.3"` for the running KWC product release while `config-version: "5.3.0"` remains the configuration-schema/migration marker. `release-version` is informational and automatically synchronized by KWC; it is excluded from operator-value migration comparisons. - **Pin/unpin confirmation**: pinning or unpinning a public-chat or Group message asks for confirmation before the server mutation is sent. Canceling leaves the pinned state unchanged; pin-order controls remain immediate. - **Filter settings Save placement**: the Filter panel uses the shared admin-modal header Save action, matching the Settings panel. Word-list and custom-rule editor Save buttons remain local to their editors. - **Original upload filenames**: `upload.filename-mode: original` continues to preserve sanitized Unicode names, while whitespace runs are normalized to `-` so stored URLs/path components do not contain literal spaces. Existing `-` and `_` separators are retained. - **Forge 26.3 exact target**: Forge 26.3 is now an active release target pinned to Forge `66.0.3` with Java 25 and the existing `compat26` source layer. The deployable release matrix is now 48 artifacts. ### Fixed - **Mobile JPEG photo orientation after metadata stripping**: normal image uploads and custom profile images now preserve only the non-sensitive EXIF Orientation value (2–8), rewritten into a minimal sanitized EXIF block when required. GPS, camera/device, author, IPTC, comment, and other EXIF metadata remain removed, while the JPEG pixel payload is left byte-for-byte compressed rather than re-encoded. Portrait photos taken on phones therefore no longer turn sideways after upload. - **Localization/changelog consistency**: the root changelog is now English-only, and a duplicated `web.receipt.read` entry was removed from all four bundled language files so each locale has one unambiguous value for that key. - **UUID-wide personal blocking and long-list scrolling**: personal blocks that were previously stored separately as `remote~server~UUID` are now canonicalized to the underlying Minecraft UUID. Existing server-scoped block data is collapsed and de-duplicated when read, so one block applies to the same account across Relay servers. The blocked-user manager shows one row per account and scrolls internally instead of growing beyond the viewport. - **Game-side personal blocking**: account-based personal blocks now also apply to Public chat delivered by KWC to game clients. On Bukkit/Paper, blocked senders are removed from native player-chat recipient sets as well, aligning Web and in-game results. Relay routing still keeps server-scoped remote identities where routing requires them, while personal-block comparisons use the canonical Minecraft UUID. - **Saved-conversation viewer/PDF responsiveness**: saved conversation viewers no longer build the entire archive synchronously on the UI thread. Reply targets are indexed once, viewer messages render in small batches so Close remains responsive on large snapshots, viewer images use lazy loading, and PDF export renders from the complete saved snapshot instead of cloning only the currently rendered viewer DOM. - **Forge build-cache recovery**: Windows Forge builds now validate ForgeGradle/Mavenizer cached JARs after a failed target build. Truncated/corrupt cache JARs are removed and the same target is retried once, covering interrupted downloads/reboots such as `zip END header not found` without clearing the entire Gradle cache. - **YouTube virtual-scroll autoplay**: `preview.youtube-autoplay-on-open` now applies only when the user explicitly opens a YouTube preview. If an already-open/remembered preview is destroyed by virtual scrolling and later recreated, the iframe is restored with autoplay disabled so a paused video does not start again merely because it re-entered the viewport. - **Visible-target notification acknowledgement**: Public, DM, and Group exact-message notifications are acknowledged as soon as the target message is actually visible. Canonical inbox synchronization, post-render retries, foreground/focus changes, mobile `visualViewport` resize/scroll, window resize, and orientation changes all re-run the same guarded visibility sweep. With remove-after-view enabled the matching row is removed; otherwise it becomes Read. - **Public reply/keyword/reaction attention targeting**: public-chat notifications now explicitly identify Public chat as their target, preventing an already-viewed public message from lingering unread because of an ambiguous target. - **Deleted-message notification inbox lifecycle**: globally deleting a public, DM, or Group message removes notification-inbox rows that target that exact message, whether unread or already Read. Cross-server DM deletion and `/kchat dm delete` apply the same cleanup using the receiver-local DM message ID. Persisted stale rows are pruned and delayed writes are revalidated so deleted targets cannot be resurrected by a race. - **Notification settings wording**: signed-in notification categories and keyword lists are correctly described as account-wide. Browser Notification permission/enablement and Web Push subscription are browser/device specific and must be enabled on each PC browser or mobile device that should receive alerts. - **Desktop private-window presentation**: touch-capable Windows/ChromeOS/Linux desktops are no longer mistaken for mobile solely because `maxTouchPoints > 1`. Desktop Standalone DM/Group multi-window, dragging, and desktop typography remain on the desktop presentation path. DM/Group sender names and message bodies use the same base chat font-size token as public chat, while timestamp/status metadata sizing is unchanged. - **Game/Web online user count**: the signed-in user counter uses the UUID-deduplicated union of Game and Web presence. A user connected from both counts once; Game-only and Web-only users are both included, while the existing Offline privacy rule still excludes hidden accounts. - **Upload retention lifecycle**: `upload.retention-days` is now an actual age limit rather than being extended indefinitely by ordinary Public/DM/Group message references. With `pinned.preserve-uploads: true`, attachments referenced by public or Group pinned-message snapshots remain protected. Upload and external-media cache retention cleanup also runs periodically on long-lived servers. - **Group-pin upload preservation**: Group pinned-message snapshots participate in the same upload/external-cache preservation set as public pins, including after the source Group message is deleted or aged out. - **Resume-refresh skip policy**: `ui.resume-refresh.skip-unchanged` is exposed to browser config and now actually controls whether focus/resume history refreshes can short-circuit unchanged history. - **Windows release-build progress/bootstrap**: the 48-target matrix progress counters use Fabric 17 / NeoForge 13 / Forge 17 totals. Gradle/JDK bootstrap downloads show progress and use bounded timeouts so a stalled dependency bootstrap no longer looks indefinitely frozen. - **Cross-loader product version reporting**: Fabric, NeoForge, and Forge runtime/mod status paths use the shared 5.3.3 product version instead of stale hard-coded 5.3.1 strings. Legacy BMWC conversion also writes the configuration schema migration marker instead of deriving it from the product patch version. ### Compatibility - Bukkit/Paper/Spigot: Minecraft 1.18–26.3 - Fabric: 17 exact targets, Minecraft 1.18.2–26.3 - NeoForge: 13 exact targets, Minecraft 1.20.2–26.3 - Forge: 17 exact targets, Minecraft 1.18.2–26.3; Minecraft 26.3 is pinned to Forge 66.0.3. - Deployable release matrix: **48 artifacts**. - Relay Protocol remains **2.2**. - Configuration schema/reference remains **5.3.0**. `release-version` is a managed informational marker and does not create a new operator setting or schema generation.
release

KOKOTO WebChat 5.3.3

5.3.3
4 окт. 2026 г.61Minecraft: 1.18.2, 1.19.2, 1.19.4, 1.20.1, 1.20.2, 1.20.4, 1.20.6, 1.21.1, 1.21.3, 1.21.4, 1.21.5, 1.21.8, 1.21.10, 1.21.11, 26.1.2, 26.2, 26.3forge
Скачать
Что нового
## 5.3.3 5.3.3 is compared directly with the finalized 5.3.2 maintenance baseline. It keeps configuration schema **5.3.0** and Relay Protocol **2.2**. The release focuses on notification correctness, local/offline Help, upload-retention semantics, private-window presentation fixes, version/reporting consistency, and Forge 26.3 activation. ### Added - **Offline/local Help with custom translation packs**: the Web account **Help** button opens documentation served by the same KWC HTTP server. English, Korean, Japanese, and Simplified Chinese docs are bundled, unsupported UI locales fall back to English, and administrators may install `plugins/KOKOTO-WebChat/docs/<locale>/` Markdown translations without having them overwritten. Local Help renders Markdown as safe styled HTML with headings, lists, tables, code blocks, local navigation, and explicit online Docs/Wiki links. - **Local Help image support for real manual screenshots**: bundled Markdown may reference KWC-owned PNG/SVG/WebP images under `docs/assets/ui/`; offline Help serves the synchronized copy through same-origin `/help/assets/`. Remote Markdown images and path traversal remain blocked. The source tree includes an authoring guide so the Korean manual, translated Docs, Wiki mirror, and offline Help can share stable real-UI screenshots. ### Changed - **Animated GIF profile images**: custom profile avatars now accept GIF in addition to PNG/JPEG/WebP. The existing 2 MiB profile-image limit is unchanged; GIF bytes are preserved so animation remains intact in browser profile/avatar rendering. - **Release version and config schema version are separate**: generated/current config shows `release-version: "5.3.3"` for the running KWC product release while `config-version: "5.3.0"` remains the configuration-schema/migration marker. `release-version` is informational and automatically synchronized by KWC; it is excluded from operator-value migration comparisons. - **Pin/unpin confirmation**: pinning or unpinning a public-chat or Group message asks for confirmation before the server mutation is sent. Canceling leaves the pinned state unchanged; pin-order controls remain immediate. - **Filter settings Save placement**: the Filter panel uses the shared admin-modal header Save action, matching the Settings panel. Word-list and custom-rule editor Save buttons remain local to their editors. - **Original upload filenames**: `upload.filename-mode: original` continues to preserve sanitized Unicode names, while whitespace runs are normalized to `-` so stored URLs/path components do not contain literal spaces. Existing `-` and `_` separators are retained. - **Forge 26.3 exact target**: Forge 26.3 is now an active release target pinned to Forge `66.0.3` with Java 25 and the existing `compat26` source layer. The deployable release matrix is now 48 artifacts. ### Fixed - **Mobile JPEG photo orientation after metadata stripping**: normal image uploads and custom profile images now preserve only the non-sensitive EXIF Orientation value (2–8), rewritten into a minimal sanitized EXIF block when required. GPS, camera/device, author, IPTC, comment, and other EXIF metadata remain removed, while the JPEG pixel payload is left byte-for-byte compressed rather than re-encoded. Portrait photos taken on phones therefore no longer turn sideways after upload. - **Localization/changelog consistency**: the root changelog is now English-only, and a duplicated `web.receipt.read` entry was removed from all four bundled language files so each locale has one unambiguous value for that key. - **UUID-wide personal blocking and long-list scrolling**: personal blocks that were previously stored separately as `remote~server~UUID` are now canonicalized to the underlying Minecraft UUID. Existing server-scoped block data is collapsed and de-duplicated when read, so one block applies to the same account across Relay servers. The blocked-user manager shows one row per account and scrolls internally instead of growing beyond the viewport. - **Game-side personal blocking**: account-based personal blocks now also apply to Public chat delivered by KWC to game clients. On Bukkit/Paper, blocked senders are removed from native player-chat recipient sets as well, aligning Web and in-game results. Relay routing still keeps server-scoped remote identities where routing requires them, while personal-block comparisons use the canonical Minecraft UUID. - **Saved-conversation viewer/PDF responsiveness**: saved conversation viewers no longer build the entire archive synchronously on the UI thread. Reply targets are indexed once, viewer messages render in small batches so Close remains responsive on large snapshots, viewer images use lazy loading, and PDF export renders from the complete saved snapshot instead of cloning only the currently rendered viewer DOM. - **Forge build-cache recovery**: Windows Forge builds now validate ForgeGradle/Mavenizer cached JARs after a failed target build. Truncated/corrupt cache JARs are removed and the same target is retried once, covering interrupted downloads/reboots such as `zip END header not found` without clearing the entire Gradle cache. - **YouTube virtual-scroll autoplay**: `preview.youtube-autoplay-on-open` now applies only when the user explicitly opens a YouTube preview. If an already-open/remembered preview is destroyed by virtual scrolling and later recreated, the iframe is restored with autoplay disabled so a paused video does not start again merely because it re-entered the viewport. - **Visible-target notification acknowledgement**: Public, DM, and Group exact-message notifications are acknowledged as soon as the target message is actually visible. Canonical inbox synchronization, post-render retries, foreground/focus changes, mobile `visualViewport` resize/scroll, window resize, and orientation changes all re-run the same guarded visibility sweep. With remove-after-view enabled the matching row is removed; otherwise it becomes Read. - **Public reply/keyword/reaction attention targeting**: public-chat notifications now explicitly identify Public chat as their target, preventing an already-viewed public message from lingering unread because of an ambiguous target. - **Deleted-message notification inbox lifecycle**: globally deleting a public, DM, or Group message removes notification-inbox rows that target that exact message, whether unread or already Read. Cross-server DM deletion and `/kchat dm delete` apply the same cleanup using the receiver-local DM message ID. Persisted stale rows are pruned and delayed writes are revalidated so deleted targets cannot be resurrected by a race. - **Notification settings wording**: signed-in notification categories and keyword lists are correctly described as account-wide. Browser Notification permission/enablement and Web Push subscription are browser/device specific and must be enabled on each PC browser or mobile device that should receive alerts. - **Desktop private-window presentation**: touch-capable Windows/ChromeOS/Linux desktops are no longer mistaken for mobile solely because `maxTouchPoints > 1`. Desktop Standalone DM/Group multi-window, dragging, and desktop typography remain on the desktop presentation path. DM/Group sender names and message bodies use the same base chat font-size token as public chat, while timestamp/status metadata sizing is unchanged. - **Game/Web online user count**: the signed-in user counter uses the UUID-deduplicated union of Game and Web presence. A user connected from both counts once; Game-only and Web-only users are both included, while the existing Offline privacy rule still excludes hidden accounts. - **Upload retention lifecycle**: `upload.retention-days` is now an actual age limit rather than being extended indefinitely by ordinary Public/DM/Group message references. With `pinned.preserve-uploads: true`, attachments referenced by public or Group pinned-message snapshots remain protected. Upload and external-media cache retention cleanup also runs periodically on long-lived servers. - **Group-pin upload preservation**: Group pinned-message snapshots participate in the same upload/external-cache preservation set as public pins, including after the source Group message is deleted or aged out. - **Resume-refresh skip policy**: `ui.resume-refresh.skip-unchanged` is exposed to browser config and now actually controls whether focus/resume history refreshes can short-circuit unchanged history. - **Windows release-build progress/bootstrap**: the 48-target matrix progress counters use Fabric 17 / NeoForge 13 / Forge 17 totals. Gradle/JDK bootstrap downloads show progress and use bounded timeouts so a stalled dependency bootstrap no longer looks indefinitely frozen. - **Cross-loader product version reporting**: Fabric, NeoForge, and Forge runtime/mod status paths use the shared 5.3.3 product version instead of stale hard-coded 5.3.1 strings. Legacy BMWC conversion also writes the configuration schema migration marker instead of deriving it from the product patch version. ### Compatibility - Bukkit/Paper/Spigot: Minecraft 1.18–26.3 - Fabric: 17 exact targets, Minecraft 1.18.2–26.3 - NeoForge: 13 exact targets, Minecraft 1.20.2–26.3 - Forge: 17 exact targets, Minecraft 1.18.2–26.3; Minecraft 26.3 is pinned to Forge 66.0.3. - Deployable release matrix: **48 artifacts**. - Relay Protocol remains **2.2**. - Configuration schema/reference remains **5.3.0**. `release-version` is a managed informational marker and does not create a new operator setting or schema generation.
release

KOKOTO WebChat 5.3.3

5.3.3
4 окт. 2026 г.116Minecraft: 1.18.2, 1.19.2, 1.19.4, 1.20.1, 1.20.2, 1.20.4, 1.20.6, 1.21.1, 1.21.3, 1.21.4, 1.21.5, 1.21.8, 1.21.10, 1.21.11, 26.1.2, 26.2, 26.3fabric
Скачать
Что нового
## 5.3.3 5.3.3 is compared directly with the finalized 5.3.2 maintenance baseline. It keeps configuration schema **5.3.0** and Relay Protocol **2.2**. The release focuses on notification correctness, local/offline Help, upload-retention semantics, private-window presentation fixes, version/reporting consistency, and Forge 26.3 activation. ### Added - **Offline/local Help with custom translation packs**: the Web account **Help** button opens documentation served by the same KWC HTTP server. English, Korean, Japanese, and Simplified Chinese docs are bundled, unsupported UI locales fall back to English, and administrators may install `plugins/KOKOTO-WebChat/docs/<locale>/` Markdown translations without having them overwritten. Local Help renders Markdown as safe styled HTML with headings, lists, tables, code blocks, local navigation, and explicit online Docs/Wiki links. - **Local Help image support for real manual screenshots**: bundled Markdown may reference KWC-owned PNG/SVG/WebP images under `docs/assets/ui/`; offline Help serves the synchronized copy through same-origin `/help/assets/`. Remote Markdown images and path traversal remain blocked. The source tree includes an authoring guide so the Korean manual, translated Docs, Wiki mirror, and offline Help can share stable real-UI screenshots. ### Changed - **Animated GIF profile images**: custom profile avatars now accept GIF in addition to PNG/JPEG/WebP. The existing 2 MiB profile-image limit is unchanged; GIF bytes are preserved so animation remains intact in browser profile/avatar rendering. - **Release version and config schema version are separate**: generated/current config shows `release-version: "5.3.3"` for the running KWC product release while `config-version: "5.3.0"` remains the configuration-schema/migration marker. `release-version` is informational and automatically synchronized by KWC; it is excluded from operator-value migration comparisons. - **Pin/unpin confirmation**: pinning or unpinning a public-chat or Group message asks for confirmation before the server mutation is sent. Canceling leaves the pinned state unchanged; pin-order controls remain immediate. - **Filter settings Save placement**: the Filter panel uses the shared admin-modal header Save action, matching the Settings panel. Word-list and custom-rule editor Save buttons remain local to their editors. - **Original upload filenames**: `upload.filename-mode: original` continues to preserve sanitized Unicode names, while whitespace runs are normalized to `-` so stored URLs/path components do not contain literal spaces. Existing `-` and `_` separators are retained. - **Forge 26.3 exact target**: Forge 26.3 is now an active release target pinned to Forge `66.0.3` with Java 25 and the existing `compat26` source layer. The deployable release matrix is now 48 artifacts. ### Fixed - **Mobile JPEG photo orientation after metadata stripping**: normal image uploads and custom profile images now preserve only the non-sensitive EXIF Orientation value (2–8), rewritten into a minimal sanitized EXIF block when required. GPS, camera/device, author, IPTC, comment, and other EXIF metadata remain removed, while the JPEG pixel payload is left byte-for-byte compressed rather than re-encoded. Portrait photos taken on phones therefore no longer turn sideways after upload. - **Localization/changelog consistency**: the root changelog is now English-only, and a duplicated `web.receipt.read` entry was removed from all four bundled language files so each locale has one unambiguous value for that key. - **UUID-wide personal blocking and long-list scrolling**: personal blocks that were previously stored separately as `remote~server~UUID` are now canonicalized to the underlying Minecraft UUID. Existing server-scoped block data is collapsed and de-duplicated when read, so one block applies to the same account across Relay servers. The blocked-user manager shows one row per account and scrolls internally instead of growing beyond the viewport. - **Game-side personal blocking**: account-based personal blocks now also apply to Public chat delivered by KWC to game clients. On Bukkit/Paper, blocked senders are removed from native player-chat recipient sets as well, aligning Web and in-game results. Relay routing still keeps server-scoped remote identities where routing requires them, while personal-block comparisons use the canonical Minecraft UUID. - **Saved-conversation viewer/PDF responsiveness**: saved conversation viewers no longer build the entire archive synchronously on the UI thread. Reply targets are indexed once, viewer messages render in small batches so Close remains responsive on large snapshots, viewer images use lazy loading, and PDF export renders from the complete saved snapshot instead of cloning only the currently rendered viewer DOM. - **Forge build-cache recovery**: Windows Forge builds now validate ForgeGradle/Mavenizer cached JARs after a failed target build. Truncated/corrupt cache JARs are removed and the same target is retried once, covering interrupted downloads/reboots such as `zip END header not found` without clearing the entire Gradle cache. - **YouTube virtual-scroll autoplay**: `preview.youtube-autoplay-on-open` now applies only when the user explicitly opens a YouTube preview. If an already-open/remembered preview is destroyed by virtual scrolling and later recreated, the iframe is restored with autoplay disabled so a paused video does not start again merely because it re-entered the viewport. - **Visible-target notification acknowledgement**: Public, DM, and Group exact-message notifications are acknowledged as soon as the target message is actually visible. Canonical inbox synchronization, post-render retries, foreground/focus changes, mobile `visualViewport` resize/scroll, window resize, and orientation changes all re-run the same guarded visibility sweep. With remove-after-view enabled the matching row is removed; otherwise it becomes Read. - **Public reply/keyword/reaction attention targeting**: public-chat notifications now explicitly identify Public chat as their target, preventing an already-viewed public message from lingering unread because of an ambiguous target. - **Deleted-message notification inbox lifecycle**: globally deleting a public, DM, or Group message removes notification-inbox rows that target that exact message, whether unread or already Read. Cross-server DM deletion and `/kchat dm delete` apply the same cleanup using the receiver-local DM message ID. Persisted stale rows are pruned and delayed writes are revalidated so deleted targets cannot be resurrected by a race. - **Notification settings wording**: signed-in notification categories and keyword lists are correctly described as account-wide. Browser Notification permission/enablement and Web Push subscription are browser/device specific and must be enabled on each PC browser or mobile device that should receive alerts. - **Desktop private-window presentation**: touch-capable Windows/ChromeOS/Linux desktops are no longer mistaken for mobile solely because `maxTouchPoints > 1`. Desktop Standalone DM/Group multi-window, dragging, and desktop typography remain on the desktop presentation path. DM/Group sender names and message bodies use the same base chat font-size token as public chat, while timestamp/status metadata sizing is unchanged. - **Game/Web online user count**: the signed-in user counter uses the UUID-deduplicated union of Game and Web presence. A user connected from both counts once; Game-only and Web-only users are both included, while the existing Offline privacy rule still excludes hidden accounts. - **Upload retention lifecycle**: `upload.retention-days` is now an actual age limit rather than being extended indefinitely by ordinary Public/DM/Group message references. With `pinned.preserve-uploads: true`, attachments referenced by public or Group pinned-message snapshots remain protected. Upload and external-media cache retention cleanup also runs periodically on long-lived servers. - **Group-pin upload preservation**: Group pinned-message snapshots participate in the same upload/external-cache preservation set as public pins, including after the source Group message is deleted or aged out. - **Resume-refresh skip policy**: `ui.resume-refresh.skip-unchanged` is exposed to browser config and now actually controls whether focus/resume history refreshes can short-circuit unchanged history. - **Windows release-build progress/bootstrap**: the 48-target matrix progress counters use Fabric 17 / NeoForge 13 / Forge 17 totals. Gradle/JDK bootstrap downloads show progress and use bounded timeouts so a stalled dependency bootstrap no longer looks indefinitely frozen. - **Cross-loader product version reporting**: Fabric, NeoForge, and Forge runtime/mod status paths use the shared 5.3.3 product version instead of stale hard-coded 5.3.1 strings. Legacy BMWC conversion also writes the configuration schema migration marker instead of deriving it from the product patch version. ### Compatibility - Bukkit/Paper/Spigot: Minecraft 1.18–26.3 - Fabric: 17 exact targets, Minecraft 1.18.2–26.3 - NeoForge: 13 exact targets, Minecraft 1.20.2–26.3 - Forge: 17 exact targets, Minecraft 1.18.2–26.3; Minecraft 26.3 is pinned to Forge 66.0.3. - Deployable release matrix: **48 artifacts**. - Relay Protocol remains **2.2**. - Configuration schema/reference remains **5.3.0**. `release-version` is a managed informational marker and does not create a new operator setting or schema generation.
release

KOKOTO WebChat 5.3.3

5.3.3
4 окт. 2026 г.50Minecraft: 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2, 26.3bukkit, paper, purpur, spigot
Скачать
Что нового
## 5.3.3 5.3.3 is compared directly with the finalized 5.3.2 maintenance baseline. It keeps configuration schema **5.3.0** and Relay Protocol **2.2**. The release focuses on notification correctness, local/offline Help, upload-retention semantics, private-window presentation fixes, version/reporting consistency, and Forge 26.3 activation. ### Added - **Offline/local Help with custom translation packs**: the Web account **Help** button opens documentation served by the same KWC HTTP server. English, Korean, Japanese, and Simplified Chinese docs are bundled, unsupported UI locales fall back to English, and administrators may install `plugins/KOKOTO-WebChat/docs/<locale>/` Markdown translations without having them overwritten. Local Help renders Markdown as safe styled HTML with headings, lists, tables, code blocks, local navigation, and explicit online Docs/Wiki links. - **Local Help image support for real manual screenshots**: bundled Markdown may reference KWC-owned PNG/SVG/WebP images under `docs/assets/ui/`; offline Help serves the synchronized copy through same-origin `/help/assets/`. Remote Markdown images and path traversal remain blocked. The source tree includes an authoring guide so the Korean manual, translated Docs, Wiki mirror, and offline Help can share stable real-UI screenshots. ### Changed - **Animated GIF profile images**: custom profile avatars now accept GIF in addition to PNG/JPEG/WebP. The existing 2 MiB profile-image limit is unchanged; GIF bytes are preserved so animation remains intact in browser profile/avatar rendering. - **Release version and config schema version are separate**: generated/current config shows `release-version: "5.3.3"` for the running KWC product release while `config-version: "5.3.0"` remains the configuration-schema/migration marker. `release-version` is informational and automatically synchronized by KWC; it is excluded from operator-value migration comparisons. - **Pin/unpin confirmation**: pinning or unpinning a public-chat or Group message asks for confirmation before the server mutation is sent. Canceling leaves the pinned state unchanged; pin-order controls remain immediate. - **Filter settings Save placement**: the Filter panel uses the shared admin-modal header Save action, matching the Settings panel. Word-list and custom-rule editor Save buttons remain local to their editors. - **Original upload filenames**: `upload.filename-mode: original` continues to preserve sanitized Unicode names, while whitespace runs are normalized to `-` so stored URLs/path components do not contain literal spaces. Existing `-` and `_` separators are retained. - **Forge 26.3 exact target**: Forge 26.3 is now an active release target pinned to Forge `66.0.3` with Java 25 and the existing `compat26` source layer. The deployable release matrix is now 48 artifacts. ### Fixed - **Mobile JPEG photo orientation after metadata stripping**: normal image uploads and custom profile images now preserve only the non-sensitive EXIF Orientation value (2–8), rewritten into a minimal sanitized EXIF block when required. GPS, camera/device, author, IPTC, comment, and other EXIF metadata remain removed, while the JPEG pixel payload is left byte-for-byte compressed rather than re-encoded. Portrait photos taken on phones therefore no longer turn sideways after upload. - **Localization/changelog consistency**: the root changelog is now English-only, and a duplicated `web.receipt.read` entry was removed from all four bundled language files so each locale has one unambiguous value for that key. - **UUID-wide personal blocking and long-list scrolling**: personal blocks that were previously stored separately as `remote~server~UUID` are now canonicalized to the underlying Minecraft UUID. Existing server-scoped block data is collapsed and de-duplicated when read, so one block applies to the same account across Relay servers. The blocked-user manager shows one row per account and scrolls internally instead of growing beyond the viewport. - **Game-side personal blocking**: account-based personal blocks now also apply to Public chat delivered by KWC to game clients. On Bukkit/Paper, blocked senders are removed from native player-chat recipient sets as well, aligning Web and in-game results. Relay routing still keeps server-scoped remote identities where routing requires them, while personal-block comparisons use the canonical Minecraft UUID. - **Saved-conversation viewer/PDF responsiveness**: saved conversation viewers no longer build the entire archive synchronously on the UI thread. Reply targets are indexed once, viewer messages render in small batches so Close remains responsive on large snapshots, viewer images use lazy loading, and PDF export renders from the complete saved snapshot instead of cloning only the currently rendered viewer DOM. - **Forge build-cache recovery**: Windows Forge builds now validate ForgeGradle/Mavenizer cached JARs after a failed target build. Truncated/corrupt cache JARs are removed and the same target is retried once, covering interrupted downloads/reboots such as `zip END header not found` without clearing the entire Gradle cache. - **YouTube virtual-scroll autoplay**: `preview.youtube-autoplay-on-open` now applies only when the user explicitly opens a YouTube preview. If an already-open/remembered preview is destroyed by virtual scrolling and later recreated, the iframe is restored with autoplay disabled so a paused video does not start again merely because it re-entered the viewport. - **Visible-target notification acknowledgement**: Public, DM, and Group exact-message notifications are acknowledged as soon as the target message is actually visible. Canonical inbox synchronization, post-render retries, foreground/focus changes, mobile `visualViewport` resize/scroll, window resize, and orientation changes all re-run the same guarded visibility sweep. With remove-after-view enabled the matching row is removed; otherwise it becomes Read. - **Public reply/keyword/reaction attention targeting**: public-chat notifications now explicitly identify Public chat as their target, preventing an already-viewed public message from lingering unread because of an ambiguous target. - **Deleted-message notification inbox lifecycle**: globally deleting a public, DM, or Group message removes notification-inbox rows that target that exact message, whether unread or already Read. Cross-server DM deletion and `/kchat dm delete` apply the same cleanup using the receiver-local DM message ID. Persisted stale rows are pruned and delayed writes are revalidated so deleted targets cannot be resurrected by a race. - **Notification settings wording**: signed-in notification categories and keyword lists are correctly described as account-wide. Browser Notification permission/enablement and Web Push subscription are browser/device specific and must be enabled on each PC browser or mobile device that should receive alerts. - **Desktop private-window presentation**: touch-capable Windows/ChromeOS/Linux desktops are no longer mistaken for mobile solely because `maxTouchPoints > 1`. Desktop Standalone DM/Group multi-window, dragging, and desktop typography remain on the desktop presentation path. DM/Group sender names and message bodies use the same base chat font-size token as public chat, while timestamp/status metadata sizing is unchanged. - **Game/Web online user count**: the signed-in user counter uses the UUID-deduplicated union of Game and Web presence. A user connected from both counts once; Game-only and Web-only users are both included, while the existing Offline privacy rule still excludes hidden accounts. - **Upload retention lifecycle**: `upload.retention-days` is now an actual age limit rather than being extended indefinitely by ordinary Public/DM/Group message references. With `pinned.preserve-uploads: true`, attachments referenced by public or Group pinned-message snapshots remain protected. Upload and external-media cache retention cleanup also runs periodically on long-lived servers. - **Group-pin upload preservation**: Group pinned-message snapshots participate in the same upload/external-cache preservation set as public pins, including after the source Group message is deleted or aged out. - **Resume-refresh skip policy**: `ui.resume-refresh.skip-unchanged` is exposed to browser config and now actually controls whether focus/resume history refreshes can short-circuit unchanged history. - **Windows release-build progress/bootstrap**: the 48-target matrix progress counters use Fabric 17 / NeoForge 13 / Forge 17 totals. Gradle/JDK bootstrap downloads show progress and use bounded timeouts so a stalled dependency bootstrap no longer looks indefinitely frozen. - **Cross-loader product version reporting**: Fabric, NeoForge, and Forge runtime/mod status paths use the shared 5.3.3 product version instead of stale hard-coded 5.3.1 strings. Legacy BMWC conversion also writes the configuration schema migration marker instead of deriving it from the product patch version. ### Compatibility - Bukkit/Paper/Spigot: Minecraft 1.18–26.3 - Fabric: 17 exact targets, Minecraft 1.18.2–26.3 - NeoForge: 13 exact targets, Minecraft 1.20.2–26.3 - Forge: 17 exact targets, Minecraft 1.18.2–26.3; Minecraft 26.3 is pinned to Forge 66.0.3. - Deployable release matrix: **48 artifacts**. - Relay Protocol remains **2.2**. - Configuration schema/reference remains **5.3.0**. `release-version` is a managed informational marker and does not create a new operator setting or schema generation.
release

KOKOTO WebChat 5.3.2

5.3.2
16 сент. 2026 г.38Minecraft: 1.20.2, 1.20.4, 1.20.6, 1.21.1, 1.21.3, 1.21.4, 1.21.5, 1.21.8, 1.21.10, 1.21.11, 26.1.2, 26.2, 26.3neoforge
Скачать
Что нового
## 5.3.2 5.3.2 is compared directly with the 5.3.1 release baseline. It keeps the 5.3.0 configuration schema and Relay Protocol 2.2 while refining Poll/Recruitment Events, mobile file handling, minimized/mobile window behavior, personal blocking, and emoji-favorites stability. ### Added - **Feature-first multilingual documentation and in-product help**: the English Wiki and `docs/en`, `docs/ko`, `docs/ja`, and `docs/zh-CN` now share a feature-first navigation model. Each feature guide starts with normal use, then configuration/operation, then implementation notes. The Web account panel adds a localized **Help** button beside **Profile** that opens the current UI language documentation. Game commands `/kchat docs [en|ko|ja|zh]` and `/kchat wiki [en|ko|ja|zh]` expose the same entry points; `/kchat wiki` defaults to the English Wiki while explicit non-English languages use the localized docs mirror. - **Poll multi-select mode**: Poll creation can choose single-select or multi-select voting. Multi-select Polls may optionally limit the number of choices per voter; `0` means unlimited. Choices are de-duplicated per voter, response-count automatic end continues to count unique voters, persisted selections survive restart, and existing 5.3.1 single-choice Poll data remains readable. - **Participant/vote cancellation**: Lottery participants may withdraw while registration is still open/ready, First-come participants may withdraw only while the event is still open before capacity auto-completes it, and Poll creation now has a default-ON **Allow vote cancellation** policy. An allowed Poll voter may fully withdraw the current single/multi selection before close and vote again later; counts and unique-voter auto-end state are updated immediately. Web, Minecraft (`/kchat game leave` / `/kchat game unvote`), API, persistence, and Relay action handling use the same lifecycle rules. ### Changed - **Recruitment application and confirmation policies**: multiple-role application is disabled by default, preserving the 5.3.1 one-active-role behavior; applying to another role changes the existing application. Operators may allow applications to several different roles while duplicate application to the same role remains blocked. When multi-role application is enabled, Recruitment can use either **single confirmation** (one confirmed role per user) or **multiple confirmation** (several confirmed roles per user). Role-specific withdrawal and waiting-queue rebalance preserve the user's other applications. - **Private-chat cleanup preview removed**: the unreliable DM/Group cleanup-preview counters and preview workflow are removed. Retention periods, locks, actual cleanup, and automatic-delete exclusion remain available. ### Fixed - **Mobile multi-file upload omissions**: on Android/iOS, public-chat, DM, Group, and administrator-emoji multi-file selections are materialized into stable browser `File` snapshots immediately after the picker returns and before sequential upload begins. Later provider/content-URI-backed files no longer silently disappear while an earlier file is uploading; per-file read/upload failures remain visible. - **Minimized-window movement, restore position, and scroll stability**: minimized public chat keeps resize hit targets disabled so the `+` restore control remains clickable, while the minimized window itself is draggable. Minimized drag coordinates are transient and never overwrite the normal saved window position; restoring returns to the pre-minimize normal coordinates. Public-chat scroll state is anchored across minimize/restore so repeated collapsing no longer walks visible history upward. - **Mobile virtual-keyboard viewport and scroll-anchor handling**: public chat keeps its cross-browser visible-viewport guard across `VisualViewport`, `innerHeight`/`innerWidth`, and the document viewport, including exact embedded-frame restoration after editing. On smartphones/tablets, single-pane DM and Group overlays share the public `.kwc-panel`, and keyboard focus now captures the active public/DM/Group conversation anchor as one keyboard session. If that conversation was already at the newest messages, every keyboard viewport step keeps the message box/composer following the bottom and restores the bottom state when the keyboard closes; if the reader was browsing older history, the existing message anchor and on-screen offset are preserved instead of forcing a jump to latest. Temporary keyboard-driven scroll changes are not persisted as the normal conversation position. Mobile devices never enter desktop private multi-window solely because of a large screen. - **Mobile Jump-to-latest keyboard follow state**: public, DM, and Group chat now rebase the active keyboard-session anchor when the user manually scrolls while the composer remains focused. Using **Jump to latest** may intentionally adopt the bottom as the new keyboard baseline, but scrolling upward afterward immediately cancels that sticky follow state, so later focus/viewport synchronization cannot drag the reader back to the newest message. Jump-to-latest buttons are also re-evaluated after the settled mobile layout so they disappear once the actual latest position is reached. - **Event creation option alignment**: Poll multi-select/cancellation controls keep a compact left-aligned option layout. In Automatic end, each condition label stays on the left while its associated value control uses the remaining row space: the response-count field keeps its compact existing width at the right edge, and the date/time field is shortened to fit its native value instead of leaving an oversized control. Labels are vertically centered with their inputs, and the rows still wrap naturally at genuinely narrow mobile/PiP widths. - **DM/Group history navigation parity**: private conversations now expose the same localized **Jump to latest** affordance used by public chat when the reader moves away from the newest messages. A search jump that opens an older retained-history slice records that newer messages are outside the current slice, so **Jump to latest** reloads the current latest page before returning to the bottom. DM/Group top and bottom history limits continue to use the shared localized `history.end` feedback in both single-pane and desktop Standalone child-window presentations. - **Blocked-user names, Relay identity, typing, and history layout**: personal-block management strips Minecraft legacy/hex formatting from displayed names, and relayed users now use the same server-scoped `remote~server~UUID` identity for profile block state, live public-chat delivery, retained history filtering, and Web Push suppression. Blocked users no longer appear in public, DM, or Group typing indicators, already-visible typing state is purged immediately, and blocked public messages contribute zero virtual-scroll height. Block/unblock transitions preserve a visible non-blocked anchor and keep hidden rows out of height/viewport measurement so unblocking no longer corrupts the visible history layout. - **Account-wide notification inbox and notification throttling**: signed-in users share notification-inbox contents, unread/read state, clear operations, badge count, and inbox lifecycle preference across PC and mobile browsers for the same KWC account. Opening the inbox or merely opening a DM/Group room does not consume that room's stored alerts. Public, DM, and Group notifications are acknowledged only when the exact target message is actually visible; unread and read rows are visually distinguished. By default, **Remove inbox notification after viewing its message** is enabled, so viewing the target removes only that notification from the inbox. Its checkbox is placed at the bottom of the notification inbox itself, immediately above the bulk actions, rather than in general Chat settings; users may disable it there to retain the row as **Read** instead. **Mark all read** remains an explicit non-destructive bulk action, while **Clear notifications** removes the complete inbox. Ordinary public-chat external notifications now use account-wide idle gating: after the public chat has not actually been viewed for the selected 15/30/60/120-minute interval (default 30), only the first ordinary message emits browser/Web Push attention until public chat is viewed again. Ordinary Group external notifications use a per-room burst gate: the first three unseen messages may emit browser/Web Push attention, while later messages continue to accumulate as unread inbox items without ringing until that room is actually viewed. Group/public keyword alerts, @mentions, and replies use their own category preferences and bypass these ordinary-message gates. - **Account emoji favorites refresh stability**: account-backed favorites are no longer cleared by ordinary config/SSE refreshes. A transient favorites preference read failure keeps the last successfully loaded set; logout and actual storage-mode changes remain intentional reset/reload boundaries. ### Compatibility - Bukkit/Paper/Spigot: Minecraft 1.18–26.3 - Fabric: 17 exact targets, Minecraft 1.18.2–26.3 - NeoForge: 13 exact targets, Minecraft 1.20.2–26.3 - Forge: 16 exact targets, Minecraft 1.18.2–26.2 - Deployable release matrix: **47 artifacts**. Fabric and NeoForge 26.3 are active exact targets; Forge 26.3 remains preparation-only and excluded pending an exact upstream Forge pin. - Relay wire compatibility remains protocol major 2; KWC 5.3.2 continues to use revision **2.2**. - Configuration schema/reference remains **5.3.0** because 5.3.2 adds no new operator configuration keys.
release

KOKOTO WebChat 5.3.2

5.3.2
16 сент. 2026 г.39Minecraft: 1.18.2, 1.19.2, 1.19.4, 1.20.1, 1.20.2, 1.20.4, 1.20.6, 1.21.1, 1.21.3, 1.21.4, 1.21.5, 1.21.8, 1.21.10, 1.21.11, 26.1.2, 26.2forge
Скачать
Что нового
## 5.3.2 5.3.2 is compared directly with the 5.3.1 release baseline. It keeps the 5.3.0 configuration schema and Relay Protocol 2.2 while refining Poll/Recruitment Events, mobile file handling, minimized/mobile window behavior, personal blocking, and emoji-favorites stability. ### Added - **Feature-first multilingual documentation and in-product help**: the English Wiki and `docs/en`, `docs/ko`, `docs/ja`, and `docs/zh-CN` now share a feature-first navigation model. Each feature guide starts with normal use, then configuration/operation, then implementation notes. The Web account panel adds a localized **Help** button beside **Profile** that opens the current UI language documentation. Game commands `/kchat docs [en|ko|ja|zh]` and `/kchat wiki [en|ko|ja|zh]` expose the same entry points; `/kchat wiki` defaults to the English Wiki while explicit non-English languages use the localized docs mirror. - **Poll multi-select mode**: Poll creation can choose single-select or multi-select voting. Multi-select Polls may optionally limit the number of choices per voter; `0` means unlimited. Choices are de-duplicated per voter, response-count automatic end continues to count unique voters, persisted selections survive restart, and existing 5.3.1 single-choice Poll data remains readable. - **Participant/vote cancellation**: Lottery participants may withdraw while registration is still open/ready, First-come participants may withdraw only while the event is still open before capacity auto-completes it, and Poll creation now has a default-ON **Allow vote cancellation** policy. An allowed Poll voter may fully withdraw the current single/multi selection before close and vote again later; counts and unique-voter auto-end state are updated immediately. Web, Minecraft (`/kchat game leave` / `/kchat game unvote`), API, persistence, and Relay action handling use the same lifecycle rules. ### Changed - **Recruitment application and confirmation policies**: multiple-role application is disabled by default, preserving the 5.3.1 one-active-role behavior; applying to another role changes the existing application. Operators may allow applications to several different roles while duplicate application to the same role remains blocked. When multi-role application is enabled, Recruitment can use either **single confirmation** (one confirmed role per user) or **multiple confirmation** (several confirmed roles per user). Role-specific withdrawal and waiting-queue rebalance preserve the user's other applications. - **Private-chat cleanup preview removed**: the unreliable DM/Group cleanup-preview counters and preview workflow are removed. Retention periods, locks, actual cleanup, and automatic-delete exclusion remain available. ### Fixed - **Mobile multi-file upload omissions**: on Android/iOS, public-chat, DM, Group, and administrator-emoji multi-file selections are materialized into stable browser `File` snapshots immediately after the picker returns and before sequential upload begins. Later provider/content-URI-backed files no longer silently disappear while an earlier file is uploading; per-file read/upload failures remain visible. - **Minimized-window movement, restore position, and scroll stability**: minimized public chat keeps resize hit targets disabled so the `+` restore control remains clickable, while the minimized window itself is draggable. Minimized drag coordinates are transient and never overwrite the normal saved window position; restoring returns to the pre-minimize normal coordinates. Public-chat scroll state is anchored across minimize/restore so repeated collapsing no longer walks visible history upward. - **Mobile virtual-keyboard viewport and scroll-anchor handling**: public chat keeps its cross-browser visible-viewport guard across `VisualViewport`, `innerHeight`/`innerWidth`, and the document viewport, including exact embedded-frame restoration after editing. On smartphones/tablets, single-pane DM and Group overlays share the public `.kwc-panel`, and keyboard focus now captures the active public/DM/Group conversation anchor as one keyboard session. If that conversation was already at the newest messages, every keyboard viewport step keeps the message box/composer following the bottom and restores the bottom state when the keyboard closes; if the reader was browsing older history, the existing message anchor and on-screen offset are preserved instead of forcing a jump to latest. Temporary keyboard-driven scroll changes are not persisted as the normal conversation position. Mobile devices never enter desktop private multi-window solely because of a large screen. - **Mobile Jump-to-latest keyboard follow state**: public, DM, and Group chat now rebase the active keyboard-session anchor when the user manually scrolls while the composer remains focused. Using **Jump to latest** may intentionally adopt the bottom as the new keyboard baseline, but scrolling upward afterward immediately cancels that sticky follow state, so later focus/viewport synchronization cannot drag the reader back to the newest message. Jump-to-latest buttons are also re-evaluated after the settled mobile layout so they disappear once the actual latest position is reached. - **Event creation option alignment**: Poll multi-select/cancellation controls keep a compact left-aligned option layout. In Automatic end, each condition label stays on the left while its associated value control uses the remaining row space: the response-count field keeps its compact existing width at the right edge, and the date/time field is shortened to fit its native value instead of leaving an oversized control. Labels are vertically centered with their inputs, and the rows still wrap naturally at genuinely narrow mobile/PiP widths. - **DM/Group history navigation parity**: private conversations now expose the same localized **Jump to latest** affordance used by public chat when the reader moves away from the newest messages. A search jump that opens an older retained-history slice records that newer messages are outside the current slice, so **Jump to latest** reloads the current latest page before returning to the bottom. DM/Group top and bottom history limits continue to use the shared localized `history.end` feedback in both single-pane and desktop Standalone child-window presentations. - **Blocked-user names, Relay identity, typing, and history layout**: personal-block management strips Minecraft legacy/hex formatting from displayed names, and relayed users now use the same server-scoped `remote~server~UUID` identity for profile block state, live public-chat delivery, retained history filtering, and Web Push suppression. Blocked users no longer appear in public, DM, or Group typing indicators, already-visible typing state is purged immediately, and blocked public messages contribute zero virtual-scroll height. Block/unblock transitions preserve a visible non-blocked anchor and keep hidden rows out of height/viewport measurement so unblocking no longer corrupts the visible history layout. - **Account-wide notification inbox and notification throttling**: signed-in users share notification-inbox contents, unread/read state, clear operations, badge count, and inbox lifecycle preference across PC and mobile browsers for the same KWC account. Opening the inbox or merely opening a DM/Group room does not consume that room's stored alerts. Public, DM, and Group notifications are acknowledged only when the exact target message is actually visible; unread and read rows are visually distinguished. By default, **Remove inbox notification after viewing its message** is enabled, so viewing the target removes only that notification from the inbox. Its checkbox is placed at the bottom of the notification inbox itself, immediately above the bulk actions, rather than in general Chat settings; users may disable it there to retain the row as **Read** instead. **Mark all read** remains an explicit non-destructive bulk action, while **Clear notifications** removes the complete inbox. Ordinary public-chat external notifications now use account-wide idle gating: after the public chat has not actually been viewed for the selected 15/30/60/120-minute interval (default 30), only the first ordinary message emits browser/Web Push attention until public chat is viewed again. Ordinary Group external notifications use a per-room burst gate: the first three unseen messages may emit browser/Web Push attention, while later messages continue to accumulate as unread inbox items without ringing until that room is actually viewed. Group/public keyword alerts, @mentions, and replies use their own category preferences and bypass these ordinary-message gates. - **Account emoji favorites refresh stability**: account-backed favorites are no longer cleared by ordinary config/SSE refreshes. A transient favorites preference read failure keeps the last successfully loaded set; logout and actual storage-mode changes remain intentional reset/reload boundaries. ### Compatibility - Bukkit/Paper/Spigot: Minecraft 1.18–26.3 - Fabric: 17 exact targets, Minecraft 1.18.2–26.3 - NeoForge: 13 exact targets, Minecraft 1.20.2–26.3 - Forge: 16 exact targets, Minecraft 1.18.2–26.2 - Deployable release matrix: **47 artifacts**. Fabric and NeoForge 26.3 are active exact targets; Forge 26.3 remains preparation-only and excluded pending an exact upstream Forge pin. - Relay wire compatibility remains protocol major 2; KWC 5.3.2 continues to use revision **2.2**. - Configuration schema/reference remains **5.3.0** because 5.3.2 adds no new operator configuration keys.
release

KOKOTO WebChat 5.3.2

5.3.2
16 сент. 2026 г.63Minecraft: 1.18.2, 1.19.2, 1.19.4, 1.20.1, 1.20.2, 1.20.4, 1.20.6, 1.21.1, 1.21.3, 1.21.4, 1.21.5, 1.21.8, 1.21.10, 1.21.11, 26.1.2, 26.2, 26.3fabric
Скачать
Что нового
## 5.3.2 5.3.2 is compared directly with the 5.3.1 release baseline. It keeps the 5.3.0 configuration schema and Relay Protocol 2.2 while refining Poll/Recruitment Events, mobile file handling, minimized/mobile window behavior, personal blocking, and emoji-favorites stability. ### Added - **Feature-first multilingual documentation and in-product help**: the English Wiki and `docs/en`, `docs/ko`, `docs/ja`, and `docs/zh-CN` now share a feature-first navigation model. Each feature guide starts with normal use, then configuration/operation, then implementation notes. The Web account panel adds a localized **Help** button beside **Profile** that opens the current UI language documentation. Game commands `/kchat docs [en|ko|ja|zh]` and `/kchat wiki [en|ko|ja|zh]` expose the same entry points; `/kchat wiki` defaults to the English Wiki while explicit non-English languages use the localized docs mirror. - **Poll multi-select mode**: Poll creation can choose single-select or multi-select voting. Multi-select Polls may optionally limit the number of choices per voter; `0` means unlimited. Choices are de-duplicated per voter, response-count automatic end continues to count unique voters, persisted selections survive restart, and existing 5.3.1 single-choice Poll data remains readable. - **Participant/vote cancellation**: Lottery participants may withdraw while registration is still open/ready, First-come participants may withdraw only while the event is still open before capacity auto-completes it, and Poll creation now has a default-ON **Allow vote cancellation** policy. An allowed Poll voter may fully withdraw the current single/multi selection before close and vote again later; counts and unique-voter auto-end state are updated immediately. Web, Minecraft (`/kchat game leave` / `/kchat game unvote`), API, persistence, and Relay action handling use the same lifecycle rules. ### Changed - **Recruitment application and confirmation policies**: multiple-role application is disabled by default, preserving the 5.3.1 one-active-role behavior; applying to another role changes the existing application. Operators may allow applications to several different roles while duplicate application to the same role remains blocked. When multi-role application is enabled, Recruitment can use either **single confirmation** (one confirmed role per user) or **multiple confirmation** (several confirmed roles per user). Role-specific withdrawal and waiting-queue rebalance preserve the user's other applications. - **Private-chat cleanup preview removed**: the unreliable DM/Group cleanup-preview counters and preview workflow are removed. Retention periods, locks, actual cleanup, and automatic-delete exclusion remain available. ### Fixed - **Mobile multi-file upload omissions**: on Android/iOS, public-chat, DM, Group, and administrator-emoji multi-file selections are materialized into stable browser `File` snapshots immediately after the picker returns and before sequential upload begins. Later provider/content-URI-backed files no longer silently disappear while an earlier file is uploading; per-file read/upload failures remain visible. - **Minimized-window movement, restore position, and scroll stability**: minimized public chat keeps resize hit targets disabled so the `+` restore control remains clickable, while the minimized window itself is draggable. Minimized drag coordinates are transient and never overwrite the normal saved window position; restoring returns to the pre-minimize normal coordinates. Public-chat scroll state is anchored across minimize/restore so repeated collapsing no longer walks visible history upward. - **Mobile virtual-keyboard viewport and scroll-anchor handling**: public chat keeps its cross-browser visible-viewport guard across `VisualViewport`, `innerHeight`/`innerWidth`, and the document viewport, including exact embedded-frame restoration after editing. On smartphones/tablets, single-pane DM and Group overlays share the public `.kwc-panel`, and keyboard focus now captures the active public/DM/Group conversation anchor as one keyboard session. If that conversation was already at the newest messages, every keyboard viewport step keeps the message box/composer following the bottom and restores the bottom state when the keyboard closes; if the reader was browsing older history, the existing message anchor and on-screen offset are preserved instead of forcing a jump to latest. Temporary keyboard-driven scroll changes are not persisted as the normal conversation position. Mobile devices never enter desktop private multi-window solely because of a large screen. - **Mobile Jump-to-latest keyboard follow state**: public, DM, and Group chat now rebase the active keyboard-session anchor when the user manually scrolls while the composer remains focused. Using **Jump to latest** may intentionally adopt the bottom as the new keyboard baseline, but scrolling upward afterward immediately cancels that sticky follow state, so later focus/viewport synchronization cannot drag the reader back to the newest message. Jump-to-latest buttons are also re-evaluated after the settled mobile layout so they disappear once the actual latest position is reached. - **Event creation option alignment**: Poll multi-select/cancellation controls keep a compact left-aligned option layout. In Automatic end, each condition label stays on the left while its associated value control uses the remaining row space: the response-count field keeps its compact existing width at the right edge, and the date/time field is shortened to fit its native value instead of leaving an oversized control. Labels are vertically centered with their inputs, and the rows still wrap naturally at genuinely narrow mobile/PiP widths. - **DM/Group history navigation parity**: private conversations now expose the same localized **Jump to latest** affordance used by public chat when the reader moves away from the newest messages. A search jump that opens an older retained-history slice records that newer messages are outside the current slice, so **Jump to latest** reloads the current latest page before returning to the bottom. DM/Group top and bottom history limits continue to use the shared localized `history.end` feedback in both single-pane and desktop Standalone child-window presentations. - **Blocked-user names, Relay identity, typing, and history layout**: personal-block management strips Minecraft legacy/hex formatting from displayed names, and relayed users now use the same server-scoped `remote~server~UUID` identity for profile block state, live public-chat delivery, retained history filtering, and Web Push suppression. Blocked users no longer appear in public, DM, or Group typing indicators, already-visible typing state is purged immediately, and blocked public messages contribute zero virtual-scroll height. Block/unblock transitions preserve a visible non-blocked anchor and keep hidden rows out of height/viewport measurement so unblocking no longer corrupts the visible history layout. - **Account-wide notification inbox and notification throttling**: signed-in users share notification-inbox contents, unread/read state, clear operations, badge count, and inbox lifecycle preference across PC and mobile browsers for the same KWC account. Opening the inbox or merely opening a DM/Group room does not consume that room's stored alerts. Public, DM, and Group notifications are acknowledged only when the exact target message is actually visible; unread and read rows are visually distinguished. By default, **Remove inbox notification after viewing its message** is enabled, so viewing the target removes only that notification from the inbox. Its checkbox is placed at the bottom of the notification inbox itself, immediately above the bulk actions, rather than in general Chat settings; users may disable it there to retain the row as **Read** instead. **Mark all read** remains an explicit non-destructive bulk action, while **Clear notifications** removes the complete inbox. Ordinary public-chat external notifications now use account-wide idle gating: after the public chat has not actually been viewed for the selected 15/30/60/120-minute interval (default 30), only the first ordinary message emits browser/Web Push attention until public chat is viewed again. Ordinary Group external notifications use a per-room burst gate: the first three unseen messages may emit browser/Web Push attention, while later messages continue to accumulate as unread inbox items without ringing until that room is actually viewed. Group/public keyword alerts, @mentions, and replies use their own category preferences and bypass these ordinary-message gates. - **Account emoji favorites refresh stability**: account-backed favorites are no longer cleared by ordinary config/SSE refreshes. A transient favorites preference read failure keeps the last successfully loaded set; logout and actual storage-mode changes remain intentional reset/reload boundaries. ### Compatibility - Bukkit/Paper/Spigot: Minecraft 1.18–26.3 - Fabric: 17 exact targets, Minecraft 1.18.2–26.3 - NeoForge: 13 exact targets, Minecraft 1.20.2–26.3 - Forge: 16 exact targets, Minecraft 1.18.2–26.2 - Deployable release matrix: **47 artifacts**. Fabric and NeoForge 26.3 are active exact targets; Forge 26.3 remains preparation-only and excluded pending an exact upstream Forge pin. - Relay wire compatibility remains protocol major 2; KWC 5.3.2 continues to use revision **2.2**. - Configuration schema/reference remains **5.3.0** because 5.3.2 adds no new operator configuration keys.
release

KOKOTO WebChat 5.3.2

5.3.2
16 сент. 2026 г.38Minecraft: 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2, 26.3bukkit, paper, purpur, spigot
Скачать
Что нового
## 5.3.2 5.3.2 is compared directly with the 5.3.1 release baseline. It keeps the 5.3.0 configuration schema and Relay Protocol 2.2 while refining Poll/Recruitment Events, mobile file handling, minimized/mobile window behavior, personal blocking, and emoji-favorites stability. ### Added - **Feature-first multilingual documentation and in-product help**: the English Wiki and `docs/en`, `docs/ko`, `docs/ja`, and `docs/zh-CN` now share a feature-first navigation model. Each feature guide starts with normal use, then configuration/operation, then implementation notes. The Web account panel adds a localized **Help** button beside **Profile** that opens the current UI language documentation. Game commands `/kchat docs [en|ko|ja|zh]` and `/kchat wiki [en|ko|ja|zh]` expose the same entry points; `/kchat wiki` defaults to the English Wiki while explicit non-English languages use the localized docs mirror. - **Poll multi-select mode**: Poll creation can choose single-select or multi-select voting. Multi-select Polls may optionally limit the number of choices per voter; `0` means unlimited. Choices are de-duplicated per voter, response-count automatic end continues to count unique voters, persisted selections survive restart, and existing 5.3.1 single-choice Poll data remains readable. - **Participant/vote cancellation**: Lottery participants may withdraw while registration is still open/ready, First-come participants may withdraw only while the event is still open before capacity auto-completes it, and Poll creation now has a default-ON **Allow vote cancellation** policy. An allowed Poll voter may fully withdraw the current single/multi selection before close and vote again later; counts and unique-voter auto-end state are updated immediately. Web, Minecraft (`/kchat game leave` / `/kchat game unvote`), API, persistence, and Relay action handling use the same lifecycle rules. ### Changed - **Recruitment application and confirmation policies**: multiple-role application is disabled by default, preserving the 5.3.1 one-active-role behavior; applying to another role changes the existing application. Operators may allow applications to several different roles while duplicate application to the same role remains blocked. When multi-role application is enabled, Recruitment can use either **single confirmation** (one confirmed role per user) or **multiple confirmation** (several confirmed roles per user). Role-specific withdrawal and waiting-queue rebalance preserve the user's other applications. - **Private-chat cleanup preview removed**: the unreliable DM/Group cleanup-preview counters and preview workflow are removed. Retention periods, locks, actual cleanup, and automatic-delete exclusion remain available. ### Fixed - **Mobile multi-file upload omissions**: on Android/iOS, public-chat, DM, Group, and administrator-emoji multi-file selections are materialized into stable browser `File` snapshots immediately after the picker returns and before sequential upload begins. Later provider/content-URI-backed files no longer silently disappear while an earlier file is uploading; per-file read/upload failures remain visible. - **Minimized-window movement, restore position, and scroll stability**: minimized public chat keeps resize hit targets disabled so the `+` restore control remains clickable, while the minimized window itself is draggable. Minimized drag coordinates are transient and never overwrite the normal saved window position; restoring returns to the pre-minimize normal coordinates. Public-chat scroll state is anchored across minimize/restore so repeated collapsing no longer walks visible history upward. - **Mobile virtual-keyboard viewport and scroll-anchor handling**: public chat keeps its cross-browser visible-viewport guard across `VisualViewport`, `innerHeight`/`innerWidth`, and the document viewport, including exact embedded-frame restoration after editing. On smartphones/tablets, single-pane DM and Group overlays share the public `.kwc-panel`, and keyboard focus now captures the active public/DM/Group conversation anchor as one keyboard session. If that conversation was already at the newest messages, every keyboard viewport step keeps the message box/composer following the bottom and restores the bottom state when the keyboard closes; if the reader was browsing older history, the existing message anchor and on-screen offset are preserved instead of forcing a jump to latest. Temporary keyboard-driven scroll changes are not persisted as the normal conversation position. Mobile devices never enter desktop private multi-window solely because of a large screen. - **Mobile Jump-to-latest keyboard follow state**: public, DM, and Group chat now rebase the active keyboard-session anchor when the user manually scrolls while the composer remains focused. Using **Jump to latest** may intentionally adopt the bottom as the new keyboard baseline, but scrolling upward afterward immediately cancels that sticky follow state, so later focus/viewport synchronization cannot drag the reader back to the newest message. Jump-to-latest buttons are also re-evaluated after the settled mobile layout so they disappear once the actual latest position is reached. - **Event creation option alignment**: Poll multi-select/cancellation controls keep a compact left-aligned option layout. In Automatic end, each condition label stays on the left while its associated value control uses the remaining row space: the response-count field keeps its compact existing width at the right edge, and the date/time field is shortened to fit its native value instead of leaving an oversized control. Labels are vertically centered with their inputs, and the rows still wrap naturally at genuinely narrow mobile/PiP widths. - **DM/Group history navigation parity**: private conversations now expose the same localized **Jump to latest** affordance used by public chat when the reader moves away from the newest messages. A search jump that opens an older retained-history slice records that newer messages are outside the current slice, so **Jump to latest** reloads the current latest page before returning to the bottom. DM/Group top and bottom history limits continue to use the shared localized `history.end` feedback in both single-pane and desktop Standalone child-window presentations. - **Blocked-user names, Relay identity, typing, and history layout**: personal-block management strips Minecraft legacy/hex formatting from displayed names, and relayed users now use the same server-scoped `remote~server~UUID` identity for profile block state, live public-chat delivery, retained history filtering, and Web Push suppression. Blocked users no longer appear in public, DM, or Group typing indicators, already-visible typing state is purged immediately, and blocked public messages contribute zero virtual-scroll height. Block/unblock transitions preserve a visible non-blocked anchor and keep hidden rows out of height/viewport measurement so unblocking no longer corrupts the visible history layout. - **Account-wide notification inbox and notification throttling**: signed-in users share notification-inbox contents, unread/read state, clear operations, badge count, and inbox lifecycle preference across PC and mobile browsers for the same KWC account. Opening the inbox or merely opening a DM/Group room does not consume that room's stored alerts. Public, DM, and Group notifications are acknowledged only when the exact target message is actually visible; unread and read rows are visually distinguished. By default, **Remove inbox notification after viewing its message** is enabled, so viewing the target removes only that notification from the inbox. Its checkbox is placed at the bottom of the notification inbox itself, immediately above the bulk actions, rather than in general Chat settings; users may disable it there to retain the row as **Read** instead. **Mark all read** remains an explicit non-destructive bulk action, while **Clear notifications** removes the complete inbox. Ordinary public-chat external notifications now use account-wide idle gating: after the public chat has not actually been viewed for the selected 15/30/60/120-minute interval (default 30), only the first ordinary message emits browser/Web Push attention until public chat is viewed again. Ordinary Group external notifications use a per-room burst gate: the first three unseen messages may emit browser/Web Push attention, while later messages continue to accumulate as unread inbox items without ringing until that room is actually viewed. Group/public keyword alerts, @mentions, and replies use their own category preferences and bypass these ordinary-message gates. - **Account emoji favorites refresh stability**: account-backed favorites are no longer cleared by ordinary config/SSE refreshes. A transient favorites preference read failure keeps the last successfully loaded set; logout and actual storage-mode changes remain intentional reset/reload boundaries. ### Compatibility - Bukkit/Paper/Spigot: Minecraft 1.18–26.3 - Fabric: 17 exact targets, Minecraft 1.18.2–26.3 - NeoForge: 13 exact targets, Minecraft 1.20.2–26.3 - Forge: 16 exact targets, Minecraft 1.18.2–26.2 - Deployable release matrix: **47 artifacts**. Fabric and NeoForge 26.3 are active exact targets; Forge 26.3 remains preparation-only and excluded pending an exact upstream Forge pin. - Relay wire compatibility remains protocol major 2; KWC 5.3.2 continues to use revision **2.2**. - Configuration schema/reference remains **5.3.0** because 5.3.2 adds no new operator configuration keys.
release

KOKOTO WebChat 5.3.1

5.3.1
12 сент. 2026 г.38Minecraft: 1.18.2, 1.19.2, 1.19.4, 1.20.1, 1.20.2, 1.20.4, 1.20.6, 1.21, 1.21.3, 1.21.4, 1.21.5, 1.21.8, 1.21.10, 1.21.11, 26.1.2, 26.2forge
Скачать
Что нового
## 5.3.1 ### Added - **Poll Chat Events**: added Poll as a first-class Chat Event type. One account may vote for one option and change its choice while the Poll remains open. Web and Minecraft `/kchat game` can both submit votes and inspect current counts, and relayed Poll responses are routed back to the event-origin server. - **Role-based Recruitment Chat Events**: added Recruitment with named roles, per-role accepted capacity, per-role waiting queues, role changes, withdrawal, and automatic promotion of the oldest waiter when an accepted slot opens. Web and Minecraft views expose accepted/capacity/waiting counts, the current user's state, and waiting position; relayed actions are routed to the origin server. - **Persisted Event automatic-end policies**: every event type may use an absolute end date/time. First come still always completes when its winner capacity fills; Lottery may optionally draw/finalize when participant capacity fills; Poll may finish after a configured number of unique voters respond; Recruitment may finish when every role's accepted capacity is filled, excluding waiting applicants. If multiple conditions are enabled, the first condition reached finalizes the event once. Policy, target time, completion time, and completion reason survive restart, and a server lifecycle check evaluates timed completion without requiring an open Web browser. - **Font Awesome Free Web UI icons**: replaced primary platform-dependent emoji/text control glyphs with a shared, locally bundled Font Awesome Free 6.7.2 SVG registry. Desktop/mobile add-ons, Standalone, and PiP use the same artwork without a CDN dependency. Required attribution and license notices are bundled with the source and JAR distribution. ### Changed - **Minecraft command completion is shared across platforms**: Bukkit/Paper/Spigot, Fabric, NeoForge, and Forge use the same Core completion service for `/kchat game` and other supported KWC command surfaces. Completion now covers Event actions and IDs, Poll option numbers, Recruitment roles, automatic-end controls, supported live-setting keys, filter actions/rule IDs, administrator/guest actions, and basic DM/group navigation where applicable. - **Event announcement scope is topology-aware**: when at least one enabled configured Relay peer permits `send.event`, new Event announcements default to Relay and may be changed to local-only. When no Event-capable peer is configured, the scope control/help/completion is hidden and the server normalizes the Event to local-only. Visibility follows configured topology rather than transient peer connectivity. - **Presentation parity is explicit**: desktop map add-ons + PiP, desktop Standalone + PiP, mobile map add-ons, and mobile Standalone consume the same canonical server config, account preferences, permissions, notification preferences, and Event state. Mode-specific branches are limited to presentation capabilities such as minimize availability, PiP transport ownership, and Standalone multi-window layout. Build validation now rejects generated JavaScript/CSS drift between wrappers. ### Fixed - **Event create-form type visibility**: fixed shared form CSS overriding HTML `hidden`, which could expose Recruitment role input in First come/Lottery and other type-specific controls in the wrong Event type. Poll options, Recruitment roles, participant/winner numeric fields, and Poll response-count automatic-end controls now appear only where they apply. - **Mobile add-on Administrator control**: fixed the Administrator/online-user header control not responding to taps in mobile map add-on mode. Interactive `button`, link, and `role="button"` controls are excluded from public-window drag capture so touch input reaches the control instead of starting a window drag. - **Detached DM/Group/Admin-audit icon sizing**: fixed Font Awesome normalization not reaching private/audit windows attached outside `#kwc-root`. Audit shields now use a compact badge size, search/delete icons remain inside their buttons, DM attachment artwork is restored, DM/Group emoji and attachment icons match public-chat sizing, and Group pin artwork is visible at the intended size. - **Standalone private-list re-open behavior**: pressing the DM or Group header button again now restores and raises the existing list window when it is minimized or hidden behind another KWC window instead of leaving it covered or creating a duplicate. Stale remembered-open state is cleared when it no longer matches the live DOM so the window can be recreated normally. - **Group-room creation window ownership**: in Standalone multi-window mode, creating a new group room now opens the creation form from the Group chats list/hub instead of attaching it to whichever group conversation child window is currently active. Room-local settings and management dialogs continue to stay with their owning conversation window. - **Bukkit command dispatch parity**: restored the documented `/kchat filter` and `/kchat settings` top-level dispatch paths and added the missing `game` surface to Bukkit command usage metadata.
release

KOKOTO WebChat 5.3.1

5.3.1
12 сент. 2026 г.31Minecraft: 1.20.2, 1.20.4, 1.20.6, 1.21.1, 1.21.3, 1.21.4, 1.21.5, 1.21.8, 1.21.10, 1.21.11, 26.1.2, 26.2neoforge
Скачать
Что нового
## 5.3.1 ### Added - **Poll Chat Events**: added Poll as a first-class Chat Event type. One account may vote for one option and change its choice while the Poll remains open. Web and Minecraft `/kchat game` can both submit votes and inspect current counts, and relayed Poll responses are routed back to the event-origin server. - **Role-based Recruitment Chat Events**: added Recruitment with named roles, per-role accepted capacity, per-role waiting queues, role changes, withdrawal, and automatic promotion of the oldest waiter when an accepted slot opens. Web and Minecraft views expose accepted/capacity/waiting counts, the current user's state, and waiting position; relayed actions are routed to the origin server. - **Persisted Event automatic-end policies**: every event type may use an absolute end date/time. First come still always completes when its winner capacity fills; Lottery may optionally draw/finalize when participant capacity fills; Poll may finish after a configured number of unique voters respond; Recruitment may finish when every role's accepted capacity is filled, excluding waiting applicants. If multiple conditions are enabled, the first condition reached finalizes the event once. Policy, target time, completion time, and completion reason survive restart, and a server lifecycle check evaluates timed completion without requiring an open Web browser. - **Font Awesome Free Web UI icons**: replaced primary platform-dependent emoji/text control glyphs with a shared, locally bundled Font Awesome Free 6.7.2 SVG registry. Desktop/mobile add-ons, Standalone, and PiP use the same artwork without a CDN dependency. Required attribution and license notices are bundled with the source and JAR distribution. ### Changed - **Minecraft command completion is shared across platforms**: Bukkit/Paper/Spigot, Fabric, NeoForge, and Forge use the same Core completion service for `/kchat game` and other supported KWC command surfaces. Completion now covers Event actions and IDs, Poll option numbers, Recruitment roles, automatic-end controls, supported live-setting keys, filter actions/rule IDs, administrator/guest actions, and basic DM/group navigation where applicable. - **Event announcement scope is topology-aware**: when at least one enabled configured Relay peer permits `send.event`, new Event announcements default to Relay and may be changed to local-only. When no Event-capable peer is configured, the scope control/help/completion is hidden and the server normalizes the Event to local-only. Visibility follows configured topology rather than transient peer connectivity. - **Presentation parity is explicit**: desktop map add-ons + PiP, desktop Standalone + PiP, mobile map add-ons, and mobile Standalone consume the same canonical server config, account preferences, permissions, notification preferences, and Event state. Mode-specific branches are limited to presentation capabilities such as minimize availability, PiP transport ownership, and Standalone multi-window layout. Build validation now rejects generated JavaScript/CSS drift between wrappers. ### Fixed - **Event create-form type visibility**: fixed shared form CSS overriding HTML `hidden`, which could expose Recruitment role input in First come/Lottery and other type-specific controls in the wrong Event type. Poll options, Recruitment roles, participant/winner numeric fields, and Poll response-count automatic-end controls now appear only where they apply. - **Mobile add-on Administrator control**: fixed the Administrator/online-user header control not responding to taps in mobile map add-on mode. Interactive `button`, link, and `role="button"` controls are excluded from public-window drag capture so touch input reaches the control instead of starting a window drag. - **Detached DM/Group/Admin-audit icon sizing**: fixed Font Awesome normalization not reaching private/audit windows attached outside `#kwc-root`. Audit shields now use a compact badge size, search/delete icons remain inside their buttons, DM attachment artwork is restored, DM/Group emoji and attachment icons match public-chat sizing, and Group pin artwork is visible at the intended size. - **Standalone private-list re-open behavior**: pressing the DM or Group header button again now restores and raises the existing list window when it is minimized or hidden behind another KWC window instead of leaving it covered or creating a duplicate. Stale remembered-open state is cleared when it no longer matches the live DOM so the window can be recreated normally. - **Group-room creation window ownership**: in Standalone multi-window mode, creating a new group room now opens the creation form from the Group chats list/hub instead of attaching it to whichever group conversation child window is currently active. Room-local settings and management dialogs continue to stay with their owning conversation window. - **Bukkit command dispatch parity**: restored the documented `/kchat filter` and `/kchat settings` top-level dispatch paths and added the missing `game` surface to Bukkit command usage metadata.