codex-usage-tracking 0.10.0__tar.gz → 0.11.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 (200) hide show
  1. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/.codex-plugin/plugin.json +1 -1
  2. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/CHANGELOG.md +13 -0
  3. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/MANIFEST.in +2 -0
  4. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/PKG-INFO +8 -3
  5. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/README.md +7 -2
  6. codex_usage_tracking-0.11.0/docs/assets/dashboard-diagnostics-git-expanded.png +0 -0
  7. codex_usage_tracking-0.11.0/docs/assets/dashboard-diagnostics.png +0 -0
  8. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/docs/cli-json-schemas.md +92 -1
  9. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/docs/dashboard-guide.md +5 -4
  10. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/docs/development.md +7 -7
  11. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/docs/one-dot-oh-readiness.md +8 -8
  12. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/docs/privacy.md +1 -1
  13. codex_usage_tracking-0.11.0/docs/usage-drain-modeling.md +1008 -0
  14. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/pyproject.toml +3 -1
  15. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/scripts/check_release.py +3 -0
  16. codex_usage_tracking-0.11.0/scripts/model_usage_drain.py +653 -0
  17. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/scripts/smoke_installed_package.py +1 -0
  18. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/skills/codex-usage-tracker/scripts/run_mcp.py +2 -2
  19. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/__init__.py +1 -1
  20. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/cli.py +10 -0
  21. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/cli_parser.py +12 -0
  22. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/context.py +105 -4
  23. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/diagnostic_snapshot_analysis.py +17 -2
  24. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/diagnostic_snapshot_constants.py +2 -0
  25. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/diagnostic_snapshot_events.py +27 -5
  26. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/diagnostic_snapshot_report.py +30 -0
  27. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/diagnostic_snapshots.py +113 -1
  28. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/json_contracts.py +15 -0
  29. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard.js +2 -0
  30. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_call_investigator.js +37 -3
  31. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_detail.css +19 -0
  32. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics.js +5 -0
  33. codex_usage_tracking-0.11.0/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics_snapshots.js +933 -0
  34. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_status.js +9 -1
  35. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tables.css +126 -0
  36. codex_usage_tracking-0.11.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-diagnostics-git-expanded.png +0 -0
  37. codex_usage_tracking-0.11.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-diagnostics.png +0 -0
  38. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/docs/dashboard-guide.html +4 -3
  39. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/server.py +67 -0
  40. codex_usage_tracking-0.11.0/src/codex_usage_tracker/usage_drain_model.py +6753 -0
  41. codex_usage_tracking-0.11.0/src/codex_usage_tracker/usage_drain_reports.py +677 -0
  42. codex_usage_tracking-0.11.0/src/codex_usage_tracker/usage_drain_time_series.py +429 -0
  43. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracking.egg-info/PKG-INFO +8 -3
  44. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracking.egg-info/SOURCES.txt +11 -1
  45. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/tests/test_cli_lifecycle.py +18 -0
  46. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/tests/test_context_evidence.py +100 -0
  47. codex_usage_tracking-0.11.0/tests/test_dashboard_diagnostics_snapshots.py +697 -0
  48. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/tests/test_dashboard_payload.py +7 -0
  49. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/tests/test_dashboard_server.py +15 -0
  50. codex_usage_tracking-0.11.0/tests/test_dashboard_status.py +90 -0
  51. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/tests/test_diagnostic_snapshots.py +25 -5
  52. codex_usage_tracking-0.11.0/tests/test_usage_drain_model.py +918 -0
  53. codex_usage_tracking-0.11.0/tests/test_usage_drain_reports.py +195 -0
  54. codex_usage_tracking-0.10.0/docs/assets/dashboard-diagnostics.png +0 -0
  55. codex_usage_tracking-0.10.0/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics_snapshots.js +0 -403
  56. codex_usage_tracking-0.10.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-diagnostics.png +0 -0
  57. codex_usage_tracking-0.10.0/tests/test_dashboard_diagnostics_snapshots.py +0 -294
  58. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/.mcp.json +0 -0
  59. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/AGENTS.md +0 -0
  60. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/CONTRIBUTING.md +0 -0
  61. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/LICENSE +0 -0
  62. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/SECURITY.md +0 -0
  63. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/assets/icon.svg +0 -0
  64. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/docs/architecture.md +0 -0
  65. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/docs/assets/dashboard-call-investigator-evidence.png +0 -0
  66. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/docs/assets/dashboard-call-investigator-preview.png +0 -0
  67. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/docs/assets/dashboard-call-investigator.png +0 -0
  68. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/docs/assets/dashboard-calls-preview.png +0 -0
  69. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/docs/assets/dashboard-calls.png +0 -0
  70. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/docs/assets/dashboard-details.png +0 -0
  71. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/docs/assets/dashboard-insights.png +0 -0
  72. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/docs/assets/dashboard-threads.png +0 -0
  73. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/docs/assets/plugin-prompts.png +0 -0
  74. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/docs/assets/plugin-thread-leaderboard.png +0 -0
  75. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/docs/assets/ux/call-detail-panel.png +0 -0
  76. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/docs/assets/ux/insight-overview.png +0 -0
  77. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/docs/assets/ux/thread-investigation.png +0 -0
  78. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/docs/call-drilldown-performance-checklist.md +0 -0
  79. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/docs/cli-reference.md +0 -0
  80. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/docs/install.md +0 -0
  81. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/docs/mcp.md +0 -0
  82. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/docs/pricing-and-credits.md +0 -0
  83. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/docs/ui-ux-improvement-plan.md +0 -0
  84. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/scripts/benchmark_synthetic_history.py +0 -0
  85. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/scripts/install_local_plugin.py +0 -0
  86. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/setup.cfg +0 -0
  87. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/skills/codex-usage-api/SKILL.md +0 -0
  88. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/skills/codex-usage-tracker/SKILL.md +0 -0
  89. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/__main__.py +0 -0
  90. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/allowance.py +0 -0
  91. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/api_payloads.py +0 -0
  92. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/call_origin.py +0 -0
  93. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/costing.py +0 -0
  94. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/dashboard.py +0 -0
  95. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/diagnostic_facts.py +0 -0
  96. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/diagnostic_reports.py +0 -0
  97. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/diagnostic_snapshot_concentration.py +0 -0
  98. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/diagnostic_snapshot_rows.py +0 -0
  99. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/diagnostics.py +0 -0
  100. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/formatting.py +0 -0
  101. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/i18n.py +0 -0
  102. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/mcp_server.py +0 -0
  103. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/models.py +0 -0
  104. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/parser.py +0 -0
  105. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/paths.py +0 -0
  106. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/__init__.py +0 -0
  107. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/assets/icon.svg +0 -0
  108. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard.css +0 -0
  109. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_actions.js +0 -0
  110. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_analysis.js +0 -0
  111. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_call.css +0 -0
  112. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_call_diagnostics.js +0 -0
  113. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_cells.js +0 -0
  114. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_data.js +0 -0
  115. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_details.js +0 -0
  116. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics_facts.js +0 -0
  117. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_events.js +0 -0
  118. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_filters.js +0 -0
  119. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_format.js +0 -0
  120. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_i18n.js +0 -0
  121. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_insights.css +0 -0
  122. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_insights.js +0 -0
  123. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_layout.css +0 -0
  124. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_live.js +0 -0
  125. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_payload_cache.js +0 -0
  126. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_responsive.css +0 -0
  127. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_state.js +0 -0
  128. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tables.js +0 -0
  129. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_template.html +0 -0
  130. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tooltips.js +0 -0
  131. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/ar.json +0 -0
  132. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/de.json +0 -0
  133. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/en.json +0 -0
  134. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/es.json +0 -0
  135. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/fr.json +0 -0
  136. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/it.json +0 -0
  137. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/ja.json +0 -0
  138. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/ko.json +0 -0
  139. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/pt.json +0 -0
  140. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/ru.json +0 -0
  141. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/vi.json +0 -0
  142. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/zh-Hans.json +0 -0
  143. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator-evidence.png +0 -0
  144. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator-preview.png +0 -0
  145. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator.png +0 -0
  146. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-calls-preview.png +0 -0
  147. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-calls.png +0 -0
  148. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-details.png +0 -0
  149. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-insights.png +0 -0
  150. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-threads.png +0 -0
  151. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/docs/assets/plugin-prompts.png +0 -0
  152. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/docs/assets/plugin-thread-leaderboard.png +0 -0
  153. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/rate_cards/codex-credit-rates.json +0 -0
  154. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/skills/codex-usage-api/SKILL.md +0 -0
  155. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_data/skills/codex-usage-tracker/SKILL.md +0 -0
  156. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/plugin_installer.py +0 -0
  157. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/pricing.py +0 -0
  158. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/pricing_config.py +0 -0
  159. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/pricing_estimates.py +0 -0
  160. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/pricing_openai.py +0 -0
  161. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/projects.py +0 -0
  162. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/recommendations.py +0 -0
  163. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/redaction.py +0 -0
  164. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/reports.py +0 -0
  165. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/schema.py +0 -0
  166. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/server_utils.py +0 -0
  167. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/store.py +0 -0
  168. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/store_query_sql.py +0 -0
  169. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/store_schema.py +0 -0
  170. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/store_sources.py +0 -0
  171. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/store_thread_summaries.py +0 -0
  172. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/support.py +0 -0
  173. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracker/threads.py +0 -0
  174. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracking.egg-info/dependency_links.txt +0 -0
  175. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracking.egg-info/entry_points.txt +0 -0
  176. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracking.egg-info/requires.txt +0 -0
  177. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/src/codex_usage_tracking.egg-info/top_level.txt +0 -0
  178. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/tests/store_dashboard_helpers.py +0 -0
  179. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/tests/test_allowance.py +0 -0
  180. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/tests/test_call_origin.py +0 -0
  181. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/tests/test_cli_release.py +0 -0
  182. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/tests/test_dashboard_data.py +0 -0
  183. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/tests/test_dashboard_live.py +0 -0
  184. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/tests/test_dashboard_state.py +0 -0
  185. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/tests/test_i18n.py +0 -0
  186. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/tests/test_json_contracts.py +0 -0
  187. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/tests/test_mcp_integration.py +0 -0
  188. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/tests/test_mcp_launcher.py +0 -0
  189. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/tests/test_parser.py +0 -0
  190. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/tests/test_plugin_installer.py +0 -0
  191. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/tests/test_pricing.py +0 -0
  192. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/tests/test_privacy.py +0 -0
  193. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/tests/test_projects.py +0 -0
  194. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/tests/test_recommendations.py +0 -0
  195. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/tests/test_redaction.py +0 -0
  196. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/tests/test_schema.py +0 -0
  197. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/tests/test_store_dashboard_mcp.py +0 -0
  198. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/tests/test_store_migrations.py +0 -0
  199. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/tests/test_support.py +0 -0
  200. {codex_usage_tracking-0.10.0 → codex_usage_tracking-0.11.0}/tests/test_threads.py +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codex-usage-tracker",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
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,19 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.11.0 - 2026-06-22
6
+
7
+ - Add usage-drain diagnostic reports for token accounting, allowance breakpoints, predictive model highlights, weekly visible usage, weekly projected credits, and cumulative thread cost curves.
8
+ - 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.
9
+ - Add CLI/API support for usage-drain diagnostics with stable JSON contracts and synthetic report-generation tests.
10
+ - Add usage-drain modeling documentation and a synthetic README screenshot focused on the new diagnostics charts.
11
+ - Harden diagnostic table alignment, parser-warning visibility, file-modification rendering, and Python 3.14 type-check coverage.
12
+
13
+ ## 0.10.1 - 2026-06-21
14
+
15
+ - 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.
16
+ - Add synthetic README diagnostics coverage for the Git Interactions panel and package the screenshot with installed plugin docs.
17
+
5
18
  ## 0.10.0 - 2026-06-21
