codex-usage-tracking 0.17.2__tar.gz → 0.18.0__tar.gz

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.
Files changed (951) hide show
  1. codex_usage_tracking-0.18.0/.codex-plugin/plugin.json +45 -0
  2. codex_usage_tracking-0.18.0/AGENTS.md +280 -0
  3. codex_usage_tracking-0.18.0/CHANGELOG.md +270 -0
  4. codex_usage_tracking-0.18.0/PKG-INFO +373 -0
  5. codex_usage_tracking-0.18.0/README.md +325 -0
  6. codex_usage_tracking-0.18.0/docs/agent-maintainer-guidance.md +70 -0
  7. codex_usage_tracking-0.18.0/docs/agent-maintainer-hardening-branch-roadmap.md +184 -0
  8. codex_usage_tracking-0.18.0/docs/allowance-intelligence.md +80 -0
  9. codex_usage_tracking-0.18.0/docs/architecture/decisions/0002-explicit-tach-module-inventory.md +22 -0
  10. codex_usage_tracking-0.18.0/docs/architecture/decisions/0003-domain-level-tach-boundaries.md +39 -0
  11. codex_usage_tracking-0.18.0/docs/architecture/decisions/0004-dashboard-typescript-boundaries.md +65 -0
  12. codex_usage_tracking-0.18.0/docs/architecture/decisions/0005-dashboard-router-and-query-runtime.md +54 -0
  13. codex_usage_tracking-0.18.0/docs/architecture/decisions/0006-dashboard-visualization-contract.md +78 -0
  14. codex_usage_tracking-0.18.0/docs/architecture/decisions/0007-dashboard-css-ownership.md +40 -0
  15. codex_usage_tracking-0.18.0/docs/architecture/decisions/0008-dashboard-usage-constellation.md +50 -0
  16. codex_usage_tracking-0.18.0/docs/architecture/decisions/0009-compression-mcp-adapter.md +27 -0
  17. codex_usage_tracking-0.18.0/docs/architecture/decisions/0010-recommendation-engine-boundary.md +31 -0
  18. codex_usage_tracking-0.18.0/docs/architecture/decisions/0011-compression-dashboard-adapter.md +32 -0
  19. codex_usage_tracking-0.18.0/docs/architecture-boundary-map.md +71 -0
  20. codex_usage_tracking-0.18.0/docs/architecture.md +83 -0
  21. codex_usage_tracking-0.18.0/docs/assets/dashboard-call-investigator-evidence.png +0 -0
  22. codex_usage_tracking-0.18.0/docs/assets/dashboard-call-investigator-preview.png +0 -0
  23. codex_usage_tracking-0.18.0/docs/assets/dashboard-call-investigator.png +0 -0
  24. codex_usage_tracking-0.18.0/docs/assets/dashboard-calls-preview.png +0 -0
  25. codex_usage_tracking-0.18.0/docs/assets/dashboard-calls.png +0 -0
  26. codex_usage_tracking-0.18.0/docs/assets/dashboard-details.png +0 -0
  27. codex_usage_tracking-0.18.0/docs/assets/dashboard-diagnostics.png +0 -0
  28. codex_usage_tracking-0.18.0/docs/assets/dashboard-insights.png +0 -0
  29. codex_usage_tracking-0.18.0/docs/assets/dashboard-threads.png +0 -0
  30. codex_usage_tracking-0.18.0/docs/cli-json-schemas.md +1319 -0
  31. codex_usage_tracking-0.18.0/docs/complexity-hardening-roadmap.md +104 -0
  32. codex_usage_tracking-0.18.0/docs/compression-lab-roadmap.md +670 -0
  33. codex_usage_tracking-0.18.0/docs/dashboard-final-redesign-audit.md +245 -0
  34. codex_usage_tracking-0.18.0/docs/dashboard-final-redesign-parity.md +94 -0
  35. codex_usage_tracking-0.18.0/docs/dashboard-final-redesign-release-candidate.md +239 -0
  36. codex_usage_tracking-0.18.0/docs/dashboard-final-redesign-roadmap.md +511 -0
  37. codex_usage_tracking-0.18.0/docs/dashboard-final-redesign-spec.md +439 -0
  38. codex_usage_tracking-0.18.0/docs/dashboard-guide.md +413 -0
  39. codex_usage_tracking-0.18.0/docs/dashboard-overview-parity.md +32 -0
  40. codex_usage_tracking-0.18.0/docs/dashboard-query-pipeline-refactor-roadmap.md +533 -0
  41. codex_usage_tracking-0.18.0/docs/dashboard-route-inventory.md +179 -0
  42. codex_usage_tracking-0.18.0/docs/development.md +465 -0
  43. codex_usage_tracking-0.18.0/docs/examples/remediation-conversation.md +35 -0
  44. codex_usage_tracking-0.18.0/docs/examples/token-waste-conversation.md +33 -0
  45. codex_usage_tracking-0.18.0/docs/frontend-rewrite-roadmap.md +566 -0
  46. codex_usage_tracking-0.18.0/docs/mcp.md +263 -0
  47. codex_usage_tracking-0.18.0/docs/one-dot-oh-readiness.md +228 -0
  48. codex_usage_tracking-0.18.0/docs/privacy.md +143 -0
  49. codex_usage_tracking-0.18.0/docs/superpowers/plans/2026-07-11-compression-lab-implementation.md +448 -0
  50. codex_usage_tracking-0.18.0/docs/superpowers/plans/2026-07-11-page-query-progress.md +208 -0
  51. codex_usage_tracking-0.18.0/docs/superpowers/plans/2026-07-14-clone-copy-deduplication.md +533 -0
  52. codex_usage_tracking-0.18.0/docs/superpowers/plans/2026-07-15-parallel-hardening-ci.md +335 -0
  53. codex_usage_tracking-0.18.0/docs/superpowers/specs/2026-07-11-compression-lab-design.md +429 -0
  54. codex_usage_tracking-0.18.0/docs/superpowers/specs/2026-07-11-page-query-progress-design.md +59 -0
  55. codex_usage_tracking-0.18.0/docs/superpowers/specs/2026-07-14-clone-copy-deduplication-design.md +134 -0
  56. codex_usage_tracking-0.18.0/docs/superpowers/specs/2026-07-15-parallel-hardening-ci-design.md +151 -0
  57. codex_usage_tracking-0.18.0/pyproject.toml +307 -0
  58. codex_usage_tracking-0.18.0/scripts/benchmark_compression_lab.py +497 -0
  59. codex_usage_tracking-0.18.0/scripts/benchmark_dashboard_routes.py +429 -0
  60. codex_usage_tracking-0.18.0/scripts/benchmark_refresh_ingestion.py +453 -0
  61. codex_usage_tracking-0.18.0/scripts/check_dashboard_source_budgets.py +142 -0
  62. codex_usage_tracking-0.18.0/scripts/check_release.py +736 -0
  63. codex_usage_tracking-0.18.0/scripts/compression_persistence_benchmark.py +216 -0
  64. codex_usage_tracking-0.18.0/scripts/compression_revision_benchmark.py +113 -0
  65. codex_usage_tracking-0.18.0/scripts/dashboard_route_benchmark_support.py +184 -0
  66. codex_usage_tracking-0.18.0/scripts/smoke_dashboard_server.py +142 -0
  67. codex_usage_tracking-0.18.0/scripts/smoke_installed_package.py +588 -0
  68. codex_usage_tracking-0.18.0/skills/codex-usage-api/SKILL.md +75 -0
  69. codex_usage_tracking-0.18.0/skills/codex-usage-tracker/SKILL.md +120 -0
  70. codex_usage_tracking-0.18.0/skills/codex-usage-tracker/scripts/run_mcp.py +125 -0
  71. codex_usage_tracking-0.18.0/src/codex_usage_tracker/__init__.py +7 -0
  72. codex_usage_tracking-0.18.0/src/codex_usage_tracker/allowance_intelligence/model.py +478 -0
  73. codex_usage_tracking-0.18.0/src/codex_usage_tracker/allowance_intelligence/statistics.py +381 -0
  74. codex_usage_tracking-0.18.0/src/codex_usage_tracker/cli/commands_data.py +164 -0
  75. codex_usage_tracking-0.18.0/src/codex_usage_tracker/cli/commands_lifecycle.py +294 -0
  76. codex_usage_tracking-0.18.0/src/codex_usage_tracker/cli/commands_reports.py +181 -0
  77. codex_usage_tracking-0.18.0/src/codex_usage_tracker/cli/dashboard.py +184 -0
  78. codex_usage_tracking-0.18.0/src/codex_usage_tracker/cli/inspect_log_output.py +28 -0
  79. codex_usage_tracking-0.18.0/src/codex_usage_tracker/cli/main.py +140 -0
  80. codex_usage_tracking-0.18.0/src/codex_usage_tracker/cli/mcp_allowance.py +78 -0
  81. codex_usage_tracking-0.18.0/src/codex_usage_tracker/cli/mcp_compression.py +148 -0
  82. codex_usage_tracking-0.18.0/src/codex_usage_tracker/cli/mcp_compression_router.py +222 -0
  83. codex_usage_tracking-0.18.0/src/codex_usage_tracker/cli/mcp_compression_router_payloads.py +334 -0
  84. codex_usage_tracking-0.18.0/src/codex_usage_tracker/cli/mcp_dashboard.py +388 -0
  85. codex_usage_tracking-0.18.0/src/codex_usage_tracker/cli/mcp_discovery.py +360 -0
  86. codex_usage_tracking-0.18.0/src/codex_usage_tracker/cli/mcp_dogfood.py +357 -0
  87. codex_usage_tracking-0.18.0/src/codex_usage_tracker/cli/mcp_investigations.py +228 -0
  88. codex_usage_tracking-0.18.0/src/codex_usage_tracker/cli/mcp_runtime.py +5 -0
  89. codex_usage_tracking-0.18.0/src/codex_usage_tracker/cli/mcp_server.py +485 -0
  90. codex_usage_tracking-0.18.0/src/codex_usage_tracker/cli/mcp_visualization.py +164 -0
  91. codex_usage_tracking-0.18.0/src/codex_usage_tracker/cli/parser.py +113 -0
  92. codex_usage_tracking-0.18.0/src/codex_usage_tracker/cli/parser_data.py +329 -0
  93. codex_usage_tracking-0.18.0/src/codex_usage_tracker/cli/parser_lifecycle.py +201 -0
  94. codex_usage_tracking-0.18.0/src/codex_usage_tracker/cli/parser_reports.py +139 -0
  95. codex_usage_tracking-0.18.0/src/codex_usage_tracker/compression/__init__.py +19 -0
  96. codex_usage_tracking-0.18.0/src/codex_usage_tracker/compression/api.py +238 -0
  97. codex_usage_tracking-0.18.0/src/codex_usage_tracker/compression/attribution.py +229 -0
  98. codex_usage_tracking-0.18.0/src/codex_usage_tracker/compression/context_detectors.py +165 -0
  99. codex_usage_tracking-0.18.0/src/codex_usage_tracker/compression/detector_protocol.py +122 -0
  100. codex_usage_tracking-0.18.0/src/codex_usage_tracker/compression/detector_registry.py +49 -0
  101. codex_usage_tracking-0.18.0/src/codex_usage_tracker/compression/estimators.py +377 -0
  102. codex_usage_tracking-0.18.0/src/codex_usage_tracker/compression/evidence.py +429 -0
  103. codex_usage_tracking-0.18.0/src/codex_usage_tracker/compression/identifiers.py +60 -0
  104. codex_usage_tracking-0.18.0/src/codex_usage_tracker/compression/jobs.py +286 -0
  105. codex_usage_tracking-0.18.0/src/codex_usage_tracker/compression/models.py +252 -0
  106. codex_usage_tracking-0.18.0/src/codex_usage_tracker/compression/output_detectors.py +114 -0
  107. codex_usage_tracking-0.18.0/src/codex_usage_tracker/compression/payloads.py +449 -0
  108. codex_usage_tracking-0.18.0/src/codex_usage_tracker/compression/profile.py +126 -0
  109. codex_usage_tracking-0.18.0/src/codex_usage_tracker/compression/repetition_detectors.py +353 -0
  110. codex_usage_tracking-0.18.0/src/codex_usage_tracker/compression/request.py +98 -0
  111. codex_usage_tracking-0.18.0/src/codex_usage_tracker/compression/run_builder.py +471 -0
  112. codex_usage_tracking-0.18.0/src/codex_usage_tracker/compression/run_cache.py +374 -0
  113. codex_usage_tracking-0.18.0/src/codex_usage_tracker/compression/simulation_api.py +225 -0
  114. codex_usage_tracking-0.18.0/src/codex_usage_tracker/compression/simulation_payloads.py +103 -0
  115. codex_usage_tracking-0.18.0/src/codex_usage_tracker/compression/simulator.py +266 -0
  116. codex_usage_tracking-0.18.0/src/codex_usage_tracker/compression/streaming_evidence.py +340 -0
  117. codex_usage_tracking-0.18.0/src/codex_usage_tracker/context/reader.py +458 -0
  118. codex_usage_tracking-0.18.0/src/codex_usage_tracker/context/summaries.py +402 -0
  119. codex_usage_tracking-0.18.0/src/codex_usage_tracker/context/token_estimates.py +88 -0
  120. codex_usage_tracking-0.18.0/src/codex_usage_tracker/core/command_parsing.py +204 -0
  121. codex_usage_tracking-0.18.0/src/codex_usage_tracker/core/formatting.py +371 -0
  122. codex_usage_tracking-0.18.0/src/codex_usage_tracker/core/json_contract_cli.py +579 -0
  123. codex_usage_tracking-0.18.0/src/codex_usage_tracker/core/json_contract_diagnostics.py +211 -0
  124. codex_usage_tracking-0.18.0/src/codex_usage_tracker/core/json_contract_server.py +167 -0
  125. codex_usage_tracking-0.18.0/src/codex_usage_tracker/core/json_contract_summary.py +16 -0
  126. codex_usage_tracking-0.18.0/src/codex_usage_tracker/core/json_contract_visualization.py +30 -0
  127. codex_usage_tracking-0.18.0/src/codex_usage_tracker/core/json_contracts.py +30 -0
  128. codex_usage_tracking-0.18.0/src/codex_usage_tracker/core/models.py +136 -0
  129. codex_usage_tracking-0.18.0/src/codex_usage_tracker/core/redaction.py +57 -0
  130. codex_usage_tracking-0.18.0/src/codex_usage_tracker/core/schema.py +112 -0
  131. codex_usage_tracking-0.18.0/src/codex_usage_tracker/core/threads.py +208 -0
  132. codex_usage_tracking-0.18.0/src/codex_usage_tracker/core/usage_identity.py +82 -0
  133. codex_usage_tracking-0.18.0/src/codex_usage_tracker/dashboard/api.py +539 -0
  134. codex_usage_tracking-0.18.0/src/codex_usage_tracker/dashboard/cache_identity.py +42 -0
  135. codex_usage_tracking-0.18.0/src/codex_usage_tracker/dashboard/load_window.py +25 -0
  136. codex_usage_tracking-0.18.0/src/codex_usage_tracker/diagnostics/api.py +235 -0
  137. codex_usage_tracking-0.18.0/src/codex_usage_tracker/diagnostics/dedupe.py +35 -0
  138. codex_usage_tracking-0.18.0/src/codex_usage_tracker/diagnostics/doctor_checks.py +351 -0
  139. codex_usage_tracking-0.18.0/src/codex_usage_tracker/diagnostics/fact_classifiers.py +421 -0
  140. codex_usage_tracking-0.18.0/src/codex_usage_tracker/diagnostics/guided_signals.py +324 -0
  141. codex_usage_tracking-0.18.0/src/codex_usage_tracker/diagnostics/guided_summary.py +241 -0
  142. codex_usage_tracking-0.18.0/src/codex_usage_tracker/diagnostics/mcp.py +337 -0
  143. codex_usage_tracking-0.18.0/src/codex_usage_tracker/diagnostics/snapshot_analysis.py +341 -0
  144. codex_usage_tracking-0.18.0/src/codex_usage_tracker/diagnostics/snapshot_analysis_payloads.py +202 -0
  145. codex_usage_tracking-0.18.0/src/codex_usage_tracker/diagnostics/snapshot_concentration.py +347 -0
  146. codex_usage_tracking-0.18.0/src/codex_usage_tracker/diagnostics/snapshot_events.py +424 -0
  147. codex_usage_tracking-0.18.0/src/codex_usage_tracker/diagnostics/snapshot_overview.py +107 -0
  148. codex_usage_tracking-0.18.0/src/codex_usage_tracker/diagnostics/snapshot_payloads.py +186 -0
  149. codex_usage_tracking-0.18.0/src/codex_usage_tracker/diagnostics/snapshot_progress.py +23 -0
  150. codex_usage_tracking-0.18.0/src/codex_usage_tracker/diagnostics/snapshot_source_scan.py +384 -0
  151. codex_usage_tracking-0.18.0/src/codex_usage_tracker/diagnostics/snapshots.py +493 -0
  152. codex_usage_tracking-0.18.0/src/codex_usage_tracker/parser/api.py +234 -0
  153. codex_usage_tracking-0.18.0/src/codex_usage_tracker/parser/jsonl_v1.py +465 -0
  154. codex_usage_tracking-0.18.0/src/codex_usage_tracker/parser/jsonl_values.py +335 -0
  155. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/dashboard.js +1587 -0
  156. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/dashboard_status.js +323 -0
  157. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/dashboard_template.html +184 -0
  158. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/locales/ar.json +564 -0
  159. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/locales/de.json +564 -0
  160. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/locales/en.json +564 -0
  161. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/locales/es.json +564 -0
  162. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/locales/fr.json +564 -0
  163. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/locales/it.json +564 -0
  164. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/locales/ja.json +564 -0
  165. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/locales/ko.json +564 -0
  166. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/locales/pt.json +564 -0
  167. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/locales/ru.json +564 -0
  168. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/locales/vi.json +564 -0
  169. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/locales/zh-Hans.json +564 -0
  170. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/App.js +133 -0
  171. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/CacheContextPage.js +1 -0
  172. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/CallInvestigatorPage.js +16 -0
  173. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/CallsPage.css +1 -0
  174. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/CallsPage.js +16 -0
  175. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/CompressionLabPage.css +1 -0
  176. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/CompressionLabPage.js +1 -0
  177. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/CoordinateSystem.js +1 -0
  178. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/DataDiffer.js +1 -0
  179. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/DataTable.js +11 -0
  180. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/DiagnosticsPage.js +1 -0
  181. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/EvidenceGrid.css +1 -0
  182. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/EvidenceGrid.js +6 -0
  183. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/ExploreRoutePage.css +1 -0
  184. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/ExploreRoutePage.js +1 -0
  185. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/ExploreWorkspaceSwitcher.js +1 -0
  186. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/InvestigatorPage.css +1 -0
  187. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/InvestigatorPage.js +11 -0
  188. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/LineChart.js +1 -0
  189. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/OverviewPage.css +1 -0
  190. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/OverviewPage.js +1 -0
  191. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/PageLoadProgress.css +1 -0
  192. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/PageLoadProgress.js +1 -0
  193. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/Panel.js +1 -0
  194. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/Primitives.css +1 -0
  195. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/Primitives.js +1 -0
  196. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/ReportsPage.css +1 -0
  197. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/ReportsPage.js +1 -0
  198. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/RoamController.js +1 -0
  199. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/SeriesData.js +1 -0
  200. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/SettingsPage.css +1 -0
  201. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/SettingsPage.js +6 -0
  202. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/SymbolDraw.js +1 -0
  203. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/ThreadsPage.css +1 -0
  204. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/ThreadsPage.js +6 -0
  205. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/UsageConstellation.css +1 -0
  206. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/UsageConstellation.js +12 -0
  207. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/UsageConstellationCanvas.css +1 -0
  208. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/UsageConstellationCanvas.js +4140 -0
  209. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/UsageDrainPage.css +1 -0
  210. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/UsageDrainPage.js +1 -0
  211. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/VisualMapping.js +1 -0
  212. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/accessibilityFeature.js +1 -0
  213. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/annotationFeature.js +1 -0
  214. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/cartesianAxisHelper.js +1 -0
  215. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/cartesianRenderer.js +1 -0
  216. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/contextEvidenceState.js +1 -0
  217. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/dashboard-react.js +50 -0
  218. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/dashboardRouter.js +2 -0
  219. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/dataStackHelper.js +1 -0
  220. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/diagnosticsQueries.js +1 -0
  221. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/echartsRenderer.js +2 -0
  222. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/exploreQueries.js +1 -0
  223. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/extension.js +48 -0
  224. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/filtering.js +1 -0
  225. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/flowRenderer.js +1 -0
  226. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/gauge.js +6 -0
  227. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/grid.js +1 -0
  228. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/heatmapRenderer.js +1 -0
  229. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/index.css +1 -0
  230. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/index.js +1 -0
  231. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/index2.js +22 -0
  232. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/infiniteQueryOptions.js +1 -0
  233. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/install.js +1 -0
  234. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/interactionFeature.js +18 -0
  235. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/legendFeature.js +3 -0
  236. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/listComponent.js +1 -0
  237. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/lock-keyhole.js +6 -0
  238. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/overviewQueries.js +11 -0
  239. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/queryOptions.js +1 -0
  240. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/router.js +17 -0
  241. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/runtime.js +3 -0
  242. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/scaleRawExtentInfo.js +1 -0
  243. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/shield-check.js +6 -0
  244. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/sliderMove.js +1 -0
  245. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/threadSummaryAdapter.js +1 -0
  246. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/tooltipFeature.js +3 -0
  247. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/triangle-alert.js +6 -0
  248. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/useBaseQuery.js +1 -0
  249. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/useInfiniteQuery.js +1 -0
  250. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/useQuery.js +1 -0
  251. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/visualMapFeature.js +1 -0
  252. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator-evidence.png +0 -0
  253. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator-preview.png +0 -0
  254. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator.png +0 -0
  255. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-calls-preview.png +0 -0
  256. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-calls.png +0 -0
  257. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-details.png +0 -0
  258. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-diagnostics.png +0 -0
  259. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-insights.png +0 -0
  260. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-threads.png +0 -0
  261. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/docs/dashboard-guide.html +163 -0
  262. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/docs/examples/remediation-conversation.md +35 -0
  263. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/docs/examples/token-waste-conversation.md +33 -0
  264. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/skills/codex-usage-api/SKILL.md +75 -0
  265. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/skills/codex-usage-tracker/SKILL.md +120 -0
  266. codex_usage_tracking-0.18.0/src/codex_usage_tracker/pricing/config.py +258 -0
  267. codex_usage_tracking-0.18.0/src/codex_usage_tracker/pricing/openai.py +280 -0
  268. codex_usage_tracking-0.18.0/src/codex_usage_tracker/recommendation_engine/__init__.py +1 -0
  269. codex_usage_tracking-0.18.0/src/codex_usage_tracker/recommendation_engine/api.py +74 -0
  270. codex_usage_tracking-0.18.0/src/codex_usage_tracker/recommendation_engine/fact_config.py +110 -0
  271. codex_usage_tracking-0.18.0/src/codex_usage_tracker/recommendation_engine/materialization.py +361 -0
  272. codex_usage_tracking-0.18.0/src/codex_usage_tracker/recommendation_engine/query.py +292 -0
  273. codex_usage_tracking-0.18.0/src/codex_usage_tracker/recommendation_engine/summary_materialization.py +276 -0
  274. codex_usage_tracking-0.18.0/src/codex_usage_tracker/reports/action_brief.py +405 -0
  275. codex_usage_tracking-0.18.0/src/codex_usage_tracker/reports/agentic.py +481 -0
  276. codex_usage_tracking-0.18.0/src/codex_usage_tracker/reports/agentic_dogfood.py +799 -0
  277. codex_usage_tracking-0.18.0/src/codex_usage_tracker/reports/agentic_dogfood_markdown.py +52 -0
  278. codex_usage_tracking-0.18.0/src/codex_usage_tracker/reports/agentic_evidence.py +179 -0
  279. codex_usage_tracking-0.18.0/src/codex_usage_tracker/reports/agentic_strategy.py +231 -0
  280. codex_usage_tracking-0.18.0/src/codex_usage_tracker/reports/api.py +450 -0
  281. codex_usage_tracking-0.18.0/src/codex_usage_tracker/reports/discovery.py +456 -0
  282. codex_usage_tracking-0.18.0/src/codex_usage_tracker/reports/hypothesis_classification.py +111 -0
  283. codex_usage_tracking-0.18.0/src/codex_usage_tracker/reports/hypothesis_evaluators.py +398 -0
  284. codex_usage_tracking-0.18.0/src/codex_usage_tracker/reports/hypothesis_limit_evaluators.py +158 -0
  285. codex_usage_tracking-0.18.0/src/codex_usage_tracker/reports/hypothesis_results.py +125 -0
  286. codex_usage_tracking-0.18.0/src/codex_usage_tracker/reports/investigation_walk.py +399 -0
  287. codex_usage_tracking-0.18.0/src/codex_usage_tracker/reports/project_summary.py +136 -0
  288. codex_usage_tracking-0.18.0/src/codex_usage_tracker/reports/query.py +300 -0
  289. codex_usage_tracking-0.18.0/src/codex_usage_tracker/reports/visualization.py +368 -0
  290. codex_usage_tracking-0.18.0/src/codex_usage_tracker/reports/visualization_support.py +239 -0
  291. codex_usage_tracking-0.18.0/src/codex_usage_tracker/server/allowance.py +221 -0
  292. codex_usage_tracking-0.18.0/src/codex_usage_tracker/server/analysis_jobs.py +246 -0
  293. codex_usage_tracking-0.18.0/src/codex_usage_tracker/server/api.py +151 -0
  294. codex_usage_tracking-0.18.0/src/codex_usage_tracker/server/compression_routes.py +246 -0
  295. codex_usage_tracking-0.18.0/src/codex_usage_tracker/server/dashboard_pages.py +172 -0
  296. codex_usage_tracking-0.18.0/src/codex_usage_tracker/server/dedupe.py +65 -0
  297. codex_usage_tracking-0.18.0/src/codex_usage_tracker/server/diagnostic_facts.py +224 -0
  298. codex_usage_tracking-0.18.0/src/codex_usage_tracker/server/diagnostic_jobs.py +92 -0
  299. codex_usage_tracking-0.18.0/src/codex_usage_tracker/server/diagnostic_routes.py +363 -0
  300. codex_usage_tracking-0.18.0/src/codex_usage_tracker/server/diagnostic_snapshots.py +246 -0
  301. codex_usage_tracking-0.18.0/src/codex_usage_tracker/server/handler.py +489 -0
  302. codex_usage_tracking-0.18.0/src/codex_usage_tracker/server/investigations.py +342 -0
  303. codex_usage_tracking-0.18.0/src/codex_usage_tracker/server/live_rows.py +162 -0
  304. codex_usage_tracking-0.18.0/src/codex_usage_tracker/server/query_cache.py +265 -0
  305. codex_usage_tracking-0.18.0/src/codex_usage_tracker/server/recommendations.py +128 -0
  306. codex_usage_tracking-0.18.0/src/codex_usage_tracker/server/reports.py +194 -0
  307. codex_usage_tracking-0.18.0/src/codex_usage_tracker/server/request_guards.py +52 -0
  308. codex_usage_tracking-0.18.0/src/codex_usage_tracker/server/request_timing.py +15 -0
  309. codex_usage_tracking-0.18.0/src/codex_usage_tracker/server/responses.py +79 -0
  310. codex_usage_tracking-0.18.0/src/codex_usage_tracker/server/route_inventory.py +436 -0
  311. codex_usage_tracking-0.18.0/src/codex_usage_tracker/server/route_profile.py +54 -0
  312. codex_usage_tracking-0.18.0/src/codex_usage_tracker/server/routes.py +79 -0
  313. codex_usage_tracking-0.18.0/src/codex_usage_tracker/server/status.py +86 -0
  314. codex_usage_tracking-0.18.0/src/codex_usage_tracker/server/summary.py +114 -0
  315. codex_usage_tracking-0.18.0/src/codex_usage_tracker/server/threads.py +92 -0
  316. codex_usage_tracking-0.18.0/src/codex_usage_tracker/server/usage_refresh.py +432 -0
  317. codex_usage_tracking-0.18.0/src/codex_usage_tracker/server/utils.py +220 -0
  318. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/allowance_observations.py +196 -0
  319. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/api.py +881 -0
  320. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/compression_candidate_metadata.py +45 -0
  321. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/compression_candidates.py +502 -0
  322. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/compression_capacities.py +54 -0
  323. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/compression_evidence.py +481 -0
  324. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/compression_fact_contract.py +140 -0
  325. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/compression_fact_ingest.py +112 -0
  326. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/compression_fact_manifest.py +164 -0
  327. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/compression_fact_queries.py +300 -0
  328. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/compression_fact_rows.py +412 -0
  329. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/compression_fact_sync.py +223 -0
  330. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/compression_facts.py +464 -0
  331. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/compression_publication.py +402 -0
  332. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/compression_revisions.py +132 -0
  333. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/compression_runs.py +341 -0
  334. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/compression_schema.py +457 -0
  335. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/connection.py +30 -0
  336. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/content_excerpts.py +65 -0
  337. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/content_extract.py +360 -0
  338. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/content_index.py +292 -0
  339. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/content_index_bulk.py +291 -0
  340. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/content_index_events.py +547 -0
  341. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/content_index_models.py +65 -0
  342. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/content_index_parallel.py +189 -0
  343. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/content_index_source.py +141 -0
  344. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/content_index_stream.py +126 -0
  345. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/content_patterns.py +412 -0
  346. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/content_persistence.py +178 -0
  347. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/content_provenance.py +40 -0
  348. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/content_query.py +82 -0
  349. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/content_rows.py +170 -0
  350. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/content_search.py +331 -0
  351. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/content_trace.py +234 -0
  352. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/dashboard_queries.py +416 -0
  353. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/dedupe_queries.py +120 -0
  354. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/deduplication.py +97 -0
  355. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/deduplication_schema.py +128 -0
  356. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/diagnostic_api.py +91 -0
  357. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/diagnostic_call_queries.py +191 -0
  358. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/diagnostic_queries.py +409 -0
  359. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/exports.py +49 -0
  360. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/investigation_runs.py +119 -0
  361. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/large_low_output.py +326 -0
  362. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/query_sql.py +308 -0
  363. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/query_values.py +13 -0
  364. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/recommendation_queries.py +158 -0
  365. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/recommendation_schema.py +170 -0
  366. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/refresh.py +187 -0
  367. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/refresh_callbacks.py +11 -0
  368. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/refresh_parse.py +423 -0
  369. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/refresh_stream.py +440 -0
  370. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/repeated_files.py +308 -0
  371. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/schema.py +754 -0
  372. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/schema_query_indexes.py +54 -0
  373. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/shell_churn.py +464 -0
  374. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/source_records.py +331 -0
  375. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/source_replacement.py +120 -0
  376. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/sources.py +308 -0
  377. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/summary_queries.py +62 -0
  378. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/thread_summaries.py +406 -0
  379. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/usage_api_queries.py +242 -0
  380. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/usage_record_queries.py +115 -0
  381. codex_usage_tracking-0.18.0/src/codex_usage_tracker/store/usage_timing.py +69 -0
  382. codex_usage_tracking-0.18.0/src/codex_usage_tracker/usage_drain/allowance_breakpoints.py +277 -0
  383. codex_usage_tracking-0.18.0/src/codex_usage_tracker/usage_drain/grace.py +194 -0
  384. codex_usage_tracking-0.18.0/src/codex_usage_tracker/usage_drain/proxy_fit.py +164 -0
  385. codex_usage_tracking-0.18.0/src/codex_usage_tracker/usage_drain/regression.py +400 -0
  386. codex_usage_tracking-0.18.0/src/codex_usage_tracker/usage_drain/reports.py +580 -0
  387. codex_usage_tracking-0.18.0/src/codex_usage_tracker/usage_drain/spans.py +482 -0
  388. codex_usage_tracking-0.18.0/src/codex_usage_tracking.egg-info/PKG-INFO +373 -0
  389. codex_usage_tracking-0.18.0/src/codex_usage_tracking.egg-info/SOURCES.txt +747 -0
  390. codex_usage_tracking-0.18.0/src/codex_usage_tracking.egg-info/requires.txt +24 -0
  391. codex_usage_tracking-0.18.0/tests/allowance_intelligence/test_allowance_intelligence.py +295 -0
  392. codex_usage_tracking-0.18.0/tests/allowance_intelligence/test_statistics.py +29 -0
  393. codex_usage_tracking-0.18.0/tests/cli/test_allowance_intelligence_cli_mcp.py +70 -0
  394. codex_usage_tracking-0.18.0/tests/cli/test_cli_benchmarks.py +375 -0
  395. codex_usage_tracking-0.18.0/tests/cli/test_cli_inspect_log_output.py +60 -0
  396. codex_usage_tracking-0.18.0/tests/cli/test_cli_lifecycle.py +875 -0
  397. codex_usage_tracking-0.18.0/tests/cli/test_cli_parser_diagnostics.py +52 -0
  398. codex_usage_tracking-0.18.0/tests/cli/test_cli_release.py +524 -0
  399. codex_usage_tracking-0.18.0/tests/cli/test_commands_reports.py +47 -0
  400. codex_usage_tracking-0.18.0/tests/cli/test_dashboard_route_benchmark.py +101 -0
  401. codex_usage_tracking-0.18.0/tests/cli/test_mcp_compression.py +425 -0
  402. codex_usage_tracking-0.18.0/tests/cli/test_mcp_compression_router.py +281 -0
  403. codex_usage_tracking-0.18.0/tests/cli/test_mcp_dedupe.py +27 -0
  404. codex_usage_tracking-0.18.0/tests/cli/test_mcp_integration.py +604 -0
  405. codex_usage_tracking-0.18.0/tests/cli/test_mcp_runtime_compatibility.py +69 -0
  406. codex_usage_tracking-0.18.0/tests/cli/test_mcp_simulation.py +377 -0
  407. codex_usage_tracking-0.18.0/tests/cli/test_mcp_visualization.py +104 -0
  408. codex_usage_tracking-0.18.0/tests/compression/compression_helpers.py +146 -0
  409. codex_usage_tracking-0.18.0/tests/compression/test_attribution.py +151 -0
  410. codex_usage_tracking-0.18.0/tests/compression/test_context_detectors.py +73 -0
  411. codex_usage_tracking-0.18.0/tests/compression/test_estimators.py +170 -0
  412. codex_usage_tracking-0.18.0/tests/compression/test_jobs.py +373 -0
  413. codex_usage_tracking-0.18.0/tests/compression/test_models.py +146 -0
  414. codex_usage_tracking-0.18.0/tests/compression/test_output_detectors.py +55 -0
  415. codex_usage_tracking-0.18.0/tests/compression/test_repetition_detectors.py +102 -0
  416. codex_usage_tracking-0.18.0/tests/compression/test_run_builder.py +310 -0
  417. codex_usage_tracking-0.18.0/tests/compression/test_simulator.py +179 -0
  418. codex_usage_tracking-0.18.0/tests/compression/test_streaming_evidence.py +499 -0
  419. codex_usage_tracking-0.18.0/tests/context/test_context_action_timing.py +52 -0
  420. codex_usage_tracking-0.18.0/tests/context/test_context_evidence.py +443 -0
  421. codex_usage_tracking-0.18.0/tests/context/test_context_source_scan.py +50 -0
  422. codex_usage_tracking-0.18.0/tests/context/test_context_token_estimates.py +59 -0
  423. codex_usage_tracking-0.18.0/tests/core/test_command_parsing.py +38 -0
  424. codex_usage_tracking-0.18.0/tests/core/test_i18n.py +517 -0
  425. codex_usage_tracking-0.18.0/tests/core/test_json_contracts.py +183 -0
  426. codex_usage_tracking-0.18.0/tests/core/test_privacy.py +455 -0
  427. codex_usage_tracking-0.18.0/tests/core/test_usage_identity.py +91 -0
  428. codex_usage_tracking-0.18.0/tests/dashboard/dashboard_node_test_helpers.py +70 -0
  429. codex_usage_tracking-0.18.0/tests/dashboard/test_dashboard_compression_server.py +99 -0
  430. codex_usage_tracking-0.18.0/tests/dashboard/test_dashboard_diagnostics_snapshots.py +864 -0
  431. codex_usage_tracking-0.18.0/tests/dashboard/test_dashboard_live.py +434 -0
  432. codex_usage_tracking-0.18.0/tests/dashboard/test_dashboard_payload.py +794 -0
  433. codex_usage_tracking-0.18.0/tests/dashboard/test_dashboard_payload_privacy.py +43 -0
  434. codex_usage_tracking-0.18.0/tests/dashboard/test_dashboard_server.py +1233 -0
  435. codex_usage_tracking-0.18.0/tests/dashboard/test_dashboard_server_live_slices.py +218 -0
  436. codex_usage_tracking-0.18.0/tests/dashboard/test_dashboard_status.py +130 -0
  437. codex_usage_tracking-0.18.0/tests/diagnostics/test_diagnostic_snapshot_events.py +31 -0
  438. codex_usage_tracking-0.18.0/tests/diagnostics/test_diagnostic_snapshot_progress.py +32 -0
  439. codex_usage_tracking-0.18.0/tests/diagnostics/test_module_exports.py +8 -0
  440. codex_usage_tracking-0.18.0/tests/parser/test_parser.py +588 -0
  441. codex_usage_tracking-0.18.0/tests/parser/test_parser_deduplication.py +57 -0
  442. codex_usage_tracking-0.18.0/tests/parser/test_parser_inspect_log.py +40 -0
  443. codex_usage_tracking-0.18.0/tests/parser/test_parser_observer.py +75 -0
  444. codex_usage_tracking-0.18.0/tests/pricing/test_pricing.py +268 -0
  445. codex_usage_tracking-0.18.0/tests/quality/test_static_analysis_policy.py +77 -0
  446. codex_usage_tracking-0.18.0/tests/reports/test_action_brief_exports.py +7 -0
  447. codex_usage_tracking-0.18.0/tests/reports/test_agentic_evidence.py +104 -0
  448. codex_usage_tracking-0.18.0/tests/reports/test_agentic_exports.py +10 -0
  449. codex_usage_tracking-0.18.0/tests/reports/test_discovery_exports.py +18 -0
  450. codex_usage_tracking-0.18.0/tests/reports/test_hypothesis_classification.py +28 -0
  451. codex_usage_tracking-0.18.0/tests/reports/test_hypothesis_evaluator_exports.py +7 -0
  452. codex_usage_tracking-0.18.0/tests/reports/test_indexed_recommendations.py +343 -0
  453. codex_usage_tracking-0.18.0/tests/reports/test_investigation_walk_exports.py +11 -0
  454. codex_usage_tracking-0.18.0/tests/reports/test_query_exports.py +14 -0
  455. codex_usage_tracking-0.18.0/tests/reports/test_visualization.py +172 -0
  456. codex_usage_tracking-0.18.0/tests/server/test_analysis_jobs.py +126 -0
  457. codex_usage_tracking-0.18.0/tests/server/test_compression_routes.py +202 -0
  458. codex_usage_tracking-0.18.0/tests/server/test_diagnostic_jobs.py +121 -0
  459. codex_usage_tracking-0.18.0/tests/server/test_query_cache.py +290 -0
  460. codex_usage_tracking-0.18.0/tests/server/test_refresh_jobs.py +50 -0
  461. codex_usage_tracking-0.18.0/tests/server/test_request_timing.py +12 -0
  462. codex_usage_tracking-0.18.0/tests/server/test_route_inventory.py +112 -0
  463. codex_usage_tracking-0.18.0/tests/server/test_server_allowance.py +172 -0
  464. codex_usage_tracking-0.18.0/tests/server/test_server_api.py +63 -0
  465. codex_usage_tracking-0.18.0/tests/server/test_server_call_detail.py +167 -0
  466. codex_usage_tracking-0.18.0/tests/server/test_server_dedupe.py +47 -0
  467. codex_usage_tracking-0.18.0/tests/server/test_server_diagnostic_facts.py +266 -0
  468. codex_usage_tracking-0.18.0/tests/server/test_server_diagnostic_refresh_auth.py +49 -0
  469. codex_usage_tracking-0.18.0/tests/server/test_server_investigations.py +233 -0
  470. codex_usage_tracking-0.18.0/tests/server/test_server_live_rows.py +167 -0
  471. codex_usage_tracking-0.18.0/tests/server/test_server_recommendations.py +343 -0
  472. codex_usage_tracking-0.18.0/tests/server/test_server_request_guards.py +67 -0
  473. codex_usage_tracking-0.18.0/tests/server/test_server_responses.py +81 -0
  474. codex_usage_tracking-0.18.0/tests/server/test_server_routes.py +58 -0
  475. codex_usage_tracking-0.18.0/tests/server/test_server_status.py +150 -0
  476. codex_usage_tracking-0.18.0/tests/server/test_server_summary.py +339 -0
  477. codex_usage_tracking-0.18.0/tests/server/test_server_threads.py +176 -0
  478. codex_usage_tracking-0.18.0/tests/server/test_server_usage_refresh.py +339 -0
  479. codex_usage_tracking-0.18.0/tests/store/test_compression_evidence.py +460 -0
  480. codex_usage_tracking-0.18.0/tests/store/test_compression_facts.py +213 -0
  481. codex_usage_tracking-0.18.0/tests/store/test_compression_publication.py +125 -0
  482. codex_usage_tracking-0.18.0/tests/store/test_compression_revisions.py +61 -0
  483. codex_usage_tracking-0.18.0/tests/store/test_compression_runs.py +307 -0
  484. codex_usage_tracking-0.18.0/tests/store/test_content_index.py +737 -0
  485. codex_usage_tracking-0.18.0/tests/store/test_content_index_refresh.py +97 -0
  486. codex_usage_tracking-0.18.0/tests/store/test_content_query_exports.py +25 -0
  487. codex_usage_tracking-0.18.0/tests/store/test_recommendation_facts.py +252 -0
  488. codex_usage_tracking-0.18.0/tests/store/test_recommendation_queries.py +249 -0
  489. codex_usage_tracking-0.18.0/tests/store/test_refresh_callbacks.py +58 -0
  490. codex_usage_tracking-0.18.0/tests/store/test_refresh_parallel.py +347 -0
  491. codex_usage_tracking-0.18.0/tests/store/test_store_dashboard_mcp.py +937 -0
  492. codex_usage_tracking-0.18.0/tests/store/test_store_dashboard_queries.py +462 -0
  493. codex_usage_tracking-0.18.0/tests/store/test_store_large_batches.py +197 -0
  494. codex_usage_tracking-0.18.0/tests/store/test_store_migrations.py +462 -0
  495. codex_usage_tracking-0.18.0/tests/store/test_store_query_sql.py +56 -0
  496. codex_usage_tracking-0.18.0/tests/store/test_store_sources.py +214 -0
  497. codex_usage_tracking-0.18.0/tests/store/test_usage_deduplication.py +192 -0
  498. codex_usage_tracking-0.18.0/tests/store/test_usage_deduplication_migration.py +164 -0
  499. codex_usage_tracking-0.18.0/tests/test_check_dashboard_source_budgets.py +55 -0
  500. codex_usage_tracking-0.18.0/tests/usage_drain/model_test_helpers.py +22 -0
  501. codex_usage_tracking-0.18.0/tests/usage_drain/test_usage_drain_error_diagnostics.py +161 -0
  502. codex_usage_tracking-0.18.0/tests/usage_drain/test_usage_drain_model.py +767 -0
  503. codex_usage_tracking-0.18.0/tests/usage_drain/test_usage_drain_regime_segments.py +86 -0
  504. codex_usage_tracking-0.18.0/tests/usage_drain/test_usage_drain_regression.py +70 -0
  505. codex_usage_tracking-0.18.0/tests/usage_drain/test_usage_drain_report_helpers.py +21 -0
  506. codex_usage_tracking-0.18.0/tests/usage_drain/test_usage_drain_walk_forward.py +59 -0
  507. codex_usage_tracking-0.17.2/.codex-plugin/plugin.json +0 -45
  508. codex_usage_tracking-0.17.2/AGENTS.md +0 -274
  509. codex_usage_tracking-0.17.2/CHANGELOG.md +0 -263
  510. codex_usage_tracking-0.17.2/PKG-INFO +0 -369
  511. codex_usage_tracking-0.17.2/README.md +0 -323
  512. codex_usage_tracking-0.17.2/docs/agent-maintainer-guidance.md +0 -35
  513. codex_usage_tracking-0.17.2/docs/agent-maintainer-hardening-branch-roadmap.md +0 -116
  514. codex_usage_tracking-0.17.2/docs/allowance-intelligence.md +0 -64
  515. codex_usage_tracking-0.17.2/docs/architecture/decisions/0002-explicit-tach-module-inventory.md +0 -19
  516. codex_usage_tracking-0.17.2/docs/architecture-boundary-map.md +0 -53
  517. codex_usage_tracking-0.17.2/docs/architecture.md +0 -62
  518. codex_usage_tracking-0.17.2/docs/assets/dashboard-call-investigator-evidence.png +0 -0
  519. codex_usage_tracking-0.17.2/docs/assets/dashboard-call-investigator-preview.png +0 -0
  520. codex_usage_tracking-0.17.2/docs/assets/dashboard-call-investigator.png +0 -0
  521. codex_usage_tracking-0.17.2/docs/assets/dashboard-calls-preview.png +0 -0
  522. codex_usage_tracking-0.17.2/docs/assets/dashboard-calls.png +0 -0
  523. codex_usage_tracking-0.17.2/docs/assets/dashboard-details.png +0 -0
  524. codex_usage_tracking-0.17.2/docs/assets/dashboard-diagnostics.png +0 -0
  525. codex_usage_tracking-0.17.2/docs/assets/dashboard-insights.png +0 -0
  526. codex_usage_tracking-0.17.2/docs/assets/dashboard-threads.png +0 -0
  527. codex_usage_tracking-0.17.2/docs/cli-json-schemas.md +0 -1151
  528. codex_usage_tracking-0.17.2/docs/dashboard-guide.md +0 -252
  529. codex_usage_tracking-0.17.2/docs/development.md +0 -398
  530. codex_usage_tracking-0.17.2/docs/examples/remediation-conversation.md +0 -34
  531. codex_usage_tracking-0.17.2/docs/examples/token-waste-conversation.md +0 -33
  532. codex_usage_tracking-0.17.2/docs/frontend-rewrite-roadmap.md +0 -560
  533. codex_usage_tracking-0.17.2/docs/mcp.md +0 -152
  534. codex_usage_tracking-0.17.2/docs/one-dot-oh-readiness.md +0 -228
  535. codex_usage_tracking-0.17.2/docs/privacy.md +0 -128
  536. codex_usage_tracking-0.17.2/pyproject.toml +0 -180
  537. codex_usage_tracking-0.17.2/scripts/check_release.py +0 -736
  538. codex_usage_tracking-0.17.2/scripts/smoke_installed_package.py +0 -684
  539. codex_usage_tracking-0.17.2/skills/codex-usage-api/SKILL.md +0 -69
  540. codex_usage_tracking-0.17.2/skills/codex-usage-tracker/SKILL.md +0 -116
  541. codex_usage_tracking-0.17.2/skills/codex-usage-tracker/scripts/run_mcp.py +0 -125
  542. codex_usage_tracking-0.17.2/src/codex_usage_tracker/__init__.py +0 -7
  543. codex_usage_tracking-0.17.2/src/codex_usage_tracker/allowance_intelligence/model.py +0 -588
  544. codex_usage_tracking-0.17.2/src/codex_usage_tracker/cli/dashboard.py +0 -176
  545. codex_usage_tracking-0.17.2/src/codex_usage_tracker/cli/main.py +0 -699
  546. codex_usage_tracking-0.17.2/src/codex_usage_tracker/cli/mcp_server.py +0 -1699
  547. codex_usage_tracking-0.17.2/src/codex_usage_tracker/cli/parser.py +0 -706
  548. codex_usage_tracking-0.17.2/src/codex_usage_tracker/context/reader.py +0 -457
  549. codex_usage_tracking-0.17.2/src/codex_usage_tracker/context/summaries.py +0 -401
  550. codex_usage_tracking-0.17.2/src/codex_usage_tracker/context/token_estimates.py +0 -82
  551. codex_usage_tracking-0.17.2/src/codex_usage_tracker/core/formatting.py +0 -332
  552. codex_usage_tracking-0.17.2/src/codex_usage_tracker/core/json_contract_cli.py +0 -586
  553. codex_usage_tracking-0.17.2/src/codex_usage_tracker/core/json_contract_diagnostics.py +0 -185
  554. codex_usage_tracking-0.17.2/src/codex_usage_tracker/core/json_contract_server.py +0 -126
  555. codex_usage_tracking-0.17.2/src/codex_usage_tracker/core/json_contracts.py +0 -26
  556. codex_usage_tracking-0.17.2/src/codex_usage_tracker/core/models.py +0 -131
  557. codex_usage_tracking-0.17.2/src/codex_usage_tracker/core/redaction.py +0 -57
  558. codex_usage_tracking-0.17.2/src/codex_usage_tracker/core/schema.py +0 -105
  559. codex_usage_tracking-0.17.2/src/codex_usage_tracker/core/threads.py +0 -210
  560. codex_usage_tracking-0.17.2/src/codex_usage_tracker/dashboard/api.py +0 -548
  561. codex_usage_tracking-0.17.2/src/codex_usage_tracker/diagnostics/api.py +0 -562
  562. codex_usage_tracking-0.17.2/src/codex_usage_tracker/diagnostics/fact_classifiers.py +0 -414
  563. codex_usage_tracking-0.17.2/src/codex_usage_tracker/diagnostics/guided_summary.py +0 -544
  564. codex_usage_tracking-0.17.2/src/codex_usage_tracker/diagnostics/mcp.py +0 -333
  565. codex_usage_tracking-0.17.2/src/codex_usage_tracker/diagnostics/snapshot_analysis.py +0 -533
  566. codex_usage_tracking-0.17.2/src/codex_usage_tracker/diagnostics/snapshot_concentration.py +0 -347
  567. codex_usage_tracking-0.17.2/src/codex_usage_tracker/diagnostics/snapshot_events.py +0 -588
  568. codex_usage_tracking-0.17.2/src/codex_usage_tracker/diagnostics/snapshot_payloads.py +0 -186
  569. codex_usage_tracking-0.17.2/src/codex_usage_tracker/diagnostics/snapshot_source_scan.py +0 -385
  570. codex_usage_tracking-0.17.2/src/codex_usage_tracker/diagnostics/snapshots.py +0 -573
  571. codex_usage_tracking-0.17.2/src/codex_usage_tracker/parser/api.py +0 -229
  572. codex_usage_tracking-0.17.2/src/codex_usage_tracker/parser/jsonl_v1.py +0 -422
  573. codex_usage_tracking-0.17.2/src/codex_usage_tracker/parser/jsonl_values.py +0 -325
  574. codex_usage_tracking-0.17.2/src/codex_usage_tracker/plugin_data/dashboard/dashboard.js +0 -1569
  575. codex_usage_tracking-0.17.2/src/codex_usage_tracker/plugin_data/dashboard/dashboard_status.js +0 -315
  576. codex_usage_tracking-0.17.2/src/codex_usage_tracker/plugin_data/dashboard/dashboard_template.html +0 -183
  577. codex_usage_tracking-0.17.2/src/codex_usage_tracker/plugin_data/dashboard/locales/ar.json +0 -562
  578. codex_usage_tracking-0.17.2/src/codex_usage_tracker/plugin_data/dashboard/locales/de.json +0 -562
  579. codex_usage_tracking-0.17.2/src/codex_usage_tracker/plugin_data/dashboard/locales/en.json +0 -562
  580. codex_usage_tracking-0.17.2/src/codex_usage_tracker/plugin_data/dashboard/locales/es.json +0 -562
  581. codex_usage_tracking-0.17.2/src/codex_usage_tracker/plugin_data/dashboard/locales/fr.json +0 -562
  582. codex_usage_tracking-0.17.2/src/codex_usage_tracker/plugin_data/dashboard/locales/it.json +0 -562
  583. codex_usage_tracking-0.17.2/src/codex_usage_tracker/plugin_data/dashboard/locales/ja.json +0 -562
  584. codex_usage_tracking-0.17.2/src/codex_usage_tracker/plugin_data/dashboard/locales/ko.json +0 -562
  585. codex_usage_tracking-0.17.2/src/codex_usage_tracker/plugin_data/dashboard/locales/pt.json +0 -562
  586. codex_usage_tracking-0.17.2/src/codex_usage_tracker/plugin_data/dashboard/locales/ru.json +0 -562
  587. codex_usage_tracking-0.17.2/src/codex_usage_tracker/plugin_data/dashboard/locales/vi.json +0 -562
  588. codex_usage_tracking-0.17.2/src/codex_usage_tracker/plugin_data/dashboard/locales/zh-Hans.json +0 -562
  589. codex_usage_tracking-0.17.2/src/codex_usage_tracker/plugin_data/dashboard/react/assets/dashboard-react.js +0 -276
  590. codex_usage_tracking-0.17.2/src/codex_usage_tracker/plugin_data/dashboard/react/assets/index.css +0 -1
  591. codex_usage_tracking-0.17.2/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator-evidence.png +0 -0
  592. codex_usage_tracking-0.17.2/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator-preview.png +0 -0
  593. codex_usage_tracking-0.17.2/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator.png +0 -0
  594. codex_usage_tracking-0.17.2/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-calls-preview.png +0 -0
  595. codex_usage_tracking-0.17.2/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-calls.png +0 -0
  596. codex_usage_tracking-0.17.2/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-details.png +0 -0
  597. codex_usage_tracking-0.17.2/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-diagnostics.png +0 -0
  598. codex_usage_tracking-0.17.2/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-insights.png +0 -0
  599. codex_usage_tracking-0.17.2/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-threads.png +0 -0
  600. codex_usage_tracking-0.17.2/src/codex_usage_tracker/plugin_data/docs/dashboard-guide.html +0 -153
  601. codex_usage_tracking-0.17.2/src/codex_usage_tracker/plugin_data/docs/examples/remediation-conversation.md +0 -34
  602. codex_usage_tracking-0.17.2/src/codex_usage_tracker/plugin_data/docs/examples/token-waste-conversation.md +0 -33
  603. codex_usage_tracking-0.17.2/src/codex_usage_tracker/plugin_data/skills/codex-usage-api/SKILL.md +0 -69
  604. codex_usage_tracking-0.17.2/src/codex_usage_tracker/plugin_data/skills/codex-usage-tracker/SKILL.md +0 -116
  605. codex_usage_tracking-0.17.2/src/codex_usage_tracker/pricing/config.py +0 -223
  606. codex_usage_tracking-0.17.2/src/codex_usage_tracker/pricing/openai.py +0 -276
  607. codex_usage_tracking-0.17.2/src/codex_usage_tracker/reports/agentic_dogfood.py +0 -810
  608. codex_usage_tracking-0.17.2/src/codex_usage_tracker/reports/api.py +0 -3104
  609. codex_usage_tracking-0.17.2/src/codex_usage_tracker/reports/project_summary.py +0 -128
  610. codex_usage_tracking-0.17.2/src/codex_usage_tracker/server/allowance.py +0 -195
  611. codex_usage_tracking-0.17.2/src/codex_usage_tracker/server/api.py +0 -137
  612. codex_usage_tracking-0.17.2/src/codex_usage_tracker/server/diagnostic_facts.py +0 -210
  613. codex_usage_tracking-0.17.2/src/codex_usage_tracker/server/diagnostic_routes.py +0 -238
  614. codex_usage_tracking-0.17.2/src/codex_usage_tracker/server/diagnostic_snapshots.py +0 -241
  615. codex_usage_tracking-0.17.2/src/codex_usage_tracker/server/handler.py +0 -606
  616. codex_usage_tracking-0.17.2/src/codex_usage_tracker/server/live_rows.py +0 -154
  617. codex_usage_tracking-0.17.2/src/codex_usage_tracker/server/recommendations.py +0 -84
  618. codex_usage_tracking-0.17.2/src/codex_usage_tracker/server/reports.py +0 -192
  619. codex_usage_tracking-0.17.2/src/codex_usage_tracker/server/request_guards.py +0 -47
  620. codex_usage_tracking-0.17.2/src/codex_usage_tracker/server/responses.py +0 -69
  621. codex_usage_tracking-0.17.2/src/codex_usage_tracker/server/routes.py +0 -69
  622. codex_usage_tracking-0.17.2/src/codex_usage_tracker/server/status.py +0 -83
  623. codex_usage_tracking-0.17.2/src/codex_usage_tracker/server/summary.py +0 -70
  624. codex_usage_tracking-0.17.2/src/codex_usage_tracker/server/threads.py +0 -80
  625. codex_usage_tracking-0.17.2/src/codex_usage_tracker/server/usage_refresh.py +0 -378
  626. codex_usage_tracking-0.17.2/src/codex_usage_tracker/server/utils.py +0 -218
  627. codex_usage_tracking-0.17.2/src/codex_usage_tracker/store/allowance_observations.py +0 -139
  628. codex_usage_tracking-0.17.2/src/codex_usage_tracker/store/api.py +0 -890
  629. codex_usage_tracking-0.17.2/src/codex_usage_tracker/store/connection.py +0 -28
  630. codex_usage_tracking-0.17.2/src/codex_usage_tracker/store/content_index.py +0 -1724
  631. codex_usage_tracking-0.17.2/src/codex_usage_tracker/store/content_index_events.py +0 -570
  632. codex_usage_tracking-0.17.2/src/codex_usage_tracker/store/content_patterns.py +0 -412
  633. codex_usage_tracking-0.17.2/src/codex_usage_tracker/store/dashboard_queries.py +0 -438
  634. codex_usage_tracking-0.17.2/src/codex_usage_tracker/store/diagnostic_call_queries.py +0 -191
  635. codex_usage_tracking-0.17.2/src/codex_usage_tracker/store/diagnostic_queries.py +0 -330
  636. codex_usage_tracking-0.17.2/src/codex_usage_tracker/store/exports.py +0 -49
  637. codex_usage_tracking-0.17.2/src/codex_usage_tracker/store/investigation_runs.py +0 -94
  638. codex_usage_tracking-0.17.2/src/codex_usage_tracker/store/large_low_output.py +0 -262
  639. codex_usage_tracking-0.17.2/src/codex_usage_tracker/store/query_sql.py +0 -277
  640. codex_usage_tracking-0.17.2/src/codex_usage_tracker/store/refresh.py +0 -487
  641. codex_usage_tracking-0.17.2/src/codex_usage_tracker/store/repeated_files.py +0 -289
  642. codex_usage_tracking-0.17.2/src/codex_usage_tracker/store/schema.py +0 -761
  643. codex_usage_tracking-0.17.2/src/codex_usage_tracker/store/shell_churn.py +0 -443
  644. codex_usage_tracking-0.17.2/src/codex_usage_tracker/store/source_records.py +0 -273
  645. codex_usage_tracking-0.17.2/src/codex_usage_tracker/store/sources.py +0 -263
  646. codex_usage_tracking-0.17.2/src/codex_usage_tracker/store/summary_queries.py +0 -51
  647. codex_usage_tracking-0.17.2/src/codex_usage_tracker/store/thread_summaries.py +0 -227
  648. codex_usage_tracking-0.17.2/src/codex_usage_tracker/store/usage_api_queries.py +0 -145
  649. codex_usage_tracking-0.17.2/src/codex_usage_tracker/store/usage_record_queries.py +0 -105
  650. codex_usage_tracking-0.17.2/src/codex_usage_tracker/store/usage_timing.py +0 -12
  651. codex_usage_tracking-0.17.2/src/codex_usage_tracker/usage_drain/allowance_breakpoints.py +0 -273
  652. codex_usage_tracking-0.17.2/src/codex_usage_tracker/usage_drain/grace.py +0 -177
  653. codex_usage_tracking-0.17.2/src/codex_usage_tracker/usage_drain/proxy_fit.py +0 -142
  654. codex_usage_tracking-0.17.2/src/codex_usage_tracker/usage_drain/regression.py +0 -373
  655. codex_usage_tracking-0.17.2/src/codex_usage_tracker/usage_drain/reports.py +0 -580
  656. codex_usage_tracking-0.17.2/src/codex_usage_tracker/usage_drain/spans.py +0 -482
  657. codex_usage_tracking-0.17.2/src/codex_usage_tracking.egg-info/PKG-INFO +0 -369
  658. codex_usage_tracking-0.17.2/src/codex_usage_tracking.egg-info/SOURCES.txt +0 -443
  659. codex_usage_tracking-0.17.2/src/codex_usage_tracking.egg-info/requires.txt +0 -22
  660. codex_usage_tracking-0.17.2/tests/allowance_intelligence/test_allowance_intelligence.py +0 -194
  661. codex_usage_tracking-0.17.2/tests/cli/test_allowance_intelligence_cli_mcp.py +0 -70
  662. codex_usage_tracking-0.17.2/tests/cli/test_cli_lifecycle.py +0 -876
  663. codex_usage_tracking-0.17.2/tests/cli/test_cli_parser_diagnostics.py +0 -44
  664. codex_usage_tracking-0.17.2/tests/cli/test_cli_release.py +0 -606
  665. codex_usage_tracking-0.17.2/tests/cli/test_mcp_integration.py +0 -606
  666. codex_usage_tracking-0.17.2/tests/context/test_context_action_timing.py +0 -48
  667. codex_usage_tracking-0.17.2/tests/context/test_context_evidence.py +0 -479
  668. codex_usage_tracking-0.17.2/tests/context/test_context_token_estimates.py +0 -45
  669. codex_usage_tracking-0.17.2/tests/core/test_i18n.py +0 -512
  670. codex_usage_tracking-0.17.2/tests/core/test_json_contracts.py +0 -181
  671. codex_usage_tracking-0.17.2/tests/core/test_privacy.py +0 -450
  672. codex_usage_tracking-0.17.2/tests/dashboard/test_dashboard_diagnostics_snapshots.py +0 -910
  673. codex_usage_tracking-0.17.2/tests/dashboard/test_dashboard_live.py +0 -472
  674. codex_usage_tracking-0.17.2/tests/dashboard/test_dashboard_payload.py +0 -811
  675. codex_usage_tracking-0.17.2/tests/dashboard/test_dashboard_server.py +0 -1274
  676. codex_usage_tracking-0.17.2/tests/dashboard/test_dashboard_status.py +0 -90
  677. codex_usage_tracking-0.17.2/tests/diagnostics/test_diagnostic_snapshot_events.py +0 -58
  678. codex_usage_tracking-0.17.2/tests/parser/test_parser.py +0 -599
  679. codex_usage_tracking-0.17.2/tests/parser/test_parser_inspect_log.py +0 -37
  680. codex_usage_tracking-0.17.2/tests/pricing/test_pricing.py +0 -259
  681. codex_usage_tracking-0.17.2/tests/server/test_refresh_jobs.py +0 -44
  682. codex_usage_tracking-0.17.2/tests/server/test_server_allowance.py +0 -122
  683. codex_usage_tracking-0.17.2/tests/server/test_server_api.py +0 -53
  684. codex_usage_tracking-0.17.2/tests/server/test_server_call_detail.py +0 -167
  685. codex_usage_tracking-0.17.2/tests/server/test_server_diagnostic_facts.py +0 -218
  686. codex_usage_tracking-0.17.2/tests/server/test_server_diagnostic_refresh_auth.py +0 -48
  687. codex_usage_tracking-0.17.2/tests/server/test_server_live_rows.py +0 -131
  688. codex_usage_tracking-0.17.2/tests/server/test_server_recommendations.py +0 -159
  689. codex_usage_tracking-0.17.2/tests/server/test_server_request_guards.py +0 -58
  690. codex_usage_tracking-0.17.2/tests/server/test_server_responses.py +0 -67
  691. codex_usage_tracking-0.17.2/tests/server/test_server_routes.py +0 -37
  692. codex_usage_tracking-0.17.2/tests/server/test_server_status.py +0 -139
  693. codex_usage_tracking-0.17.2/tests/server/test_server_summary.py +0 -145
  694. codex_usage_tracking-0.17.2/tests/server/test_server_threads.py +0 -165
  695. codex_usage_tracking-0.17.2/tests/server/test_server_usage_refresh.py +0 -264
  696. codex_usage_tracking-0.17.2/tests/store/test_content_index.py +0 -836
  697. codex_usage_tracking-0.17.2/tests/store/test_refresh_parallel.py +0 -124
  698. codex_usage_tracking-0.17.2/tests/store/test_store_dashboard_mcp.py +0 -1255
  699. codex_usage_tracking-0.17.2/tests/store/test_store_dashboard_queries.py +0 -178
  700. codex_usage_tracking-0.17.2/tests/store/test_store_large_batches.py +0 -106
  701. codex_usage_tracking-0.17.2/tests/store/test_store_migrations.py +0 -394
  702. codex_usage_tracking-0.17.2/tests/store/test_store_query_sql.py +0 -56
  703. codex_usage_tracking-0.17.2/tests/store/test_store_sources.py +0 -192
  704. codex_usage_tracking-0.17.2/tests/usage_drain/test_usage_drain_error_diagnostics.py +0 -161
  705. codex_usage_tracking-0.17.2/tests/usage_drain/test_usage_drain_model.py +0 -777
  706. codex_usage_tracking-0.17.2/tests/usage_drain/test_usage_drain_regime_segments.py +0 -86
  707. codex_usage_tracking-0.17.2/tests/usage_drain/test_usage_drain_regression.py +0 -68
  708. codex_usage_tracking-0.17.2/tests/usage_drain/test_usage_drain_walk_forward.py +0 -59
  709. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/.mcp.json +0 -0
  710. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/CONTRIBUTING.md +0 -0
  711. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/LICENSE +0 -0
  712. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/MANIFEST.in +0 -0
  713. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/SECURITY.md +0 -0
  714. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/assets/icon.svg +0 -0
  715. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/adoption-hardening-roadmap.md +0 -0
  716. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/agentic-briefing-and-dogfood-roadmap.md +0 -0
  717. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/agentic-investigation-hardening-roadmap.md +0 -0
  718. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/agentic-mcp-skill-roadmap.md +0 -0
  719. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/architecture/decisions/0001-package-domain-boundaries.md +0 -0
  720. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/assets/dashboard-diagnostics-git-expanded.png +0 -0
  721. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/assets/frontend-rewrite-references/cache-context-lab-reference.png +0 -0
  722. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/assets/frontend-rewrite-references/call-drilldown-menu-concept-reference.png +0 -0
  723. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/assets/frontend-rewrite-references/calls-analyst-view-reference.png +0 -0
  724. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/assets/frontend-rewrite-references/calls-high-density-reference.png +0 -0
  725. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/assets/frontend-rewrite-references/command-palette-dashboard-reference.png +0 -0
  726. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/assets/frontend-rewrite-references/diagnostics-notebook-reference.png +0 -0
  727. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/assets/frontend-rewrite-references/generated-dashboard-concept-reference.png +0 -0
  728. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/assets/frontend-rewrite-references/generated-maintainer-banner-reference.png +0 -0
  729. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/assets/frontend-rewrite-references/investigator-workbench-reference.png +0 -0
  730. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/assets/frontend-rewrite-references/overview-dashboard-reference.png +0 -0
  731. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/assets/frontend-rewrite-references/projected-weekly-credits-overlap-reference.png +0 -0
  732. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/assets/frontend-rewrite-references/thread-efficiency-reference.png +0 -0
  733. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/assets/frontend-rewrite-references/usage-drain-lab-reference.png +0 -0
  734. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/assets/plugin-prompts.png +0 -0
  735. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/assets/plugin-thread-leaderboard.png +0 -0
  736. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/assets/readme-hero-2.png +0 -0
  737. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/assets/readme-hero.png +0 -0
  738. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/assets/social-preview.png +0 -0
  739. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/assets/ux/call-detail-panel.png +0 -0
  740. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/assets/ux/insight-overview.png +0 -0
  741. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/assets/ux/thread-investigation.png +0 -0
  742. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/call-drilldown-performance-checklist.md +0 -0
  743. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/cli-reference.md +0 -0
  744. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/first-five-minutes.md +0 -0
  745. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/install.md +0 -0
  746. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/local-content-index-roadmap.md +0 -0
  747. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/maintainability-roadmap.md +0 -0
  748. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/maintainability-scorecard.md +0 -0
  749. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/pricing-and-credits.md +0 -0
  750. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/react-dashboard-0.14-release-roadmap.md +0 -0
  751. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/ui-ux-improvement-plan.md +0 -0
  752. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/docs/usage-drain-modeling.md +0 -0
  753. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/scripts/benchmark_synthetic_history.py +0 -0
  754. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/scripts/check_wemake_baseline.py +0 -0
  755. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/scripts/generate_social_preview.py +0 -0
  756. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/scripts/install_local_plugin.py +0 -0
  757. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/scripts/model_usage_drain.py +0 -0
  758. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/setup.cfg +0 -0
  759. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/__main__.py +0 -0
  760. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/allowance.py +0 -0
  761. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/allowance_intelligence/__init__.py +0 -0
  762. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/allowance_intelligence/reports.py +0 -0
  763. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/cli/__init__.py +0 -0
  764. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/cli/__main__.py +0 -0
  765. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/cli/config.py +0 -0
  766. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/cli/diagnostics.py +0 -0
  767. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/cli/output.py +0 -0
  768. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/cli/parser_diagnostics.py +0 -0
  769. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/cli/plugin_installer.py +0 -0
  770. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/context/__init__.py +0 -0
  771. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/context/action_timing.py +0 -0
  772. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/context/api.py +0 -0
  773. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/context/constants.py +0 -0
  774. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/context/loader.py +0 -0
  775. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/context/serialized.py +0 -0
  776. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/context/values.py +0 -0
  777. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/core/__init__.py +0 -0
  778. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/core/api_payloads.py +0 -0
  779. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/core/call_origin.py +0 -0
  780. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/core/i18n.py +0 -0
  781. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/core/json_contract_common.py +0 -0
  782. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/core/json_contract_validation.py +0 -0
  783. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/core/paths.py +0 -0
  784. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/core/projects.py +0 -0
  785. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/dashboard/__init__.py +0 -0
  786. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/dashboard/assets.py +0 -0
  787. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/dashboard/pricing_snapshot.py +0 -0
  788. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/diagnostics/__init__.py +0 -0
  789. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/diagnostics/action_hints.py +0 -0
  790. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/diagnostics/facts.py +0 -0
  791. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/diagnostics/reports.py +0 -0
  792. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/diagnostics/snapshot_constants.py +0 -0
  793. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/diagnostics/snapshot_report.py +0 -0
  794. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/diagnostics/snapshot_rows.py +0 -0
  795. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/diagnostics/snapshot_source_logs.py +0 -0
  796. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/diagnostics/types.py +0 -0
  797. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/mcp_server.py +0 -0
  798. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/parser/__init__.py +0 -0
  799. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/parser/state.py +0 -0
  800. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_data/__init__.py +0 -0
  801. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_data/assets/icon.svg +0 -0
  802. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard.css +0 -0
  803. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_actions.js +0 -0
  804. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_analysis.js +0 -0
  805. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_call.css +0 -0
  806. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_call_diagnostics.js +0 -0
  807. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_call_investigator.js +0 -0
  808. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_cells.js +0 -0
  809. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_data.js +0 -0
  810. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_detail.css +0 -0
  811. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_details.js +0 -0
  812. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics.js +0 -0
  813. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics_facts.js +0 -0
  814. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics_snapshots.js +0 -0
  815. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_events.js +0 -0
  816. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_filters.js +0 -0
  817. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_format.js +0 -0
  818. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_i18n.js +0 -0
  819. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_insights.css +0 -0
  820. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_insights.js +0 -0
  821. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_layout.css +0 -0
  822. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_live.js +0 -0
  823. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_payload_cache.js +0 -0
  824. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_responsive.css +0 -0
  825. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_state.js +0 -0
  826. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tables.css +0 -0
  827. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tables.js +0 -0
  828. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tooltips.js +0 -0
  829. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_data/dashboard/react/index.html +0 -0
  830. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-diagnostics-git-expanded.png +0 -0
  831. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_data/docs/assets/plugin-prompts.png +0 -0
  832. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_data/docs/assets/plugin-thread-leaderboard.png +0 -0
  833. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_data/rate_cards/codex-credit-rates.json +0 -0
  834. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/plugin_installer.py +0 -0
  835. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/pricing/__init__.py +0 -0
  836. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/pricing/allowance.py +0 -0
  837. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/pricing/allowance_config.py +0 -0
  838. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/pricing/allowance_rate_card.py +0 -0
  839. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/pricing/allowance_text.py +0 -0
  840. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/pricing/allowance_usage.py +0 -0
  841. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/pricing/api.py +0 -0
  842. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/pricing/costing.py +0 -0
  843. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/pricing/estimates.py +0 -0
  844. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/reports/__init__.py +0 -0
  845. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/reports/filters.py +0 -0
  846. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/reports/recommendation_builder.py +0 -0
  847. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/reports/recommendations.py +0 -0
  848. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/reports/support.py +0 -0
  849. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/server/__init__.py +0 -0
  850. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/server/call_detail.py +0 -0
  851. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/server/call_lists.py +0 -0
  852. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/server/context.py +0 -0
  853. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/server/context_settings.py +0 -0
  854. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/server/dashboard_shell.py +0 -0
  855. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/server/live_queries.py +0 -0
  856. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/server/open_investigator.py +0 -0
  857. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/store/__init__.py +0 -0
  858. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/store/content_index_event_store.py +0 -0
  859. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/store/rows.py +0 -0
  860. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/support.py +0 -0
  861. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/usage_drain/__init__.py +0 -0
  862. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/usage_drain/allowance_fits.py +0 -0
  863. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/usage_drain/allowance_online.py +0 -0
  864. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/usage_drain/boundary_delta.py +0 -0
  865. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/usage_drain/boundary_delta_core.py +0 -0
  866. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/usage_drain/boundary_delta_rows.py +0 -0
  867. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/usage_drain/boundary_delta_summary.py +0 -0
  868. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/usage_drain/boundary_scopes.py +0 -0
  869. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/usage_drain/boundary_summary.py +0 -0
  870. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/usage_drain/capacity_specs.py +0 -0
  871. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/usage_drain/error_diagnostics.py +0 -0
  872. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/usage_drain/feature_history.py +0 -0
  873. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/usage_drain/features.py +0 -0
  874. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/usage_drain/history_state.py +0 -0
  875. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/usage_drain/model.py +0 -0
  876. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/usage_drain/predictive.py +0 -0
  877. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/usage_drain/predictive_specs.py +0 -0
  878. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/usage_drain/regime_labels.py +0 -0
  879. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/usage_drain/regime_segments.py +0 -0
  880. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/usage_drain/state_buckets.py +0 -0
  881. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/usage_drain/state_diagnostics.py +0 -0
  882. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/usage_drain/summary_metrics.py +0 -0
  883. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/usage_drain/thread_curves.py +0 -0
  884. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/usage_drain/time_series.py +0 -0
  885. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/usage_drain/token_components.py +0 -0
  886. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/usage_drain/transition_gates.py +0 -0
  887. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/usage_drain/transition_metrics.py +0 -0
  888. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/usage_drain/types.py +0 -0
  889. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/usage_drain/utils.py +0 -0
  890. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/usage_drain/walk_forward.py +0 -0
  891. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracker/usage_drain/walk_forward_rows.py +0 -0
  892. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracking.egg-info/dependency_links.txt +0 -0
  893. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracking.egg-info/entry_points.txt +0 -0
  894. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/src/codex_usage_tracking.egg-info/top_level.txt +0 -0
  895. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/__init__.py +0 -0
  896. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/cli/test_cli_dashboard.py +0 -0
  897. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/cli/test_cli_module_entrypoints.py +0 -0
  898. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/cli/test_mcp_launcher.py +0 -0
  899. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/cli/test_plugin_installer.py +0 -0
  900. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/context/test_context_scan.py +0 -0
  901. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/context/test_context_serialized.py +0 -0
  902. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/context/test_context_summaries.py +0 -0
  903. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/context/test_context_values.py +0 -0
  904. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/core/test_call_origin.py +0 -0
  905. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/core/test_formatting.py +0 -0
  906. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/core/test_projects.py +0 -0
  907. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/core/test_redaction.py +0 -0
  908. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/core/test_schema.py +0 -0
  909. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/core/test_threads.py +0 -0
  910. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/dashboard/test_dashboard_data.py +0 -0
  911. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/dashboard/test_dashboard_pricing_snapshot.py +0 -0
  912. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/dashboard/test_dashboard_state.py +0 -0
  913. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/diagnostics/test_diagnostic_fact_classifiers.py +0 -0
  914. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/diagnostics/test_diagnostic_reports.py +0 -0
  915. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/diagnostics/test_diagnostic_snapshot_report.py +0 -0
  916. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/diagnostics/test_diagnostic_snapshot_source_scan.py +0 -0
  917. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/diagnostics/test_diagnostic_snapshots.py +0 -0
  918. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/diagnostics/test_doctor_first_run.py +0 -0
  919. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/parser/test_parser_state.py +0 -0
  920. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/pricing/test_allowance.py +0 -0
  921. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/reports/test_action_brief.py +0 -0
  922. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/reports/test_agentic_dogfood.py +0 -0
  923. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/reports/test_hypothesis_routing.py +0 -0
  924. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/reports/test_recommendations.py +0 -0
  925. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/reports/test_support.py +0 -0
  926. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/server/test_refresh_routes.py +0 -0
  927. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/server/test_server_call_lists.py +0 -0
  928. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/server/test_server_context.py +0 -0
  929. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/server/test_server_context_settings.py +0 -0
  930. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/server/test_server_dashboard_shell.py +0 -0
  931. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/server/test_server_diagnostic_snapshots.py +0 -0
  932. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/server/test_server_live_queries.py +0 -0
  933. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/server/test_server_open_investigator.py +0 -0
  934. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/store/test_source_records.py +0 -0
  935. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/store_dashboard_helpers.py +0 -0
  936. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/usage_drain/test_usage_drain_allowance_fits.py +0 -0
  937. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/usage_drain/test_usage_drain_boundary_delta.py +0 -0
  938. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/usage_drain/test_usage_drain_boundary_delta_summary.py +0 -0
  939. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/usage_drain/test_usage_drain_boundary_summary.py +0 -0
  940. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/usage_drain/test_usage_drain_feature_history.py +0 -0
  941. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/usage_drain/test_usage_drain_one_percent_capacity.py +0 -0
  942. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/usage_drain/test_usage_drain_predictive.py +0 -0
  943. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/usage_drain/test_usage_drain_report_records.py +0 -0
  944. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/usage_drain/test_usage_drain_reports.py +0 -0
  945. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/usage_drain/test_usage_drain_state_buckets.py +0 -0
  946. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/usage_drain/test_usage_drain_state_diagnostics.py +0 -0
  947. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/usage_drain/test_usage_drain_summary_metrics.py +0 -0
  948. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/usage_drain/test_usage_drain_thread_curves.py +0 -0
  949. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/usage_drain/test_usage_drain_token_components.py +0 -0
  950. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/usage_drain/test_usage_drain_transition_gates.py +0 -0
  951. {codex_usage_tracking-0.17.2 → codex_usage_tracking-0.18.0}/tests/usage_drain/test_usage_drain_transition_metrics.py +0 -0
