diff --git a/CHANGELOG.md b/CHANGELOG.md
index b091909f..d9d7d0f8 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,10 +1,18 @@
# Changelog
-## [Unreleased]
+## [0.14.9] - 2026-10-07
### Added
- `send --attachment-dimensions` and `--attachment-blurhash` to set the placeholder shown before an attachment is downloaded
+- Support linking phone-numberless Signal accounts
+- Support recovering accounts with a recovery key
+- Support replaying missed SSE events and configuring keep-alive intervals
+
+### Improved
+
+- Show the actual error for failed requests
+- Improve attachment upload and download failure handling
## [0.14.8] - 2026-09-10
diff --git a/build.gradle.kts b/build.gradle.kts
index 6761a21f..fb1a4151 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -10,7 +10,7 @@ plugins {
allprojects {
group = "org.asamk"
- version = "0.14.9-SNAPSHOT"
+ version = "0.14.9"
}
java {
diff --git a/client/Cargo.lock b/client/Cargo.lock
index 2ced763d..261edc8f 100644
--- a/client/Cargo.lock
+++ b/client/Cargo.lock
@@ -1014,7 +1014,7 @@ checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba"
[[package]]
name = "signal-cli-client"
-version = "0.14.8"
+version = "0.14.9"
dependencies = [
"anyhow",
"bytes",
diff --git a/client/Cargo.toml b/client/Cargo.toml
index c026935c..6848a0a9 100644
--- a/client/Cargo.toml
+++ b/client/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "signal-cli-client"
-version = "0.14.8"
+version = "0.14.9"
edition = "2024"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
diff --git a/data/org.asamk.SignalCli.metainfo.xml b/data/org.asamk.SignalCli.metainfo.xml
index 26cf0665..015d3c1f 100644
--- a/data/org.asamk.SignalCli.metainfo.xml
+++ b/data/org.asamk.SignalCli.metainfo.xml
@@ -45,6 +45,9 @@
intense
+
+ https://github.com/AsamK/signal-cli/releases/tag/v0.14.9
+
https://github.com/AsamK/signal-cli/releases/tag/v0.14.8