cctally 1.97.0 → 1.99.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/bin/cctally CHANGED
@@ -399,6 +399,7 @@ _lib_budget = _load_sibling("_lib_budget")
399
399
  BudgetInputs = _lib_budget.BudgetInputs
400
400
  BudgetStatus = _lib_budget.BudgetStatus
401
401
  compute_budget_status = _lib_budget.compute_budget_status
402
+ budget_status_payload = _lib_budget.budget_status_payload
402
403
  project_linear = _lib_budget.project_linear
403
404
  calendar_month_window = _lib_budget.calendar_month_window
404
405
  calendar_week_window = _lib_budget.calendar_week_window
@@ -1372,6 +1373,30 @@ _dashboard_build_blocks_panel = _cctally_dashboard._dashboard_build_blocks_panel
1372
1373
  _dashboard_build_blocks_view = _cctally_dashboard._dashboard_build_blocks_view
1373
1374
  _dashboard_build_daily_panel = _cctally_dashboard._dashboard_build_daily_panel
1374
1375
  _empty_dashboard_snapshot = _cctally_dashboard._empty_dashboard_snapshot
1376
+ # #556 S2: the shared cross-provider aggregate range and the two range-native
1377
+ # folds it feeds. Re-exported so the source-bundle builder in
1378
+ # `_cctally_tui._tui_build_source_bundle` reaches them through `_cctally()`,
1379
+ # which is also the seam its fold-failure tests monkeypatch.
1380
+ resolve_shared_range = _cctally_dashboard.resolve_shared_range
1381
+ iter_shared_range_entries = _cctally_dashboard.iter_shared_range_entries
1382
+ # #556 S5 §3.7: the Claude budget cost-event carrier rebuilds the same
1383
+ # `UsageEntry` these rows already feed, so the 1-hour cache-write split (#195)
1384
+ # is priced through the one `claude_usage_dict` chokepoint rather than a second
1385
+ # hand-rolled row unpack.
1386
+ _shared_range_row_to_usage_entry = _cctally_dashboard._shared_range_row_to_usage_entry
1387
+ fold_projects_over_range = _cctally_dashboard.fold_projects_over_range
1388
+ fold_daily_over_range = _cctally_dashboard.fold_daily_over_range
1389
+ materialise_daily_calendar = _cctally_dashboard.materialise_daily_calendar
1390
+ build_daily_aggregate_rows = _cctally_dashboard.build_daily_aggregate_rows
1391
+ daily_panel_row_to_wire = _cctally_dashboard.daily_panel_row_to_wire
1392
+ build_project_aggregate_rows = _cctally_dashboard.build_project_aggregate_rows
1393
+ legacy_project_labels = _cctally_dashboard.legacy_project_labels
1394
+ build_cached_claude_range_aggregates = (
1395
+ _cctally_dashboard.build_cached_claude_range_aggregates
1396
+ )
1397
+ reset_claude_range_aggregate_memo = (
1398
+ _cctally_dashboard.reset_claude_range_aggregate_memo
1399
+ )
1375
1400
  # _iso_z is NOT bound here anymore — the former dashboard-then-forecast
1376
1401
  # double-bind collapses to a single canonical bind below (#279 S6 W4).
1377
1402
  # Projects panel + modal (spec 2026-05-19-projects-panel-design.md).