From 0ef21f5ad3dfa1cc2d53d25ac7162e1596e58b56 Mon Sep 17 00:00:00 2001 From: ajianaz Date: Thu, 10 Sep 2026 16:16:21 +0700 Subject: [PATCH] chore(release): bump version to 0.9.3 --- CHANGELOG.md | 13 +++++++++++++ Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 70e7e8a..4409048 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.9.3] - 2026-09-10 + +### Added + +- **Bounded scheduler retry for transient Threads API errors (#257)** — publish failures classified via message heuristics: transient (`OAuthException #1` Meta catch-all, `#24` resource-not-exist, HTTP 429/5xx) get one automatic retry 10 minutes later (schedule resets to `pending` with a `[retry N]` error marker); permanent errors (`#100` invalid parameter, `#190` auth, validation) fail immediately. Bundle members are excluded — a chain that breaks fails the whole chain. New `attempt_count` + `next_due_at` columns (migration 018): `next_due_at` overrides `scheduled_at` as the scheduler's eligibility gate, so the backoff actually holds. +- **Carousel failure enrichment (#257)** — child-container failures now report WHICH slide failed (`3/5`), the offending URL, and the orphaned child container IDs instead of an identical message for every failure. `attempt_count` persisted on final failure for audit. + +- **Click-to-zoom lightbox on all media thumbnails (#256)** — full-screen preview on schedules (table rows, expanded detail, cards view), schedule detail modal, and post detail modal. Close via X / Escape / backdrop, body scroll locked while open. (The media library page already had its own preview.) + +### Fixed + +- **Body scroll-lock self-undo in the lightbox (#256)** — a `$effect` that wrote tracked state re-triggered itself and immediately ran its cleanup, restoring background scroll while the preview was open (caught by CodeCora code scanning). + ## [0.9.2] - 2026-09-08 ### Added diff --git a/Cargo.lock b/Cargo.lock index 6e0e9eb..d2b7638 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2397,7 +2397,7 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "titen-api" -version = "0.9.1" +version = "0.9.3" dependencies = [ "anyhow", "axum", @@ -2423,7 +2423,7 @@ dependencies = [ [[package]] name = "titen-cli" -version = "0.9.1" +version = "0.9.3" dependencies = [ "anyhow", "chrono", @@ -2442,7 +2442,7 @@ dependencies = [ [[package]] name = "titen-core" -version = "0.9.1" +version = "0.9.3" dependencies = [ "aes-gcm", "async-trait", @@ -2467,7 +2467,7 @@ dependencies = [ [[package]] name = "titen-mcp" -version = "0.9.1" +version = "0.9.3" dependencies = [ "anyhow", "chrono", diff --git a/Cargo.toml b/Cargo.toml index 9d92dd3..0ee0603 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ members = ["crates/*"] resolver = "2" [workspace.package] -version = "0.9.2" +version = "0.9.3" edition = "2024" rust-version = "1.85" license = "Apache-2.0"