6
19
 
7
20
  - Add Git/GitHub CLI diagnostic snapshots with safe operation labels, coarse categories, mutability buckets, and terminal token-count coverage.
@@ -2,6 +2,8 @@ include README.md LICENSE CHANGELOG.md CONTRIBUTING.md SECURITY.md AGENTS.md .mc
2
2
  recursive-include .codex-plugin *.json
3
3
  recursive-include assets *.svg
4
4
  recursive-include docs *.md *.png
5
+ exclude docs/usage-drain-research-white-paper.md
6
+ prune output
5
7
  recursive-include skills *.md *.py
6
8
  recursive-include scripts *.py
7
9
  recursive-include src/codex_usage_tracker/plugin_data/assets *
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codex-usage-tracking
3
- Version: 0.10.0
3
+ Version: 0.11.0
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
@@ -105,7 +105,11 @@ Threads view groups related calls so long chats, subagents, and auto-review pass
105
105
 
106
106
  Diagnostics surfaces on-demand snapshot reports for tool output, commands, Git interactions, file reads, file modifications, read productivity, and concentration without tying them to the normal live refresh loop.
107
107
 
108
- ![Diagnostics view showing stored snapshot panels for tool output, commands, Git interactions, file modifications, and concentration.](docs/assets/dashboard-diagnostics.png?v=readme-drilldown)
108
+ ![Diagnostics view showing weekly usage remaining and projected weekly credits from on-demand usage-drain reports.](docs/assets/dashboard-diagnostics.png?v=readme-usage-drain)
109
+
110
+ The Git Interactions panel expands the safe Git and GitHub CLI operation families without storing command text, branch names, release notes, or patch content.
111
+
112
+ ![Diagnostics Git Interactions panel showing aggregate Git and GitHub CLI operation counts.](docs/assets/dashboard-diagnostics-git-expanded.png?v=readme-diagnostics-git)
109
113
 
