From c922fd5d26baac75151f1c6bb063a5ebd590ace7 Mon Sep 17 00:00:00 2001 From: tsouth89 Date: Mon, 3 Aug 2026 00:49:18 -0400 Subject: [PATCH] Prepare Ceiling 1.5.22 ## Summary - prepare the 1%-reads-as-100% fix, OpenCode Go monthly label, and Store installer parameter fix as 1.5.22 - add release notes and bump all version sources to 1.5.22 (build 124) ## Validation - powershell.exe -ExecutionPolicy Bypass -NoProfile -File scripts/local-check.ps1 -All -Version 1.5.22 --- .github/release-notes-1.5.22.md | 27 ++++++++++++++++++++ CHANGELOG.md | 4 ++- Cargo.lock | 4 +-- apps/desktop-tauri/package.json | 2 +- apps/desktop-tauri/src-tauri/Cargo.toml | 2 +- apps/desktop-tauri/src-tauri/tauri.conf.json | 2 +- rust/Cargo.toml | 2 +- version.env | 4 +-- 8 files changed, 38 insertions(+), 9 deletions(-) create mode 100644 .github/release-notes-1.5.22.md diff --git a/.github/release-notes-1.5.22.md b/.github/release-notes-1.5.22.md new file mode 100644 index 00000000..04d718cd --- /dev/null +++ b/.github/release-notes-1.5.22.md @@ -0,0 +1,27 @@ +## Highlights + +### The first 1% of usage no longer reads as 100% + +A lightly used OpenCode Go account could report its rolling window as 100% used while the dashboard showed 1%. The usage page reports each window as either whole percentages or fractions of the limit, and a lone `1` means 1% in one and 100% in the other. The per-window scaling rule turned the first 1% of use into a maxed-out rolling window. + +The scale is now resolved once per response from real evidence in the payload, and only read as fractions when a window actually holds a fractional value. The same bug was present in the OpenCode, Qoder, Chutes, and Sakana providers, and it is fixed for all of them. + +### OpenCode Go's monthly window has a name + +The OpenCode Go card now labels its monthly bar "Monthly" instead of the generic "Extra", so the third usage window on that card is no longer anonymous. + +### The Store build submits again + +The 1.5.21 Microsoft Store submission was rejected because Partner Center caps installer parameters at 40 characters and the inherited value was longer. The parameters are now normalized to that limit, with startup-prompt suppression and the restart-required exit code preserved, and a deterministic Store-package preparation test guards it in CI. + +## Installers + +- **Ceiling-1.5.22-Setup.exe** - standard installer +- **Ceiling-1.5.22-portable.exe** - portable +- **Ceiling-1.5.22-Store-Setup.exe** - Microsoft Store package (WebView2 bundled) + +Portable builds show alerts as banners but do not keep them in the notification center. That requires the Start Menu shortcut installed by the standard or Store build. + +--- + +**Full Changelog**: https://github.com/tsouth89/ceiling/compare/v1.5.21...v1.5.22 diff --git a/CHANGELOG.md b/CHANGELOG.md index e8fb0df8..0f3f27e1 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,12 @@ # Changelog -## Unreleased +## [Ceiling] 1.5.22 - 2026-08-03 ### Fixed - A lightly used OpenCode Go account could report its rolling window as 100% used while the dashboard showed 1%. The usage page reports each window as either whole percentages or fractions of the limit, and a lone `1` means 1% in one and 100% in the other. The old rule scaled any value at or below 1 by 100 window-by-window, so the first 1% of use rendered as a maxed-out rolling window. The scale is now resolved once per response, and only read as fractions when a window actually contains a fractional value, which is the case that proves it. - The same 1%-reads-as-100% scale bug affected the OpenCode, Qoder, Chutes, and Sakana providers, all of which scaled values at or below 1 by 100 window-by-window. OpenCode (same backend as OpenCode Go), Qoder, and Chutes now resolve the scale once per response like OpenCode Go. Sakana no longer scales literal percent text at all (a page showing "1%" cannot mean 100% used), and only its JSON percent keys use the evidence-based scale. +- The OpenCode Go card now names its monthly bar "Monthly" instead of the generic "Extra", so the third usage window on that card is no longer anonymous. +- The Microsoft Store submission for 1.5.21 was rejected because Partner Center limits installer parameters to 40 characters and the inherited value was longer. The parameters are now normalized to that limit, startup-prompt suppression and the restart-required exit code are preserved in the Inno installer, and a deterministic Store-package preparation test guards it in CI. ## [Ceiling] 1.5.21 - 2026-08-01 diff --git a/Cargo.lock b/Cargo.lock index d261de38..b59ea796 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -664,7 +664,7 @@ checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" [[package]] name = "codexbar" -version = "1.5.21" +version = "1.5.22" dependencies = [ "aes-gcm", "anyhow", @@ -706,7 +706,7 @@ dependencies = [ [[package]] name = "codexbar-desktop-tauri" -version = "1.5.21" +version = "1.5.22" dependencies = [ "chrono", "chrono-tz", diff --git a/apps/desktop-tauri/package.json b/apps/desktop-tauri/package.json index 32eae3bb..ee03f886 100644 --- a/apps/desktop-tauri/package.json +++ b/apps/desktop-tauri/package.json @@ -1,7 +1,7 @@ { "name": "desktop-tauri", "private": true, - "version": "1.5.21", + "version": "1.5.22", "packageManager": "pnpm@10.18.1", "type": "module", "scripts": { diff --git a/apps/desktop-tauri/src-tauri/Cargo.toml b/apps/desktop-tauri/src-tauri/Cargo.toml index 43b15040..c356d847 100644 --- a/apps/desktop-tauri/src-tauri/Cargo.toml +++ b/apps/desktop-tauri/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "codexbar-desktop-tauri" -version = "1.5.21" +version = "1.5.22" edition = "2024" publish = false diff --git a/apps/desktop-tauri/src-tauri/tauri.conf.json b/apps/desktop-tauri/src-tauri/tauri.conf.json index aa348648..ae4552f1 100644 --- a/apps/desktop-tauri/src-tauri/tauri.conf.json +++ b/apps/desktop-tauri/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://schema.tauri.app/config/2", "productName": "Ceiling", - "version": "1.5.21", + "version": "1.5.22", "identifier": "io.github.tsouth89.ceiling", "build": { "beforeDevCommand": "pnpm run dev", diff --git a/rust/Cargo.toml b/rust/Cargo.toml index 189c89bf..07201d05 100755 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "codexbar" -version = "1.5.21" +version = "1.5.22" edition = "2024" authors = ["Ceiling Contributors"] description = "Local-first Windows companion for monitoring AI capacity and reset times" diff --git a/version.env b/version.env index 7bd43028..fc205703 100755 --- a/version.env +++ b/version.env @@ -1,2 +1,2 @@ -MARKETING_VERSION=1.5.21 -BUILD_NUMBER=123 +MARKETING_VERSION=1.5.22 +BUILD_NUMBER=124