v1.3.8
Released: 1 October 2026
Commit: 052a575
Server
- Message size: Cap chat
contentat 32 KiB by default (MARCHAT_MAX_MESSAGE_BYTES, orMARCHAT_MAX_MESSAGE_MB). Oversizedtext,dm,edit,search, and command bodies get a System reply and stay connected; nothing is persisted or broadcast. Encrypted ciphertext uses the same byte cap. Plugin chat and command replies over the cap are dropped before broadcast. File uploads keep their own limit. Admin TUI, web admin, and-doctorshow the message cap.
Client
- Message size: Reject oversized composer, DM, code snippet, edit, and search bodies before send, including E2E wire
contentafter encryption. WebSocket close 1009 is reported as a message-too-big error.
Dependencies
- modernc.org/sqlite v1.59.0 (transitive modernc.org/libc v1.75.7; modernc.org/mathutil v1.7.1 and modernc.org/memory v1.12.1 unchanged); github.com/mattn/go-runewidth v0.0.30
Version and packaging
- Install and build defaults: install.ps1, install.sh, build-release.ps1,
scripts/build-windows.ps1, andscripts/build-linux.shtarget v1.3.8 release assets on GitHub. - Docs and metadata: SECURITY.md and README (version badge, install snippets, Docker tag) reference v1.3.8; canonical Homebrew, Scoop, winget, Chocolatey, and AUR templates in
packaging/target v1.3.8 (refresh zip SHA256 from published assets beforechoco pack/ manifest validation).
Assets
- marchat-v1.3.8-linux-amd64.zip
- marchat-v1.3.8-linux-arm64.zip
- marchat-v1.3.8-windows-amd64.zip
- marchat-v1.3.8-darwin-amd64.zip
- marchat-v1.3.8-darwin-arm64.zip
Full Changelog: v1.3.7...v1.3.8
Breaking changes
- WebSocket JSON protocol: No intentional breaking change; keystore and E2E wire encoding unchanged.
- Database: No schema migration.
- Message size: Chat
contentlonger than 32 KiB (default) is rejected. Previously those bodies were stored and broadcast. File uploads keep their own limit.
Migration guide
- Binaries: use v1.3.8 archives from this release page, or install.ps1 / install.sh with their default version.
- Client / server: restart after upgrade. No schema migration.
- Operators: the default chat cap is 32 KiB of UTF-8
content. Encrypted messages are measured as ciphertext, so the plaintext that fits is shorter (about 24,450 ASCII characters). Raise the cap withMARCHAT_MAX_MESSAGE_BYTESorMARCHAT_MAX_MESSAGE_MBwhen you need longer messages. - Packaging maintainers: run
packaging/ci/render-release-manifests.shafter zips publish to refresh SHA256 inpackaging/and downstream manifests.
Docker Image
A multi-architecture Docker image (linux/amd64, linux/arm64) is available on Docker Hub:
docker pull codecodesxyz/marchat:v1.3.8
# or use latest tag
docker pull codecodesxyz/marchat:latest