110
114
  Insights still gives a fast triage layer for costly threads, low cache reuse, context bloat, and pricing gaps.
111
115
 
@@ -198,7 +202,7 @@ The tracker cannot read your logged-in ChatGPT plan or live remaining usage auto
198
202
 
199
203
  - Local SQLite index at `~/.codex-usage-tracker/usage.sqlite3`.
200
204
  - Static dashboard generation plus localhost live refresh.
201
- - `Insights`, `Calls`, `Threads`, and `Diagnostics` dashboard views.
205
+ - `Insights`, `Calls`, `Threads`, and `Diagnostics` dashboard views, including on-demand usage-drain report runs with cumulative per-thread cost curves.
202
206
  - Active-only dashboards by default, with an explicit `All history` toggle for archived sessions.
203
207
  - CLI summaries, queries, CSV export, dashboard generation, doctor checks, and support bundles.
204
208
  - MCP tools for Codex sessions that want to query local usage data.
@@ -277,6 +281,7 @@ Full model: [Privacy Guide](docs/privacy.md).
277
281
  - [Privacy Guide](docs/privacy.md)
278
282
  - [Architecture](docs/architecture.md)
279
283
  - [CLI And MCP JSON Schemas](docs/cli-json-schemas.md)
284
+ - [Usage Drain Modeling](docs/usage-drain-modeling.md)
280
285
  - [Development And Release](docs/development.md)
