You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+9-5Lines changed: 9 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,13 +4,17 @@ Narrative notes by release. Per-file binaries and assets: [GitHub releases](http
4
4
5
5
## Unreleased
6
6
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`**.
7
+
On **`main`** only; not part of the latest tagged release until you tag and publish. Compare against the current tag on [GitHub releases](https://github.com/Cod-e-Codes/marchat/releases).
-**Server**: WebSocket **Origin** checks compare parsed hostnames (no substring matching); optional **`MARCHAT_ALLOWED_ORIGINS`** allowlist. **`getClientIP`** and web-admin login rate limiting honor **`X-Forwarded-For`** / **`X-Real-IP`** only when the immediate peer is in **`MARCHAT_TRUSTED_PROXIES`** (comma-separated IPs or CIDRs).
10
-
-**Client**: Direct messages use the same E2E wire path as channel `text` when encryption is enabled (`encrypted` plus base64 nonce || ciphertext with the global key). Applies to `:dm <user> <msg>`, DM mode compose, and code snippets sent while a DM thread is open (`:code` / Alt+C).
-**Toolchain**: Go **1.25.11** in **go.mod**, nested plugin modules, CI, and **Dockerfile** (stdlib fixes for **GO-2026-5037**, **GO-2026-5038**, **GO-2026-5039** reported by **govulncheck** on **1.25.10**).
13
-
-**Plugins**: Plugin store downloads validate SHA-256 checksums before extraction (HTTP and `file://`), reject oversize archives, parse `file://` paths correctly on Linux and Windows (registry and download URLs via `plugin/fileurl`), detect archive type from the URL path (including query strings), extract to a staging directory with zip-slip checks, roll back failed updates, set the execute bit on the plugin binary by exact name match after ZIP/TAR extract, and do not leave an empty plugin directory when install download fails.
14
+
-**Client**: Direct messages use the same E2E wire path as channel `text` when encryption is enabled (`encrypted` plus base64 nonce || ciphertext with the global key). Applies to **`:dm <user> <msg>`**, DM mode compose, and code snippets sent while a DM thread is open (**`:code`** / Alt+C). **Fix:** code snippets in DM mode route through the DM send path, not channel `text`.
15
+
-**Plugins**: Plugin store downloads validate SHA-256 checksums before extraction (HTTP and `file://`), reject oversize archives, parse `file://` paths correctly on Linux and Windows (registry and download URLs via **`plugin/fileurl`**), detect archive type from the URL path (including query strings), extract to a staging directory with zip-slip checks, roll back failed updates, set the execute bit on the plugin binary by exact name match after ZIP/TAR extract, and do not leave an empty plugin directory when install download fails.
16
+
-**Toolchain / dependencies**: Go **1.25.11** in **go.mod**, nested plugin modules, CI, and **Dockerfile** (stdlib fixes for **GO-2026-5037**, **GO-2026-5038**, **GO-2026-5039** reported by **govulncheck** on **1.25.10**); **golang.org/x/crypto** v0.52.0; **modernc.org/sqlite** v1.51.0 (was v1.50.0). Transitive **filippo.io/edwards25519** v1.2.0 (MySQL driver).
17
+
-**Packaging**: Version strings and URLs for **v1.2.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.2.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`**).
Copy file name to clipboardExpand all lines: PACKAGING.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -58,7 +58,7 @@ Published tap: [homebrew-marchat](https://github.com/Cod-e-Codes/homebrew-marcha
58
58
59
59
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.
60
60
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.
61
+
Example template path in this repo: `packaging/winget/manifests/c/Cod-e-Codes/Marchat/1.2.0/` (duplicate the folder layout for new versions). Older **`1.0.0/`**and **`1.1.0/`**manifests may remain for reference; the current release templates target **v1.2.0** until the next bump.
62
62
63
63
**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.
[](https://github.com/Cod-e-Codes/marchat/releases)
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
@@ -37,7 +37,7 @@ Both clients follow the same wire format documented in [PROTOCOL.md](PROTOCOL.md
**`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.
43
43
@@ -153,12 +153,12 @@ Tables created by the server (dialect-aware DDL for SQLite, PostgreSQL, and MySQ
0 commit comments