cctally 1.60.0 → 1.62.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,30 @@ based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [1.62.0] - 2026-07-06
9
+
10
+ ### Changed
11
+ - Dashboard warm rebuilds are materially faster on very large histories: the Daily, Weekly, Monthly, and Projects panels now fold only new activity into the current period each refresh instead of re-summing the whole open period, a `record-usage` write no longer forces a full projects rebuild, and on weeks with an in-place credit the pre-credit segment of the Weekly panel is now computed once and reused instead of being re-summed on every refresh. Output is unchanged (#271).
12
+ - The dashboard's cache-report card is now the last panel to join the warm-refresh fast path: each closed day's cache-savings breakdown is computed once and reused, so a live refresh recomputes only today instead of re-reading and re-folding the whole 14-day window every time — a large chunk of the remaining per-refresh work on big histories. This holds even when the trailing two weeks contain a day with no activity (a weekend or a day off): a quiet day is remembered as quiet, so it no longer forces the card back onto the slow full-window path on every refresh. The card's per-project net-savings values shift by a negligible floating-point amount as a side effect of the order-independent fold this relies on; everything else is unchanged (#272).
13
+
14
+ ### Fixed
15
+ - The live dashboard no longer serves a stale value for a past day, week, or month after a streaming message that began in that period finalizes after the period has rolled over — an in-place finalization that reused the same cache row previously slipped the idle-path snapshot check, so the closed period could keep showing its pre-finalization total until the next real change; the dashboard now recomputes the affected period (and no longer double-counts the current period's open bucket in the same situation) (#270).
16
+ - The live dashboard's memory footprint no longer creeps upward by a tiny amount for each day it stays running: the cache-report card's per-day cache (added in #272) now drops days that have rolled out of its trailing two-week window instead of holding onto them until the next restart. Output is unchanged (#275).
17
+
18
+ ## [1.61.0] - 2026-07-05
19
+
20
+ ### Added
21
+ - `cache-sync --prune-orphans` cleans up cache rows left behind when a session's transcript directory is removed — for example after you delete a git worktree — so stale sessions and projects don't linger in your reports. It's a fast, targeted alternative to a full `cache-sync --rebuild`, and only removes rows it can prove are safe to drop, leaving anything ambiguous in place.
22
+
23
+ ### Changed
24
+ - The dashboard's 5-hour **Blocks** card is now a full-size half-width card the same size as the **Weekly** and **Monthly** cards, instead of a cramped third-width tile in the short bottom row where only a couple of its blocks were visible at a time. It moves up beside the other period cards — with the **Forecast** card promoted alongside it so the board stays a tidy grid — so you can see far more of the week's activity blocks at a glance, and the **Recent Alerts** card now spans the full width of the bottom row (#266).
25
+ - The live dashboard's warm refreshes are now much faster on large, many-reset-week usage histories. A closed subscription week's totals never change, so the **$/1% Trend** card (and its weekly-history detail view), the **Forecast**, and the **Projects** panel no longer re-cost every closed week from scratch on each refresh — each closed week is computed once and reused until the underlying usage changes, and the Projects panel additionally stops re-resolving every session's project path on each refresh (it now resolves each distinct path once instead of once per session, and reuses each closed week's per-project totals), so on the largest histories the Projects rebuild drops from seconds to a fraction of a second while staying byte-for-byte identical (#269).
26
+
27
+ ### Fixed
28
+ - The live dashboard no longer pegs a CPU core after long uptime or on a large usage history. It now recognises when nothing has changed since the last refresh and reuses the previous snapshot — so an idle dashboard sits near 0% CPU while its countdowns, freshness, and health checks stay live — and when new usage does land it recomputes only the current day/week/month (and the sessions that changed) instead of re-aggregating your entire history every few seconds, so each refresh stays fast even at hundreds of thousands of sessions (#268).
29
+ - The dashboard now cleans up cache rows left behind by removed session directories (such as a deleted git worktree) on its own — once at startup and periodically while running — so those stale rows no longer linger until a manual rebuild, and the `[cache] N tracked file(s) no longer on disk` warning no longer repeats every few seconds.
30
+ - `cache-sync --rebuild` now waits for the cache lock (up to 30 seconds) and reports a non-zero exit when it still can't acquire it, instead of silently doing nothing and reporting success while a dashboard is actively syncing.
31
+
8
32
  ## [1.60.0] - 2026-07-03
9
33
 
10
34
  ### Changed