281
286
 
282
287
  ## Codex-Assisted Install
@@ -67,7 +67,11 @@ Threads view groups related calls so long chats, subagents, and auto-review pass
67
67
 
68
68
  Diagnostics surfaces on-demand snapshot reports for tool output, commands, Git interactions, file reads, file modifications, read productivity, and concentration without tying them to the normal live refresh loop.
69
69
 
70
- ![Diagnostics view showing stored snapshot panels for tool output, commands, Git interactions, file modifications, and concentration.](docs/assets/dashboard-diagnostics.png?v=readme-drilldown)
70
+ ![Diagnostics view showing weekly usage remaining and projected weekly credits from on-demand usage-drain reports.](docs/assets/dashboard-diagnostics.png?v=readme-usage-drain)
71
+
72
+ The Git Interactions panel expands the safe Git and GitHub CLI operation families without storing command text, branch names, release notes, or patch content.
73
+
74
+ ![Diagnostics Git Interactions panel showing aggregate Git and GitHub CLI operation counts.](docs/assets/dashboard-diagnostics-git-expanded.png?v=readme-diagnostics-git)
71
75
 
72
76
  Insights still gives a fast triage layer for costly threads, low cache reuse, context bloat, and pricing gaps.
73
77
 
@@ -160,7 +164,7 @@ The tracker cannot read your logged-in ChatGPT plan or live remaining usage auto
160
164
 
161
165
  - Local SQLite index at `~/.codex-usage-tracker/usage.sqlite3`.
162
166
  - Static dashboard generation plus localhost live refresh.
163
- - `Insights`, `Calls`, `Threads`, and `Diagnostics` dashboard views.
167
+ - `Insights`, `Calls`, `Threads`, and `Diagnostics` dashboard views, including on-demand usage-drain report runs with cumulative per-thread cost curves.
164
168
  - Active-only dashboards by default, with an explicit `All history` toggle for archived sessions.
165
169
  - CLI summaries, queries, CSV export, dashboard generation, doctor checks, and support bundles.
166
170
  - MCP tools for Codex sessions that want to query local usage data.
@@ -239,6 +243,7 @@ Full model: [Privacy Guide](docs/privacy.md).
239
243
  - [Privacy Guide](docs/privacy.md)
240
244
  - [Architecture](docs/architecture.md)
241
245
  - [CLI And MCP JSON Schemas](docs/cli-json-schemas.md)
246
+ - [Usage Drain Modeling](docs/usage-drain-modeling.md)
242
247
  - [Development And Release](docs/development.md)
243
248
 
244
249
  ## Codex-Assisted Install
@@ -55,6 +55,7 @@ Tracked schema ids:
55
55
  | `codex-usage-tracker-diagnostic-file-modifications-v1` | CLI `diagnostics file-modifications --json`, dashboard server `/api/diagnostics/file-modifications` |
56
56
  | `codex-usage-tracker-diagnostic-read-productivity-v1` | CLI `diagnostics read-productivity --json`, dashboard server `/api/diagnostics/read-productivity` |
57
57
  | `codex-usage-tracker-diagnostic-concentration-v1` | CLI `diagnostics concentration --json`, dashboard server `/api/diagnostics/concentration` |
