codex-usage-tracking 0.11.4__tar.gz → 0.12.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.
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/.codex-plugin/plugin.json +1 -1
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/CHANGELOG.md +8 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/PKG-INFO +8 -1
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/README.md +1 -0
- codex_usage_tracking-0.12.0/docs/architecture-boundary-map.md +53 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/docs/development.md +7 -7
- codex_usage_tracking-0.12.0/docs/maintainability-roadmap.md +7643 -0
- codex_usage_tracking-0.12.0/docs/maintainability-scorecard.md +142 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/docs/one-dot-oh-readiness.md +8 -8
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/pyproject.toml +57 -7
- codex_usage_tracking-0.12.0/scripts/check_wemake_baseline.py +36 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/skills/codex-usage-tracker/scripts/run_mcp.py +2 -2
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/__init__.py +1 -1
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/__main__.py +3 -1
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/allowance.py +514 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/allowance_rate_card.py +279 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/allowance_text.py +116 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/call_origin.py +32 -13
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/cli.py +530 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/cli_config.py +196 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/cli_dashboard.py +163 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/cli_diagnostics.py +160 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/cli_output.py +11 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/cli_parser.py +2 -194
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/cli_parser_diagnostics.py +201 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/context.py +514 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/context_action_timing.py +105 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/context_loader.py +144 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/context_serialized.py +215 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/context_summaries.py +401 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/context_token_estimates.py +82 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/context_values.py +87 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/costing.py +40 -9
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/dashboard.py +134 -236
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/dashboard_assets.py +169 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/dashboard_pricing_snapshot.py +47 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/diagnostic_action_hints.py +80 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/diagnostic_fact_classifiers.py +383 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/diagnostic_facts.py +60 -303
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/diagnostic_reports.py +1 -30
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/diagnostic_snapshot_analysis.py +130 -279
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/diagnostic_snapshot_constants.py +2 -2
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/diagnostic_snapshot_events.py +23 -13
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/diagnostic_snapshot_payloads.py +176 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/diagnostic_snapshot_report.py +20 -19
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/diagnostic_snapshot_source_logs.py +204 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/diagnostic_snapshot_source_scan.py +322 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/diagnostic_snapshots.py +55 -339
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/diagnostics.py +96 -270
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/diagnostics_mcp.py +326 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/diagnostics_types.py +16 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/formatting.py +99 -52
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/json_contract_validation.py +112 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/json_contracts.py +5 -64
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/parser.py +228 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/parser_jsonl_v1.py +418 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/parser_jsonl_values.py +326 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/parser_state.py +181 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics_snapshots.js +70 -14
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_live.js +7 -3
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/projects.py +50 -27
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/recommendations.py +157 -105
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/report_filters.py +88 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/report_project_summary.py +128 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/report_recommendations.py +127 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/reports.py +85 -232
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server.py +558 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_call_detail.py +137 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_call_lists.py +170 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_context.py +125 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_context_settings.py +41 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_dashboard_shell.py +69 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_diagnostic_facts.py +210 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_diagnostic_routes.py +227 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_diagnostic_snapshots.py +241 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_live_queries.py +52 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_live_rows.py +151 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_open_investigator.py +69 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_recommendations.py +82 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_request_guards.py +45 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_responses.py +69 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_routes.py +55 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_status.py +83 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_summary.py +70 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_threads.py +80 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_usage_refresh.py +200 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/store.py +558 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/store_connection.py +28 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/store_dashboard_queries.py +446 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/store_diagnostic_call_queries.py +191 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/store_diagnostic_queries.py +330 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/store_exports.py +49 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/store_query_sql.py +98 -32
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/store_refresh.py +122 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/store_rows.py +64 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/store_schema.py +37 -60
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/store_sources.py +263 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/store_summary_queries.py +51 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/store_thread_summaries.py +71 -4
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/store_usage_api_queries.py +145 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/store_usage_record_queries.py +105 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/store_usage_timing.py +12 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/threads.py +54 -27
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_allowance_breakpoints.py +290 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_allowance_fits.py +259 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_allowance_online.py +317 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_boundary_delta.py +33 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_boundary_delta_core.py +178 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_boundary_delta_rows.py +382 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_boundary_delta_summary.py +504 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_boundary_scopes.py +26 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_boundary_summary.py +424 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_capacity_specs.py +198 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_error_diagnostics.py +227 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_feature_history.py +449 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_features.py +284 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_grace.py +180 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_history_state.py +91 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_model.py +497 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_predictive.py +346 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_predictive_specs.py +268 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_proxy_fit.py +146 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_regime_labels.py +29 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_regime_segments.py +411 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_regression.py +393 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/usage_drain_reports.py +82 -160
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_spans.py +495 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_state_buckets.py +246 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_state_diagnostics.py +302 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_summary_metrics.py +348 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_thread_curves.py +171 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/usage_drain_time_series.py +97 -43
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_token_components.py +262 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_transition_gates.py +184 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_transition_metrics.py +259 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_types.py +187 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_utils.py +190 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_walk_forward.py +236 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_walk_forward_rows.py +408 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracking.egg-info/PKG-INFO +8 -1
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracking.egg-info/SOURCES.txt +154 -1
- codex_usage_tracking-0.12.0/src/codex_usage_tracking.egg-info/requires.txt +20 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/tests/store_dashboard_helpers.py +3 -1
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/tests/test_call_origin.py +24 -0
- codex_usage_tracking-0.12.0/tests/test_cli_parser_diagnostics.py +36 -0
- codex_usage_tracking-0.12.0/tests/test_context_action_timing.py +48 -0
- codex_usage_tracking-0.12.0/tests/test_context_scan.py +55 -0
- codex_usage_tracking-0.12.0/tests/test_context_serialized.py +71 -0
- codex_usage_tracking-0.12.0/tests/test_context_summaries.py +109 -0
- codex_usage_tracking-0.12.0/tests/test_context_token_estimates.py +45 -0
- codex_usage_tracking-0.12.0/tests/test_context_values.py +43 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/tests/test_dashboard_diagnostics_snapshots.py +155 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/tests/test_dashboard_live.py +46 -0
- codex_usage_tracking-0.12.0/tests/test_dashboard_pricing_snapshot.py +33 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/tests/test_dashboard_server.py +7 -7
- codex_usage_tracking-0.12.0/tests/test_diagnostic_fact_classifiers.py +65 -0
- codex_usage_tracking-0.12.0/tests/test_diagnostic_reports.py +27 -0
- codex_usage_tracking-0.12.0/tests/test_diagnostic_snapshot_events.py +37 -0
- codex_usage_tracking-0.12.0/tests/test_diagnostic_snapshot_report.py +71 -0
- codex_usage_tracking-0.12.0/tests/test_diagnostic_snapshot_source_scan.py +124 -0
- codex_usage_tracking-0.12.0/tests/test_formatting.py +87 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/tests/test_json_contracts.py +23 -0
- codex_usage_tracking-0.12.0/tests/test_parser_inspect_log.py +38 -0
- codex_usage_tracking-0.12.0/tests/test_parser_state.py +54 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/tests/test_pricing.py +16 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/tests/test_privacy.py +8 -5
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/tests/test_projects.py +25 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/tests/test_recommendations.py +25 -0
- codex_usage_tracking-0.12.0/tests/test_server_call_detail.py +167 -0
- codex_usage_tracking-0.12.0/tests/test_server_call_lists.py +197 -0
- codex_usage_tracking-0.12.0/tests/test_server_context.py +174 -0
- codex_usage_tracking-0.12.0/tests/test_server_context_settings.py +39 -0
- codex_usage_tracking-0.12.0/tests/test_server_dashboard_shell.py +80 -0
- codex_usage_tracking-0.12.0/tests/test_server_diagnostic_facts.py +218 -0
- codex_usage_tracking-0.12.0/tests/test_server_diagnostic_refresh_auth.py +48 -0
- codex_usage_tracking-0.12.0/tests/test_server_diagnostic_snapshots.py +372 -0
- codex_usage_tracking-0.12.0/tests/test_server_live_queries.py +71 -0
- codex_usage_tracking-0.12.0/tests/test_server_live_rows.py +131 -0
- codex_usage_tracking-0.12.0/tests/test_server_open_investigator.py +85 -0
- codex_usage_tracking-0.12.0/tests/test_server_recommendations.py +159 -0
- codex_usage_tracking-0.12.0/tests/test_server_request_guards.py +58 -0
- codex_usage_tracking-0.12.0/tests/test_server_responses.py +67 -0
- codex_usage_tracking-0.12.0/tests/test_server_routes.py +36 -0
- codex_usage_tracking-0.12.0/tests/test_server_status.py +139 -0
- codex_usage_tracking-0.12.0/tests/test_server_summary.py +145 -0
- codex_usage_tracking-0.12.0/tests/test_server_threads.py +141 -0
- codex_usage_tracking-0.12.0/tests/test_server_usage_refresh.py +264 -0
- codex_usage_tracking-0.12.0/tests/test_store_dashboard_queries.py +178 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/tests/test_store_large_batches.py +14 -2
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/tests/test_store_migrations.py +17 -0
- codex_usage_tracking-0.12.0/tests/test_store_query_sql.py +56 -0
- codex_usage_tracking-0.12.0/tests/test_store_sources.py +194 -0
- codex_usage_tracking-0.12.0/tests/test_threads.py +203 -0
- codex_usage_tracking-0.12.0/tests/test_usage_drain_allowance_fits.py +192 -0
- codex_usage_tracking-0.12.0/tests/test_usage_drain_boundary_delta.py +70 -0
- codex_usage_tracking-0.12.0/tests/test_usage_drain_boundary_delta_summary.py +281 -0
- codex_usage_tracking-0.12.0/tests/test_usage_drain_boundary_summary.py +130 -0
- codex_usage_tracking-0.12.0/tests/test_usage_drain_error_diagnostics.py +161 -0
- codex_usage_tracking-0.12.0/tests/test_usage_drain_feature_history.py +65 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/tests/test_usage_drain_model.py +0 -95
- codex_usage_tracking-0.12.0/tests/test_usage_drain_one_percent_capacity.py +137 -0
- codex_usage_tracking-0.12.0/tests/test_usage_drain_predictive.py +59 -0
- codex_usage_tracking-0.12.0/tests/test_usage_drain_regime_segments.py +86 -0
- codex_usage_tracking-0.12.0/tests/test_usage_drain_regression.py +68 -0
- codex_usage_tracking-0.12.0/tests/test_usage_drain_report_records.py +107 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/tests/test_usage_drain_reports.py +50 -1
- codex_usage_tracking-0.12.0/tests/test_usage_drain_state_buckets.py +110 -0
- codex_usage_tracking-0.12.0/tests/test_usage_drain_state_diagnostics.py +64 -0
- codex_usage_tracking-0.12.0/tests/test_usage_drain_summary_metrics.py +66 -0
- codex_usage_tracking-0.12.0/tests/test_usage_drain_thread_curves.py +38 -0
- codex_usage_tracking-0.12.0/tests/test_usage_drain_token_components.py +45 -0
- codex_usage_tracking-0.12.0/tests/test_usage_drain_transition_gates.py +61 -0
- codex_usage_tracking-0.12.0/tests/test_usage_drain_transition_metrics.py +34 -0
- codex_usage_tracking-0.12.0/tests/test_usage_drain_walk_forward.py +61 -0
- codex_usage_tracking-0.11.4/src/codex_usage_tracker/allowance.py +0 -759
- codex_usage_tracking-0.11.4/src/codex_usage_tracker/cli.py +0 -976
- codex_usage_tracking-0.11.4/src/codex_usage_tracker/context.py +0 -1082
- codex_usage_tracking-0.11.4/src/codex_usage_tracker/parser.py +0 -852
- codex_usage_tracking-0.11.4/src/codex_usage_tracker/server.py +0 -1508
- codex_usage_tracking-0.11.4/src/codex_usage_tracker/store.py +0 -1800
- codex_usage_tracking-0.11.4/src/codex_usage_tracker/store_sources.py +0 -209
- codex_usage_tracking-0.11.4/src/codex_usage_tracker/usage_drain_model.py +0 -6753
- codex_usage_tracking-0.11.4/src/codex_usage_tracking.egg-info/requires.txt +0 -12
- codex_usage_tracking-0.11.4/tests/test_threads.py +0 -53
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/.mcp.json +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/AGENTS.md +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/CONTRIBUTING.md +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/LICENSE +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/MANIFEST.in +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/SECURITY.md +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/assets/icon.svg +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/docs/architecture.md +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/docs/assets/dashboard-call-investigator-evidence.png +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/docs/assets/dashboard-call-investigator-preview.png +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/docs/assets/dashboard-call-investigator.png +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/docs/assets/dashboard-calls-preview.png +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/docs/assets/dashboard-calls.png +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/docs/assets/dashboard-details.png +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/docs/assets/dashboard-diagnostics-git-expanded.png +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/docs/assets/dashboard-diagnostics.png +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/docs/assets/dashboard-insights.png +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/docs/assets/dashboard-threads.png +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/docs/assets/plugin-prompts.png +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/docs/assets/plugin-thread-leaderboard.png +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/docs/assets/ux/call-detail-panel.png +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/docs/assets/ux/insight-overview.png +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/docs/assets/ux/thread-investigation.png +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/docs/call-drilldown-performance-checklist.md +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/docs/cli-json-schemas.md +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/docs/cli-reference.md +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/docs/dashboard-guide.md +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/docs/install.md +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/docs/mcp.md +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/docs/pricing-and-credits.md +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/docs/privacy.md +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/docs/ui-ux-improvement-plan.md +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/docs/usage-drain-modeling.md +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/scripts/benchmark_synthetic_history.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/scripts/check_release.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/scripts/install_local_plugin.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/scripts/model_usage_drain.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/scripts/smoke_installed_package.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/setup.cfg +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/skills/codex-usage-api/SKILL.md +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/skills/codex-usage-tracker/SKILL.md +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/api_payloads.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/diagnostic_snapshot_concentration.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/diagnostic_snapshot_rows.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/i18n.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/mcp_server.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/models.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/paths.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/__init__.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/assets/icon.svg +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard.css +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard.js +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_actions.js +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_analysis.js +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_call.css +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_call_diagnostics.js +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_call_investigator.js +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_cells.js +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_data.js +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_detail.css +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_details.js +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics.js +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics_facts.js +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_events.js +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_filters.js +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_format.js +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_i18n.js +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_insights.css +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_insights.js +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_layout.css +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_payload_cache.js +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_responsive.css +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_state.js +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_status.js +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tables.css +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tables.js +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_template.html +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tooltips.js +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/ar.json +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/de.json +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/en.json +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/es.json +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/fr.json +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/it.json +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/ja.json +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/ko.json +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/pt.json +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/ru.json +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/vi.json +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/zh-Hans.json +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator-evidence.png +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator-preview.png +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator.png +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-calls-preview.png +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-calls.png +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-details.png +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-diagnostics-git-expanded.png +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-diagnostics.png +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-insights.png +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-threads.png +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/docs/assets/plugin-prompts.png +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/docs/assets/plugin-thread-leaderboard.png +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/docs/dashboard-guide.html +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/rate_cards/codex-credit-rates.json +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/skills/codex-usage-api/SKILL.md +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_data/skills/codex-usage-tracker/SKILL.md +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/plugin_installer.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/pricing.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/pricing_config.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/pricing_estimates.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/pricing_openai.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/redaction.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/schema.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/server_utils.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracker/support.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracking.egg-info/dependency_links.txt +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracking.egg-info/entry_points.txt +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/src/codex_usage_tracking.egg-info/top_level.txt +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/tests/test_allowance.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/tests/test_cli_lifecycle.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/tests/test_cli_release.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/tests/test_context_evidence.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/tests/test_dashboard_data.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/tests/test_dashboard_payload.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/tests/test_dashboard_state.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/tests/test_dashboard_status.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/tests/test_diagnostic_snapshots.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/tests/test_i18n.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/tests/test_mcp_integration.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/tests/test_mcp_launcher.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/tests/test_parser.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/tests/test_plugin_installer.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/tests/test_redaction.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/tests/test_schema.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/tests/test_store_dashboard_mcp.py +0 -0
- {codex_usage_tracking-0.11.4 → codex_usage_tracking-0.12.0}/tests/test_support.py +0 -0
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 0.12.0 - 2026-06-29
|
|
6
|
+
|
|
7
|
+
- Refactor CLI, dashboard server routing, SQLite store/query boundaries, context parsing, diagnostics, and usage-drain modeling into smaller modules with compatibility facades.
|
|
8
|
+
- Add local Agent Maintainer ratchet configuration, strict local `tach check`, maintainability boundary docs, and a maintainability scorecard for future cleanup work.
|
|
9
|
+
- Harden Diagnostics dashboard behavior for projected weekly credits charts, command expansion, live row status, and desktop/mobile smoke coverage.
|
|
10
|
+
- Clean up warning-sensitive tests so the full suite runs without SQLite/resource-handle `ResourceWarning` noise.
|
|
11
|
+
- Validate the refactor against a frozen local JSONL rebuild comparison before release.
|
|
12
|
+
|
|
5
13
|
## 0.11.4 - 2026-06-27
|
|
6
14
|
|
|
7
15
|
- Fix `codex-usage-tracker setup` on large local histories by batching stale diagnostic-fact deletes so SQLite does not exceed bound-variable limits during usage index refresh.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: codex-usage-tracking
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.12.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
|
|
@@ -28,12 +28,18 @@ License-File: LICENSE
|
|
|
28
28
|
Requires-Dist: mcp>=1.2.0
|
|
29
29
|
Requires-Dist: tiktoken>=0.13.0
|
|
30
30
|
Provides-Extra: dev
|
|
31
|
+
Requires-Dist: agent-maintainer[core]==0.1.0b1; python_version >= "3.11" and extra == "dev"
|
|
32
|
+
Requires-Dist: actionlint-py>=1.7.12.24; python_version >= "3.11" and extra == "dev"
|
|
31
33
|
Requires-Dist: build>=1.2; extra == "dev"
|
|
34
|
+
Requires-Dist: git-agent-ratchet>=1.3.0; python_version >= "3.11" and extra == "dev"
|
|
32
35
|
Requires-Dist: mypy>=1.10; extra == "dev"
|
|
33
36
|
Requires-Dist: pytest>=8.0; extra == "dev"
|
|
34
37
|
Requires-Dist: pytest-cov>=5.0; extra == "dev"
|
|
35
38
|
Requires-Dist: ruff>=0.8; extra == "dev"
|
|
39
|
+
Requires-Dist: tach>=0.35.0; python_version >= "3.11" and extra == "dev"
|
|
36
40
|
Requires-Dist: tomli>=2.0; python_version < "3.11" and extra == "dev"
|
|
41
|
+
Requires-Dist: wemake-python-styleguide>=1.6.2; python_version >= "3.11" and extra == "dev"
|
|
42
|
+
Requires-Dist: zizmor>=1.26.1; python_version >= "3.11" and extra == "dev"
|
|
37
43
|
Dynamic: license-file
|
|
38
44
|
|
|
39
45
|
# Codex Usage Tracker
|
|
@@ -47,6 +53,7 @@ Local-first dashboard, Codex plugin, and companion skill for understanding where
|
|
|
47
53
|
|
|
48
54
|
[](https://github.com/douglasmonsky/codex-usage-tracker/actions/workflows/ci.yml)
|
|
49
55
|
[](https://pypi.org/project/codex-usage-tracking/)
|
|
56
|
+
[](https://pepy.tech/projects/codex-usage-tracking)
|
|
50
57
|

|
|
51
58
|
[](LICENSE)
|
|
52
59
|
|
|
@@ -9,6 +9,7 @@ Local-first dashboard, Codex plugin, and companion skill for understanding where
|
|
|
9
9
|
|
|
10
10
|
[](https://github.com/douglasmonsky/codex-usage-tracker/actions/workflows/ci.yml)
|
|
11
11
|
[](https://pypi.org/project/codex-usage-tracking/)
|
|
12
|
+
[](https://pepy.tech/projects/codex-usage-tracking)
|
|
12
13
|

|
|
13
14
|
[](LICENSE)
|
|
14
15
|
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Architecture Boundary Map
|
|
2
|
+
|
|
3
|
+
This repository uses `tach` for local architecture visibility and enforcement.
|
|
4
|
+
The current local gate is:
|
|
5
|
+
|
|
6
|
+
```bash
|
|
7
|
+
tach check
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
`tach check` now passes locally and should be treated as a blocking local gate
|
|
11
|
+
for maintainability work. Remote CI remains untouched until explicitly approved.
|
|
12
|
+
|
|
13
|
+
## Current Strictness
|
|
14
|
+
|
|
15
|
+
- `layers_explicit_depends_on = true`
|
|
16
|
+
- `forbid_circular_dependencies = false`
|
|
17
|
+
- `source_roots = ["src"]`
|
|
18
|
+
- tests, docs, build artifacts, virtualenvs, and caches are excluded
|
|
19
|
+
|
|
20
|
+
The explicit dependency setting is enabled because the current boundary map can
|
|
21
|
+
validate module dependencies cleanly. Circular dependency blocking is still
|
|
22
|
+
deferred: enabling `forbid_circular_dependencies` currently reports broad cycles
|
|
23
|
+
across the coarse module groups. That should be handled in a later, smaller
|
|
24
|
+
architecture branch after the groups are split more precisely.
|
|
25
|
+
|
|
26
|
+
## Intended Direction
|
|
27
|
+
|
|
28
|
+
The current map uses coarse file-level module groups. The intended dependency
|
|
29
|
+
direction remains:
|
|
30
|
+
|
|
31
|
+
1. `core`: shared models, schema, paths, formatting, privacy helpers.
|
|
32
|
+
2. `pricing`: pricing and allowance helpers, depending only on core.
|
|
33
|
+
3. `parsing`: JSONL parsing, diagnostic fact extraction, raw context loading.
|
|
34
|
+
4. `persistence`: SQLite schema, migrations, refresh cursors, query helpers.
|
|
35
|
+
5. `reports`: application report assembly and stable JSON payloads.
|
|
36
|
+
6. `diagnostics`: diagnostic snapshots and aggregate-only analysis.
|
|
37
|
+
7. `dashboard_api`: dashboard generation, localhost API, HTTP helpers.
|
|
38
|
+
8. `adapters`: CLI, MCP, package entrypoint, plugin installer wrappers.
|
|
39
|
+
|
|
40
|
+
Adapters may call inward. Dashboard/API may call reports, diagnostics,
|
|
41
|
+
persistence, parsing, pricing, and core surfaces. Reports and diagnostics may
|
|
42
|
+
call lower-level layers. Low-level modules should avoid reaching upward.
|
|
43
|
+
|
|
44
|
+
## Local Commands
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
tach check
|
|
48
|
+
tach report src/codex_usage_tracker/usage_drain_reports.py --dependencies --usages
|
|
49
|
+
tach map -o /tmp/codex-usage-tracker-tach-map.json
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Use `tach report` and `tach map` for diagnosis. Use `tach check` as the local
|
|
53
|
+
blocking gate.
|
|
@@ -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.
|
|
41
|
+
release/0.12.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.
|
|
94
|
+
0.12.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.
|
|
150
|
-
python scripts/smoke_installed_package.py --docker --from-pypi --version 0.
|
|
149
|
+
python scripts/smoke_installed_package.py --from-pypi --version 0.12.0
|
|
150
|
+
python scripts/smoke_installed_package.py --docker --from-pypi --version 0.12.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.
|
|
298
|
-
git push origin v0.
|
|
297
|
+
git tag -a v0.12.0 -m "codex-usage-tracker 0.12.0"
|
|
298
|
+
git push origin v0.12.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. Patch release `0.10.1` adds lightweight action timing to context evidence and ships the synthetic Git Interactions README screenshot. Minor release `0.11.0` adds usage-drain diagnostic reports, projected weekly credit charts, and cumulative thread cost curves. Patch release `0.11.1` improves the Diagnostics weekly projection table and stale snapshot reload controls. Patch release `0.11.2` fixes served dashboard shell hydration and hardens the synthetic source-log benchmark smoke test. Patch release `0.11.3` fixes Windows live dashboard asset MIME handling. Patch release `0.11.4` fixes large-history setup refresh failures from SQLite variable limits.
|
|
307
|
+
The first public package release, `0.3.0`, was published on June 8, 2026. Patch release `0.3.1` followed the same day to ship the live-dashboard skill launch fix. Patch release `0.3.2` made dashboard launch refresh the default and added runtime enablement for context loading. Minor release `0.4.0` added Python 3.14 support, release recovery docs, stricter privacy/support-bundle regression coverage, and large-history benchmark thresholds. Patch release `0.4.1` was published by workflow dispatch from `main`; it hardened the PyPI publish workflow and checked off completed 1.0 readiness gates. Minor release `0.5.0` added dashboard localization support and initial language catalogs. Minor release `0.6.0` is the performance and call-drilldown release with SQL-backed live API slices, materialized thread summaries, faster evidence loading, and dashboard runtime module refactors. Patch release `0.6.1` aligns the final README/package screenshots and companion plugin assets. Minor release `0.7.0` adds observed usage snapshots and the latest-observed dashboard card while keeping raw evidence on demand only. Minor release `0.8.0` adds aggregate diagnostics, source-offset context seeking, and live dashboard loading hardening. Patch release `0.8.1` improves Diagnostics fact table readability with pinned fact names and sortable fact columns. Minor release `0.9.0` adds persisted diagnostic snapshots, on-demand diagnostic refresh, tool/command/file-read/concentration reports, and Diagnostics dashboard panels. Minor release `0.10.0` adds Git/GitHub CLI diagnostics, file-modification diagnostics, and derived call timing fields across the dashboard and API. Patch release `0.10.1` adds lightweight action timing to context evidence and ships the synthetic Git Interactions README screenshot. Minor release `0.11.0` adds usage-drain diagnostic reports, projected weekly credit charts, and cumulative thread cost curves. Patch release `0.11.1` improves the Diagnostics weekly projection table and stale snapshot reload controls. Patch release `0.11.2` fixes served dashboard shell hydration and hardens the synthetic source-log benchmark smoke test. Patch release `0.11.3` fixes Windows live dashboard asset MIME handling. Patch release `0.11.4` fixes large-history setup refresh failures from SQLite variable limits. Minor release `0.12.0` ships the maintainability architecture repair, dashboard diagnostics hardening, Agent Maintainer ratchets, and warning-clean test suite.
|
|
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`
|