cctally 1.76.0 → 1.78.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,32 @@ based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [1.78.0] - 2026-07-21
9
+
10
+ ### Changed
11
+ - Dashboard Codex Daily, Weekly, and Monthly details now retain native Input, Cached input, Output, Reasoning, and Total counters; Codex Weekly uses reset-cycle vocabulary, All Weekly uses neutral provider-period wording, and partial-metadata projects with the same basename remain collision-safe without exposing identities. (#329)
12
+ - Dashboard Codex session, project, and quota-block details now use bounded native hierarchies, localized timestamps, retained quota progression, and accessible prompt expansion across desktop and mobile. (#325)
13
+ - Dashboard All-mode Claude project and session rows now open the same useful detail hierarchy and cross-navigation as the canonical Claude views while keeping native session IDs and source paths private. (#325)
14
+ - Dashboard All-mode Forecast and Cache Report cards and details now compose separate, provider-labelled Claude and Codex reports with provider-local values, confidence, and degraded or unavailable reasons instead of presenting Codex-only data under an All heading. (#324)
15
+ - Dashboard All-mode Weekly and `$ / 1% Trend` views now keep Claude and Codex quota histories in separate provider-labelled sections and series, while explicitly combining only compatible cost totals. (#324)
16
+
17
+ ### Fixed
18
+ - Dashboard narrow layouts now keep degraded source status readable, hide the optional Codex five-hour slot when no native 300-minute window is reported, label real All-mode five-hour rows by provider, and bound unavailable combined-total warnings without losing their accessible detail. (#329)
19
+ - Dashboard source-wide freshness and read-model warnings now reach Daily and Projects without hiding the fixed ten-card board; Current Usage and Share stay bound to the source that opened them, and All shows separate Claude and Codex current-cycle sections instead of silently falling back to Claude. (#328)
20
+ - Dashboard HTTP and live-event JSON now convert non-finite numeric values to `null` at one strict outbound boundary, so missing Doctor freshness markers no longer emit browser-invalid `Infinity` tokens and the full Doctor report opens normally. (#327)
21
+ - Claude 5-hour and 7-day usage now receive one account-wide authoritative OAuth confirmation per 30-second status-line cycle, so a stale Claude Code `rate_limits` payload can no longer leave dashboard milestones behind for up to five minutes. The confirmation is detached from rendering, shares the existing hook throttle lock, and preserves `Retry-After` plus exponential `429` backoff.
22
+
23
+ ## [1.77.0] - 2026-07-21
24
+
25
+ ### Added
26
+ - The dashboard Conversations workspace now browses and reads qualified Claude and Codex conversations through one source-aware reader, with a `Claude | Codex | All` rail selector, collision-safe permalinks and reading state, Codex-native reasoning/tool/thread/live-tail rendering, and source-labelled mixed-provider comparisons and exports that compare only compatible metrics. (#321)
27
+
28
+ ### Changed
29
+ - Conversation prose, normalized Codex events, browse rollups, and full-text indexes now live in an independently synchronized `conversations.db`. Core Claude/Codex accounting and quota refreshes use only the compact `cache.db`, so a large, rebuilding, locked, or missing transcript store no longer delays dashboard accounting freshness. Existing transcript state is safely re-derived from local JSONL after upgrade. (#320)
30
+
31
+ ### Fixed
32
+ - Read-only accounting attachment from `conversations.db` now enables SQLite URI handling explicitly, so conversation routes work on Python/SQLite builds that otherwise treat the `file:…?mode=ro` URI as a literal path. (#321)
33
+
8
34
  ## [1.76.0] - 2026-07-20
9
35
 
10
36
  ### Added