58
+ | `codex-usage-tracker-diagnostic-usage-drain-v1` | CLI `diagnostics usage-drain --json`, dashboard server `/api/diagnostics/usage-drain` |
58
59
  | `codex-usage-tracker-session-v1` | CLI `session --json`, MCP `session_usage(response_format="json")` |
59
60
  | `codex-usage-tracker-context-v1` | CLI `context`, MCP `usage_call_context` when raw context is explicitly enabled |
60
61
  | `codex-usage-tracker-context-disabled-v1` | MCP `usage_call_context` when raw context is disabled |
@@ -637,6 +638,96 @@ Schema: `codex-usage-tracker-diagnostic-concentration-v1`
637
638
 
638
639
  The concentration snapshot computes top-1/top-3/top-5 share and effective group count by source log/session, cwd/project label, and day. Metric ids such as `top_1_source_log_share` are stable JSON contract fields; dashboard views should render them as reader-facing labels. Source log labels use session-id prefixes or source hashes, cwd labels use basename-only labels, and raw source paths/cwd paths are not included.
639
640
 
641
+ ## Diagnostic Usage Drain Snapshot
642
+
643
+ Commands:
644
+
645
+ ```bash
646
+ codex-usage-tracker diagnostics usage-drain --json
647
+ codex-usage-tracker diagnostics usage-drain --refresh --json
648
+ ```
649
+
650
+ Dashboard server API:
651
+
652
+ - `GET /api/diagnostics/usage-drain`
653
+ - `POST /api/diagnostics/usage-drain/refresh`
654
+
655
+ Schema: `codex-usage-tracker-diagnostic-usage-drain-v1`
656
+
657
+ ```json
658
+ {
659
+ "schema": "codex-usage-tracker-diagnostic-usage-drain-v1",
660
+ "section": "usage-drain",
661
+ "status": "ready",
662
+ "refreshed": false,
663
+ "raw_context_included": false,
664
+ "snapshot": {},
665
+ "summary": {
666
+ "usage_rows": 4,
667
+ "thread_count": 2,
668
+ "positive_usage_spans": 3,
669
+ "estimated_cost_usd": 0.42,
670
+ "usage_credits": 120.0,
671
+ "top_thread_cost_share": 0.6,
672
+ "best_predictive_model": "previous_delta"
673
+ },
674
+ "thread_cost_curves": {
675
+ "total_threads": 2,
676
+ "shown_threads": 2,
677
+ "max_points_per_thread": 120,
678
+ "estimated_cost_usd": 0.42,
679
+ "top_thread_share": 0.6,
680
+ "threads": [
681
+ {
682
+ "thread_key": "thread:alpha",
683
+ "thread": "Alpha",
684
+ "call_count": 3,
685
+ "estimated_cost_usd": 0.25,
686
+ "avg_cost_usd": 0.083333,
687
+ "shape": "near-linear",
688
+ "points": [
689
+ {"call_index": 1, "cumulative_cost_usd": 0.1},
690
+ {"call_index": 3, "cumulative_cost_usd": 0.25}
691
+ ]
692
+ }
693
+ ]
694
+ },
695
+ "time_series": {
696
+ "visible_usage": {
697
+ "unit": "visible_used_percent",
698
+ "series": ["five_hour_used_percent", "weekly_used_percent"],
699
+ "points": [
700
+ {
701
+ "timestamp": "2026-06-01T00:00:00Z",
702
+ "five_hour_used_percent": 10.0,
703
+ "weekly_used_percent": 20.0
704
+ }
705
+ ]
706
+ },
707
+ "weekly_credit_projection": {
708
+ "unit": "projected_standard_usage_credits_per_full_week",
709
+ "window_minutes": 10080,
710
+ "points": [
711
+ {
712
+ "label": "Reset Jun 08",
713
+ "observed_usage_delta_percent": 30.0,
714
+ "observed_standard_usage_credits": 15000.0,
715
+ "projected_weekly_credits": 50000.0,
716
+ "ci_low": 47000.0,
717
+ "ci_high": 53000.0,
718
+ "confidence": "medium"
719
+ }
720
+ ]
721
+ }
722
+ },
723
+ "model_highlights": {},
724
+ "pricing": {},
725
+ "notes": []
726
+ }
727
+ ```
728
+
729
+ The usage-drain snapshot is an on-demand, aggregate-only research report. It uses indexed usage rows, estimated costs, Codex credit-rate annotations, visible usage counter spans, and compact model highlights. The dashboard renders thread names for the cumulative cost chart because this is local runtime metadata, not a shared support bundle. It still excludes prompts, assistant text, tool outputs, command text, raw JSONL paths, and patch text.
730
+
640
731
  ## Pricing Coverage
