codex-usage-tracking 0.12.1__tar.gz → 0.13.1__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 (382) hide show
  1. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/.codex-plugin/plugin.json +1 -1
  2. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/CHANGELOG.md +12 -0
  3. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/PKG-INFO +6 -2
  4. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/README.md +5 -1
  5. codex_usage_tracking-0.13.1/docs/adoption-hardening-roadmap.md +130 -0
  6. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/docs/cli-json-schemas.md +2 -0
  7. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/docs/cli-reference.md +4 -1
  8. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/docs/development.md +10 -7
  9. codex_usage_tracking-0.13.1/docs/first-five-minutes.md +93 -0
  10. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/docs/install.md +3 -1
  11. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/docs/one-dot-oh-readiness.md +8 -8
  12. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/pyproject.toml +1 -1
  13. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/scripts/smoke_installed_package.py +199 -3
  14. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/skills/codex-usage-tracker/scripts/run_mcp.py +2 -2
  15. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/__init__.py +1 -1
  16. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/cli/diagnostics.py +3 -0
  17. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/cli/main.py +13 -1
  18. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/cli/parser_diagnostics.py +12 -0
  19. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/core/formatting.py +41 -0
  20. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/core/json_contract_cli.py +31 -19
  21. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/core/json_contract_diagnostics.py +25 -8
  22. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/diagnostics/api.py +112 -2
  23. codex_usage_tracking-0.13.1/src/codex_usage_tracker/diagnostics/guided_summary.py +544 -0
  24. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/diagnostics/snapshot_constants.py +2 -0
  25. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/diagnostics/snapshot_payloads.py +10 -0
  26. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/diagnostics/snapshot_report.py +53 -0
  27. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/diagnostics/snapshots.py +34 -0
  28. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics_snapshots.js +58 -6
  29. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/reports/support.py +94 -4
  30. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/server/diagnostic_routes.py +11 -0
  31. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/server/routes.py +2 -0
  32. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracking.egg-info/PKG-INFO +6 -2
  33. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracking.egg-info/SOURCES.txt +4 -0
  34. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/cli/test_cli_lifecycle.py +19 -0
  35. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/cli/test_cli_parser_diagnostics.py +8 -0
  36. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/dashboard/test_dashboard_server.py +15 -0
  37. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/diagnostics/test_diagnostic_snapshot_report.py +2 -0
  38. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/diagnostics/test_diagnostic_snapshots.py +75 -0
  39. codex_usage_tracking-0.13.1/tests/diagnostics/test_doctor_first_run.py +42 -0
  40. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/reports/test_support.py +11 -0
  41. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/.mcp.json +0 -0
  42. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/AGENTS.md +0 -0
  43. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/CONTRIBUTING.md +0 -0
  44. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/LICENSE +0 -0
  45. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/MANIFEST.in +0 -0
  46. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/SECURITY.md +0 -0
  47. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/assets/icon.svg +0 -0
  48. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/docs/architecture/decisions/0001-package-domain-boundaries.md +0 -0
  49. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/docs/architecture-boundary-map.md +0 -0
  50. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/docs/architecture.md +0 -0
  51. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/docs/assets/dashboard-call-investigator-evidence.png +0 -0
  52. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/docs/assets/dashboard-call-investigator-preview.png +0 -0
  53. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/docs/assets/dashboard-call-investigator.png +0 -0
  54. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/docs/assets/dashboard-calls-preview.png +0 -0
  55. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/docs/assets/dashboard-calls.png +0 -0
  56. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/docs/assets/dashboard-details.png +0 -0
  57. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/docs/assets/dashboard-diagnostics-git-expanded.png +0 -0
  58. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/docs/assets/dashboard-diagnostics.png +0 -0
  59. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/docs/assets/dashboard-insights.png +0 -0
  60. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/docs/assets/dashboard-threads.png +0 -0
  61. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/docs/assets/plugin-prompts.png +0 -0
  62. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/docs/assets/plugin-thread-leaderboard.png +0 -0
  63. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/docs/assets/ux/call-detail-panel.png +0 -0
  64. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/docs/assets/ux/insight-overview.png +0 -0
  65. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/docs/assets/ux/thread-investigation.png +0 -0
  66. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/docs/call-drilldown-performance-checklist.md +0 -0
  67. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/docs/dashboard-guide.md +0 -0
  68. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/docs/maintainability-roadmap.md +0 -0
  69. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/docs/maintainability-scorecard.md +0 -0
  70. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/docs/mcp.md +0 -0
  71. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/docs/pricing-and-credits.md +0 -0
  72. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/docs/privacy.md +0 -0
  73. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/docs/ui-ux-improvement-plan.md +0 -0
  74. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/docs/usage-drain-modeling.md +0 -0
  75. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/scripts/benchmark_synthetic_history.py +0 -0
  76. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/scripts/check_release.py +0 -0
  77. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/scripts/check_wemake_baseline.py +0 -0
  78. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/scripts/install_local_plugin.py +0 -0
  79. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/scripts/model_usage_drain.py +0 -0
  80. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/setup.cfg +0 -0
  81. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/skills/codex-usage-api/SKILL.md +0 -0
  82. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/skills/codex-usage-tracker/SKILL.md +0 -0
  83. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/__main__.py +0 -0
  84. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/allowance.py +0 -0
  85. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/cli/__init__.py +0 -0
  86. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/cli/__main__.py +0 -0
  87. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/cli/config.py +0 -0
  88. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/cli/dashboard.py +0 -0
  89. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/cli/mcp_server.py +0 -0
  90. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/cli/output.py +0 -0
  91. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/cli/parser.py +0 -0
  92. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/cli/plugin_installer.py +0 -0
  93. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/context/__init__.py +0 -0
  94. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/context/action_timing.py +0 -0
  95. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/context/api.py +0 -0
  96. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/context/constants.py +0 -0
  97. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/context/loader.py +0 -0
  98. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/context/reader.py +0 -0
  99. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/context/serialized.py +0 -0
  100. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/context/summaries.py +0 -0
  101. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/context/token_estimates.py +0 -0
  102. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/context/values.py +0 -0
  103. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/core/__init__.py +0 -0
  104. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/core/api_payloads.py +0 -0
  105. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/core/call_origin.py +0 -0
  106. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/core/i18n.py +0 -0
  107. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/core/json_contract_common.py +0 -0
  108. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/core/json_contract_server.py +0 -0
  109. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/core/json_contract_validation.py +0 -0
  110. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/core/json_contracts.py +0 -0
  111. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/core/models.py +0 -0
  112. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/core/paths.py +0 -0
  113. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/core/projects.py +0 -0
  114. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/core/redaction.py +0 -0
  115. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/core/schema.py +0 -0
  116. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/core/threads.py +0 -0
  117. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/dashboard/__init__.py +0 -0
  118. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/dashboard/api.py +0 -0
  119. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/dashboard/assets.py +0 -0
  120. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/dashboard/pricing_snapshot.py +0 -0
  121. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/diagnostics/__init__.py +0 -0
  122. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/diagnostics/action_hints.py +0 -0
  123. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/diagnostics/fact_classifiers.py +0 -0
  124. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/diagnostics/facts.py +0 -0
  125. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/diagnostics/mcp.py +0 -0
  126. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/diagnostics/reports.py +0 -0
  127. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/diagnostics/snapshot_analysis.py +0 -0
  128. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/diagnostics/snapshot_concentration.py +0 -0
  129. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/diagnostics/snapshot_events.py +0 -0
  130. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/diagnostics/snapshot_rows.py +0 -0
  131. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/diagnostics/snapshot_source_logs.py +0 -0
  132. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/diagnostics/snapshot_source_scan.py +0 -0
  133. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/diagnostics/types.py +0 -0
  134. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/mcp_server.py +0 -0
  135. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/parser/__init__.py +0 -0
  136. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/parser/api.py +0 -0
  137. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/parser/jsonl_v1.py +0 -0
  138. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/parser/jsonl_values.py +0 -0
  139. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/parser/state.py +0 -0
  140. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/__init__.py +0 -0
  141. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/assets/icon.svg +0 -0
  142. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard.css +0 -0
  143. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard.js +0 -0
  144. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_actions.js +0 -0
  145. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_analysis.js +0 -0
  146. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_call.css +0 -0
  147. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_call_diagnostics.js +0 -0
  148. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_call_investigator.js +0 -0
  149. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_cells.js +0 -0
  150. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_data.js +0 -0
  151. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_detail.css +0 -0
  152. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_details.js +0 -0
  153. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics.js +0 -0
  154. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics_facts.js +0 -0
  155. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_events.js +0 -0
  156. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_filters.js +0 -0
  157. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_format.js +0 -0
  158. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_i18n.js +0 -0
  159. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_insights.css +0 -0
  160. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_insights.js +0 -0
  161. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_layout.css +0 -0
  162. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_live.js +0 -0
  163. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_payload_cache.js +0 -0
  164. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_responsive.css +0 -0
  165. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_state.js +0 -0
  166. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_status.js +0 -0
  167. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tables.css +0 -0
  168. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tables.js +0 -0
  169. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_template.html +0 -0
  170. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tooltips.js +0 -0
  171. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/ar.json +0 -0
  172. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/de.json +0 -0
  173. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/en.json +0 -0
  174. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/es.json +0 -0
  175. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/fr.json +0 -0
  176. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/it.json +0 -0
  177. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/ja.json +0 -0
  178. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/ko.json +0 -0
  179. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/pt.json +0 -0
  180. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/ru.json +0 -0
  181. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/vi.json +0 -0
  182. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/zh-Hans.json +0 -0
  183. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator-evidence.png +0 -0
  184. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator-preview.png +0 -0
  185. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator.png +0 -0
  186. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-calls-preview.png +0 -0
  187. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-calls.png +0 -0
  188. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-details.png +0 -0
  189. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-diagnostics-git-expanded.png +0 -0
  190. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-diagnostics.png +0 -0
  191. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-insights.png +0 -0
  192. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-threads.png +0 -0
  193. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/docs/assets/plugin-prompts.png +0 -0
  194. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/docs/assets/plugin-thread-leaderboard.png +0 -0
  195. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/docs/dashboard-guide.html +0 -0
  196. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/rate_cards/codex-credit-rates.json +0 -0
  197. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/skills/codex-usage-api/SKILL.md +0 -0
  198. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_data/skills/codex-usage-tracker/SKILL.md +0 -0
  199. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/plugin_installer.py +0 -0
  200. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/pricing/__init__.py +0 -0
  201. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/pricing/allowance.py +0 -0
  202. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/pricing/allowance_config.py +0 -0
  203. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/pricing/allowance_rate_card.py +0 -0
  204. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/pricing/allowance_text.py +0 -0
  205. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/pricing/allowance_usage.py +0 -0
  206. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/pricing/api.py +0 -0
  207. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/pricing/config.py +0 -0
  208. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/pricing/costing.py +0 -0
  209. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/pricing/estimates.py +0 -0
  210. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/pricing/openai.py +0 -0
  211. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/reports/__init__.py +0 -0
  212. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/reports/api.py +0 -0
  213. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/reports/filters.py +0 -0
  214. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/reports/project_summary.py +0 -0
  215. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/reports/recommendation_builder.py +0 -0
  216. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/reports/recommendations.py +0 -0
  217. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/server/__init__.py +0 -0
  218. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/server/api.py +0 -0
  219. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/server/call_detail.py +0 -0
  220. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/server/call_lists.py +0 -0
  221. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/server/context.py +0 -0
  222. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/server/context_settings.py +0 -0
  223. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/server/dashboard_shell.py +0 -0
  224. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/server/diagnostic_facts.py +0 -0
  225. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/server/diagnostic_snapshots.py +0 -0
  226. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/server/handler.py +0 -0
  227. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/server/live_queries.py +0 -0
  228. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/server/live_rows.py +0 -0
  229. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/server/open_investigator.py +0 -0
  230. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/server/recommendations.py +0 -0
  231. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/server/request_guards.py +0 -0
  232. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/server/responses.py +0 -0
  233. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/server/status.py +0 -0
  234. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/server/summary.py +0 -0
  235. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/server/threads.py +0 -0
  236. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/server/usage_refresh.py +0 -0
  237. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/server/utils.py +0 -0
  238. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/store/__init__.py +0 -0
  239. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/store/api.py +0 -0
  240. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/store/connection.py +0 -0
  241. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/store/dashboard_queries.py +0 -0
  242. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/store/diagnostic_call_queries.py +0 -0
  243. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/store/diagnostic_queries.py +0 -0
  244. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/store/exports.py +0 -0
  245. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/store/query_sql.py +0 -0
  246. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/store/refresh.py +0 -0
  247. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/store/rows.py +0 -0
  248. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/store/schema.py +0 -0
  249. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/store/sources.py +0 -0
  250. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/store/summary_queries.py +0 -0
  251. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/store/thread_summaries.py +0 -0
  252. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/store/usage_api_queries.py +0 -0
  253. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/store/usage_record_queries.py +0 -0
  254. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/store/usage_timing.py +0 -0
  255. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/support.py +0 -0
  256. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/__init__.py +0 -0
  257. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/allowance_breakpoints.py +0 -0
  258. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/allowance_fits.py +0 -0
  259. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/allowance_online.py +0 -0
  260. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/boundary_delta.py +0 -0
  261. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/boundary_delta_core.py +0 -0
  262. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/boundary_delta_rows.py +0 -0
  263. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/boundary_delta_summary.py +0 -0
  264. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/boundary_scopes.py +0 -0
  265. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/boundary_summary.py +0 -0
  266. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/capacity_specs.py +0 -0
  267. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/error_diagnostics.py +0 -0
  268. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/feature_history.py +0 -0
  269. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/features.py +0 -0
  270. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/grace.py +0 -0
  271. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/history_state.py +0 -0
  272. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/model.py +0 -0
  273. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/predictive.py +0 -0
  274. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/predictive_specs.py +0 -0
  275. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/proxy_fit.py +0 -0
  276. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/regime_labels.py +0 -0
  277. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/regime_segments.py +0 -0
  278. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/regression.py +0 -0
  279. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/reports.py +0 -0
  280. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/spans.py +0 -0
  281. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/state_buckets.py +0 -0
  282. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/state_diagnostics.py +0 -0
  283. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/summary_metrics.py +0 -0
  284. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/thread_curves.py +0 -0
  285. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/time_series.py +0 -0
  286. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/token_components.py +0 -0
  287. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/transition_gates.py +0 -0
  288. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/transition_metrics.py +0 -0
  289. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/types.py +0 -0
  290. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/utils.py +0 -0
  291. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/walk_forward.py +0 -0
  292. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracker/usage_drain/walk_forward_rows.py +0 -0
  293. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracking.egg-info/dependency_links.txt +0 -0
  294. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracking.egg-info/entry_points.txt +0 -0
  295. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracking.egg-info/requires.txt +0 -0
  296. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/src/codex_usage_tracking.egg-info/top_level.txt +0 -0
  297. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/__init__.py +0 -0
  298. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/cli/test_cli_module_entrypoints.py +0 -0
  299. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/cli/test_cli_release.py +0 -0
  300. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/cli/test_mcp_integration.py +0 -0
  301. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/cli/test_mcp_launcher.py +0 -0
  302. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/cli/test_plugin_installer.py +0 -0
  303. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/context/test_context_action_timing.py +0 -0
  304. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/context/test_context_evidence.py +0 -0
  305. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/context/test_context_scan.py +0 -0
  306. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/context/test_context_serialized.py +0 -0
  307. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/context/test_context_summaries.py +0 -0
  308. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/context/test_context_token_estimates.py +0 -0
  309. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/context/test_context_values.py +0 -0
  310. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/core/test_call_origin.py +0 -0
  311. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/core/test_formatting.py +0 -0
  312. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/core/test_i18n.py +0 -0
  313. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/core/test_json_contracts.py +0 -0
  314. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/core/test_privacy.py +0 -0
  315. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/core/test_projects.py +0 -0
  316. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/core/test_redaction.py +0 -0
  317. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/core/test_schema.py +0 -0
  318. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/core/test_threads.py +0 -0
  319. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/dashboard/test_dashboard_data.py +0 -0
  320. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/dashboard/test_dashboard_diagnostics_snapshots.py +0 -0
  321. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/dashboard/test_dashboard_live.py +0 -0
  322. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/dashboard/test_dashboard_payload.py +0 -0
  323. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/dashboard/test_dashboard_pricing_snapshot.py +0 -0
  324. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/dashboard/test_dashboard_state.py +0 -0
  325. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/dashboard/test_dashboard_status.py +0 -0
  326. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/diagnostics/test_diagnostic_fact_classifiers.py +0 -0
  327. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/diagnostics/test_diagnostic_reports.py +0 -0
  328. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/diagnostics/test_diagnostic_snapshot_events.py +0 -0
  329. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/diagnostics/test_diagnostic_snapshot_source_scan.py +0 -0
  330. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/parser/test_parser.py +0 -0
  331. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/parser/test_parser_inspect_log.py +0 -0
  332. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/parser/test_parser_state.py +0 -0
  333. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/pricing/test_allowance.py +0 -0
  334. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/pricing/test_pricing.py +0 -0
  335. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/reports/test_recommendations.py +0 -0
  336. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/server/test_server_call_detail.py +0 -0
  337. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/server/test_server_call_lists.py +0 -0
  338. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/server/test_server_context.py +0 -0
  339. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/server/test_server_context_settings.py +0 -0
  340. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/server/test_server_dashboard_shell.py +0 -0
  341. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/server/test_server_diagnostic_facts.py +0 -0
  342. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/server/test_server_diagnostic_refresh_auth.py +0 -0
  343. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/server/test_server_diagnostic_snapshots.py +0 -0
  344. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/server/test_server_live_queries.py +0 -0
  345. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/server/test_server_live_rows.py +0 -0
  346. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/server/test_server_open_investigator.py +0 -0
  347. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/server/test_server_recommendations.py +0 -0
  348. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/server/test_server_request_guards.py +0 -0
  349. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/server/test_server_responses.py +0 -0
  350. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/server/test_server_routes.py +0 -0
  351. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/server/test_server_status.py +0 -0
  352. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/server/test_server_summary.py +0 -0
  353. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/server/test_server_threads.py +0 -0
  354. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/server/test_server_usage_refresh.py +0 -0
  355. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/store/test_store_dashboard_mcp.py +0 -0
  356. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/store/test_store_dashboard_queries.py +0 -0
  357. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/store/test_store_large_batches.py +0 -0
  358. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/store/test_store_migrations.py +0 -0
  359. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/store/test_store_query_sql.py +0 -0
  360. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/store/test_store_sources.py +0 -0
  361. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/store_dashboard_helpers.py +0 -0
  362. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/usage_drain/test_usage_drain_allowance_fits.py +0 -0
  363. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/usage_drain/test_usage_drain_boundary_delta.py +0 -0
  364. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/usage_drain/test_usage_drain_boundary_delta_summary.py +0 -0
  365. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/usage_drain/test_usage_drain_boundary_summary.py +0 -0
  366. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/usage_drain/test_usage_drain_error_diagnostics.py +0 -0
  367. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/usage_drain/test_usage_drain_feature_history.py +0 -0
  368. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/usage_drain/test_usage_drain_model.py +0 -0
  369. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/usage_drain/test_usage_drain_one_percent_capacity.py +0 -0
  370. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/usage_drain/test_usage_drain_predictive.py +0 -0
  371. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/usage_drain/test_usage_drain_regime_segments.py +0 -0
  372. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/usage_drain/test_usage_drain_regression.py +0 -0
  373. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/usage_drain/test_usage_drain_report_records.py +0 -0
  374. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/usage_drain/test_usage_drain_reports.py +0 -0
  375. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/usage_drain/test_usage_drain_state_buckets.py +0 -0
  376. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/usage_drain/test_usage_drain_state_diagnostics.py +0 -0
  377. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/usage_drain/test_usage_drain_summary_metrics.py +0 -0
  378. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/usage_drain/test_usage_drain_thread_curves.py +0 -0
  379. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/usage_drain/test_usage_drain_token_components.py +0 -0
  380. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/usage_drain/test_usage_drain_transition_gates.py +0 -0
  381. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/usage_drain/test_usage_drain_transition_metrics.py +0 -0
  382. {codex_usage_tracking-0.12.1 → codex_usage_tracking-0.13.1}/tests/usage_drain/test_usage_drain_walk_forward.py +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codex-usage-tracker",
