Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion crates/cordiale-core/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "cordiale-core"
version = "0.1.16"
version = "0.1.17"
edition = "2021"
license = "MIT"
publish = false
Expand Down
2 changes: 1 addition & 1 deletion crates/cordiale-ui/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "cordiale-ui"
version = "0.1.16"
version = "0.1.17"
edition = "2021"
license = "MIT"
publish = false
Expand Down
58 changes: 58 additions & 0 deletions docs/release-notes/v0.1.17.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
## 👉 Pick the right file first

You need exactly **one** installer or package for your machine:

| You're on | Grab this |
|---|---|
| Windows, regular PC (Intel/AMD) | `Cordiale_Windows_x64.exe` |
| Windows on ARM (Surface, Snapdragon laptops) | `Cordiale_Windows_arm64.exe` |
| macOS, Apple Silicon | `Cordiale_macOS_arm64.dmg` |
| macOS, Intel | `Cordiale_macOS_x64.dmg` |
| Debian 13 | `Cordiale_Debian_13_amd64.deb` (or `_arm64.deb`) |
| Ubuntu 26.04 | `Cordiale_Ubuntu_26.04_amd64.deb` (or `_arm64.deb`) |
| AlmaLinux 10 / RHEL-ish | `Cordiale_AlmaLinux_10_x86_64.rpm` (or `_aarch64.rpm`) |
| Arch Linux | `Cordiale_Arch_rolling_x86_64.pkg.tar.zst` (or `_aarch64`) |
| Another Linux distro | `cordiale-linux-amd64-${PACKAGE_VERSION}.tar.gz` (or `arm64`) |

The `.zip` / `.tar.gz` files are bare binaries. `Cordiale_src.tar.gz` is the source archive; `SHA256SUMS-*` lets you check the downloads. Installation and unsigned-app help: [docs/installation.md](https://github.com/Sythos/Cordiale/blob/main/docs/installation.md).

---

## New since 0.1.16

This is a tidy-up release with a very deliberate focus: keep the big chat improvements from **v0.1.16** front and centre, then make the client safer to use and easier to keep moving. The scrollback position still stays where you left it, DM windows still follow Grappa's newer nick-change rules, member roles still come from the network's `PREFIX`, STATUSMSG still reaches the right audience, and the contrast work from 0.1.16 remains in every theme. This release builds on that solid base instead of quietly undoing it.

### Safer links and images

- **Links get checked before they are opened.** Cordiale validates an external URL before handing it to the system browser, while preserving the raw text the user actually clicked. ([PR #233](https://github.com/Sythos/Cordiale/pull/233))
- **Image redirects are checked too.** External images may follow redirects, including an HTTPS-to-HTTP hop when the target is what the server returned, but every redirect target is vetted before fetching. ([PR #233](https://github.com/Sythos/Cordiale/pull/233))

### A calmer codebase under the same native UI

- **The client is much easier to maintain.** The oversized UI entry point has been split into focused modules for frames, slash commands, admin handlers, history, channels, queries, callbacks and worker commands. State is grouped by responsibility instead of living in one giant bag. The app behaves the same, but the next fix should be far less of a treasure hunt. ([PRs #218, #221–#232](https://github.com/Sythos/Cordiale/pulls?q=is%3Apr+is%3Amerged+218..232))
- **The test suite stays close to the code it protects.** UI tests now live outside the entry point, while CI also builds macOS and exercises the optional HID passkey feature. ([PR #218](https://github.com/Sythos/Cordiale/pull/218), [PR #216](https://github.com/Sythos/Cordiale/pull/216))

### Better network behaviour

- **Reconnects are less jumpy.** Exponential backoff, jitter and the server's `Retry-After` hint prevent a reconnect storm when a network is having a bad day. ([PR #215](https://github.com/Sythos/Cordiale/pull/215))
- **Plain HTTP is called out clearly.** Signing in to a non-local server over `http://` now gets an explicit warning before credentials leave the client. HTTPS remains the preferred route. ([PR #214](https://github.com/Sythos/Cordiale/pull/214))
- **TLS roots are consistent.** WebSocket verification now follows the same platform trust roots as REST, so a private CA is not mysteriously trusted by one half of the client and rejected by the other. ([PR #209](https://github.com/Sythos/Cordiale/pull/209))
- **Linux packages declare what they need.** Debian, Ubuntu, AlmaLinux and Arch packages now expose their runtime dependencies so the package manager can do the boring part. ([PR #213](https://github.com/Sythos/Cordiale/pull/213))

### Storage and reading comfort

- **Settings writes are atomic and private.** Configuration and credential files are written through a safe replacement path, old `~/.cordiale` data is migrated to the platform folder, and logs rotate with a bounded size. ([PR #210](https://github.com/Sythos/Cordiale/pull/210))
- **History no longer gets needlessly rebuilt.** Direct-message windows append new lines in place, and the history cap was removed so long conversations can be read without an arbitrary client-side cut-off. ([PR #217](https://github.com/Sythos/Cordiale/pull/217))
- **Mute feedback is where it belongs.** A muted channel gets a clear bar above the input with an early unmute action, instead of a notice that sticks to the top-right corner. ([PR #212](https://github.com/Sythos/Cordiale/pull/212))

The radio still plays **MP3, Ogg Vorbis and FLAC** on every target, including custom stations. The remaining known gaps and platform limits are in the [README](https://github.com/Sythos/Cordiale#known-gaps).

## Build and verification

Package version: `${PACKAGE_VERSION}` (tag `v${VERSION}`, build/run ID `${BUILD_ID}`, attempt `${BUILD_ATTEMPT}`). All six platform builds and the source archive completed before this release was published. CI on the tagged commit passed on Linux and Windows, and CodeQL passed for Rust and Actions. Where a fourth numeric version component is supported, it derives from the run ID; Windows stores the reduced 16-bit value in VERSIONINFO and preserves the full run ID in string metadata, while macOS records the full run ID in its bundle metadata.

Every package is **unsigned**. SmartScreen, Gatekeeper or a package manager may grumble; use the checksums and build provenance attestations if you want to verify it yourself. The binary and packaging icons are included where those platforms support them.

Found a Cordiale bug? [Tell us here](https://github.com/Sythos/Cordiale/issues). Grappa itself has [its own tracker](https://github.com/vjt/grappa-irc/issues). Screenshots and useful logs are welcome; crystal balls are still in beta. 🥃

**Full changelog:** [v0.1.16...v0.1.17](https://github.com/Sythos/Cordiale/compare/v0.1.16...v0.1.17)
Loading