|
7 | 7 | [](https://go.dev/dl/) |
8 | 8 | [](https://github.com/Cod-e-Codes/marchat/releases) |
9 | 9 | [](https://hub.docker.com/r/codecodesxyz/marchat) |
10 | | -[](https://github.com/Cod-e-Codes/marchat/releases/tag/v0.11.0-beta.1) |
| 10 | +[](https://github.com/Cod-e-Codes/marchat/releases/tag/v0.11.0-beta.2) |
11 | 11 |
|
12 | 12 | A lightweight terminal chat with real-time messaging over WebSockets, optional E2E encryption, and a flexible plugin ecosystem. Built for developers who prefer the command line. |
13 | 13 |
|
14 | 14 | **Quick start:** [QUICKSTART.md](QUICKSTART.md) for a single-page walkthrough (install → server → client → next docs). |
15 | 15 |
|
16 | 16 | ## Latest Updates |
17 | 17 |
|
18 | | -### v0.11.0-beta.1 (Current) |
19 | | -- **Release CI**: `.github/workflows/release.yml` — **`resolve-version`** job fixes empty Docker/tag version (matrix jobs cannot export outputs); **`CGO_ENABLED=0`** on **`build`** for static release binaries; **Termux** uses **linux-arm64** zip (install scripts updated). Details: **ARCHITECTURE.md** (Build System), **QUICKSTART.md**, **TESTING.md** |
20 | | -- **Merge [PR #83](https://github.com/Cod-e-Codes/marchat/pull/83) (`47c52e1`): multi-DB and durable state**: Large server/database overhaul: dialect-aware schema and queries for **SQLite**, **PostgreSQL**, and **MySQL/MariaDB**; **durable** storage for reactions and read receipts; dedicated **message-state** layer with retention-friendly cleanup and compatibility fixes (including MySQL index DDL and retention `DELETE` semantics). See **ARCHITECTURE.md** and **PROTOCOL.md** for backend and protocol alignment. |
21 | | -- **Reliability**: Serialized WebSocket writes on each connection to avoid concurrent **ping** panics (landed on `main` ahead of this release) |
22 | | -- **Admin TUI**: Layout, logs view, and heading alignment fixes |
23 | | -- **Doctor**: Reports database dialect and DSN validity; validates empty durable-state tables |
24 | | -- **Tests**: Reaction removal by target id; `db_dialect` and `message_state` coverage |
25 | | - |
26 | | -### v0.10.0-beta.3 |
27 | | -- **Caddy / WSS**: `docker-compose.proxy.yml`, `deploy/caddy/` (`Caddyfile`, `proxy.env.example`), cross-platform `scripts/build-linux.sh` and `scripts/connect-local-wss.sh`, full walkthrough in `deploy/CADDY-REVERSE-PROXY.md` |
28 | | -- **Client**: WSS/TLS tweaks; sanitize pasted `--server` URLs; connect from flags without profile picker when server+username are set (keystore passphrase prompted for `--e2e` unless `--non-interactive`); `MARCHAT_GLOBAL_E2E_KEY` unchanged |
29 | | -- **Server config**: Document `godotenv.Overload` for `config/.env` vs process env (see README / env.example) |
30 | | - |
31 | | -### v0.10.0-beta.2 |
32 | | -- **CLI diagnostics**: `marchat-client` and `marchat-server` support `-doctor` and `-doctor-json` for environment, paths, and config health |
33 | | -- **Build**: `build-release.ps1` sets `CGO_ENABLED=0` for consistent cross-compilation |
34 | | -- **Dependencies**: `modernc.org/sqlite` 1.47.0 → 1.48.0 (via Dependabot) |
35 | | -- **Docs**: Updated LOC and test coverage figures; streamlined beta.1 feature list in README |
36 | | -- **Docker**: image entrypoint fixes `/data` volume permissions and drops to non-root via `su-exec`; Unix line endings on `entrypoint.sh` for reliable Windows-built images |
37 | | - |
38 | | -### v0.10.0-beta.1 |
39 | | -- **Message Management**: Edit, delete, pin, search messages by ID |
40 | | -- **Reactions**: React to messages with emoji aliases (`:react 42 +1`, `heart`, `fire`, `party`, etc.) |
41 | | -- **Direct Messages**: Private DM conversations between users |
42 | | -- **Channels**: Multiple chat rooms with join/leave and per-channel messaging |
43 | | -- **Typing Indicators**: See when other users are typing |
44 | | -- **E2E File Transfers**: End-to-end encryption extended to file sharing |
45 | | -- **UX Enhancements**: Connection status indicator, @mention tab completion, unread count, multi-line input (Alt+Enter/Ctrl+J), chat history export |
46 | | -- **Security**: Rate limiting, constant-time admin key comparison, plugin download timeouts, SHA-pinned CI actions |
47 | | -- **Refactoring**: Client split into hotkeys/render/websocket/commands modules, config directory unified, orphaned code removed |
48 | | -- **Docker**: Added docker-compose.yml for local development |
49 | | -- **Plugins**: Full plugin system wiring (message forwarding, user list updates, command responses, init handshake, store UI, license enforcement) |
50 | | - |
51 | | -### Recent Releases |
52 | | -- **v0.11.0-beta.1**: **[PR #83](https://github.com/Cod-e-Codes/marchat/pull/83)** multi-DB + durable reactions/read receipts and message state; doctor DB diagnostics; WebSocket write serialization; admin TUI fixes |
53 | | -- **v0.10.0-beta.3**: Caddy TLS proxy example, Unix helper scripts, client WSS/direct-connect UX, config `.env` precedence docs |
54 | | -- **v0.10.0-beta.2**: Doctor CLI, build-release cross-compile fix, sqlite bump, doc metrics refresh, Docker image entrypoint/volume permission fixes |
55 | | -- **v0.10.0-beta.1**: Message edit/delete/pin/search, reactions, DMs, channels, typing, E2E file transfer, plugins, rate limits, Docker Compose sample |
56 | | -- **v0.9.0-beta.6**: Rebuilt with Go 1.25.8 to address CVE-2026-25679, CVE-2026-27142, CVE-2026-27139 |
57 | | -- **v0.9.0-beta.5**: Automated release workflow, PBKDF2 keystore key derivation, JWT secret auto-generation, race condition fixes, Docker optimizations |
| 18 | +### v0.11.0-beta.2 (Current) |
| 19 | +- **Go 1.25.8** across CI, Docker, and docs; **SECURITY.md** updates (supported versions, edwards25519 note) |
| 20 | +- **UX**: Terminal-native chrome (reaction/message emoji unchanged); **Alt+M** / **`:msginfo`** toggle message metadata; colorized server banner and client pre-TUI (**`NO_COLOR`** respected) |
| 21 | +- **Doctor**: TTY color for text mode; server **`MARCHAT_*`** reflects **`config/.env`**; docs for **`-doctor-json`** / **`NO_COLOR`** |
| 22 | +- **Server**: Hardened license cache, username reservation, DB backup SQL; **CI**: static release builds, Node 24 for **`action-gh-release`**; **Termux** → **linux-arm64** assets |
| 23 | + |
| 24 | +### Earlier |
| 25 | +- **v0.11.0-beta.1**: **[PR #83](https://github.com/Cod-e-Codes/marchat/pull/83)**: SQLite / PostgreSQL / MySQL, durable reactions & read receipts, message-state layer; release **`resolve-version`** + static builds; serialized WS writes; admin TUI & doctor DB checks (see **ARCHITECTURE.md**, **PROTOCOL.md**) |
| 26 | +- **v0.10.0-beta.3**: Caddy TLS proxy sample ([**deploy/CADDY-REVERSE-PROXY.md**](deploy/CADDY-REVERSE-PROXY.md)), client WSS/TLS & direct-connect UX, **`config/.env`** precedence docs |
| 27 | +- **v0.10.0-beta.2**: **`-doctor`** / **`-doctor-json`**, **`CGO_ENABLED=0`** builds, sqlite bump, Docker entrypoint & volume permissions |
| 28 | +- **v0.10.0-beta.1**: Edit/delete/pin/search, reactions, DMs, channels, typing, E2E files, plugins, rate limits, Docker Compose; client modularization |
58 | 29 |
|
59 | 30 | Full changelog on [GitHub releases](https://github.com/Cod-e-Codes/marchat/releases). |
60 | 31 |
|
@@ -150,24 +121,24 @@ Key tables for message tracking and moderation: |
150 | 121 | **Binary Installation:** |
151 | 122 | ```bash |
152 | 123 | # Linux (amd64) |
153 | | -wget https://github.com/Cod-e-Codes/marchat/releases/download/v0.11.0-beta.1/marchat-v0.11.0-beta.1-linux-amd64.zip |
154 | | -unzip marchat-v0.11.0-beta.1-linux-amd64.zip && chmod +x marchat-* |
| 124 | +wget https://github.com/Cod-e-Codes/marchat/releases/download/v0.11.0-beta.2/marchat-v0.11.0-beta.2-linux-amd64.zip |
| 125 | +unzip marchat-v0.11.0-beta.2-linux-amd64.zip && chmod +x marchat-* |
155 | 126 |
|
156 | 127 | # macOS (amd64) |
157 | | -wget https://github.com/Cod-e-Codes/marchat/releases/download/v0.11.0-beta.1/marchat-v0.11.0-beta.1-darwin-amd64.zip |
158 | | -unzip marchat-v0.11.0-beta.1-darwin-amd64.zip && chmod +x marchat-* |
| 128 | +wget https://github.com/Cod-e-Codes/marchat/releases/download/v0.11.0-beta.2/marchat-v0.11.0-beta.2-darwin-amd64.zip |
| 129 | +unzip marchat-v0.11.0-beta.2-darwin-amd64.zip && chmod +x marchat-* |
159 | 130 |
|
160 | 131 | # Windows - PowerShell |
161 | 132 | iwr -useb https://raw.githubusercontent.com/Cod-e-Codes/marchat/main/install.ps1 | iex |
162 | 133 | ``` |
163 | 134 |
|
164 | 135 | **Docker:** |
165 | 136 | ```bash |
166 | | -docker pull codecodesxyz/marchat:v0.11.0-beta.1 |
| 137 | +docker pull codecodesxyz/marchat:v0.11.0-beta.2 |
167 | 138 | docker run -d -p 8080:8080 \ |
168 | 139 | -e MARCHAT_ADMIN_KEY=$(openssl rand -hex 32) \ |
169 | 140 | -e MARCHAT_USERS=admin1,admin2 \ |
170 | | - codecodesxyz/marchat:v0.11.0-beta.1 |
| 141 | + codecodesxyz/marchat:v0.11.0-beta.2 |
171 | 142 | ``` |
172 | 143 |
|
173 | 144 | **Docker Compose (local development):** |
|
0 commit comments