cctally 1.117.2 → 1.118.1
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 +37 -0
- package/README.md +7 -3
- package/bin/_cctally_cache.py +2873 -193
- package/bin/_cctally_completion.py +106 -33
- package/bin/_cctally_core.py +69 -4
- package/bin/_cctally_dashboard.py +188 -13
- package/bin/_cctally_dashboard_conversation.py +5 -1
- package/bin/_cctally_dashboard_envelope.py +50 -19
- package/bin/_cctally_dashboard_sources.py +23 -1
- package/bin/_cctally_db.py +193 -153
- package/bin/_cctally_diagnosis_sources.py +63 -7
- package/bin/_cctally_doctor.py +865 -93
- package/bin/_cctally_five_hour.py +67 -50
- package/bin/_cctally_forecast.py +35 -13
- package/bin/_cctally_journal.py +186 -18
- package/bin/_cctally_milestone_history.py +859 -62
- package/bin/_cctally_oauth_samples.py +286 -15
- package/bin/_cctally_parser.py +2 -2
- package/bin/_cctally_quota.py +104 -12
- package/bin/_cctally_record.py +153 -29
- package/bin/_cctally_rederive.py +608 -68
- package/bin/_cctally_statusline.py +108 -81
- package/bin/_cctally_store.py +179 -38
- package/bin/_cctally_tui.py +892 -181
- package/bin/_cctally_update.py +32 -13
- package/bin/_lib_codex_conversation_query.py +52 -14
- package/bin/_lib_codex_drain_admission.py +224 -6
- package/bin/_lib_codex_metadata.py +39 -0
- package/bin/_lib_conversation_anon.py +15 -8
- package/bin/_lib_conversation_dispatch.py +7 -0
- package/bin/_lib_conversation_query.py +289 -70
- package/bin/_lib_dashboard_sources.py +37 -1
- package/bin/_lib_detector_access_registry.py +497 -26
- package/bin/_lib_doctor.py +85 -20
- package/bin/_lib_doctor_scan_index.py +321 -0
- package/bin/_lib_ingest_frontier.py +20 -1
- package/bin/_lib_oauth_samples.py +23 -7
- package/bin/_lib_pricing.py +146 -16
- package/bin/_lib_quota.py +19 -0
- package/bin/_lib_rederive.py +11 -6
- package/bin/_lib_retained_records.py +516 -0
- package/bin/_lib_snapshot_cache.py +10 -0
- package/bin/_lib_stale_proof.py +272 -43
- package/bin/_lib_stats_content_revision.py +831 -0
- package/bin/_lib_write_io.py +11 -4
- package/bin/cctally +4 -1
- package/dashboard/static/assets/ConversationsView-D4Iv4ku0.js +72 -0
- package/dashboard/static/assets/{DoctorModal-B0DnU9d9.js → DoctorModal-D4QSq6uz.js} +1 -1
- package/dashboard/static/assets/ModalRoot-C9F5dhZi.js +1 -0
- package/dashboard/static/assets/{ProjectsDrillPanel-DSxXQSa-.js → ProjectsDrillPanel-WxAdRDMt.js} +1 -1
- package/dashboard/static/assets/{SourceDetailModal-BleDpQqG.js → SourceDetailModal-NyyEfXmc.js} +1 -1
- package/dashboard/static/assets/{UpdateModal-CMqaAkSK.js → UpdateModal-CFLq9pT1.js} +1 -1
- package/dashboard/static/assets/{index-BjQV-0-D.js → index-BKTWH9JE.js} +2 -2
- package/dashboard/static/assets/{outlineNavigation-CO-VWBm7.js → outlineNavigation-BnGUwCS3.js} +3 -3
- package/dashboard/static/dashboard.html +1 -1
- package/package.json +4 -1
- package/dashboard/static/assets/ConversationsView-oqNsWzWV.js +0 -72
- package/dashboard/static/assets/ModalRoot-CYua2wP_.js +0 -1
package/bin/_lib_write_io.py
CHANGED
|
@@ -679,15 +679,16 @@ RESIDUAL_COUNT_KEYS = ("failed", "unpublishedDeferred", "obligations",
|
|
|
679
679
|
"containerPending", "keysDeferred")
|
|
680
680
|
#: The Codex conversation counts that are part of a pass's residual.
|
|
681
681
|
_RESIDUAL_COUNT_FIELDS = ("container_pending", "container_reads_held",
|
|
682
|
-
"barrier_keys_deferred", "
|
|
683
|
-
"prune_refused")
|
|
682
|
+
"barrier_keys_deferred", "barrier_keys_terminal",
|
|
683
|
+
"files_deferred_torn", "prune_refused")
|
|
684
684
|
|
|
685
685
|
|
|
686
686
|
def conversation_residual(stats) -> tuple:
|
|
687
687
|
"""One provider pass's residual as canonical ``(name, value)`` pairs.
|
|
688
688
|
|
|
689
689
|
The failed paths, the deferrals no unit of the same pass published (with
|
|
690
|
-
the keys each named), the causes of ``barrier_retry``, the
|
|
690
|
+
the keys each named), the causes of ``barrier_retry``, the terminal
|
|
691
|
+
deferrals (each terminal file with its keys, #1052), the existing
|
|
691
692
|
leftover counts, and the pass's deferred reason and maintenance failure
|
|
692
693
|
(a refusal that repeats identically settles; one that changes restarts the
|
|
693
694
|
chain). ``()`` when the pass left nothing unfinished."""
|
|
@@ -703,8 +704,14 @@ def conversation_residual(stats) -> tuple:
|
|
|
703
704
|
(str(path), tuple(sorted(keys))) for path, keys in deferred.items()
|
|
704
705
|
if str(path) not in published))
|
|
705
706
|
causes = tuple(sorted(getattr(stats, "barrier_retry_causes", None) or ()))
|
|
707
|
+
# #1052: each terminal file with the keys it holds back. No certificate
|
|
708
|
+
# revision: a re-seal that leaves the same file terminal for the same keys
|
|
709
|
+
# is the same residual, and a changed key is a different one.
|
|
710
|
+
terminal = tuple(sorted(
|
|
711
|
+
(str(path), tuple(sorted(keys))) for path, keys in
|
|
712
|
+
(getattr(stats, "barrier_terminal_keys", None) or {}).items()))
|
|
706
713
|
items = [("failed_paths", failed), ("unpublished_deferred", unpublished),
|
|
707
|
-
("barrier_retry_causes", causes)]
|
|
714
|
+
("barrier_retry_causes", causes), ("barrier_terminal", terminal)]
|
|
708
715
|
items += [(name, getattr(stats, name, 0) or 0)
|
|
709
716
|
for name in _RESIDUAL_COUNT_FIELDS]
|
|
710
717
|
items += [("deferred_reason", str(reason) if reason else None),
|
package/bin/cctally
CHANGED
|
@@ -1106,6 +1106,9 @@ cmd_stats_epoch_rebuild_internal = (
|
|
|
1106
1106
|
cmd_stats_corruption_heal_internal = (
|
|
1107
1107
|
_cctally_store.cmd_stats_corruption_heal_internal
|
|
1108
1108
|
)
|
|
1109
|
+
# #932: the dashboard publisher classifies a maintenance-busy open under a
|
|
1110
|
+
# running detached recovery through this one store-side predicate.
|
|
1111
|
+
active_stats_recovery_deferral = _cctally_store.active_stats_recovery_deferral
|
|
1109
1112
|
# #496 S6: the retained-artifact reclamation worker and `cctally db prune`
|
|
1110
1113
|
# share one sweep implementation, so both resolve through the same sibling.
|
|
1111
1114
|
_cctally_retention = _load_sibling("_cctally_retention")
|
|
@@ -1651,7 +1654,7 @@ _build_statusline_injections = _cctally_statusline._build_statusline_injections
|
|
|
1651
1654
|
# resolve them.
|
|
1652
1655
|
_statusline_persist = _cctally_statusline._statusline_persist
|
|
1653
1656
|
_statusline_oauth_tick = _cctally_statusline._statusline_oauth_tick
|
|
1654
|
-
|
|
1657
|
+
_dispatch_render_worker = _cctally_statusline._dispatch_render_worker
|
|
1655
1658
|
_record_args = _cctally_statusline._record_args
|
|
1656
1659
|
_try_acquire_persist_lock = _cctally_statusline._try_acquire_persist_lock
|
|
1657
1660
|
_release_persist_lock = _cctally_statusline._release_persist_lock
|