3
- "version": "0.12.1",
3
+ "version": "0.13.1",
4
4
  "description": "Unofficial local tracker for aggregate Codex token usage from local session logs.",
5
5
  "author": {
6
6
  "name": "Douglas Monsky"
@@ -2,6 +2,18 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.13.1 - 2026-06-30
6
+
7
+ - Add guided usage-summary diagnostics across CLI, API, and dashboard to explain the largest aggregate drivers behind usage.
8
+
9
+ ## 0.13.0 - 2026-06-30
10
+
11
+ - Add first-run onboarding docs covering install, setup, live-dashboard launch, empty-dashboard troubleshooting, plugin discovery, and safe issue diagnostics.
12
+ - Improve `doctor --json` first-run environment reporting so support requests can distinguish missing logs, empty history, and plugin/runtime path issues faster.
13
+ - 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.
14
+ - Strengthen installed-wheel lifecycle smoke coverage across setup, doctor, dashboard generation, strict support bundles, and plugin resources.
15
+ - Harden strict support-bundle redaction for nested diagnostic paths, Python executable paths, and resolved `/private/var`-style platform path aliases.
16
+
5
17
  ## 0.12.1 - 2026-06-29
6
18
 
7
19
  - 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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codex-usage-tracking
3
- Version: 0.12.1
3
+ Version: 0.13.1
4
4
  Summary: Unofficial local Codex plugin and dashboard for investigating aggregate token usage, costs, caching, and thread patterns.
5
5
  Author: Douglas Monsky
6
6
  License-Expression: MIT
@@ -53,7 +53,7 @@ Local-first dashboard, Codex plugin, and companion skill for understanding where
53
53
 
54
54
  [![CI](https://github.com/douglasmonsky/codex-usage-tracker/actions/workflows/ci.yml/badge.svg)](https://github.com/douglasmonsky/codex-usage-tracker/actions/workflows/ci.yml)
55
55
  [![PyPI](https://img.shields.io/pypi/v/codex-usage-tracking.svg)](https://pypi.org/project/codex-usage-tracking/)
56
- [![PyPI Downloads](https://static.pepy.tech/personalized-badge/codex-usage-tracking?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=BLUE&left_text=downloads)](https://pepy.tech/projects/codex-usage-tracking)
56
+ [![PyPI Downloads](https://static.pepy.tech/personalized-badge/codex-usage-tracking?period=total&units=INTERNATIONAL_SYSTEM&left_color=GREY&right_color=RED&left_text=downloads)](https://pepy.tech/projects/codex-usage-tracking)
57
57
  ![Python 3.10-3.14](https://img.shields.io/badge/python-3.10--3.14-blue)
58
58
  [![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
59
59
 
@@ -78,6 +78,8 @@ codex-usage-tracker serve-dashboard --open
78
78
  Use your normal Python launcher for your platform: `python3` is common on macOS/Linux, and `py` may be preferable on Windows. On macOS with Homebrew, `brew install pipx` is also fine.
79
79
  If `codex-usage-tracker` is not found after installing with pipx, open a new terminal or add the binary directory printed by `pipx ensurepath` to your `PATH`.
80
80
 
81
+ First install? Start with the [First Five Minutes guide](docs/first-five-minutes.md) for setup, verification, empty-dashboard checks, and safe issue diagnostics.
82
+
81
83
  `serve-dashboard` refreshes active-session usage before opening by default. Use `--no-refresh` only when you intentionally want to inspect the cached local index.
82
84
 
83
85
  Package naming: the PyPI distribution is `codex-usage-tracking`; the installed command is `codex-usage-tracker`; the GitHub repository remains `douglasmonsky/codex-usage-tracker`. The `codex-usage-tracker` PyPI name is not this project, so avoid similarly named packages when following these docs.
@@ -319,6 +321,8 @@ This is optional. The normal shell install above is the fastest trusted path for
319
321
 
320
322
  ## Roadmap
321
323
 
324
+ The next phase is adoption hardening: better first-run setup, safer support bundles, clearer guided diagnostics, and scale/reliability checks now that more people are trying the project. See [Adoption Hardening Roadmap](docs/adoption-hardening-roadmap.md) for the branch-by-branch plan.
325
+
322
326
  - Keep Python runtime support validated with CI matrix coverage, package classifiers, release docs, and installed-package smoke tests.
323
327
  - Improve the `Set limits` flow with a paste/import experience for 5-hour and weekly allowance snapshots.
324
328
  - Track allowance snapshot history so local Codex credits can be compared against visible remaining-usage changes over time.
@@ -9,7 +9,7 @@ Local-first dashboard, Codex plugin, and companion skill for understanding where
9
9
 
10
10
  [![CI](https://github.com/douglasmonsky/codex-usage-tracker/actions/workflows/ci.yml/badge.svg)](https://github.com/douglasmonsky/codex-usage-tracker/actions/workflows/ci.yml)
11
11
  [![PyPI](https://img.shields.io/pypi/v/codex-usage-tracking.svg)](https://pypi.org/project/codex-usage-tracking/)
12
- [![PyPI Downloads](https://static.pepy.tech/personalized-badge/codex-usage-tracking?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=BLUE&left_text=downloads)](https://pepy.tech/projects/codex-usage-tracking)
12
+ [![PyPI Downloads](https://static.pepy.tech/personalized-badge/codex-usage-tracking?period=total&units=INTERNATIONAL_SYSTEM&left_color=GREY&right_color=RED&left_text=downloads)](https://pepy.tech/projects/codex-usage-tracking)
13
13
  ![Python 3.10-3.14](https://img.shields.io/badge/python-3.10--3.14-blue)
14
14
  [![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
15
15
 
@@ -34,6 +34,8 @@ codex-usage-tracker serve-dashboard --open
34
34
  Use your normal Python launcher for your platform: `python3` is common on macOS/Linux, and `py` may be preferable on Windows. On macOS with Homebrew, `brew install pipx` is also fine.
35
35
  If `codex-usage-tracker` is not found after installing with pipx, open a new terminal or add the binary directory printed by `pipx ensurepath` to your `PATH`.
36
36
 
37
+ First install? Start with the [First Five Minutes guide](docs/first-five-minutes.md) for setup, verification, empty-dashboard checks, and safe issue diagnostics.
38
+
37
39
  `serve-dashboard` refreshes active-session usage before opening by default. Use `--no-refresh` only when you intentionally want to inspect the cached local index.
38
40
 
39
41
  Package naming: the PyPI distribution is `codex-usage-tracking`; the installed command is `codex-usage-tracker`; the GitHub repository remains `douglasmonsky/codex-usage-tracker`. The `codex-usage-tracker` PyPI name is not this project, so avoid similarly named packages when following these docs.
@@ -275,6 +277,8 @@ This is optional. The normal shell install above is the fastest trusted path for
275
277
 
276
278
  ## Roadmap
277
279
 
280
+ The next phase is adoption hardening: better first-run setup, safer support bundles, clearer guided diagnostics, and scale/reliability checks now that more people are trying the project. See [Adoption Hardening Roadmap](docs/adoption-hardening-roadmap.md) for the branch-by-branch plan.
281
+
278
282
  - Keep Python runtime support validated with CI matrix coverage, package classifiers, release docs, and installed-package smoke tests.
279
283
  - Improve the `Set limits` flow with a paste/import experience for 5-hour and weekly allowance snapshots.
280
284
  - Track allowance snapshot history so local Codex credits can be compared against visible remaining-usage changes over time.
@@ -0,0 +1,130 @@
1
+ # Adoption Hardening Roadmap
2
+
3
+ This roadmap covers the next phase after the `0.12.x` architecture repair. The project is now getting enough outside attention that the priority shifts from fast feature expansion to making first-run setup, support, diagnostics, and large-history behavior boring for new users.
4
+
5
+ ## Current Signals
6
+
7
+ - GitHub interest has moved beyond personal-use scale: stars, forks, clones, and traffic are all growing.
8
+ - The project has already handled outside bug reports around Windows dashboard serving and large-history SQLite limits.
9
+ - The release cadence has been fast, so the next minor releases should tighten trust and support surfaces before adding more complex diagnostics.
10
+ - Current local gates are healthy: Ruff, MyPy, Tach, release checks, Agent Maintainer fast profile, and pytest pass.
11
+ - Main technical debt is no longer giant files, but there are still dense domains: `usage_drain`, `server`, dashboard APIs, and large integration tests.
12
+
13
+ ## Operating Rules
14
+
15
+ - Keep `main` always releasable.
16
+ - Use one short-lived branch per reviewable capability.
17
+ - Prefer PRs even for solo-maintainer work so each change has a review artifact.
18
+ - Avoid stacking branches unless a later branch truly depends on an earlier one.
19
+ - Do not release every small branch. Release after a coherent group of user-facing improvements lands.
20
+ - Preserve privacy guarantees: no raw prompts, assistant messages, tool outputs, patch text, secrets, or private config values in stored snapshots, support bundles, screenshots, generated dashboards, or test fixtures.
21
+
22
+ ## 0.13: Adoption Hardening
23
+
24
+ Goal: make first-time installs and bug reports easier for users who did not build the tool.
25
+
26
+ Branches:
27
+
28
+ - `feature/doctor-first-run-report`
29
+ - Make `doctor` clearly report Python version, package version, Codex log discovery, tracker DB path, dashboard asset health, plugin registration state, and common Windows/browser pitfalls.
30
+ - Add `--json` parity for any new fields shown in text output.
31
+ - Acceptance: focused doctor tests plus installed-package smoke coverage.
32
+
33
+ - `feature/support-bundle-issue-flow`
34
+ - Improve strict support bundle output for issue reports.
35
+ - Add a short CLI hint showing which safe fields users can paste into GitHub issues.
36
+ - Acceptance: privacy tests prove strict bundles do not leak raw prompts, outputs, full paths, tokens, or private config values.
37
+
38
+ - `test/installed-wheel-platform-smokes`
39
+ - Strengthen wheel-level smoke tests for setup, dashboard generation, `serve-dashboard --help`, `doctor`, support bundle, and bundled dashboard assets.
40
+ - Keep CI runtime reasonable by using synthetic logs and selected commands.
41
+ - Acceptance: wheel smoke catches entrypoint and package-data regressions before release.
42
+
43
+ - `docs/first-five-minutes-onboarding`
44
+ - Add a concise first-run walkthrough: install, setup, launch, verify, troubleshoot.
45
+ - Include "what to do if the dashboard is empty" and "what to attach to an issue" sections.
46
+ - Acceptance: README stays scannable; deeper details live in docs.
47
+
48
+ Release target:
49
+
50
+ - Ship `0.13.0` once the user-facing flow feels reliable.
51
+
52
+ ## 0.14: Guided Diagnostics
53
+
54
+ Goal: turn powerful diagnostics into plain answers before exposing more raw charts.
55
+
56
+ Branches:
57
+
58
+ - `feature/guided-usage-summary`
59
+ - Add a "What is driving my usage?" report across dashboard and CLI.
60
+ - Prioritize threads, models, effort, cache misses, subagents, command/tool activity, and usage-drain signals.
61
+
62
+ - `feature/weekly-allowance-change-report`
63
+ - Add a guided report explaining projected weekly credits, confidence bands, observed usage coverage, and caveats.
64
+ - Avoid overclaiming; frame changes as local evidence, not universal allowance proof.
65
+
66
+ - `feature/thread-efficiency-report`
67
+ - Add thread-level efficiency indicators: cost per visible call, cache behavior, cold resume signs, context pressure, and long-thread tradeoffs.
68
+
69
+ - `feature/diagnostics-refresh-diff`
70
+ - Show what changed since the previous diagnostics refresh.
71
+ - Keep this snapshot-based and on demand.
72
+
73
+ Release target:
74
+
75
+ - Ship `0.14.0` when at least two guided reports are useful end to end.
76
+
77
+ ## 0.15: Reliability And Scale
78
+
79
+ Goal: make large histories and long diagnostics predictable.
80
+
81
+ Branches:
82
+
83
+ - `perf/large-history-refresh-benchmarks`
84
+ - Add synthetic benchmark thresholds for setup, refresh, diagnostics refresh, and dashboard API payloads.
85
+
86
+ - `feature/diagnostics-refresh-progress`
87
+ - Add progress/status for expensive diagnostics refreshes so users know whether work is running, stale, failed, or complete.
88
+
89
+ - `fix/resumable-diagnostic-snapshots`
90
+ - Make failed diagnostic snapshot refreshes isolated and resumable by section.
91
+
92
+ - `test/parser-compat-fixtures`
93
+ - Add focused parser fixtures for new Codex log shapes as users report them.
94
+
95
+ Release target:
96
+
97
+ - Ship `0.15.0` when refresh behavior is explainable for both normal and large histories.
98
+
99
+ ## 0.16: Maintainability Ratchet
100
+
101
+ Goal: keep the project easy to change while adoption grows.
102
+
103
+ Branches:
104
+
105
+ - `refactor/usage-drain-subpackages`
106
+ - Split usage-drain internals by spans, features, models, reports, charts, and allowance helpers.
107
+
108
+ - `refactor/server-api-boundaries`
109
+ - Split server routing, static assets, diagnostics APIs, usage APIs, and response helpers.
110
+
111
+ - `refactor/xenon-b-ranked-modules`
112
+ - Reduce the current B-ranked Xenon modules until `xenon --max-absolute B --max-modules A --max-average A src` can pass.
113
+
114
+ - `chore/expand-mypy-coverage`
115
+ - Expand MyPy coverage in small safe slices.
116
+
117
+ Release target:
118
+
119
+ - These can land behind compatibility facades and may ship as `0.16.0` or be spread across smaller minors if that materially reduces release risk.
120
+
121
+ ## 1.0 Readiness Bar
122
+
123
+ Do not call the project `1.0` until:
124
+
125
+ - First-run setup is boring on macOS, Windows, and Linux.
126
+ - The support-bundle issue flow is privacy-safe and easy to use.
127
+ - Dashboard and CLI JSON contracts are documented and stable.
128
+ - Diagnostics are useful but clearly caveated where inference is uncertain.
129
+ - Large-history refresh behavior is predictable.
130
+ - Several outside issue reports have been handled without emergency patch churn.
@@ -37,6 +37,7 @@ Tracked schema ids:
37
37
  | --- | --- |
38
38
  | `codex-usage-tracker-setup-v1` | CLI `setup --json` |
39
39
  | `codex-usage-tracker-doctor-v1` | CLI `doctor --json`, MCP `usage_doctor(response_format="json")` |
40
+ | | Includes an `environment` object with package and Python versions, important local paths, lightweight Codex log discovery counts, and packaged dashboard asset health. Support bundles sanitize this payload according to the selected privacy mode. |
40
41
  | `codex-usage-tracker-plugin-install-v1` | CLI `install-plugin --json`, setup plugin payload |
41
42
  | `codex-usage-tracker-plugin-upgrade-v1` | CLI `upgrade-plugin --json` |
42
43
  | `codex-usage-tracker-plugin-uninstall-v1` | CLI `uninstall-plugin --json` |
@@ -55,6 +56,7 @@ Tracked schema ids:
55
56
  | `codex-usage-tracker-diagnostic-file-modifications-v1` | CLI `diagnostics file-modifications --json`, dashboard server `/api/diagnostics/file-modifications` |
56
57
  | `codex-usage-tracker-diagnostic-read-productivity-v1` | CLI `diagnostics read-productivity --json`, dashboard server `/api/diagnostics/read-productivity` |
57
58
  | `codex-usage-tracker-diagnostic-concentration-v1` | CLI `diagnostics concentration --json`, dashboard server `/api/diagnostics/concentration` |
59
+ | `codex-usage-tracker-diagnostic-guided-summary-v1` | CLI `diagnostics guided-summary --json`, dashboard server `/api/diagnostics/guided-summary` |
58
60
  | `codex-usage-tracker-diagnostic-usage-drain-v1` | CLI `diagnostics usage-drain --json`, dashboard server `/api/diagnostics/usage-drain` |
59
61
  | `codex-usage-tracker-session-v1` | CLI `session --json`, MCP `session_usage(response_format="json")` |
60
62
  | `codex-usage-tracker-context-v1` | CLI `context`, MCP `usage_call_context` when raw context is explicitly enabled |
@@ -128,6 +128,7 @@ codex-usage-tracker diagnostics file-reads --refresh
128
128
  codex-usage-tracker diagnostics file-modifications --refresh
129
129
  codex-usage-tracker diagnostics read-productivity --refresh
130
130
  codex-usage-tracker diagnostics concentration --refresh
131
+ codex-usage-tracker diagnostics guided-summary --refresh
131
132
  codex-usage-tracker diagnostics fact-calls --fact-type compaction --fact-name post_compaction
132
133
  ```
133
134
 
@@ -135,7 +136,7 @@ Diagnostics expose structured event patterns and their associated token totals.
135
136
 
136
137
  Snapshot diagnostics are persisted aggregate reports. Without `--refresh`, snapshot commands return the latest stored payload or a `missing` status. With `--refresh`, they recompute from indexed source logs and replace the stored section snapshot. Ordinary `refresh`, `open-dashboard`, and dashboard `Refresh` update usage rows only; they do not recompute diagnostic snapshots.
137
138
 
138
- The snapshot sections answer different questions: `overview` summarizes usage rows and aggregate token totals, `tool-output` counts functions and terminal `Original token count` coverage, `commands` keeps command roots plus bounded safe child labels, `git-interactions` counts safe Git/GitHub CLI operations and token-count coverage, `file-reads` counts reader/path activity and allocated read-output tokens, `file-modifications` counts patch modification events and safe modified-path aggregates, `read-productivity` reports later-edit correlations for matching path keys, and `concentration` shows top-N token share by source/session, cwd/project, and day.
139
+ The snapshot sections answer different questions: `overview` summarizes usage rows and aggregate token totals, `tool-output` counts functions and terminal `Original token count` coverage, `commands` keeps command roots plus bounded safe child labels, `git-interactions` counts safe Git/GitHub CLI operations and token-count coverage, `file-reads` counts reader/path activity and allocated read-output tokens, `file-modifications` counts patch modification events and safe modified-path aggregates, `read-productivity` reports later-edit correlations for matching path keys, `concentration` shows top-N token share by source/session, cwd/project, and day, and `guided-summary` turns aggregate usage patterns into a short "what is driving usage" report.
139
140
 
140
141
  Diagnostic payloads are aggregate-only. They do not include prompts, assistant text, tool arguments, tool output, patch text, raw commands, command arguments, file contents, raw absolute paths, or JSONL fragments. Git interaction diagnostics persist only root and operation labels such as `git/status` or `gh/pr`, category counts, and token coverage; they do not persist branch names, remotes, file paths, tags, commit messages, PR titles, or release notes. File-read and file-modification diagnostics use basename-only path labels plus short irreversible hashes, read-productivity percentages are temporal correlations rather than proof that a read caused a later edit, and concentration reports use safe source/session, cwd, and day labels only.
141
142
 
@@ -187,6 +188,8 @@ codex-usage-tracker --privacy-mode strict support-bundle --output ~/.codex-usage
187
188
 
188
189
  Support bundles are diagnostic summaries for issues. They include package, platform, doctor, schema, parser, pricing, allowance, threshold, project-config, and privacy metadata. They exclude raw logs, aggregate rows, prompts, assistant messages, tool output, and context text.
189
190
 
191
+ Strict support bundles include an `issue_report` section that lists the paste-safe sections and fields for GitHub issues. Review the JSON before posting, and do not add raw JSONL logs, prompts, assistant messages, tool output, command text, patch text, full local paths, secrets, credentials, or private config values.
192
+
190
193
  ## Local Config
191
194
 
192
195
  ```bash
@@ -38,7 +38,7 @@ fix/<issue-number>-short-description
38
38
  docs/<issue-number>-short-description
39
39
  chore/<issue-number>-short-description
40
40
  test/<issue-number>-short-description
41
- release/0.12.1
41
+ release/0.13.1
42
42
  hotfix/0.3.3
43
43
  ```
44
44
 
@@ -91,7 +91,10 @@ blocked
91
91
  Recommended milestones:
92
92
 
93
93
  ```text
94
- 0.12.1
94
+ 0.13-adoption-hardening
95
+ 0.14-guided-diagnostics
96
+ 0.15-reliability-scale
97
+ 0.16-maintainability-ratchet
95
98
  1.0-readiness
96
99
  1.0.0
97
100
  ```
@@ -146,8 +149,8 @@ python scripts/smoke_installed_package.py --docker
146
149
  To verify the public PyPI package instead of the local checkout:
147
150
 
148
151
  ```bash
149
- python scripts/smoke_installed_package.py --from-pypi --version 0.12.1
150
- python scripts/smoke_installed_package.py --docker --from-pypi --version 0.12.1
152
+ python scripts/smoke_installed_package.py --from-pypi --version 0.13.1
153
+ python scripts/smoke_installed_package.py --docker --from-pypi --version 0.13.1
151
154
  ```
152
155
 
153
156
  `scripts/check_release.py` treats these public-package smoke commands as release-state claims. Keep their `--version` and `codex-usage-tracking==...` values aligned with `pyproject.toml`; the release gate fails when the docs claim a different public version. It also checks that install docs point at the real PyPI distribution, `codex-usage-tracking`, and keep the warning that `codex-usage-tracker` is a different PyPI package.
@@ -294,8 +297,8 @@ After the release branch merges, tag from updated `main`, not from an unreviewed
294
297
  ```bash
295
298
  git switch main
296
299
  git pull --ff-only
297
- git tag -a v0.12.1 -m "codex-usage-tracker 0.12.1"
298
- git push origin v0.12.1
300
+ git tag -a v0.13.1 -m "codex-usage-tracker 0.13.1"
301
+ git push origin v0.13.0
299
302
  ```
300
303
 
301
304
  Do not create or push release tags without maintainer approval.
@@ -304,7 +307,7 @@ Do not create or push release tags without maintainer approval.
304
307
 
305
308
  Publishing uses GitHub Actions Trusted Publishing through `.github/workflows/publish.yml`; do not upload from a local machine and do not add PyPI or TestPyPI API tokens.
306
309
 
307
- The first public package release, `0.3.0`, was published on June 8, 2026. Patch release `0.3.1` followed the same day to ship the live-dashboard skill launch fix. Patch release `0.3.2` made dashboard launch refresh the default and added runtime enablement for context loading. Minor release `0.4.0` added Python 3.14 support, release recovery docs, stricter privacy/support-bundle regression coverage, and large-history benchmark thresholds. Patch release `0.4.1` was published by workflow dispatch from `main`; it hardened the PyPI publish workflow and checked off completed 1.0 readiness gates. Minor release `0.5.0` added dashboard localization support and initial language catalogs. Minor release `0.6.0` is the performance and call-drilldown release with SQL-backed live API slices, materialized thread summaries, faster evidence loading, and dashboard runtime module refactors. Patch release `0.6.1` aligns the final README/package screenshots and companion plugin assets. Minor release `0.7.0` adds observed usage snapshots and the latest-observed dashboard card while keeping raw evidence on demand only. Minor release `0.8.0` adds aggregate diagnostics, source-offset context seeking, and live dashboard loading hardening. Patch release `0.8.1` improves Diagnostics fact table readability with pinned fact names and sortable fact columns. Minor release `0.9.0` adds persisted diagnostic snapshots, on-demand diagnostic refresh, tool/command/file-read/concentration reports, and Diagnostics dashboard panels. Minor release `0.10.0` adds Git/GitHub CLI diagnostics, file-modification diagnostics, and derived call timing fields across the dashboard and API. Patch release `0.10.1` adds lightweight action timing to context evidence and ships the synthetic Git Interactions README screenshot. Minor release `0.11.0` adds usage-drain diagnostic reports, projected weekly credit charts, and cumulative thread cost curves. Patch release `0.11.1` improves the Diagnostics weekly projection table and stale snapshot reload controls. Patch release `0.11.2` fixes served dashboard shell hydration and hardens the synthetic source-log benchmark smoke test. Patch release `0.11.3` fixes Windows live dashboard asset MIME handling. Patch release `0.11.4` fixes large-history setup refresh failures from SQLite variable limits. Minor release `0.12.0` ships the maintainability architecture repair, dashboard diagnostics hardening, Agent Maintainer ratchets, and warning-clean test suite. Patch release `0.12.1` ships the package-domain boundary split, allowance helper split, refreshed maintainability baselines, and CLI module entrypoint fix.
310
+ The first public package release, `0.3.0`, was published on June 8, 2026. Patch release `0.3.1` followed the same day to ship the live-dashboard skill launch fix. Patch release `0.3.2` made dashboard launch refresh the default and added runtime enablement for context loading. Minor release `0.4.0` added Python 3.14 support, release recovery docs, stricter privacy/support-bundle regression coverage, and large-history benchmark thresholds. Patch release `0.4.1` was published by workflow dispatch from `main`; it hardened the PyPI publish workflow and checked off completed 1.0 readiness gates. Minor release `0.5.0` added dashboard localization support and initial language catalogs. Minor release `0.6.0` is the performance and call-drilldown release with SQL-backed live API slices, materialized thread summaries, faster evidence loading, and dashboard runtime module refactors. Patch release `0.6.1` aligns the final README/package screenshots and companion plugin assets. Minor release `0.7.0` adds observed usage snapshots and the latest-observed dashboard card while keeping raw evidence on demand only. Minor release `0.8.0` adds aggregate diagnostics, source-offset context seeking, and live dashboard loading hardening. Patch release `0.8.1` improves Diagnostics fact table readability with pinned fact names and sortable fact columns. Minor release `0.9.0` adds persisted diagnostic snapshots, on-demand diagnostic refresh, tool/command/file-read/concentration reports, and Diagnostics dashboard panels. Minor release `0.10.0` adds Git/GitHub CLI diagnostics, file-modification diagnostics, and derived call timing fields across the dashboard and API. Patch release `0.10.1` adds lightweight action timing to context evidence and ships the synthetic Git Interactions README screenshot. Minor release `0.11.0` adds usage-drain diagnostic reports, projected weekly credit charts, and cumulative thread cost curves. Patch release `0.11.1` improves the Diagnostics weekly projection table and stale snapshot reload controls. Patch release `0.11.2` fixes served dashboard shell hydration and hardens the synthetic source-log benchmark smoke test. Patch release `0.11.3` fixes Windows live dashboard asset MIME handling. Patch release `0.11.4` fixes large-history setup refresh failures from SQLite variable limits. Minor release `0.12.0` ships the maintainability architecture repair, dashboard diagnostics hardening, Agent Maintainer ratchets, and warning-clean test suite. Patch release `0.12.1` ships the package-domain boundary split, allowance helper split, refreshed maintainability baselines, and CLI module entrypoint fix. Minor release `0.13.0` ships adoption-hardening onboarding, first-run diagnostics, support-bundle issue guidance, and installed-wheel lifecycle smoke hardening. Patch release `0.13.1` adds guided usage-summary diagnostics across CLI, API, and dashboard.
308
311
 
309
312
  - GitHub Release: `https://github.com/douglasmonsky/codex-usage-tracker/releases/tag/v0.3.0`
310
313
  - GitHub Release: `https://github.com/douglasmonsky/codex-usage-tracker/releases/tag/v0.3.1`
@@ -0,0 +1,93 @@
1
+ # First Five Minutes
2
+
3
+ This is the shortest path from a fresh machine to a working local dashboard.
4
+
5
+ ## 1. Install
6
+
7
+ Use `pipx` so the tracker runs as its own command-line app:
8
+
9
+ ```bash
10
+ python -m pip install --user pipx
11
+ python -m pipx ensurepath
12
+ pipx install codex-usage-tracking
13
+ ```
14
+
15
+ Use `python3` on macOS/Linux if that is your normal launcher. On Windows, `py -m pip install --user pipx` and `py -m pipx ensurepath` may be the right form. If `codex-usage-tracker` is not found after install, open a new terminal or add the path printed by `pipx ensurepath`.
16
+
17
+ ## 2. Set Up
18
+
19
+ ```bash
20
+ codex-usage-tracker setup
21
+ ```
22
+
23
+ `setup` installs the local Codex plugin wrapper, initializes local config templates, refreshes the aggregate SQLite index from local Codex logs, and runs `doctor`. Restart Codex after setup if you want the companion MCP tools and skills to appear in new Codex sessions.
24
+
25
+ ## 3. Launch
26
+
27
+ ```bash
28
+ codex-usage-tracker serve-dashboard --open
29
+ ```
30
+
31
+ This starts a localhost dashboard and refreshes active-session usage first. Keep the terminal running while using the live dashboard.
32
+
33
+ ## 4. Verify
34
+
35
+ The first healthy state usually looks like this:
36
+
37
+ - Browser opens a `127.0.0.1` dashboard URL.
38
+ - The top badge says `Live`, not only `Static`.
39
+ - `Visible Calls` is greater than zero if local Codex logs exist.
40
+ - `doctor` does not report a `fail` status:
41
+
42
+ ```bash
43
+ codex-usage-tracker doctor --suggest-repair
44
+ ```
45
+
46
+ ## If The Dashboard Is Empty
47
+
48
+ Run these checks in order:
49
+
50
+ ```bash
51
+ codex-usage-tracker doctor --suggest-repair
52
+ codex-usage-tracker refresh
53
+ codex-usage-tracker serve-dashboard --open --refresh
54
+ ```
55
+
56
+ Common causes:
57
+
58
+ - No local Codex logs exist yet on that machine.
59
+ - Codex logs are somewhere other than `~/.codex`; use `--codex-home <path>` with `setup`, `refresh`, or `serve-dashboard`.
60
+ - You are looking only at active sessions while the data is archived; use the dashboard `History` selector or run with `--include-archived`.
61
+ - Browser cached an old static file; reload the `serve-dashboard` URL.
62
+ - On Windows, use a recent version if JavaScript files fail to load. Older releases could inherit a `.js` MIME type from the Windows registry.
63
+
64
+ ## If The Plugin Does Not Show In Codex
65
+
66
+ The dashboard can work even when plugin discovery is not active. For plugin discovery:
67
+
68
+ ```bash
69
+ codex-usage-tracker doctor --suggest-repair
70
+ codex-usage-tracker install-plugin
71
+ ```
72
+
73
+ Then restart Codex and start a fresh Codex session.
74
+
75
+ ## What To Attach To Issues
76
+
77
+ For public GitHub issues, prefer a strict support bundle:
78
+
79
+ ```bash
80
+ codex-usage-tracker --privacy-mode strict support-bundle --output ~/.codex-usage-tracker/support-bundle.json
81
+ ```
82
+
83
+ Review the JSON before posting it. The bundle's `issue_report.safe_fields` lists the safest fields to paste. Do not add raw Codex JSONL logs, prompts, assistant messages, tool output, command text, patch text, full local paths, secrets, credentials, or private config values.
84
+
85
+ ## Next Useful Commands
86
+
87
+ ```bash
88
+ codex-usage-tracker summary --preset last-7-days
89
+ codex-usage-tracker query --min-tokens 100000
90
+ codex-usage-tracker diagnostics overview --refresh
91
+ ```
92
+
93
+ For deeper details, see the [Install Guide](install.md), [Dashboard Guide](dashboard-guide.md), and [CLI Reference](cli-reference.md).
@@ -1,5 +1,7 @@
1
1
  # Install Guide
2
2
 
3
+ New user? Start with the [First Five Minutes](first-five-minutes.md) guide, then return here for deeper install details.
4
+
3
5
  ## Recommended Install
4
6
 
5
7
  Use `pipx` so the tracker is installed from PyPI as a command-line app without mixing dependencies into another project.
@@ -150,6 +152,6 @@ codex-usage-tracker reset-db --yes
150
152
  codex-usage-tracker --privacy-mode strict support-bundle --output ~/.codex-usage-tracker/support-bundle.json
151
153
  ```
152
154
 
153
- `support-bundle` writes package, Python, OS/platform, doctor status, database schema, parser diagnostics, pricing status, allowance status, threshold status, project config status, and privacy metadata. It does not include raw logs, prompts, assistant messages, tool output, context text, or aggregate rows.
155
+ `support-bundle` writes package, Python, OS/platform, doctor status, database schema, parser diagnostics, pricing status, allowance status, threshold status, project config status, privacy metadata, and an `issue_report` list of paste-safe issue fields. It does not include raw logs, prompts, assistant messages, tool output, context text, or aggregate rows.
154
156
 
155
157
  Default `support-bundle` mode keeps local diagnostic paths because they can help troubleshoot setup on your machine. Use `--privacy-mode strict` before sharing: strict mode redacts local diagnostic path strings in the bundle and doctor details while preserving existence flags, counts, parser diagnostics, and status fields.
@@ -24,12 +24,12 @@ Not guaranteed:
24
24
 
25
25
  ## 1. Public Install And Package Metadata
26
26
 
27
- - [x] Verify the current public PyPI version is visible as `0.12.1`: `python -c "import json, urllib.request; print(json.load(urllib.request.urlopen('https://pypi.org/pypi/codex-usage-tracking/json'))['info']['version'])"`.
28
- - [x] Verify public venv install for `0.12.1`: `python -m venv /tmp/codex-usage-pypi-smoke && . /tmp/codex-usage-pypi-smoke/bin/activate && python -m pip install codex-usage-tracking==0.12.1 && codex-usage-tracker --version`.
29
- - [x] Verify public pipx install path for `0.12.1`: `PIPX_HOME=/tmp/codex-usage-pipx-home PIPX_BIN_DIR=/tmp/codex-usage-pipx-bin pipx install codex-usage-tracking==0.12.1 && /tmp/codex-usage-pipx-bin/codex-usage-tracker --version`.
27
+ - [x] Verify the current public PyPI version is visible as `0.13.1`: `python -c "import json, urllib.request; print(json.load(urllib.request.urlopen('https://pypi.org/pypi/codex-usage-tracking/json'))['info']['version'])"`.
28
+ - [x] Verify public venv install for `0.13.1`: `python -m venv /tmp/codex-usage-pypi-smoke && . /tmp/codex-usage-pypi-smoke/bin/activate && python -m pip install codex-usage-tracking==0.13.1 && codex-usage-tracker --version`.
29
+ - [x] Verify public pipx install path for `0.13.1`: `PIPX_HOME=/tmp/codex-usage-pipx-home PIPX_BIN_DIR=/tmp/codex-usage-pipx-bin pipx install codex-usage-tracking==0.13.1 && /tmp/codex-usage-pipx-bin/codex-usage-tracker --version`.
30
30
  - [x] Verify installed package resources from a built wheel: `python scripts/smoke_installed_package.py`.
31
31
  - [x] Verify installed package resources in Linux Docker: `python scripts/smoke_installed_package.py --docker`.
32
- - [x] Verify public PyPI package in Docker: `python scripts/smoke_installed_package.py --docker --from-pypi --version 0.12.1`.
32
+ - [x] Verify public PyPI package in Docker: `python scripts/smoke_installed_package.py --docker --from-pypi --version 0.13.1`.
33
33
  - [x] Verify PyPI metadata names remain unchanged: `python scripts/check_release.py`.
34
34
  - [x] Add Python 3.14 as an official support target after CI, package classifiers, docs, and installed-package smoke coverage were added. Docker smoke coverage uses `python:3.14-slim` by default. Track this in issue #12.
35
35
 
@@ -134,14 +134,14 @@ Not guaranteed:
134
134
 
135
135
  ## Evidence References
136
136
 
137
- These references are the concrete proof behind completed checklist items. Public package smoke commands are version-specific to `0.12.1`; all repo tests use synthetic or aggregate-only data.
137
+ These references are the concrete proof behind completed checklist items. Public package smoke commands are version-specific to `0.13.1`; all repo tests use synthetic or aggregate-only data.
138
138
 
139
139
  ### Public Install And Package Metadata
140
140
 
141
141
  - Public PyPI version, public venv install, and public pipx install are proven by the exact public-install commands in section 1.
142
142
  - Built-wheel and installed-resource coverage is proven by `scripts/smoke_installed_package.py` and `tests/test_cli_release.py::test_installed_package_smoke_checks_help_for_stable_commands`.
143
143
  - Linux package-resource coverage is proven by `scripts/smoke_installed_package.py --docker`.
144
- - Public PyPI Docker coverage is proven by `scripts/smoke_installed_package.py --docker --from-pypi --version 0.12.1`.
144
+ - Public PyPI Docker coverage is proven by `scripts/smoke_installed_package.py --docker --from-pypi --version 0.13.1`.
145
145
  - PyPI metadata, package/distribution names, package resources, source/wheel member names, Python 3.10-3.14 support metadata, CI workflow requirements, publish workflow safety text, and tracked secret patterns are proven by `scripts/check_release.py`, `scripts/check_release.py --dist`, and `tests/test_cli_release.py::test_release_check_script_passes`.
146
146
 
147
147
  ### Upgrade And Migration
@@ -219,8 +219,8 @@ These references are the concrete proof behind completed checklist items. Public
219
219
  - Publish workflow package name, Trusted Publishing, TestPyPI/PyPI job presence, event guards, no push/PR publishing, no token/password publishing, and manual PyPI main/tag preflight are proven by `scripts/check_release.py::_check_publish_workflow`.
220
220
  - The GitHub `pypi` environment gate is proven by `gh api repos/douglasmonsky/codex-usage-tracker/environments/pypi`, which reports a `required_reviewers` protection rule and `can_admins_bypass=false`.
221
221
  - Dist filename and wheel/sdist member checks are proven by `python -m build`, `python -m twine check dist/*`, and `python scripts/check_release.py --dist`.
222
- - TestPyPI publish process is proven by a workflow-dispatch run on `main`, followed by TestPyPI metadata and clean virtualenv install checks for `codex-usage-tracking==0.12.1`.
223
- - PyPI publish process is proven by a workflow-dispatch run on `main`, protected `pypi` environment approval, PyPI metadata visibility, clean virtualenv install, temporary pipx install, and Docker public-package smoke for `codex-usage-tracking==0.12.1`.
222
+ - TestPyPI publish process is proven by a workflow-dispatch run on `main`, followed by TestPyPI metadata and clean virtualenv install checks for `codex-usage-tracking==0.13.1`.
223
+ - PyPI publish process is proven by a workflow-dispatch run on `main`, protected `pypi` environment approval, PyPI metadata visibility, clean virtualenv install, temporary pipx install, and Docker public-package smoke for `codex-usage-tracking==0.13.1`.
224
224
  - Release recovery documentation is proven by `scripts/check_release.py` required-file and docs checks.
225
225
 
226
226
  ### Known Limitations
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "codex-usage-tracking"
7
- version = "0.12.1"
7
+ version = "0.13.1"
8
8
  description = "Unofficial local Codex plugin and dashboard for investigating aggregate token usage, costs, caching, and thread patterns."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"