@@ -0,0 +1,45 @@
1
+ {
2
+ "name": "codex-usage-tracker",
3
+ "version": "0.18.0",
4
+ "description": "Unofficial local Codex usage dashboard and MCP diagnostics from local session logs.",
5
+ "author": {
6
+ "name": "Douglas Monsky"
7
+ },
8
+ "homepage": "https://github.com/douglasmonsky/codex-usage-tracker",
9
+ "repository": "https://github.com/douglasmonsky/codex-usage-tracker",
10
+ "license": "MIT",
11
+ "keywords": [
12
+ "codex",
13
+ "tokens",
14
+ "usage",
15
+ "mcp",
16
+ "dashboard"
17
+ ],
18
+ "skills": "./skills/",
19
+ "mcpServers": "./.mcp.json",
20
+ "interface": {
21
+ "displayName": "Codex Usage Tracker",
22
+ "shortDescription": "Local Codex usage dashboard, MCP diagnostics, and token-waste investigations",
23
+ "longDescription": "Unofficial independent project, not made by, affiliated with, endorsed by, sponsored by, or supported by OpenAI. Reads local Codex session logs to power a local dashboard, MCP tools, allowance diagnostics, token-waste investigations, and shareable aggregate reports without uploading logs.",
24
+ "developerName": "Douglas Monsky",
25
+ "category": "Productivity",
26
+ "capabilities": [
27
+ "Interactive",
28
+ "Read",
29
+ "Write"
30
+ ],
31
+ "websiteURL": "https://github.com/douglasmonsky/codex-usage-tracker",
32
+ "privacyPolicyURL": "https://github.com/douglasmonsky/codex-usage-tracker",
33
+ "termsOfServiceURL": "https://github.com/douglasmonsky/codex-usage-tracker",
34
+ "defaultPrompt": [
35
+ "Open dashboard",
36
+ "Look through my usage for token waste",
37
+ "Suggest usage investigations",
38
+ "Check whether my weekly allowance changed"
39
+ ],
40
+ "brandColor": "#2563EB",
41
+ "composerIcon": "./assets/icon.svg",
42
+ "logo": "./assets/icon.svg",
43
+ "screenshots": []
44
+ }
45
+ }
@@ -0,0 +1,280 @@
1
+ # Codex Usage Tracker Instructions
2
+
3
+ ## Project Purpose
4
+
5
+ This repo builds a local Codex plugin and dashboard that track aggregate token usage from Codex session logs.
6
+
7
+ ## Tech Stack
8
+
9
+ - Python 3.10+
10
+ - SQLite via the Python standard library
11
+ - MCP Python SDK for Codex tool exposure
12
+ - Pytest for tests
13
+
14
+ ## Repo Layout
15
+
16
+ - `src/codex_usage_tracker/` - parser, SQLite store, reports, dashboard, CLI, and MCP server.
17
+ - `src/codex_usage_tracker/context.py` - on-demand raw-context reader for one selected usage record.
18
+ - `src/codex_usage_tracker/reports.py` - shared application/report services used by CLI and MCP wrappers.
19
+ - `src/codex_usage_tracker/api_payloads.py` - shared stable JSON payload builders for CLI and MCP surfaces.
20
+ - `src/codex_usage_tracker/schema.py` - single source of truth for persisted usage-event columns.
21
+ - `src/codex_usage_tracker/threads.py` - thread attachment inference used by dashboard payload generation.
22
+ - `src/codex_usage_tracker/pricing_config.py`, `pricing_openai.py`, `pricing_estimates.py`, and `costing.py` - pricing config, source parsing, estimate policy, and cost calculations behind the `pricing.py` facade.
23
+ - `src/codex_usage_tracker/allowance.py` - Codex credit-rate and optional local allowance-window helpers.
24
+ - `src/codex_usage_tracker/plugin_installer.py` - package-owned local Codex plugin installer.
25
+ - `src/codex_usage_tracker/plugin_data/` - plugin assets, dashboard template/assets, local dashboard guide, screenshots, and skill files bundled into wheels.
26
+ - `skills/codex-usage-tracker/` and `src/codex_usage_tracker/plugin_data/skills/codex-usage-tracker/` - operational Codex skill for tracker setup, summaries, dashboard generation, and MCP tools.
27
+ - `skills/codex-usage-api/` and `src/codex_usage_tracker/plugin_data/skills/codex-usage-api/` - companion Codex skill for conversational analysis using the stable JSON API/MCP tools.
28
+ - `src/codex_usage_tracker/server.py` - localhost dashboard server with live aggregate refresh and lazy context endpoints.
29
+ - `~/.codex-usage-tracker/pricing.json` - optional local-only pricing config, never committed.
30
+ - `~/.codex-usage-tracker/allowance.json` - optional local-only copied allowance state, never committed.
31
+ - `.codex-plugin/plugin.json` - Codex plugin manifest.
32
+ - `.mcp.json` - MCP server configuration for Codex.
33
+ - `scripts/install_local_plugin.py` - compatibility wrapper around `codex-usage-tracker install-plugin`.
34
+ - `scripts/check_release.py` - release-readiness checks for docs, versions, packaging, wheel contents, and tracked secret patterns.
35
+ - `.github/workflows/ci.yml` - GitHub Actions test and package build workflow.
36
+ - `.github/workflows/pricing-compat.yml` - scheduled/manual non-blocking live pricing parser compatibility check.
37
+ - `docs/` - install, dashboard, CLI, pricing/credits, MCP, privacy, architecture, development, JSON-schema docs, and screenshots built from synthetic aggregate fixture data.
38
+ - `tests/` - synthetic fixtures and unit tests.
39
+
40
+ ## Setup
41
+
42
+ ```bash
43
+ python3 -m venv .venv
44
+ . .venv/bin/activate
45
+ python -m pip install --upgrade pip
46
+ python -m pip install ".[dev]" twine
47
+ codex-usage-tracker install-plugin --python .venv/bin/python
48
+ ```
49
+
50
+ ## Branch And PR Workflow
51
+
52
+ This project is now a published PyPI package with user-facing docs, JSON/MCP contracts, a release workflow, and privacy guarantees. Treat `main` as always releasable.
53
+
54
+ - Do not commit directly to `main`.
55
+ - Start each coherent task from current `main` with a short-lived branch.
56
+ - Use branch prefixes `feature/`, `fix/`, `docs/`, `chore/`, `test/`, `release/`, or `hotfix/`.
57
+ - Keep each branch focused on one issue, one reviewable task, or one release.
58
+ - Do not create a long-lived `develop` branch.
59
+ - Do not mix release prep with unrelated feature work.
60
+ - Push task branches and open a PR for all changes headed to `main`.
61
+ - Prefer squash merge for ordinary task PRs so `main` stays readable.
62
+ - Use the PR as the review artifact even when there is only one maintainer.
63
+
64
+ Recommended branch names:
65
+
66
+ ```text
67
+ feature/<issue-number>-short-description
68
+ fix/<issue-number>-short-description
69
+ docs/<issue-number>-short-description
70
+ chore/<issue-number>-short-description
71
+ test/<issue-number>-short-description
72
+ release/0.4.0
73
+ hotfix/0.3.3
74
+ ```
75
+
76
+ Before starting a task branch:
77
+
78
+ ```bash
79
+ git switch main
80
+ git pull --ff-only
81
+ git switch -c docs/123-short-description
82
+ ```
83
+
84
+ ## Agent Boundaries
85
+
86
+ Codex may create task branches, write tests, update docs, run local gates, prepare PR summaries, prepare release branches, and prepare changelog/version changes.
87
+
88
+ Codex must not do these without explicit maintainer approval:
89
+
90
+ - Push directly to `main`.
91
+ - Create or push release tags.
92
+ - Publish to TestPyPI or PyPI.
93
+ - Add PyPI or TestPyPI API tokens.
94
+ - Publish from a local machine.
95
+ - Change privacy semantics.
96
+ - Rename the PyPI distribution, import package, CLI command, plugin name, MCP tools, schema IDs, or stable JSON contracts.
97
+ - Delete branches.
98
+ - Force-push shared branches.
99
+
100
+ Publishing must happen only through the approved GitHub Actions Trusted Publishing workflow and protected `testpypi`/`pypi` environments.
101
+
102
+ ## Issue And Milestone Workflow
103
+
104
+ Use GitHub issues as the normal unit of work once the task is non-trivial. A branch should usually map to one issue and close it from the PR.
105
+
106
+ Recommended labels:
107
+
108
+ ```text
109
+ bug
110
+ docs
111
+ packaging
112
+ release
113
+ privacy
114
+ security
115
+ performance
116
+ dashboard
117
+ cli
118
+ mcp
119
+ parser-compat
120
+ good-first-issue
121
+ blocked
122
+ 1.0-blocker
123
+ ```
124
+
125
+ Recommended milestones:
126
+
127
+ ```text
128
+ 0.4.0
129
+ 1.0-readiness
130
+ 1.0.0
131
+ ```
132
+
133
+ Use patch releases for public blockers such as broken PyPI installs, missing package data, broken CLI entry points, privacy leaks, bad plugin installs, or bad runtime pins. Put planned stabilization work into the next minor release instead of bundling it into a patch.
134
+
135
+ ## Performance Work
136
+
137
+ Use the `agent-perf` skill and CLI when optimizing localhost API endpoints, dashboard refreshes, report generation, content indexing, parser or SQLite hot paths, or other latency- or CPU-sensitive code, and when investigating a performance regression or making a speedup claim.
138
+
139
+ Install the repository's pinned profiling tools with `uv sync --group performance`. Profile the smallest repeatable workload with synthetic or anonymized inputs; never profile production, live private databases, arbitrary processes, or real Codex session content. Record the identical workload without a profiler before making a performance claim. Change one suspected cause at a time, rerun the unprofiled workload, and use `agent-perf compare` only to compare attribution evidence rather than as proof of a speedup.
140
+
141
+ ## Validation
142
+
143
+ Run focused tests first, then broader checks. Run the full local CI gate before opening or updating PRs that touch release, packaging, CLI contracts, MCP behavior, dashboard behavior, privacy behavior, schemas, generated docs/assets, or bundled plugin/skill files.
144
+
145
+ ## Source Inspection And Tool Output
146
+
147
+ Large command outputs in Codex chat can be visually compacted by the transcript renderer. When inspecting source, especially after broad `rg`, `sed`, `nl`, generated dashboard assets, logs, or workflow output, do not treat a mangled rendered snippet as proof that the file is corrupt. Prefer small targeted file windows, `git diff`, `python -m py_compile`, focused tests, and CI as the source of truth. If exact syntax matters, inspect a narrow range or use a parser/compiler rather than relying on large printed source dumps.
148
+
149
+ ```bash
150
+ python -m ruff check .
151
+ python -m mypy
152
+ python -m pytest
153
+ python -m pytest --cov=codex_usage_tracker --cov-report=term-missing
154
+ python -m compileall src
155
+ for file in src/codex_usage_tracker/plugin_data/dashboard/dashboard*.js; do
156
+ node --check "$file"
157
+ done
158
+ python scripts/check_release.py
159
+ git diff --check
160
+ rm -rf dist build src/codex_usage_tracker.egg-info src/codex_usage_tracking.egg-info
161
+ python -m build
162
+ python -m twine check dist/*
163
+ python scripts/check_release.py --dist
164
+ ```
165
+
166
+ Additional smoke checks for touched CLI surfaces:
167
+
168
+ ```bash
169
+ python -m pytest
170
+ python -m compileall src
171
+ for file in src/codex_usage_tracker/plugin_data/dashboard/dashboard*.js; do
172
+ node --check "$file"
173
+ done
174
+ python -m build
175
+ python scripts/check_release.py --dist
176
+ git diff --check
177
+ python scripts/smoke_installed_package.py
178
+ codex-usage-tracker update-pricing --output /tmp/codex-usage-pricing.json
179
+ codex-usage-tracker update-rate-card --output /tmp/codex-usage-rate-card.json
180
+ codex-usage-tracker doctor
181
+ codex-usage-tracker doctor --suggest-repair
182
+ codex-usage-tracker dashboard --output /tmp/codex-usage-dashboard.html
183
+ codex-usage-tracker serve-dashboard --help
184
+ codex-usage-tracker init-allowance --output /tmp/codex-usage-allowance.json
185
+ codex-usage-tracker parse-allowance --output /tmp/codex-usage-allowance.json "5h 79% 6:50 PM Weekly 33% Jun 7"
186
+ codex-usage-tracker init-thresholds --output /tmp/codex-usage-thresholds.json
187
+ codex-usage-tracker init-projects --output /tmp/codex-usage-projects.json
188
+ codex-usage-tracker support-bundle --output /tmp/codex-usage-support.json
189
+ codex-usage-tracker pricing-coverage
190
+ codex-usage-tracker summary --preset by-subagent-role
191
+ codex-usage-tracker expensive --limit 5
192
+ ```
193
+
194
+ For documentation-only branches, at minimum run:
195
+
196
+ ```bash
197
+ python scripts/check_release.py
198
+ git diff --check
199
+ ```
200
+
201
+ ## Release Branches
202
+
203
+ Use release branches only for version/changelog/pinning/publish prep, for example `release/0.4.0` or `hotfix/0.3.3`.
204
+
205
+ Release branches may include:
206
+
207
+ - Version bumps.
208
+ - `CHANGELOG.md` updates.
209
+ - Install/version wording updates.
210
+ - Runtime package pins.
211
+ - Publish workflow tweaks.
212
+ - Release notes.
213
+ - Final smoke-test fixes directly tied to release readiness.
214
+
215
+ Release branches must not include unrelated features.
216
+
217
+ Recommended release sequence:
218
+
219
+ ```bash
220
+ git switch main
221
+ git pull --ff-only
222
+ git switch -c release/0.4.0
223
+ # version/changelog/release edits
224
+ python -m ruff check .
225
+ python -m mypy
226
+ python -m pytest
227
+ python -m pytest --cov=codex_usage_tracker --cov-report=term-missing
228
+ python -m compileall src
229
+ for file in src/codex_usage_tracker/plugin_data/dashboard/dashboard*.js; do
230
+ node --check "$file"
231
+ done
232
+ python scripts/check_release.py
233
+ git diff --check
234
+ rm -rf dist build src/codex_usage_tracker.egg-info src/codex_usage_tracking.egg-info
235
+ python -m build
236
+ python -m twine check dist/*
237
+ python scripts/check_release.py --dist
238
+ git add .
239
+ git commit -m "Prepare 0.4.0 release"
240
+ git push -u origin release/0.4.0
241
+ ```
242
+
243
+ Open a PR to `main` and merge only after CI passes. After merge, tag from updated `main`, not from an unreviewed release branch, and only after explicit maintainer approval:
244
+
245
+ ```bash
246
+ git switch main
247
+ git pull --ff-only
248
+ git tag -a v0.4.0 -m "codex-usage-tracker 0.4.0"
249
+ git push origin v0.4.0
250
+ ```
251
+
252
+ ## Privacy Rules
253
+
254
+ - Never commit real Codex session logs.
255
+ - Never commit real prompts, assistant text, tool outputs, pasted secrets, message snippets, or raw Codex logs.
256
+ - The local content index may store bounded snippets in the user-owned SQLite database by approved design. Do not expose indexed/raw content through default CSV, generated HTML, support bundles, screenshots, aggregate JSON, fixtures based on real logs, or commits.
257
+ - Raw context may be read during refresh/content indexing or explicit selected-call context loading. Keep shareable outputs aggregate-first unless a command is explicitly documented as a local raw/content export.
258
+ - Keep fixture data synthetic.
259
+ - Keep local SQLite databases, CSV exports, HTML dashboards, caches, and virtualenvs out of git.
260
+ - Do not hard-code real current USD model pricing in source; refresh the local config from OpenAI's published pricing docs or use manual local overrides. Internal Codex model estimates must be explicitly marked as estimates with source and rationale metadata.
261
+ - Source-stamped Codex credit rate-card snapshots must include source/date metadata, confidence labels, and local override support. Manually copied allowance remaining values stay in local config only.
262
+
263
+ ## Definition Of Done
264
+
265
+ - Parser and content-index handling are covered by synthetic session logs.
266
+ - SQLite refresh is idempotent.
267
+ - MCP tool functions return concise aggregate data by default; content-aware tools must be explicit local investigation surfaces.
268
+ - Dashboard generated HTML is aggregate-first and does not embed indexed/raw content.
269
+ - Doctor, summary presets, dashboard, and expensive-call views work from CLI and MCP wrappers.
270
+ - `codex-usage-tracker install-plugin` can register the installed package without relying on a source-checkout symlink.
271
+ - `python -m codex_usage_tracker` and `codex-usage-tracker --version` both work.
272
+ - Wheel and source distribution builds include plugin assets and the Codex skill.
273
+ - `scripts/check_release.py --dist` passes before any public release.
274
+ - Pricing coverage clearly separates configured, estimated, and unpriced model usage.
275
+ - Codex credit coverage clearly separates exact rate-card matches, inferred aliases, and missing credit rates.
276
+ - Dashboard Calls and Threads views share filters, totals, and aggregate-first hover details.
277
+ - Dashboard usage docs are updated when the visible dashboard workflow changes, and screenshots must be generated from synthetic data only.
278
+ - Dashboard refresh is localhost-only, generated HTML stays aggregate-first, and context loading is lazy, localhost-only, explicit, redacted, and not embedded in the static HTML payload.
279
+ - Subagent calls preserve logged parent-session metadata, latch to parent thread labels when available, and auto-review attachment is clearly marked when inferred.
280
+ - Tests and compile checks pass.
@@ -0,0 +1,270 @@
1
+ # Changelog
2
+
3
+ ## Unreleased
4
+
5
+ ## 0.18.0 - 2026-07-15
6
+
7
+ - Exclude exact historical calls copied by cloned Codex tasks from default dashboard, CLI, MCP, report, allowance, compression, recommendation, and export totals while retaining every physical source row for local provenance.
8
+ - Add aggregate deduplication diagnostics across the CLI, MCP server, localhost API, and dashboard status strip, including physical, canonical, and excluded row/token counts with bounded provenance metadata.
9
+ - Preserve new post-clone calls as normal usage, promote a surviving copy when an original source disappears, and migrate existing local indexes without losing usage history.
10
+ - Restore large-history dashboard performance with canonical query indexes and explicit SQLite join/scan plans; the 100,000-row route budget now passes for summaries, recommendations, diagnostics, threads, and thread-call paging.
11
+
12
+ ## 0.17.2 - 2026-07-09
13
+
14
+ - Add GPT-5.6 Sol, Terra, and Luna API pricing and Codex credit-rate support, including the official `gpt-5.6` alias and compatibility with OpenAI's new cache-write pricing column.
15
+
16
+ ## 0.17.1 - 2026-07-09
17
+
18
+ - Stabilize async dogfood cache fingerprints so repeated unchanged MCP dogfood runs can reuse cached reports even when SQLite file metadata changes during read/report activity.
19
+
20
+ ## 0.17.0 - 2026-07-08
21
+
22
+ - Add agentic MCP investigation tools for hypothesis-driven usage diagnostics, compact evidence briefs, and actionable recommendation reports.
23
+ - Add repeated file rediscovery, shell churn, and large low-output usage diagnostics to identify avoidable local workflow waste.
24
+ - Improve bundled skill guidance so Codex can route vague usage questions into concrete tracker endpoints, Headroom suggestions, and custom remediation ideas.
25
+ - Add async dogfood progress polling and warm result caching so longer usage investigations can report progress and rerun faster.
26
+ - Speed up content indexing with incremental append metadata, parallel source parsing, and batched FTS rebuilds.
27
+ - Add dashboard refresh progress bars, no-cap paged loading, loaded-call metrics, token breakdowns, persisted loading preferences, and restored usage-drain chart data.
28
+
29
+ ## 0.16.2 - 2026-07-08
30
+
31
+ - Restore Usage Drain, Investigator Workbench, Reports, and related dashboard charts by deriving shared usage-drain series from loaded aggregate rows again.
32
+ - Keep sparse line charts expanded to their panel width so low-point datasets do not collapse into the left edge.
33
+
34
+ ## 0.16.1 - 2026-07-08
35
+
36
+ - Add async refresh progress polling and dashboard progress bars for long all-row loads.
37
+ - Speed up local content index refreshes with batched writes and parallel source extraction.
38
+ - Load uncapped dashboard rows in finite pages so no-cap mode stays responsive on large histories.
39
+ - Show loaded-call counts and call-level token breakdowns on Overview metric cards.
40
+ - Restore session row/history loading preferences after browser refresh without storing large row payloads.
41
+
42
+ ## 0.16.0 - 2026-07-07
43
+
44
+ - Add allowance intelligence foundation with normalized allowance history, evidence-graded change diagnostics, local evidence exports, and API/MCP report surfaces for weekly-vs-5-hour usage analysis.
45
+ - Add local content-indexed MCP/API exploration surfaces, including content search, thread trace, pattern scans, investigation walks, and strict local evidence exports.
46
+ - Add roadmap for default local content indexing, SQLite FTS5 search, parser drift handling, and future diagnostics for repeated file rediscovery, shell churn, and large low-output calls.
47
+ - Fix schema initialization so already-applied migrations are not rerun during read/report calls on migrated local databases.
48
+
49
+ ## 0.15.1 - 2026-07-05
50
+
51
+ - Fix the PyPI wheel package resources by tracking the React dashboard `index.html` entrypoint used by `serve-dashboard` and installed-package smoke tests.
52
+
53
+ ## 0.15.0 - 2026-07-05
54
+
55
+ - Make the companion plugin/skills remediation-aware for token-waste investigations, including Headroom suggestions when available, dashboard verification paths, and custom local automation ideas.
56
+ - Fix React dashboard package verification for public release readiness, including bundled React dashboard resources in local wheel smoke coverage and refreshed synthetic Calls/Details README screenshots.
57
+ - Harden React dashboard context evidence and diagnostics smoke tests against current row-selection and duplicate-heading behavior.
58
+ - Recenter the README around talking with the plugin/skill about local aggregate usage, with example conversation docs for token-waste and remediation workflows.
59
+
60
+ ## 0.14.1 - 2026-07-04
61
+
62
+ - Harden React dashboard responsive chrome, including topbar control wrapping, table containment, sticky table affordances, mobile nav polish, and refreshed synthetic dashboard screenshots.
63
+
64
+ ## 0.14.0 - 2026-07-04
65
+
66
+ - Make `serve-dashboard --open` prefer the React dashboard route while keeping legacy `/dashboard.html` available as a localhost fallback, and expose both URLs in `serve-dashboard --json`.
67
+ - Restore major legacy dashboard parity in the React dashboard, including overview recent-call loading controls, sticky thread/header table affordances, row-to-investigator actions, diagnostics fact-call pagination, report and call sorting state, and legacy URL/filter normalization.
68
+ - Add local-only transition safeguards: the prominent unofficial-project banner, aggregate-only privacy boundaries, rebuilt dashboard assets, and release-gate documentation for the React bundle.
69
+ - Prioritize weekly usage windows in Overview and Settings so weekly remaining usage is surfaced ahead of short 5-hour windows.
70
+ - Expose dashboard-shaped MCP payloads for status, calls, call details, threads, report packs, and dashboard recommendations, and teach bundled skills concrete token-waste investigation prompts.
71
+
72
+ ## 0.13.1 - 2026-06-30
73
+
74
+ - Add guided usage-summary diagnostics across CLI, API, and dashboard to explain the largest aggregate drivers behind usage.
75
+
76
+ ## 0.13.0 - 2026-06-30
77
+
78
+ - Add first-run onboarding docs covering install, setup, live-dashboard launch, empty-dashboard troubleshooting, plugin discovery, and safe issue diagnostics.
79
+ - Improve `doctor --json` first-run environment reporting so support requests can distinguish missing logs, empty history, and plugin/runtime path issues faster.
80
+ - Add safe support-bundle issue-report fields and issue-template guidance so users can attach diagnostics without leaking prompts, tool outputs, commands, patches, or raw paths in strict mode.
81
+ - Strengthen installed-wheel lifecycle smoke coverage across setup, doctor, dashboard generation, strict support bundles, and plugin resources.
82
+ - Harden strict support-bundle redaction for nested diagnostic paths, Python executable paths, and resolved `/private/var`-style platform path aliases.
83
+
84
+ ## 0.12.1 - 2026-06-29
85
+
86
+ - Ship the package-domain boundary refactor behind compatibility facades so existing CLI, imports, dashboard routes, JSON payloads, and MCP entrypoints keep working while the source tree is organized by responsibility.
87
+ - Add Tach domain configuration files, refreshed Agent Maintainer baselines, and package-boundary documentation for the new module layout.
88
+ - Restore `python -m codex_usage_tracker.cli` after the CLI package split and add regression coverage for both module entrypoints.
89
+ - Split allowance pricing helpers into smaller modules while preserving the public allowance facade.
90
+
91
+ ## 0.12.0 - 2026-06-29
92
+
93
+ - Refactor CLI, dashboard server routing, SQLite store/query boundaries, context parsing, diagnostics, and usage-drain modeling into smaller modules with compatibility facades.
94
+ - Add local Agent Maintainer ratchet configuration, strict local `tach check`, maintainability boundary docs, and a maintainability scorecard for future cleanup work.
95
+ - Harden Diagnostics dashboard behavior for projected weekly credits charts, command expansion, live row status, and desktop/mobile smoke coverage.
96
+ - Clean up warning-sensitive tests so the full suite runs without SQLite/resource-handle `ResourceWarning` noise.
97
+ - Validate the refactor against a frozen local JSONL rebuild comparison before release.
98
+
99
+ ## 0.11.4 - 2026-06-27
100
+
101
+ - Fix `codex-usage-tracker setup` on large local histories by batching stale diagnostic-fact deletes so SQLite does not exceed bound-variable limits during usage index refresh.
102
+ - Add synthetic regression coverage for large diagnostic fact refreshes under a low SQLite variable ceiling. Thanks to `@gevikhn` for the Windows setup failure report.
103
+
104
+ ## 0.11.3 - 2026-06-23
105
+
106
+ - Fix Windows `serve-dashboard` asset loading by forcing JavaScript, CSS, JSON, and SVG MIME types in the localhost server instead of trusting OS registry MIME mappings.
107
+
108
+ ## 0.11.2 - 2026-06-23
109
+
110
+ - Fix served dashboard shell hydration so `serve-dashboard --no-refresh` reliably populates the calls table from `/api/usage` when the initial HTML contains zero rows but indexed rows are available.
111
+ - Harden the synthetic source-log benchmark smoke test so shared-runner timing noise does not leave a stale red release check.
112
+ - Improve benchmark smoke test failures so future threshold failures report the parsed JSON payload and threshold details instead of only a generic subprocess error.
113
+
114
+ ## 0.11.1 - 2026-06-23
115
+
116
+ - Move projected weekly credits to the top of the Diagnostics tab and add the 95% CI range to the projection table.
117
+ - Add per-section `Reload` controls for stale or missing diagnostic snapshot cards so one failed or missing section can be recomputed without a full diagnostics refresh.
118
+
119
+ ## 0.11.0 - 2026-06-22
120
+
121
+ - Add usage-drain diagnostic reports for token accounting, allowance breakpoints, predictive model highlights, weekly visible usage, weekly projected credits, and cumulative thread cost curves.
122
+ - Add dashboard Diagnostics charts for weekly usage remaining and projected weekly credits, including per-plan trend lines, confidence bars, compact date labels, and large-history horizontal scaling.
123
+ - Add CLI/API support for usage-drain diagnostics with stable JSON contracts and synthetic report-generation tests.
124
+ - Add usage-drain modeling documentation and a synthetic README screenshot focused on the new diagnostics charts.
125
+ - Harden diagnostic table alignment, parser-warning visibility, file-modification rendering, and Python 3.14 type-check coverage.
126
+
127
+ ## 0.10.1 - 2026-06-21
128
+
129
+ - Add lightweight action timing metadata to context evidence so call investigations can show elapsed time for parsed tool and command actions without persisting raw command text or outputs.
130
+ - Add synthetic README diagnostics coverage for the Git Interactions panel and package the screenshot with installed plugin docs.
131
+
132
+ ## 0.10.0 - 2026-06-21
133
+
134
+ - Add Git/GitHub CLI diagnostic snapshots with safe operation labels, coarse categories, mutability buckets, and terminal token-count coverage.
135
+ - Add file-modification diagnostic snapshots for structured patch events, modified-path aggregates, extension counts, and largest modification events without storing patch text or raw paths.
136
+ - Add derived call timing fields for call start, duration, previous-call timestamp, and previous-call gap across dashboard rows, details, CSV/export actions, live API sorting, and thread aggregates.
137
+ - Surface `Duration`, `Prev gap`, `Longest duration`, and `Longest gap` in the dashboard with localized labels and focused regression coverage.
138
+ - Reconcile all diagnostics panels into one release so `overview`, `tool-output`, `commands`, `git-interactions`, `file-reads`, `file-modifications`, `read-productivity`, and `concentration` can refresh together from the live dashboard.
139
+
140
+ ## 0.9.0 - 2026-06-21
141
+
142
+ - Add persisted aggregate diagnostic snapshots with explicit on-demand refresh metadata and schema-versioned CLI/API contracts.
143
+ - Add dashboard Diagnostics panels for overview, tool output, commands, file reads, read productivity, and concentration.
144
+ - Add tool-output and command reports with terminal token-count buckets, missing-count coverage, command roots, and expandable command children.
145
+ - Add file-read and read-productivity reports with token allocation, largest read commands, read-to-modify correlation, and privacy-safe path labels.
146
+ - Add concentration reports for top source/session, project/cwd, and day shares without leaking raw source-log paths.
147
+ - Keep Diagnostics refresh isolated from normal live dashboard refresh so regular usage updates do not recompute or blink diagnostic panels.
148
+ - Add Playwright diagnostics smoke coverage and release documentation for the snapshot pipeline, privacy boundary, and on-demand refresh behavior.
149
+
150
+ ## 0.8.1 - 2026-06-20
151
+
152
+ - Make Diagnostics fact tables easier to scan by widening and pinning the Fact column while horizontally scrolling.
153
+ - Add API-backed sortable headers to top-level Diagnostics fact tables, including cached input, output, cache ratio, largest call, latest call time, occurrence, call-count, and fact-name sorts.
154
+
155
+ ## 0.8.0 - 2026-06-20
156
+
157
+ - Add an aggregate Diagnostics dashboard for inspecting diagnostic facts, associated calls, token totals, and on-demand evidence without persisting raw transcript text.
158
+ - Add diagnostic fact extraction, reporting APIs, dashboard drilldowns, sortable associated-call tables, and load-more controls for larger diagnostic result sets.
159
+ - Add source byte offsets and context seek diagnostics so on-demand evidence loading can seek when offsets are valid and fall back safely when they are missing or stale.
160
+ - Harden dashboard startup so visiting Diagnostics before other views load no longer prevents Calls, Threads, or Overview from hydrating.
161
+ - Make Live refresh use the cached/indexed append path and fetch only newly visible leading rows instead of running the full manual refresh reset cycle.
162
+
163
+ ## 0.7.0 - 2026-06-18
164
+
165
+ - Parse latest observed Codex usage snapshots from local rate-limit and token-count log events without persisting raw transcript text.
166
+ - Store observed 5h and weekly usage snapshot fields in aggregate rows and expose a latest-observed usage summary for dashboard and API consumers.
167
+ - Add a dashboard card for latest observed 5h and weekly usage with wording that distinguishes local observations from authoritative account limits.
168
+ - Default the dashboard table experience to time-sorted Calls, replace the visible Signals column with Reasoning Output, and keep the Signals field out of the table for now.
169
+ - Ignore known non-token parser events so refreshes stay focused on usage-bearing records.
170
+
171
+ ## 0.6.1 - 2026-06-13
172
+
173
+ - Polish the README landing screenshots with matched dashboard/investigator previews and an additional lower investigator evidence view.
174
+ - Restore the companion plugin prompt preview near the companion skill section and package companion screenshots with installed docs assets.
175
+ - Keep dashboard toolbar links styled like buttons in the call investigator.
176
+
177
+ ## 0.6.0 - 2026-06-13
178
+
179
+ - Remove low-value call/thread anchor diagnostics from the experimental call investigator to avoid an extra source-log scan per context load.
180
+ - Persist call-origin metadata as categorical aggregate fields during indexing so normal dashboard payloads do not reopen source JSONL logs to infer user-vs-Codex initiation.
181
+ - Persist archived-session scope, conservative thread keys, and per-thread previous/next call links as aggregate helper fields for faster dashboard filtering and investigator navigation.
182
+ - Add opt-in localhost API timing diagnostics for `/api/usage` and `/api/context` without exposing raw transcript content.
183
+ - Reduce explicit context loading to a quick default mode that omits tool output and serialized buckets, with full serialized JSONL bucket analysis still available on demand.
184
+ - Add source-log-aware synthetic benchmark coverage that verifies normal dashboard payload assembly does not open generated source JSONL files.
185
+ - Add SQL-backed live dashboard API slices for status, calls, one call, threads, thread calls, summary, and recommendations while preserving the compatibility `/api/usage` endpoint.
186
+ - Materialize active and all-history thread summaries in SQLite so live thread APIs can read pre-aggregated totals.
187
+ - Add source-file refresh cursors so live refresh skips unchanged logs, seeks to appended JSONL bytes when safe, and safely replaces aggregate rows for changed or truncated source logs.
188
+ - Hydrate direct call-investigator links from the aggregate `/api/call` endpoint when the selected record is outside the currently loaded table slice or filter state.
189
+ - Replace placeholder non-English dashboard locale catalogs with translated UI catalogs and add regression coverage for core visible labels.
190
+
191
+ ## 0.5.0 - 2026-06-10
192
+
193
+ - Add the dashboard localization foundation, including initial locale catalogs, language metadata, local browser language selection, `--lang`, and `CODEX_USAGE_TRACKER_LANG`.
194
+ - Add Vietnamese dashboard localization and focused validation coverage for translated dashboard labels.
195
+ - Keep the README landing page focused on dashboard screenshots and companion usage workflows before detailed localization guidance.
196
+ - Stabilize the CI synthetic benchmark smoke so coverage instrumentation does not create false release failures.
197
+ - Pin the marketplace MCP runtime launcher to the exact `codex-usage-tracking==0.5.0` package.
198
+
199
+ ## 0.4.1 - 2026-06-09
200
+
201
+ - Harden the production PyPI workflow so manual publishing must run from `main` or a tag ref before artifacts are downloaded and uploaded.
202
+ - Skip TestPyPI/PyPI uploads when the exact distribution version already exists on the target index, allowing a GitHub Release to be reconciled after a workflow-dispatch publish.
203
+ - Strengthen `scripts/check_release.py` so it validates the publish-ref preflight inside both the TestPyPI and PyPI jobs.
204
+ - Check off completed 1.0 readiness items with evidence for migration coverage, localhost dashboard smoke testing, and the protected GitHub `pypi` environment.
205
+ - Pin the marketplace MCP runtime launcher to the exact `codex-usage-tracking==0.4.1` package.
206
+
207
+ ## 0.4.0 - 2026-06-09
208
+
209
+ - Add official Python 3.14 support across CI, package classifiers, README/install docs, and installed-package Docker smoke coverage.
210
+ - Add a release recovery runbook for failed publish workflows, stale PyPI/TestPyPI pages, Trusted Publishing issues, bad artifacts, and patch-forward recovery.
211
+ - Add synthetic large-history benchmark thresholds for active/all-history dashboard queries, date filtering, model/effort filtering, recommendations, pricing coverage, and project summaries.
212
+ - Add stricter privacy regression coverage for generated dashboards, CSV exports, API payloads, and support bundles.
213
+ - Redact sensitive strings and local diagnostic paths in support bundles, including nested doctor output in redacted and strict privacy modes.
214
+ - Add aggregate schema migration, JSON contract parity, installed-package smoke, and protected-main workflow readiness coverage.
215
+ - Pin the marketplace MCP runtime launcher to the exact `codex-usage-tracking==0.4.0` package.
216
+
217
+ ## 0.3.2 - 2026-06-08
218
+
219
+ - Make `open-dashboard` and `serve-dashboard` refresh active-session logs by default, with `--no-refresh` as the explicit cached-index mode.
220
+ - Add a token-protected dashboard action for enabling context loading without restarting a localhost server that started with context loading off.
221
+
222
+ ## 0.3.1 - 2026-06-08
223
+
224
+ - Fix packaged Codex Usage Tracker skills so dashboard-open requests start the live localhost dashboard instead of a static snapshot.
225
+ - Mirror live-dashboard skill guidance between source-tree skills and packaged plugin-data copies so release and wheel checks stay green.
226
+ - Use the valid explicit context API flag form, `serve-dashboard --refresh --context-api explicit --open`, for live dashboard launches.
227
+
228
+ ## 0.3.0 - 2026-06-08
229
+
230
+ 0.3.0 is a stabilization and public-preview release for the dashboard, CLI, MCP tools, local privacy model, packaged Codex plugin, and companion usage skills. The PyPI/TestPyPI distribution name is now `codex-usage-tracking`; the GitHub repository remains `douglasmonsky/codex-usage-tracker`, the Python import package remains `codex_usage_tracker`, and the installed CLI command remains `codex-usage-tracker`.
231
+
232
+ - Add tested JSON contract validation for stable CLI and MCP payload schemas.
233
+ - Add schema markers to doctor, pricing coverage, MCP dashboard/export/config, and opt-in context payloads.
234
+ - Add ranked CLI/MCP recommendations with severity score, primary recommendation, secondary signals, and thread rollups.
235
+ - Add offset-aware localhost dashboard usage API responses for paged aggregate-row automation.
236
+ - Add a synthetic large-history benchmark script for 10k, 100k, and 500k aggregate-row SQLite fixtures.
237
+ - Add focused mypy coverage for core JSON contract, recommendation, report, schema, model, and store modules.
238
+ - Add Ruff, coverage, and dashboard JavaScript syntax checks to CI.
239
+ - Split dashboard JavaScript helpers into formatting, data, state, and rendering/runtime assets.
240
+ - Add issue templates for bugs, parser compatibility, pricing/allowance issues, and feature requests.
241
+ - Expand security guidance for project metadata privacy, support bundles, and localhost dashboard tokens.
242
+
243
+ ## 0.2.0
244
+
245
+ - Add project metadata privacy modes for dashboard, query, session, summary, CSV export, MCP, and support-bundle surfaces.
246
+ - Add Codex credit estimates and optional local allowance-window context to the dashboard.
247
+ - Add prominent unofficial-project disclaimers to docs, dashboard output, and plugin metadata.
248
+ - Harden malformed token-count parsing, SQLite concurrency, MCP raw-context opt-in, pricing parser diagnostics, bundled dashboard docs, and schema migrations.
249
+ - Fix Python 3.10 compatibility for UTC timestamps and release checks.
250
+ - Add package-owned Codex plugin installation with `codex-usage-tracker install-plugin`.
251
+ - Package plugin assets and the Codex skill into the Python wheel.
252
+ - Add a companion `codex-usage-api` skill for conversational analysis through aggregate-only API/MCP data.
253
+ - Add distribution metadata, source distribution manifest, and CI build checks.
254
+ - Add `python -m codex_usage_tracker` support and CLI `--version` output.
255
+ - Add release-readiness checks for version alignment, required docs, package data, built wheels, and tracked secret patterns.
256
+ - Harden marketplace MCP runtime bootstrapping so cached runtimes refresh when the bundled package pin changes.
257
+ - Harden local dashboard server responses with browser security headers and safer IPv6 localhost URLs.
258
+ - Tighten the dashboard header copy, add click/keyboard row inspection, and keep detailed usage guidance out of the primary UI.
259
+ - Keep call details sticky while scrolling and render timestamps as local human-readable date/time values.
260
+ - Prefer non-review models in mixed thread model summaries, add fit-to-width model labels, and add a scroll-aware `Top` button.
261
+ - Hide single-page dashboard pagination and keep multi-page controls compact in the toolbar.
262
+ - Render fetched and refreshed timestamps as local human-readable date-times and make the call details scrollbar visible.
263
+ - Rewrite the README around practical usage investigations, long-chat context growth, and pre-release limitations.
264
+ - Add a screenshot-driven dashboard guide built from synthetic aggregate fixture data.
265
+ - Preserve requested virtualenv Python paths during plugin install instead of resolving through interpreter symlinks.
266
+ - Keep generated dashboards, SQLite databases, CSV exports, and raw Codex logs out of git.
267
+
268
+ ## 0.1.13
269
+
270
+ - Add dashboard load limits, API limits, and pagination for larger Codex histories.