cctally 1.64.0 → 1.66.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 +50 -0
- package/bin/_cctally_alerts.py +1 -1
- package/bin/_cctally_cache.py +262 -40
- package/bin/_cctally_cache_report.py +7 -5
- package/bin/_cctally_core.py +49 -14
- package/bin/_cctally_dashboard.py +827 -4911
- package/bin/_cctally_dashboard_cache_report.py +714 -0
- package/bin/_cctally_dashboard_conversation.py +771 -0
- package/bin/_cctally_dashboard_envelope.py +1520 -0
- package/bin/_cctally_dashboard_share.py +2012 -0
- package/bin/_cctally_db.py +127 -5
- package/bin/_cctally_doctor.py +104 -3
- package/bin/_cctally_five_hour.py +2 -1
- package/bin/_cctally_forecast.py +78 -135
- package/bin/_cctally_parser.py +919 -784
- package/bin/_cctally_percent_breakdown.py +1 -1
- package/bin/_cctally_pricing_check.py +39 -0
- package/bin/_cctally_project.py +8 -5
- package/bin/_cctally_record.py +279 -274
- package/bin/_cctally_reporting.py +1 -1
- package/bin/_cctally_sync_week.py +1 -1
- package/bin/_cctally_telemetry.py +3 -5
- package/bin/_cctally_tui.py +487 -254
- package/bin/_cctally_update.py +5 -0
- package/bin/_lib_alert_dispatch.py +1 -1
- package/bin/_lib_blocks.py +6 -1
- package/bin/_lib_conversation_query.py +349 -36
- package/bin/_lib_credit.py +133 -0
- package/bin/_lib_doctor.py +150 -1
- package/bin/_lib_five_hour.py +34 -0
- package/bin/_lib_forecast.py +144 -0
- package/bin/_lib_json_envelope.py +38 -0
- package/bin/_lib_jsonl.py +115 -73
- package/bin/_lib_log.py +96 -0
- package/bin/_lib_perf.py +180 -0
- package/bin/_lib_pricing.py +47 -1
- package/bin/_lib_pricing_check.py +25 -3
- package/bin/_lib_record.py +179 -0
- package/bin/_lib_render.py +18 -10
- package/bin/_lib_snapshot_cache.py +61 -0
- package/bin/_lib_transcript_access.py +23 -0
- package/bin/cctally +51 -7
- package/bin/cctally-dashboard +2 -2
- package/bin/cctally-statusline +1 -0
- package/bin/cctally-tui +2 -2
- package/dashboard/static/assets/index-CJTUCpKt.js +80 -0
- package/dashboard/static/assets/index-DQWNrIqu.css +1 -0
- package/dashboard/static/dashboard.html +2 -2
- package/package.json +11 -1
- package/dashboard/static/assets/index-0jzYm75p.css +0 -1
- package/dashboard/static/assets/index-D_Ylyqsf.js +0 -80
package/bin/_cctally_update.py
CHANGED
|
@@ -2015,6 +2015,11 @@ class _DashboardUpdateCheckThread(threading.Thread):
|
|
|
2015
2015
|
envelope_precompute=(
|
|
2016
2016
|
c._cctally_tui._tui_precompute_envelope_config(load_config())
|
|
2017
2017
|
),
|
|
2018
|
+
# #278 §1.4.1: a version-banner refresh republishes complete data;
|
|
2019
|
+
# force the hydration latch clear so a republish that happens to
|
|
2020
|
+
# carry a prior hydrating seed/partial doesn't freeze the client's
|
|
2021
|
+
# loading skeletons.
|
|
2022
|
+
hydrating=False,
|
|
2018
2023
|
)
|
|
2019
2024
|
self._ref.set(fresh)
|
|
2020
2025
|
self._hub.publish(fresh)
|
|
@@ -18,7 +18,6 @@ Spec: docs/superpowers/specs/2026-06-02-alerts-dispatch-severity-seams-design.md
|
|
|
18
18
|
"""
|
|
19
19
|
from __future__ import annotations
|
|
20
20
|
|
|
21
|
-
import importlib.util as _ilu
|
|
22
21
|
import pathlib
|
|
23
22
|
import sys
|
|
24
23
|
|
|
@@ -36,6 +35,7 @@ def _load_lib(name: str):
|
|
|
36
35
|
cached = sys.modules.get(name)
|
|
37
36
|
if cached is not None:
|
|
38
37
|
return cached
|
|
38
|
+
import importlib.util as _ilu
|
|
39
39
|
p = pathlib.Path(__file__).resolve().parent / f"{name}.py"
|
|
40
40
|
spec = _ilu.spec_from_file_location(name, p)
|
|
41
41
|
mod = _ilu.module_from_spec(spec)
|
package/bin/_lib_blocks.py
CHANGED
|
@@ -61,6 +61,11 @@ UsageEntry = _lib_jsonl.UsageEntry
|
|
|
61
61
|
_lib_pricing = _load_lib("_lib_pricing")
|
|
62
62
|
_calculate_entry_cost = _lib_pricing._calculate_entry_cost
|
|
63
63
|
|
|
64
|
+
# JSON wire-format kernel — the additive camelCase schemaVersion stamp
|
|
65
|
+
# (#279 S6 W1; convention docs/cli-contract.md).
|
|
66
|
+
_lib_json_envelope = _load_lib("_lib_json_envelope")
|
|
67
|
+
stamp_schema_version = _lib_json_envelope.stamp_schema_version
|
|
68
|
+
|
|
64
69
|
|
|
65
70
|
@dataclass
|
|
66
71
|
class Block:
|
|
@@ -526,4 +531,4 @@ def _blocks_to_json(
|
|
|
526
531
|
}
|
|
527
532
|
result.append(obj)
|
|
528
533
|
|
|
529
|
-
return json.dumps({"blocks": result}, indent=2)
|
|
534
|
+
return json.dumps(stamp_schema_version({"blocks": result}), indent=2)
|