cctally 1.80.2 → 1.80.3
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 +5 -0
- package/bin/_cctally_cache.py +13 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,11 @@ based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
5
5
|
|
|
6
6
|
## [Unreleased]
|
|
7
7
|
|
|
8
|
+
## [1.80.3] - 2026-07-23
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- Cache recovery now detects a damaged `session_entries` B-tree even when `cache.db` still has a readable schema, allowing dashboard startup and `cache-sync --rebuild` to quarantine and recreate the already-corrupt v1.80.1/v1.80.2 cache instead of surfacing a persistent sync error.
|
|
12
|
+
|
|
8
13
|
## [1.80.2] - 2026-07-23
|
|
9
14
|
|
|
10
15
|
### Fixed
|
package/bin/_cctally_cache.py
CHANGED
|
@@ -4812,6 +4812,19 @@ def _cache_open_guarded() -> sqlite3.Connection:
|
|
|
4812
4812
|
# Force a real header/schema read. SELECT 1 is constant-folded and can
|
|
4813
4813
|
# report success without touching a malformed database file.
|
|
4814
4814
|
conn.execute("PRAGMA schema_version").fetchone()
|
|
4815
|
+
# The v1.80.2 production incident left the schema and left edge of
|
|
4816
|
+
# session_entries readable while its interior root page pointed past
|
|
4817
|
+
# EOF on the right. Probe that right-most path explicitly: O(log N), so
|
|
4818
|
+
# every short-lived hook can afford it, unlike PRAGMA quick_check's
|
|
4819
|
+
# whole-database scan.
|
|
4820
|
+
if conn.execute(
|
|
4821
|
+
"SELECT 1 FROM sqlite_schema "
|
|
4822
|
+
"WHERE type='table' AND name='session_entries'"
|
|
4823
|
+
).fetchone() is not None:
|
|
4824
|
+
conn.execute(
|
|
4825
|
+
"SELECT rowid FROM session_entries "
|
|
4826
|
+
"ORDER BY rowid DESC LIMIT 1"
|
|
4827
|
+
).fetchone()
|
|
4815
4828
|
if marker.exists():
|
|
4816
4829
|
conn.close()
|
|
4817
4830
|
conn = None
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cctally",
|
|
3
|
-
"version": "1.80.
|
|
3
|
+
"version": "1.80.3",
|
|
4
4
|
"description": "Claude Code usage tracker and local dashboard for Pro/Max subscription limits - weekly cost-per-percent trend, quota forecasts, threshold alerts. ccusage-compatible.",
|
|
5
5
|
"homepage": "https://github.com/omrikais/cctally",
|
|
6
6
|
"repository": {
|