641
732
 
642
733
  Command:
@@ -689,4 +780,4 @@ Most setup and file-writing commands accept `--json` and return a schema-specifi
689
780
  - `init-thresholds --json`, `init-projects --json`
690
781
  - `support-bundle --json`
691
782
 
692
- `context` already returns JSON because it is an explicit on-demand context request. Treat `codex-usage-tracker-context-v1` output as sensitive local context even though it is redacted and size-limited by default. `max_entries=0` requests all matching entries and `max_chars=0` removes the character cap for that explicit request. Tool output and compacted replacement history are omitted unless explicitly requested. Compaction entries may include metadata such as `replacement_history_available`, `replacement_entry_count`, and `replacement_history_included`; replacement text appears only when `include_compaction_history` is true for that local request. MCP returns `codex-usage-tracker-context-disabled-v1` when raw context loading has not been explicitly enabled with `CODEX_USAGE_TRACKER_ALLOW_RAW_CONTEXT=1`.
783
+ `context` already returns JSON because it is an explicit on-demand context request. Treat `codex-usage-tracker-context-v1` output as sensitive local context even though it is redacted and size-limited by default. `max_entries=0` requests all matching entries and `max_chars=0` removes the character cap for that explicit request. Tool output and compacted replacement history are omitted unless explicitly requested. Compaction entries may include metadata such as `replacement_history_available`, `replacement_entry_count`, and `replacement_history_included`; replacement text appears only when `include_compaction_history` is true for that local request. Evidence responses include `action_timing`, derived from timestamps in the same selected-turn source scan, plus per-entry `action_timing` fields such as `since_turn_start_ms`, `since_previous_entry_ms`, and `reported_duration_ms` when available. MCP returns `codex-usage-tracker-context-disabled-v1` when raw context loading has not been explicitly enabled with `CODEX_USAGE_TRACKER_ALLOW_RAW_CONTEXT=1`.
@@ -86,7 +86,7 @@ Use `Calls` view when you want to inspect individual model calls.
86
86
  - The `History` control defaults to `Active sessions only`. Switch to `All history` only when you want live refresh to scan archived session logs and include any archived rows already present in SQLite.
87
87
  - The URL tracks the active view, filters, time preset or custom range, sort, preset, selected row or thread, page, and expanded threads. `Copy link` copies that state so the same investigation can be reopened.
88
88
  - `Export CSV` downloads the currently filtered aggregate calls. In Threads view, it exports the calls behind the filtered thread list rather than only the visible group headers.
89
- - A `Parser warnings` chip appears only when the latest refresh reports skipped token events, missing expected token fields, invalid counters, duplicate cumulative snapshots, or unknown event shapes. Use `codex-usage-tracker inspect-log <path>` to inspect a suspect log without writing to SQLite.
89
+ - A `Parser warnings` chip appears only when the latest refresh reports actionable issues such as skipped token events, missing expected token fields, invalid counters, or unknown event shapes. Duplicate cumulative snapshots are ignored for this top-level chip. Use `codex-usage-tracker inspect-log <path>` to inspect a suspect log without writing to SQLite.
90
90
  - Search matches thread, cwd, model, session id, turn id, subagent role, and parent thread fields.
91
91
  - Search also matches derived project names, project-relative cwd values, tags, branch names, and redacted remote labels.
92
92
  - In redacted or strict privacy mode, search only sees the redacted metadata fields included in the dashboard payload.
@@ -130,14 +130,15 @@ Use `Threads` view when you want to understand a work session as a group instead
130
130
 
131
131
  ## Diagnostics View
132
132
 
133
- ![Diagnostics view showing stored snapshot panels for tool output, commands, Git interactions, file reads, file modifications, read productivity, and concentration.](assets/dashboard-diagnostics.png)
133
+ ![Diagnostics view showing on-demand usage-drain charts for weekly usage remaining and projected weekly credits.](assets/dashboard-diagnostics.png)
134
134
 
135
135
  Use `Diagnostics` view when you want to see what structured event patterns are happening and what token totals are associated with those patterns.
136
136
 
137
137
  - The tab consumes the localhost `/api/diagnostics/*` endpoints; static file dashboards show a live-API unavailable state.
138
138
  - The first table shows top diagnostic facts by associated uncached input tokens. Tool/function/MCP/command-family and compaction sections expose narrower slices of the same fact data.
139
139
  - Command diagnostics store only a command family such as `pytest`, `git`, or `unknown_command`. Skill and MCP labels are detected only when they are present as structured event metadata.
