Skip to content

Commit 4e4456b

Browse files
committed
chore(release): bump version to v1.1.0 and update related documentation and packaging files
1 parent 0d24b05 commit 4e4456b

20 files changed

Lines changed: 108 additions & 56 deletions

.github/workflows/release.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ on:
66
workflow_dispatch:
77
inputs:
88
version:
9-
description: 'Version to build (e.g., v1.0.0)'
9+
description: 'Version to build (e.g., v1.1.0)'
1010
required: true
11-
default: 'v1.0.0'
11+
default: 'v1.1.0'
1212

1313
permissions:
1414
contents: read

CHANGELOG.md

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,19 @@ Narrative notes by release. Per-file binaries and assets: [GitHub releases](http
44

55
## Unreleased
66

7-
On **`main`** only; not part of **[v1.0.0](https://github.com/Cod-e-Codes/marchat/releases/tag/v1.0.0)** or its published binaries. Will ship in the next tagged release. Compare [`v1.0.0...main`](https://github.com/Cod-e-Codes/marchat/compare/v1.0.0...main). Commits since the tag: **`git log v1.0.0..HEAD --oneline`**.
8-
9-
- **Packaging**: Sync **v1.0.0** zip SHA256 values in **PACKAGING.md**, **AUR**, Homebrew, Scoop, winget, and Chocolatey templates with hashes from published release assets.
10-
- **CI**: Downstream **AUR** publish job clones the packaging checkout over HTTPS instead of SSH.
11-
- **Toolchain / dependencies**: Go 1.25.10 in **go.mod**, CI, Docker, and docs; **golang.org/x/crypto** v0.51.0 and **golang.org/x/term** v0.43.0.
12-
- **Dependencies**: **github.com/jackc/pgx/v5** to 5.9.2; **modernc.org/sqlite** to 1.50.0; **github.com/go-sql-driver/mysql** to 1.10.0.
13-
- **Docs**: Changelog as the narrative hub; clearer onboarding via **QUICKSTART** and **docs/README**; refreshed coverage and LoC in **TESTING** and **README**; **CONTRIBUTING** and **PLUGIN_ECOSYSTEM** edits; call out **winget** and **Chocolatey** listings; link optional graphical clients from **README** and **PROTOCOL**; optional plugin discovery points at the **marchat-plugins** repository.
14-
- **Server**: Add `channel` column to the message schema for improved multi-channel flexibility; persist message channels so history replays into the correct channel. Persist direct messages with `recipient` metadata; reconnect history replays DMs only to sender and recipient. Typing with non-empty `recipient` uses the same DM delivery path as chat DMs.
15-
- **Client**: Scope transcript and typing state by active channel view so switching channels shows only that channel's history and typing activity. DM thread sidebar (unread, hide/reappear), `dm_state.json` under the client config directory, footer shows the active DM peer, commands `:dm` / `:dm off` / `:dms` / `:dmhide`, transcript filtering per active DM thread. **Fix:** handle `:dmhide` / `:dms` before `:dm` so they are not mistaken for `:dm hide...` / `:dm s...` (prefix collision). **Typing:** while in DM compose mode, typing uses optional `recipient` on the wire; the server delivers only to that DM pair; the reference TUI hides DM-scoped typing unless that DM thread is open (no leak into global chat), and hides channel/global typing while a DM thread is open (no leak from general chat into the DM view).
16-
- **Diagnostics**: Client `-doctor` reports `dm_state.json` and E2E key source; server `-doctor` includes a DM history privacy note.
17-
- **Docs (DM and protocol)**: **ARCHITECTURE**, **PROTOCOL** (typing `recipient` and DM delivery), **README**, **TESTING**, and **CONTRIBUTING** updated for persistent DMs, typing scope, and doctor output. Install snippets and release badges still reference **v1.0.0** until the next release is cut.
7+
On **`main`** only; not part of **[v1.1.0](https://github.com/Cod-e-Codes/marchat/releases/tag/v1.1.0)** or its published binaries until you tag and publish. Compare [`v1.1.0...main`](https://github.com/Cod-e-Codes/marchat/compare/v1.1.0...main). Commits since the tag: **`git log v1.1.0..HEAD --oneline`**.
8+
9+
## v1.1.0
10+
11+
**Released 2026-05-12.** Since **[v1.0.0](https://github.com/Cod-e-Codes/marchat/releases/tag/v1.0.0)**; compare [`v1.0.0...v1.1.0`](https://github.com/Cod-e-Codes/marchat/compare/v1.0.0...v1.1.0). Commits: **`git log v1.0.0..v1.1.0 --oneline`**.
12+
13+
- **Server**: **`messages.channel`** column (default **`general`**) with startup migration; channel messages persist and replay on the correct channel. Direct messages store **`recipient`**; reconnect history includes DM rows only for sender and recipient. **`TypingMessage`** with non-empty **`recipient`** uses the same DM delivery path as chat DMs.
14+
- **Client**: Transcript and typing scoped to the active channel; DM thread sidebar (unread, hide, reappear), **`dm_state.json`** under the client config directory, footer shows the active DM peer, commands **`:dm`** / **`:dm off`** / **`:dms`** / **`:dmhide`**. **Fix:** **`:dmhide`** and **`:dms`** handled before **`:dm`** (prefix collision). **Typing:** DM compose sends optional **`recipient`** on the wire; reference TUI hides DM-scoped typing unless that thread is open and hides channel typing while a DM thread is open.
15+
- **Diagnostics**: Client **`-doctor`** reports **`dm_state.json`** and E2E key source; server **`-doctor`** includes a DM history note.
16+
- **Docs / protocol**: **ARCHITECTURE**, **PROTOCOL**, **README**, **TESTING**, **CONTRIBUTING**, **QUICKSTART**, **PLUGIN_ECOSYSTEM**, **docs/README** for DMs, typing **`recipient`**, and doctor output; optional graphical clients and **marchat-plugins** discovery where relevant.
17+
- **Toolchain / dependencies**: Go **1.25.10** in **go.mod**, CI, **Dockerfile**; **golang.org/x/crypto** v0.51.0, **golang.org/x/term** v0.43.0; **github.com/jackc/pgx/v5** v5.9.2, **modernc.org/sqlite** v1.50.0, **github.com/go-sql-driver/mysql** v1.10.0.
18+
- **CI**: Downstream **AUR** publish clones **aur.archlinux.org** over HTTPS before SSH push.
19+
- **Packaging**: Version strings and URLs for **v1.1.0** in **install.ps1**, **install.sh**, **build-release.ps1**, **scripts/build-*.ps1/sh**, **README**, **SECURITY.md**, **.github/workflows/release.yml**, and **packaging/** (Homebrew, Scoop, winget **1.1.0** manifest set, Chocolatey, AUR). **SHA256** fields are **placeholders** (`000000...`) until replaced from published release zips (**PACKAGING.md**, **packaging/ci/render-release-manifests.sh**). Regenerate **packaging/aur/.SRCINFO** on Arch after final **PKGBUILD** checksums (**`makepkg --printsrcinfo`**).
1820

1921
## v1.0.0
2022

PACKAGING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ Published tap: [homebrew-marchat](https://github.com/Cod-e-Codes/homebrew-marcha
5858

5959
Upstream is [microsoft/winget-pkgs](https://github.com/microsoft/winget-pkgs). Maintainers use a fork, add `manifests/c/Cod-e-Codes/Marchat/<PackageVersion>/`, run `winget validate` on that folder, and open a PR. Package identifier: `Cod-e-Codes.Marchat`. The installer is a zip with `NestedInstallerType: portable` and two `PortableCommandAlias` entries for client and server. Microsoft may prompt first-time contributors to accept the CLA on the PR; follow the bot instructions there.
6060

61-
Example template path in this repo: `packaging/winget/manifests/c/Cod-e-Codes/Marchat/1.0.0/` (duplicate the folder layout for new versions).
61+
Example template path in this repo: `packaging/winget/manifests/c/Cod-e-Codes/Marchat/1.1.0/` (duplicate the folder layout for new versions). Older **`1.0.0/`** manifests may remain for reference; the current release templates target **v1.1.0** until the next bump.
6262

6363
**Checksums vs GitHub release timing:** Portable zip manifests embed SHA256. After you publish a release and the five platform zips exist on GitHub, run [`packaging/ci/render-release-manifests.sh`](packaging/ci/render-release-manifests.sh) with `RELEASE_TAG` set and copy `packaging-out/` into `packaging/` (and into your tap, bucket, winget fork, or AUR clone as needed) so local `winget validate`, `brew audit`, and `choco pack` match real bytes. The committed templates may carry placeholder hashes until that sync step.
6464

README.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
[![Go Version](https://img.shields.io/github/go-mod/go-version/Cod-e-Codes/marchat?logo=go)](https://go.dev/dl/)
88
[![GitHub all releases](https://img.shields.io/github/downloads/Cod-e-Codes/marchat/total?logo=github)](https://github.com/Cod-e-Codes/marchat/releases)
99
[![Docker Pulls](https://img.shields.io/docker/pulls/codecodesxyz/marchat?logo=docker)](https://hub.docker.com/r/codecodesxyz/marchat)
10-
[![Version](https://img.shields.io/badge/version-v1.0.0-blue)](https://github.com/Cod-e-Codes/marchat/releases/tag/v1.0.0)
10+
[![Version](https://img.shields.io/badge/version-v1.1.0-blue)](https://github.com/Cod-e-Codes/marchat/releases/tag/v1.1.0)
1111

1212
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.
1313

@@ -37,7 +37,7 @@ Both clients follow the same wire format documented in [PROTOCOL.md](PROTOCOL.md
3737

3838
## Release notes
3939

40-
**Latest tagged release:** [v1.0.0](https://github.com/Cod-e-Codes/marchat/releases/tag/v1.0.0) (2026-04-17). Narrative history: [CHANGELOG.md](CHANGELOG.md). Assets and tags: [GitHub releases](https://github.com/Cod-e-Codes/marchat/releases).
40+
**Latest tagged release:** [v1.1.0](https://github.com/Cod-e-Codes/marchat/releases/tag/v1.1.0) (2026-05-12). Narrative history: [CHANGELOG.md](CHANGELOG.md). Assets and tags: [GitHub releases](https://github.com/Cod-e-Codes/marchat/releases).
4141

4242
**`main` branch:** may include changes not yet in that tag (for example items under **Unreleased** in [CHANGELOG.md](CHANGELOG.md)). Feature descriptions elsewhere in this README match the tree you build from source; compare your binary’s `-doctor` / `-version` output to the release page when in doubt.
4343

@@ -153,12 +153,12 @@ Tables created by the server (dialect-aware DDL for SQLite, PostgreSQL, and MySQ
153153
**Binary Installation:**
154154
```bash
155155
# Linux (amd64)
156-
wget https://github.com/Cod-e-Codes/marchat/releases/download/v1.0.0/marchat-v1.0.0-linux-amd64.zip
157-
unzip marchat-v1.0.0-linux-amd64.zip && chmod +x marchat-*
156+
wget https://github.com/Cod-e-Codes/marchat/releases/download/v1.1.0/marchat-v1.1.0-linux-amd64.zip
157+
unzip marchat-v1.1.0-linux-amd64.zip && chmod +x marchat-*
158158

159159
# macOS (amd64)
160-
wget https://github.com/Cod-e-Codes/marchat/releases/download/v1.0.0/marchat-v1.0.0-darwin-amd64.zip
161-
unzip marchat-v1.0.0-darwin-amd64.zip && chmod +x marchat-*
160+
wget https://github.com/Cod-e-Codes/marchat/releases/download/v1.1.0/marchat-v1.1.0-darwin-amd64.zip
161+
unzip marchat-v1.1.0-darwin-amd64.zip && chmod +x marchat-*
162162

163163
# Windows - PowerShell
164164
iwr -useb https://raw.githubusercontent.com/Cod-e-Codes/marchat/main/install.ps1 | iex
@@ -184,11 +184,11 @@ See [PACKAGING.md](PACKAGING.md) and `packaging/` for Homebrew, Scoop, winget, C
184184

185185
**Docker:**
186186
```bash
187-
docker pull codecodesxyz/marchat:v1.0.0
187+
docker pull codecodesxyz/marchat:v1.1.0
188188
docker run -d -p 8080:8080 \
189189
-e MARCHAT_ADMIN_KEY=$(openssl rand -hex 32) \
190190
-e MARCHAT_USERS=admin1,admin2 \
191-
codecodesxyz/marchat:v1.0.0
191+
codecodesxyz/marchat:v1.1.0
192192
```
193193

194194
**Docker Compose (local development):**

SECURITY.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@
22

33
## Supported Versions
44

5-
`marchat` is currently at **v1.0.0**.
5+
`marchat` is currently at **v1.1.0**.
66
All security updates and fixes are applied to the `main` branch.
77

88
| Version | Supported |
99
|--------------------|-----------|
10-
| v1.0.x (`main`) | Yes |
10+
| v1.1.x (`main`) | Yes |
11+
| v1.0.x | Yes |
1112
| v0.11.x | No |
1213
| v0.10.x | No |
1314
| v0.9.x | No |

build-release.ps1

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
# Build script for marchat v1.0.0
1+
# Build script for marchat v1.1.0
22
# This script builds all platform targets and creates release zips
33

44
$ErrorActionPreference = "Stop"
55

6-
$VERSION = "v1.0.0"
6+
$VERSION = "v1.1.0"
77
$BUILD_DIR = "build"
88
$RELEASE_DIR = "release"
99

install.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# Supports Windows, Linux, macOS, and Android (via PowerShell Core)
55

66
param(
7-
[string]$Version = "v1.0.0"
7+
[string]$Version = "v1.1.0"
88
)
99

1010
$ErrorActionPreference = "Stop"

install.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
set -e # Exit on any error
77

8-
VERSION="v1.0.0"
8+
VERSION="v1.1.0"
99

1010
# Detect OS and architecture
1111
OS=$(uname | tr '[:upper:]' '[:lower:]')

packaging/aur/.SRCINFO

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
pkgbase = marchat-bin
22
pkgdesc = Terminal chat with WebSockets (official release binaries)
3-
pkgver = 1.0.0
3+
pkgver = 1.1.0
44
pkgrel = 1
55
url = https://github.com/Cod-e-Codes/marchat
66
arch = x86_64
77
arch = aarch64
88
license = MIT
99
depends = glibc
1010
options = !strip
11-
source_x86_64 = marchat-v1.0.0-linux-amd64.zip::https://github.com/Cod-e-Codes/marchat/releases/download/v1.0.0/marchat-v1.0.0-linux-amd64.zip
12-
sha256sums_x86_64 = bc5f1ef7fdfa50d04a9925ebab073ba2a0e1db2255f69c74f097c185f8252259
13-
source_aarch64 = marchat-v1.0.0-linux-arm64.zip::https://github.com/Cod-e-Codes/marchat/releases/download/v1.0.0/marchat-v1.0.0-linux-arm64.zip
14-
sha256sums_aarch64 = 496d2985df4f1144c34ffeb8002f679ea05f1c66fd27119966038a468eca016c
11+
source_x86_64 = marchat-v1.1.0-linux-amd64.zip::https://github.com/Cod-e-Codes/marchat/releases/download/v1.1.0/marchat-v1.1.0-linux-amd64.zip
12+
sha256sums_x86_64 = 0000000000000000000000000000000000000000000000000000000000000000
13+
source_aarch64 = marchat-v1.1.0-linux-arm64.zip::https://github.com/Cod-e-Codes/marchat/releases/download/v1.1.0/marchat-v1.1.0-linux-arm64.zip
14+
sha256sums_aarch64 = 0000000000000000000000000000000000000000000000000000000000000000
1515

1616
pkgname = marchat-bin

packaging/aur/PKGBUILD

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# Maintainer: Cody Marsengill <cod.e.codes.dev@gmail.com>
22
pkgname=marchat-bin
3-
pkgver=1.0.0
3+
pkgver=1.1.0
44
pkgrel=1
5-
_pkgtag=v1.0.0
5+
_pkgtag=v1.1.0
66
pkgdesc='Terminal chat with WebSockets (official release binaries)'
77
arch=('x86_64' 'aarch64')
88
url='https://github.com/Cod-e-Codes/marchat'
@@ -11,8 +11,8 @@ options=('!strip')
1111
depends=('glibc')
1212
source_x86_64=("marchat-${_pkgtag}-linux-amd64.zip::https://github.com/Cod-e-Codes/marchat/releases/download/${_pkgtag}/marchat-${_pkgtag}-linux-amd64.zip")
1313
source_aarch64=("marchat-${_pkgtag}-linux-arm64.zip::https://github.com/Cod-e-Codes/marchat/releases/download/${_pkgtag}/marchat-${_pkgtag}-linux-arm64.zip")
14-
sha256sums_x86_64=('bc5f1ef7fdfa50d04a9925ebab073ba2a0e1db2255f69c74f097c185f8252259')
15-
sha256sums_aarch64=('496d2985df4f1144c34ffeb8002f679ea05f1c66fd27119966038a468eca016c')
14+
sha256sums_x86_64=('0000000000000000000000000000000000000000000000000000000000000000')
15+
sha256sums_aarch64=('0000000000000000000000000000000000000000000000000000000000000000')
1616

1717
package() {
1818
if [[ $CARCH == x86_64 ]]; then

0 commit comments

Comments
 (0)