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
31 changes: 31 additions & 0 deletions .github/release-notes-1.5.20.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
## Highlights

### One notification per scheduled reset

Ceiling could send the same Copilot monthly-reset notification two or three times. One quota window confirmed its reset while another was still awaiting confirmation, so the confirmed window's old baseline survived long enough to replay the same reset.

Each confirmed window now advances independently, and a second guard suppresses replay of the same scheduled reset cycle.

### Safer local state

Ceiling now replaces settings, credentials, history, geometry, and cache files atomically. If the app or Windows interrupts a save, the previous complete file remains available instead of being replaced by a partial one.

### Account history stays with the right account

Chart history, quota-run efficiency, and caches now consistently use the stable account ID, falling back to email or organization when needed. This prevents seats that share an email from blending data and restores history for organization-only providers.

### Claude refresh failures stay contained

Claude now reports HTTP client setup failures instead of panicking a background refresh task, and OAuth credential refreshes use reliable atomic replacement on Windows.

## Installers

- **Ceiling-1.5.20-Setup.exe** - standard installer
- **Ceiling-1.5.20-portable.exe** - portable
- **Ceiling-1.5.20-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.19...v1.5.20
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,16 @@

## Unreleased

## [Ceiling] 1.5.20 - 2026-08-01

Patch release for duplicate scheduled-reset notifications and reliability hardening around local state and account-scoped history.

### Fixed
- A confirmed monthly or weekly reset now advances its own baseline immediately, even when another quota window is still awaiting confirmation. The stale baseline could otherwise replay the same reset and send two or three identical notifications during one provider refresh cycle.
- Chart history, quota-run efficiency, and chart caches now follow the stable account ID, with email and organization fallbacks. Accounts sharing an email no longer blend history, and organization-only providers can read back the history they recorded.
- Settings, credentials, history, geometry, and cache files are replaced atomically, so an interrupted write cannot truncate the last known-good local state.
- Claude refreshes report HTTP client initialization failures instead of panicking a background task, and refreshed OAuth credentials are replaced reliably on Windows.

### Internal
- The release smoke test now asserts that the installed Start Menu shortcut carries Ceiling's AppUserModelID. That property is what lets Windows keep a notification, and 1.5.17 shipped without it: every gate checked source, while the one step that inspects the installed build never looked at it.

Expand Down
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 apps/desktop-tauri/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "desktop-tauri",
"private": true,
"version": "1.5.19",
"version": "1.5.20",
"packageManager": "pnpm@10.18.1",
"type": "module",
"scripts": {
Expand Down
2 changes: 1 addition & 1 deletion apps/desktop-tauri/src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "codexbar-desktop-tauri"
version = "1.5.19"
version = "1.5.20"
edition = "2024"
publish = false

Expand Down
2 changes: 1 addition & 1 deletion apps/desktop-tauri/src-tauri/tauri.conf.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://schema.tauri.app/config/2",
"productName": "Ceiling",
"version": "1.5.19",
"version": "1.5.20",
"identifier": "io.github.tsouth89.ceiling",
"build": {
"beforeDevCommand": "pnpm run dev",
Expand Down
2 changes: 1 addition & 1 deletion rust/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "codexbar"
version = "1.5.19"
version = "1.5.20"
edition = "2024"
authors = ["Ceiling Contributors"]
description = "Local-first Windows companion for monitoring AI capacity and reset times"
Expand Down
4 changes: 2 additions & 2 deletions version.env
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
MARKETING_VERSION=1.5.19
BUILD_NUMBER=121
MARKETING_VERSION=1.5.20
BUILD_NUMBER=122
Loading