140
- - Newer on-demand diagnostic snapshot endpoints are section-specific (`overview`, `tool-output`, `commands`, `git-interactions`, `file-reads`, `file-modifications`, `read-productivity`, and `concentration`). Heavy recomputation happens only through explicit diagnostic refresh endpoints. The dashboard's `Refresh diagnostics` button uses one batched refresh so source-log sections share one scan.
140
+ - Newer on-demand diagnostic snapshot endpoints are section-specific (`overview`, `tool-output`, `commands`, `git-interactions`, `file-reads`, `file-modifications`, `read-productivity`, `concentration`, and `usage-drain`). Heavy recomputation happens only through explicit diagnostic refresh endpoints. The dashboard's `Refresh diagnostics` button uses one batched refresh so source-log sections share one scan.
141
+ - Usage-drain snapshots run on indexed aggregate rows and render cumulative estimated-cost curves by thread, visible usage span counts, allowance-breakpoint highlights, and compact predictor summaries.
141
142
  - Git interaction panels persist only safe roots and operations such as `git/status` or `gh/pr`, plus coarse categories and counts. They do not expose branch names, remotes, file paths, tags, commit messages, PR titles, release notes, or raw command output.
142
143
  - File-modification panels count structured patch events and modified paths using basename-only labels plus short irreversible path hashes. They do not expose patch text, raw paths, file contents, or JSONL fragments.
143
144
  - Click `Refresh diagnostics` when you want to recompute stored diagnostic snapshots. The normal dashboard `Refresh` action updates usage rows only.
@@ -171,7 +172,7 @@ Previous and next buttons move chronologically within the same resolved thread a
171
172
 
172
173
  The details rail is collapsed by default to preserve table space. Open `Call Details` when you want a compact aggregate preview without leaving the table. When expanded on desktop, it sticks inside the viewport and scrolls internally when the selected call has more fields or loaded context than can fit on screen.
173
174
 
174
- The call investigator loads a redacted turn-log evidence window by default when served from localhost with the context API enabled. The default request uses `mode=quick`: redacted tool output is included, no character cap is applied, and serialized local JSONL is reported as a fast character-based upper bound without bucket analysis. The default entry window is still bounded so very long sessions remain responsive. Older surrounding evidence is collapsed by default and can be expanded or loaded explicitly. Visible evidence token estimates are calculated from the full selected-turn evidence set before display limiting, using `tiktoken` when available and a conservative character fallback only when the tokenizer is unavailable.
175
+ The call investigator loads a redacted turn-log evidence window by default when served from localhost with the context API enabled. The default request uses `mode=quick`: redacted tool output is included, no character cap is applied, and serialized local JSONL is reported as a fast character-based upper bound without bucket analysis. The default entry window is still bounded so very long sessions remain responsive. Older surrounding evidence is collapsed by default and can be expanded or loaded explicitly. Evidence entries include lightweight action timing derived from the timestamps already read during that same source-log scan, shown as elapsed time from the selected turn start, gap since the previous evidence entry, and reported event duration when the log provides one. Visible evidence token estimates are calculated from the full selected-turn evidence set before display limiting, using `tiktoken` when available and a conservative character fallback only when the tokenizer is unavailable.
175
176
 
176
177
  Use `Run full serialized analysis` when you specifically want tokenizer-counted serialized JSONL groups such as encrypted reasoning/state, local goal metadata, token callback metadata, and rate-limit metadata. This full mode can explain why visible text is much smaller than exact uncached input, but it can overcount because local JSONL includes client metadata that may not be prompt text. Raw grouped text is not returned. `encrypted_content` is an opaque encrypted field found on some reasoning response items. The tracker cannot decrypt it and treats it as serialized state, not readable prompt, assistant, or tool text. Token-count context entries are labeled as the selected call, previous token count in the same turn, or earlier token count in the same turn when possible, and show call/session cumulative totals for input, cached input, uncached input, output, reasoning output, and total tokens.
177
178
 
@@ -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.10.0
41
+ release/0.11.0
42
42
  hotfix/0.3.3
43
43
  ```
44
44
 
@@ -91,7 +91,7 @@ blocked
91
91
  Recommended milestones:
92
92
 
93
93
  ```text
94
- 0.10.0
94
+ 0.11.0
95
95
  1.0-readiness
96
96
  1.0.0
97
97
  ```
@@ -146,8 +146,8 @@ python scripts/smoke_installed_package.py --docker
146
146
  To verify the public PyPI package instead of the local checkout:
147
147
 
148
148
  ```bash
