codex-usage-tracking 0.17.0__tar.gz → 0.17.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 (442) hide show
  1. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/.codex-plugin/plugin.json +1 -1
  2. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/CHANGELOG.md +4 -0
  3. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/PKG-INFO +1 -1
  4. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/development.md +2 -2
  5. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/one-dot-oh-readiness.md +8 -8
  6. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/pyproject.toml +1 -1
  7. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/skills/codex-usage-tracker/scripts/run_mcp.py +2 -2
  8. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/__init__.py +1 -1
  9. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/cli/mcp_server.py +89 -1
  10. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracking.egg-info/PKG-INFO +1 -1
  11. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/cli/test_mcp_integration.py +12 -0
  12. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/.mcp.json +0 -0
  13. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/AGENTS.md +0 -0
  14. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/CONTRIBUTING.md +0 -0
  15. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/LICENSE +0 -0
  16. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/MANIFEST.in +0 -0
  17. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/README.md +0 -0
  18. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/SECURITY.md +0 -0
  19. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/assets/icon.svg +0 -0
  20. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/adoption-hardening-roadmap.md +0 -0
  21. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/agentic-briefing-and-dogfood-roadmap.md +0 -0
  22. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/agentic-investigation-hardening-roadmap.md +0 -0
  23. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/agentic-mcp-skill-roadmap.md +0 -0
  24. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/allowance-intelligence.md +0 -0
  25. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/architecture/decisions/0001-package-domain-boundaries.md +0 -0
  26. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/architecture-boundary-map.md +0 -0
  27. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/architecture.md +0 -0
  28. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/dashboard-call-investigator-evidence.png +0 -0
  29. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/dashboard-call-investigator-preview.png +0 -0
  30. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/dashboard-call-investigator.png +0 -0
  31. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/dashboard-calls-preview.png +0 -0
  32. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/dashboard-calls.png +0 -0
  33. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/dashboard-details.png +0 -0
  34. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/dashboard-diagnostics-git-expanded.png +0 -0
  35. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/dashboard-diagnostics.png +0 -0
  36. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/dashboard-insights.png +0 -0
  37. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/dashboard-threads.png +0 -0
  38. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/frontend-rewrite-references/cache-context-lab-reference.png +0 -0
  39. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/frontend-rewrite-references/call-drilldown-menu-concept-reference.png +0 -0
  40. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/frontend-rewrite-references/calls-analyst-view-reference.png +0 -0
  41. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/frontend-rewrite-references/calls-high-density-reference.png +0 -0
  42. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/frontend-rewrite-references/command-palette-dashboard-reference.png +0 -0
  43. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/frontend-rewrite-references/diagnostics-notebook-reference.png +0 -0
  44. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/frontend-rewrite-references/generated-dashboard-concept-reference.png +0 -0
  45. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/frontend-rewrite-references/generated-maintainer-banner-reference.png +0 -0
  46. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/frontend-rewrite-references/investigator-workbench-reference.png +0 -0
  47. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/frontend-rewrite-references/overview-dashboard-reference.png +0 -0
  48. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/frontend-rewrite-references/projected-weekly-credits-overlap-reference.png +0 -0
  49. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/frontend-rewrite-references/thread-efficiency-reference.png +0 -0
  50. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/frontend-rewrite-references/usage-drain-lab-reference.png +0 -0
  51. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/plugin-prompts.png +0 -0
  52. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/plugin-thread-leaderboard.png +0 -0
  53. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/readme-hero-2.png +0 -0
  54. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/readme-hero.png +0 -0
  55. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/social-preview.png +0 -0
  56. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/ux/call-detail-panel.png +0 -0
  57. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/ux/insight-overview.png +0 -0
  58. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/ux/thread-investigation.png +0 -0
  59. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/call-drilldown-performance-checklist.md +0 -0
  60. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/cli-json-schemas.md +0 -0
  61. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/cli-reference.md +0 -0
  62. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/dashboard-guide.md +0 -0
  63. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/examples/remediation-conversation.md +0 -0
  64. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/examples/token-waste-conversation.md +0 -0
  65. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/first-five-minutes.md +0 -0
  66. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/frontend-rewrite-roadmap.md +0 -0
  67. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/install.md +0 -0
  68. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/local-content-index-roadmap.md +0 -0
  69. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/maintainability-roadmap.md +0 -0
  70. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/maintainability-scorecard.md +0 -0
  71. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/mcp.md +0 -0
  72. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/pricing-and-credits.md +0 -0
  73. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/privacy.md +0 -0
  74. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/react-dashboard-0.14-release-roadmap.md +0 -0
  75. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/ui-ux-improvement-plan.md +0 -0
  76. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/usage-drain-modeling.md +0 -0
  77. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/scripts/benchmark_synthetic_history.py +0 -0
  78. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/scripts/check_release.py +0 -0
  79. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/scripts/check_wemake_baseline.py +0 -0
  80. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/scripts/generate_social_preview.py +0 -0
  81. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/scripts/install_local_plugin.py +0 -0
  82. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/scripts/model_usage_drain.py +0 -0
  83. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/scripts/smoke_installed_package.py +0 -0
  84. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/setup.cfg +0 -0
  85. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/skills/codex-usage-api/SKILL.md +0 -0
  86. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/skills/codex-usage-tracker/SKILL.md +0 -0
  87. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/__main__.py +0 -0
  88. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/allowance.py +0 -0
  89. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/allowance_intelligence/__init__.py +0 -0
  90. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/allowance_intelligence/model.py +0 -0
  91. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/allowance_intelligence/reports.py +0 -0
  92. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/cli/__init__.py +0 -0
  93. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/cli/__main__.py +0 -0
  94. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/cli/config.py +0 -0
  95. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/cli/dashboard.py +0 -0
  96. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/cli/diagnostics.py +0 -0
  97. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/cli/main.py +0 -0
  98. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/cli/output.py +0 -0
  99. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/cli/parser.py +0 -0
  100. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/cli/parser_diagnostics.py +0 -0
  101. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/cli/plugin_installer.py +0 -0
  102. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/context/__init__.py +0 -0
  103. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/context/action_timing.py +0 -0
  104. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/context/api.py +0 -0
  105. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/context/constants.py +0 -0
  106. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/context/loader.py +0 -0
  107. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/context/reader.py +0 -0
  108. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/context/serialized.py +0 -0
  109. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/context/summaries.py +0 -0
  110. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/context/token_estimates.py +0 -0
  111. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/context/values.py +0 -0
  112. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/__init__.py +0 -0
  113. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/api_payloads.py +0 -0
  114. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/call_origin.py +0 -0
  115. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/formatting.py +0 -0
  116. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/i18n.py +0 -0
  117. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/json_contract_cli.py +0 -0
  118. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/json_contract_common.py +0 -0
  119. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/json_contract_diagnostics.py +0 -0
  120. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/json_contract_server.py +0 -0
  121. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/json_contract_validation.py +0 -0
  122. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/json_contracts.py +0 -0
  123. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/models.py +0 -0
  124. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/paths.py +0 -0
  125. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/projects.py +0 -0
  126. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/redaction.py +0 -0
  127. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/schema.py +0 -0
  128. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/threads.py +0 -0
  129. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/dashboard/__init__.py +0 -0
  130. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/dashboard/api.py +0 -0
  131. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/dashboard/assets.py +0 -0
  132. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/dashboard/pricing_snapshot.py +0 -0
  133. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/__init__.py +0 -0
  134. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/action_hints.py +0 -0
  135. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/api.py +0 -0
  136. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/fact_classifiers.py +0 -0
  137. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/facts.py +0 -0
  138. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/guided_summary.py +0 -0
  139. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/mcp.py +0 -0
  140. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/reports.py +0 -0
  141. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/snapshot_analysis.py +0 -0
  142. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/snapshot_concentration.py +0 -0
  143. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/snapshot_constants.py +0 -0
  144. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/snapshot_events.py +0 -0
  145. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/snapshot_payloads.py +0 -0
  146. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/snapshot_report.py +0 -0
  147. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/snapshot_rows.py +0 -0
  148. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/snapshot_source_logs.py +0 -0
  149. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/snapshot_source_scan.py +0 -0
  150. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/snapshots.py +0 -0
  151. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/types.py +0 -0
  152. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/mcp_server.py +0 -0
  153. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/parser/__init__.py +0 -0
  154. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/parser/api.py +0 -0
  155. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/parser/jsonl_v1.py +0 -0
  156. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/parser/jsonl_values.py +0 -0
  157. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/parser/state.py +0 -0
  158. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/__init__.py +0 -0
  159. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/assets/icon.svg +0 -0
  160. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard.css +0 -0
  161. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard.js +0 -0
  162. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_actions.js +0 -0
  163. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_analysis.js +0 -0
  164. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_call.css +0 -0
  165. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_call_diagnostics.js +0 -0
  166. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_call_investigator.js +0 -0
  167. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_cells.js +0 -0
  168. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_data.js +0 -0
  169. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_detail.css +0 -0
  170. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_details.js +0 -0
  171. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics.js +0 -0
  172. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics_facts.js +0 -0
  173. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics_snapshots.js +0 -0
  174. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_events.js +0 -0
  175. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_filters.js +0 -0
  176. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_format.js +0 -0
  177. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_i18n.js +0 -0
  178. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_insights.css +0 -0
  179. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_insights.js +0 -0
  180. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_layout.css +0 -0
  181. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_live.js +0 -0
  182. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_payload_cache.js +0 -0
  183. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_responsive.css +0 -0
  184. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_state.js +0 -0
  185. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_status.js +0 -0
  186. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tables.css +0 -0
  187. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tables.js +0 -0
  188. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_template.html +0 -0
  189. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tooltips.js +0 -0
  190. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/ar.json +0 -0
  191. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/de.json +0 -0
  192. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/en.json +0 -0
  193. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/es.json +0 -0
  194. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/fr.json +0 -0
  195. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/it.json +0 -0
  196. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/ja.json +0 -0
  197. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/ko.json +0 -0
  198. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/pt.json +0 -0
  199. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/ru.json +0 -0
  200. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/vi.json +0 -0
  201. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/zh-Hans.json +0 -0
  202. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/dashboard-react.js +0 -0
  203. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/index.css +0 -0
  204. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/react/index.html +0 -0
  205. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator-evidence.png +0 -0
  206. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator-preview.png +0 -0
  207. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator.png +0 -0
  208. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-calls-preview.png +0 -0
  209. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-calls.png +0 -0
  210. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-details.png +0 -0
  211. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-diagnostics-git-expanded.png +0 -0
  212. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-diagnostics.png +0 -0
  213. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-insights.png +0 -0
  214. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-threads.png +0 -0
  215. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/docs/assets/plugin-prompts.png +0 -0
  216. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/docs/assets/plugin-thread-leaderboard.png +0 -0
  217. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/docs/dashboard-guide.html +0 -0
  218. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/docs/examples/remediation-conversation.md +0 -0
  219. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/docs/examples/token-waste-conversation.md +0 -0
  220. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/rate_cards/codex-credit-rates.json +0 -0
  221. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/skills/codex-usage-api/SKILL.md +0 -0
  222. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/skills/codex-usage-tracker/SKILL.md +0 -0
  223. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_installer.py +0 -0
  224. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/pricing/__init__.py +0 -0
  225. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/pricing/allowance.py +0 -0
  226. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/pricing/allowance_config.py +0 -0
  227. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/pricing/allowance_rate_card.py +0 -0
  228. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/pricing/allowance_text.py +0 -0
  229. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/pricing/allowance_usage.py +0 -0
  230. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/pricing/api.py +0 -0
  231. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/pricing/config.py +0 -0
  232. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/pricing/costing.py +0 -0
  233. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/pricing/estimates.py +0 -0
  234. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/pricing/openai.py +0 -0
  235. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/reports/__init__.py +0 -0
  236. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/reports/agentic_dogfood.py +0 -0
  237. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/reports/api.py +0 -0
  238. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/reports/filters.py +0 -0
  239. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/reports/project_summary.py +0 -0
  240. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/reports/recommendation_builder.py +0 -0
  241. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/reports/recommendations.py +0 -0
  242. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/reports/support.py +0 -0
  243. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/__init__.py +0 -0
  244. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/allowance.py +0 -0
  245. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/api.py +0 -0
  246. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/call_detail.py +0 -0
  247. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/call_lists.py +0 -0
  248. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/context.py +0 -0
  249. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/context_settings.py +0 -0
  250. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/dashboard_shell.py +0 -0
  251. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/diagnostic_facts.py +0 -0
  252. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/diagnostic_routes.py +0 -0
  253. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/diagnostic_snapshots.py +0 -0
  254. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/handler.py +0 -0
  255. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/live_queries.py +0 -0
  256. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/live_rows.py +0 -0
  257. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/open_investigator.py +0 -0
  258. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/recommendations.py +0 -0
  259. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/reports.py +0 -0
  260. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/request_guards.py +0 -0
  261. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/responses.py +0 -0
  262. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/routes.py +0 -0
  263. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/status.py +0 -0
  264. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/summary.py +0 -0
  265. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/threads.py +0 -0
  266. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/usage_refresh.py +0 -0
  267. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/utils.py +0 -0
  268. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/__init__.py +0 -0
  269. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/allowance_observations.py +0 -0
  270. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/api.py +0 -0
  271. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/connection.py +0 -0
  272. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/content_index.py +0 -0
  273. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/content_index_event_store.py +0 -0
  274. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/content_index_events.py +0 -0
  275. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/content_patterns.py +0 -0
  276. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/dashboard_queries.py +0 -0
  277. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/diagnostic_call_queries.py +0 -0
  278. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/diagnostic_queries.py +0 -0
  279. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/exports.py +0 -0
  280. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/investigation_runs.py +0 -0
  281. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/large_low_output.py +0 -0
  282. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/query_sql.py +0 -0
  283. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/refresh.py +0 -0
  284. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/repeated_files.py +0 -0
  285. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/rows.py +0 -0
  286. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/schema.py +0 -0
  287. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/shell_churn.py +0 -0
  288. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/source_records.py +0 -0
  289. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/sources.py +0 -0
  290. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/summary_queries.py +0 -0
  291. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/thread_summaries.py +0 -0
  292. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/usage_api_queries.py +0 -0
  293. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/usage_record_queries.py +0 -0
  294. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/usage_timing.py +0 -0
  295. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/support.py +0 -0
  296. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/__init__.py +0 -0
  297. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/allowance_breakpoints.py +0 -0
  298. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/allowance_fits.py +0 -0
  299. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/allowance_online.py +0 -0
  300. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/boundary_delta.py +0 -0
  301. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/boundary_delta_core.py +0 -0
  302. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/boundary_delta_rows.py +0 -0
  303. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/boundary_delta_summary.py +0 -0
  304. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/boundary_scopes.py +0 -0
  305. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/boundary_summary.py +0 -0
  306. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/capacity_specs.py +0 -0
  307. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/error_diagnostics.py +0 -0
  308. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/feature_history.py +0 -0
  309. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/features.py +0 -0
  310. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/grace.py +0 -0
  311. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/history_state.py +0 -0
  312. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/model.py +0 -0
  313. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/predictive.py +0 -0
  314. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/predictive_specs.py +0 -0
  315. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/proxy_fit.py +0 -0
  316. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/regime_labels.py +0 -0
  317. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/regime_segments.py +0 -0
  318. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/regression.py +0 -0
  319. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/reports.py +0 -0
  320. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/spans.py +0 -0
  321. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/state_buckets.py +0 -0
  322. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/state_diagnostics.py +0 -0
  323. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/summary_metrics.py +0 -0
  324. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/thread_curves.py +0 -0
  325. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/time_series.py +0 -0
  326. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/token_components.py +0 -0
  327. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/transition_gates.py +0 -0
  328. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/transition_metrics.py +0 -0
  329. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/types.py +0 -0
  330. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/utils.py +0 -0
  331. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/walk_forward.py +0 -0
  332. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/walk_forward_rows.py +0 -0
  333. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracking.egg-info/SOURCES.txt +0 -0
  334. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracking.egg-info/dependency_links.txt +0 -0
  335. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracking.egg-info/entry_points.txt +0 -0
  336. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracking.egg-info/requires.txt +0 -0
  337. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracking.egg-info/top_level.txt +0 -0
  338. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/__init__.py +0 -0
  339. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/allowance_intelligence/test_allowance_intelligence.py +0 -0
  340. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/cli/test_allowance_intelligence_cli_mcp.py +0 -0
  341. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/cli/test_cli_dashboard.py +0 -0
  342. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/cli/test_cli_lifecycle.py +0 -0
  343. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/cli/test_cli_module_entrypoints.py +0 -0
  344. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/cli/test_cli_parser_diagnostics.py +0 -0
  345. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/cli/test_cli_release.py +0 -0
  346. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/cli/test_mcp_launcher.py +0 -0
  347. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/cli/test_plugin_installer.py +0 -0
  348. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/context/test_context_action_timing.py +0 -0
  349. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/context/test_context_evidence.py +0 -0
  350. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/context/test_context_scan.py +0 -0
  351. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/context/test_context_serialized.py +0 -0
  352. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/context/test_context_summaries.py +0 -0
  353. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/context/test_context_token_estimates.py +0 -0
  354. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/context/test_context_values.py +0 -0
  355. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/core/test_call_origin.py +0 -0
  356. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/core/test_formatting.py +0 -0
  357. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/core/test_i18n.py +0 -0
  358. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/core/test_json_contracts.py +0 -0
  359. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/core/test_privacy.py +0 -0
  360. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/core/test_projects.py +0 -0
  361. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/core/test_redaction.py +0 -0
  362. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/core/test_schema.py +0 -0
  363. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/core/test_threads.py +0 -0
  364. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/dashboard/test_dashboard_data.py +0 -0
  365. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/dashboard/test_dashboard_diagnostics_snapshots.py +0 -0
  366. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/dashboard/test_dashboard_live.py +0 -0
  367. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/dashboard/test_dashboard_payload.py +0 -0
  368. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/dashboard/test_dashboard_pricing_snapshot.py +0 -0
  369. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/dashboard/test_dashboard_server.py +0 -0
  370. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/dashboard/test_dashboard_state.py +0 -0
  371. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/dashboard/test_dashboard_status.py +0 -0
  372. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/diagnostics/test_diagnostic_fact_classifiers.py +0 -0
  373. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/diagnostics/test_diagnostic_reports.py +0 -0
  374. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/diagnostics/test_diagnostic_snapshot_events.py +0 -0
  375. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/diagnostics/test_diagnostic_snapshot_report.py +0 -0
  376. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/diagnostics/test_diagnostic_snapshot_source_scan.py +0 -0
  377. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/diagnostics/test_diagnostic_snapshots.py +0 -0
  378. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/diagnostics/test_doctor_first_run.py +0 -0
  379. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/parser/test_parser.py +0 -0
  380. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/parser/test_parser_inspect_log.py +0 -0
  381. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/parser/test_parser_state.py +0 -0
  382. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/pricing/test_allowance.py +0 -0
  383. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/pricing/test_pricing.py +0 -0
  384. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/reports/test_action_brief.py +0 -0
  385. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/reports/test_agentic_dogfood.py +0 -0
  386. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/reports/test_hypothesis_routing.py +0 -0
  387. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/reports/test_recommendations.py +0 -0
  388. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/reports/test_support.py +0 -0
  389. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_refresh_jobs.py +0 -0
  390. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_refresh_routes.py +0 -0
  391. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_allowance.py +0 -0
  392. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_api.py +0 -0
  393. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_call_detail.py +0 -0
  394. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_call_lists.py +0 -0
  395. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_context.py +0 -0
  396. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_context_settings.py +0 -0
  397. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_dashboard_shell.py +0 -0
  398. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_diagnostic_facts.py +0 -0
  399. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_diagnostic_refresh_auth.py +0 -0
  400. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_diagnostic_snapshots.py +0 -0
  401. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_live_queries.py +0 -0
  402. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_live_rows.py +0 -0
  403. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_open_investigator.py +0 -0
  404. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_recommendations.py +0 -0
  405. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_request_guards.py +0 -0
  406. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_responses.py +0 -0
  407. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_routes.py +0 -0
  408. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_status.py +0 -0
  409. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_summary.py +0 -0
  410. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_threads.py +0 -0
  411. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_usage_refresh.py +0 -0
  412. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/store/test_content_index.py +0 -0
  413. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/store/test_refresh_parallel.py +0 -0
  414. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/store/test_source_records.py +0 -0
  415. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/store/test_store_dashboard_mcp.py +0 -0
  416. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/store/test_store_dashboard_queries.py +0 -0
  417. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/store/test_store_large_batches.py +0 -0
  418. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/store/test_store_migrations.py +0 -0
  419. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/store/test_store_query_sql.py +0 -0
  420. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/store/test_store_sources.py +0 -0
  421. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/store_dashboard_helpers.py +0 -0
  422. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_allowance_fits.py +0 -0
  423. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_boundary_delta.py +0 -0
  424. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_boundary_delta_summary.py +0 -0
  425. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_boundary_summary.py +0 -0
  426. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_error_diagnostics.py +0 -0
  427. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_feature_history.py +0 -0
  428. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_model.py +0 -0
  429. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_one_percent_capacity.py +0 -0
  430. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_predictive.py +0 -0
  431. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_regime_segments.py +0 -0
  432. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_regression.py +0 -0
  433. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_report_records.py +0 -0
  434. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_reports.py +0 -0
  435. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_state_buckets.py +0 -0
  436. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_state_diagnostics.py +0 -0
  437. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_summary_metrics.py +0 -0
  438. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_thread_curves.py +0 -0
  439. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_token_components.py +0 -0
  440. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_transition_gates.py +0 -0
  441. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_transition_metrics.py +0 -0
  442. {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.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.17.0",
3
+ "version": "0.17.1",
4
4
  "description": "Unofficial local Codex usage dashboard and MCP diagnostics from local session logs.",
5
5
  "author": {
6
6
  "name": "Douglas Monsky"
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.17.1 - 2026-07-09
6
+
7
+ - Stabilize async dogfood cache fingerprints so repeated unchanged MCP dogfood runs can reuse cached reports even when SQLite file metadata changes during read/report activity.
8
+
5
9
  ## 0.17.0 - 2026-07-08
6
10
 
7
11
  - Add agentic MCP investigation tools for hypothesis-driven usage diagnostics, compact evidence briefs, and actionable recommendation reports.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codex-usage-tracking
3
- Version: 0.17.0
3
+ Version: 0.17.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
@@ -149,8 +149,8 @@ python scripts/smoke_installed_package.py --docker
149
149
  To verify the public PyPI package instead of the local checkout:
150
150
 
151
151
  ```bash
152
- python scripts/smoke_installed_package.py --from-pypi --version 0.17.0
153
- python scripts/smoke_installed_package.py --docker --from-pypi --version 0.17.0
152
+ python scripts/smoke_installed_package.py --from-pypi --version 0.17.1
153
+ python scripts/smoke_installed_package.py --docker --from-pypi --version 0.17.1
154
154
  ```
155
155
 
156
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.
@@ -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.17.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.17.0`: `python -m venv /tmp/codex-usage-pypi-smoke && . /tmp/codex-usage-pypi-smoke/bin/activate && python -m pip install codex-usage-tracking==0.17.0 && codex-usage-tracker --version`.
29
- - [x] Verify public pipx install path for `0.17.0`: `PIPX_HOME=/tmp/codex-usage-pipx-home PIPX_BIN_DIR=/tmp/codex-usage-pipx-bin pipx install codex-usage-tracking==0.17.0 && /tmp/codex-usage-pipx-bin/codex-usage-tracker --version`.
27
+ - [x] Verify the current public PyPI version is visible as `0.17.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.17.1`: `python -m venv /tmp/codex-usage-pypi-smoke && . /tmp/codex-usage-pypi-smoke/bin/activate && python -m pip install codex-usage-tracking==0.17.1 && codex-usage-tracker --version`.
29
+ - [x] Verify public pipx install path for `0.17.1`: `PIPX_HOME=/tmp/codex-usage-pipx-home PIPX_BIN_DIR=/tmp/codex-usage-pipx-bin pipx install codex-usage-tracking==0.17.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.17.0`.
32
+ - [x] Verify public PyPI package in Docker: `python scripts/smoke_installed_package.py --docker --from-pypi --version 0.17.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.17.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.17.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.17.0`.
144
+ - Public PyPI Docker coverage is proven by `scripts/smoke_installed_package.py --docker --from-pypi --version 0.17.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.17.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.17.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.17.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.17.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.17.0"
7
+ version = "0.17.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"
@@ -15,9 +15,9 @@ from pathlib import Path
15
15
 
16
16
  PACKAGE_SPEC = os.environ.get(
17
17
  "CODEX_USAGE_TRACKER_PACKAGE_SPEC",
18
- "codex-usage-tracking==0.17.0",
18
+ "codex-usage-tracking==0.17.1",
19
19
  )
20
- RUNTIME_VERSION = "0.17.0"
20
+ RUNTIME_VERSION = "0.17.1"
21
21
  PACKAGE_SPEC_MARKER = ".codex-usage-tracker-package-spec"
22
22
  MODULE_CHECK = (
23
23
  "import importlib.metadata; "
@@ -2,6 +2,6 @@
2
2
 
3
3
  from codex_usage_tracker.core.models import UsageEvent
4
4
 
5
- __version__ = "0.17.0"
5
+ __version__ = "0.17.1"
6
6
 
7
7
  __all__ = ["UsageEvent", "__version__"]
@@ -5,6 +5,7 @@ from __future__ import annotations
5
5
  import hashlib
6
6
  import json
7
7
  import os
8
+ import sqlite3
8
9
  import threading
9
10
  import uuid
10
11
  from datetime import datetime, timezone
@@ -122,9 +123,96 @@ def _dogfood_file_fingerprint(path: Path) -> dict[str, Any]:
122
123
  }
123
124
 
124
125
 
126
+ def _dogfood_db_table_signature(
127
+ connection: sqlite3.Connection,
128
+ table_name: str,
129
+ expressions: list[str],
130
+ ) -> dict[str, Any]:
131
+ exists = connection.execute(
132
+ "SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = ?",
133
+ (table_name,),
134
+ ).fetchone()
135
+ if exists is None:
136
+ return {"exists": False}
137
+ columns = ", ".join(expressions)
138
+ row = connection.execute(f"SELECT {columns} FROM {table_name}").fetchone()
139
+ return {"exists": True, "values": list(row or [])}
140
+
141
+
142
+ def _dogfood_db_fingerprint(path: Path) -> dict[str, Any]:
143
+ try:
144
+ stat = path.stat()
145
+ except FileNotFoundError:
146
+ return {"path": str(path), "exists": False}
147
+
148
+ fingerprint: dict[str, Any] = {
149
+ "path": str(path),
150
+ "exists": True,
151
+ "size": stat.st_size,
152
+ }
153
+ try:
154
+ with sqlite3.connect(f"file:{path}?mode=ro", uri=True) as connection:
155
+ connection.execute("PRAGMA query_only = ON")
156
+ fingerprint["tables"] = {
157
+ "usage_events": _dogfood_db_table_signature(
158
+ connection,
159
+ "usage_events",
160
+ [
161
+ "COUNT(*)",
162
+ "COALESCE(MAX(event_timestamp), '')",
163
+ "COALESCE(MAX(record_id), '')",
164
+ "COALESCE(SUM(total_tokens), 0)",
165
+ ],
166
+ ),
167
+ "source_files": _dogfood_db_table_signature(
168
+ connection,
169
+ "source_files",
170
+ [
171
+ "COUNT(*)",
172
+ "COALESCE(SUM(size_bytes), 0)",
173
+ "COALESCE(MAX(mtime_ns), 0)",
174
+ "COALESCE(MAX(parsed_until_line), 0)",
175
+ "COALESCE(MAX(latest_event_timestamp), '')",
176
+ ],
177
+ ),
178
+ "command_runs": _dogfood_db_table_signature(
179
+ connection,
180
+ "command_runs",
181
+ ["COUNT(*)", "COALESCE(MAX(record_id), '')"],
182
+ ),
183
+ "file_events": _dogfood_db_table_signature(
184
+ connection,
185
+ "file_events",
186
+ ["COUNT(*)", "COALESCE(MAX(record_id), '')"],
187
+ ),
188
+ "tool_calls": _dogfood_db_table_signature(
189
+ connection,
190
+ "tool_calls",
191
+ ["COUNT(*)", "COALESCE(MAX(record_id), '')"],
192
+ ),
193
+ "content_fragments": _dogfood_db_table_signature(
194
+ connection,
195
+ "content_fragments",
196
+ ["COUNT(*)", "COALESCE(MAX(record_id), '')"],
197
+ ),
198
+ "allowance_observations": _dogfood_db_table_signature(
199
+ connection,
200
+ "allowance_observations",
201
+ [
202
+ "COUNT(*)",
203
+ "COALESCE(MAX(observed_at), '')",
204
+ "COALESCE(MAX(source_record_id), '')",
205
+ ],
206
+ ),
207
+ }
208
+ except sqlite3.Error as exc:
209
+ fingerprint["read_error"] = type(exc).__name__
210
+ return fingerprint
211
+
212
+
125
213
  def _dogfood_cache_fingerprint(params: dict[str, Any]) -> dict[str, Any]:
126
214
  return {
127
- "db": _dogfood_file_fingerprint(params["db_path"]),
215
+ "db": _dogfood_db_fingerprint(params["db_path"]),
128
216
  "pricing": _dogfood_file_fingerprint(params["pricing_path"]),
129
217
  "allowance": _dogfood_file_fingerprint(params["allowance_path"]),
130
218
  "rate_card": _dogfood_file_fingerprint(params["rate_card_path"]),
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codex-usage-tracking
3
- Version: 0.17.0
3
+ Version: 0.17.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
@@ -1,6 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import json
4
+ import os
4
5
  import sys
5
6
  import time
6
7
  from pathlib import Path
@@ -526,6 +527,17 @@ def test_mcp_dogfood_async_job_reports_progress(tmp_path: Path, monkeypatch) ->
526
527
  cached_result = mcp_server.usage_dogfood_result(cached["job_id"])
527
528
  assert cached_result["schema"] == "codex-usage-tracker-agentic-dogfood-v1"
528
529
 
530
+ bumped_mtime = time.time() + 60
531
+ os.utime(db_path, (bumped_mtime, bumped_mtime))
532
+ mtime_cached = mcp_server.usage_dogfood_start(
533
+ evidence_limit=1,
534
+ privacy_mode="strict",
535
+ refresh=False,
536
+ write_markdown=False,
537
+ )
538
+ assert mtime_cached["status"] == "completed"
539
+ assert mtime_cached["result_cache"]["hit"] is True
540
+
529
541
  with mcp_server._DOGFOOD_JOB_LOCK:
530
542
  mcp_server._DOGFOOD_RESULT_CACHE.clear()
531
543
  disk_cached = mcp_server.usage_dogfood_start(