149
- python scripts/smoke_installed_package.py --from-pypi --version 0.10.0
150
- python scripts/smoke_installed_package.py --docker --from-pypi --version 0.10.0
149
+ python scripts/smoke_installed_package.py --from-pypi --version 0.11.0
150
+ python scripts/smoke_installed_package.py --docker --from-pypi --version 0.11.0
151
151
  ```
152
152
 
153
153
  `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 +294,8 @@ After the release branch merges, tag from updated `main`, not from an unreviewed
294
294
  ```bash
295
295
  git switch main
296
296
  git pull --ff-only
297
- git tag -a v0.10.0 -m "codex-usage-tracker 0.10.0"
298
- git push origin v0.10.0
297
+ git tag -a v0.11.0 -m "codex-usage-tracker 0.11.0"
298
+ git push origin v0.11.0
299
299
  ```
300
300
 
301
301
  Do not create or push release tags without maintainer approval.
@@ -304,7 +304,7 @@ Do not create or push release tags without maintainer approval.
304
304
 
305
305
  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
306
 
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.
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.
308
308
 
309
309
  - GitHub Release: `https://github.com/douglasmonsky/codex-usage-tracker/releases/tag/v0.3.0`
310
310
  - GitHub Release: `https://github.com/douglasmonsky/codex-usage-tracker/releases/tag/v0.3.1`
@@ -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.10.0`: `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.10.0`: `python -m venv /tmp/codex-usage-pypi-smoke && . /tmp/codex-usage-pypi-smoke/bin/activate && python -m pip install codex-usage-tracking==0.10.0 && codex-usage-tracker --version`.
29
- - [x] Verify public pipx install path for `0.10.0`: `PIPX_HOME=/tmp/codex-usage-pipx-home PIPX_BIN_DIR=/tmp/codex-usage-pipx-bin pipx install codex-usage-tracking==0.10.0 && /tmp/codex-usage-pipx-bin/codex-usage-tracker --version`.
27
+ - [x] Verify the current public PyPI version is visible as `0.11.0`: `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.11.0`: `python -m venv /tmp/codex-usage-pypi-smoke && . /tmp/codex-usage-pypi-smoke/bin/activate && python -m pip install codex-usage-tracking==0.11.0 && codex-usage-tracker --version`.
29
+ - [x] Verify public pipx install path for `0.11.0`: `PIPX_HOME=/tmp/codex-usage-pipx-home PIPX_BIN_DIR=/tmp/codex-usage-pipx-bin pipx install codex-usage-tracking==0.11.0 && /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.10.0`.
32
+ - [x] Verify public PyPI package in Docker: `python scripts/smoke_installed_package.py --docker --from-pypi --version 0.11.0`.
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.10.0`; 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.11.0`; 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.10.0`.
144
+ - Public PyPI Docker coverage is proven by `scripts/smoke_installed_package.py --docker --from-pypi --version 0.11.0`.
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.10.0`.
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.10.0`.
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.11.0`.
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.11.0`.
224
224
  - Release recovery documentation is proven by `scripts/check_release.py` required-file and docs checks.
225
225
 
226
226
  ### Known Limitations
@@ -41,7 +41,7 @@ Diagnostic snapshots are not live recomputed during ordinary dashboard or usage
41
41
 
42
42
  ## On-Demand Context
43
43
 
44
- `usage_call_context`, `codex-usage-tracker context`, and the `serve-dashboard` context endpoint read a single source JSONL file only when explicitly requested. Returned context is redacted for common secret patterns and capped in size by default for CLI/MCP requests. The call investigator uses the same endpoint at runtime and requests quick redacted evidence for the selected call when the local context API is enabled; that still does not persist raw context into SQLite, CSV, support bundles, or generated dashboard HTML.
44
+ `usage_call_context`, `codex-usage-tracker context`, and the `serve-dashboard` context endpoint read a single source JSONL file only when explicitly requested. Returned context is redacted for common secret patterns and capped in size by default for CLI/MCP requests. The call investigator uses the same endpoint at runtime and requests quick redacted evidence for the selected call when the local context API is enabled; that still does not persist raw context into SQLite, CSV, support bundles, or generated dashboard HTML. Per-entry action timing in this evidence response is derived from already-read entry timestamps and contains numeric durations only; it does not add a second scan or store raw transcript content.
45
45
 
46
46
  Tool output is omitted by default for CLI/MCP and dashboard investigator context requests. The call investigator offers `Show tool output` when redacted, size-limited tool output is needed. Full serialized JSONL group analysis is also opt-in through `mode=full` / `Run full serialized analysis`; default quick mode returns only a fast serialized upper-bound estimate. Compacted replacement history remains omitted by default everywhere. Compaction metadata can show that replacement history exists, its entry count, and the source line, but the replacement text is returned only when explicitly requested for that selected call and is redacted before display.
47
47