From a875bacd59c6e239f499a531b14f0f76d4541d84 Mon Sep 17 00:00:00 2001 From: Monsky Date: Fri, 17 Jul 2026 13:42:07 -0400 Subject: [PATCH] chore: prepare 0.21.0 release --- .codex-plugin/plugin.json | 2 +- CHANGELOG.md | 9 +++++++++ docs/development.md | 4 ++-- docs/one-dot-oh-readiness.md | 16 ++++++++-------- pyproject.toml | 2 +- skills/codex-usage-tracker/scripts/run_mcp.py | 4 ++-- src/codex_usage_tracker/__init__.py | 2 +- 7 files changed, 24 insertions(+), 15 deletions(-) diff --git a/.codex-plugin/plugin.json b/.codex-plugin/plugin.json index 4639b313..c26a361b 100644 --- a/.codex-plugin/plugin.json +++ b/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "codex-usage-tracker", - "version": "0.20.0", + "version": "0.21.0", "description": "Unofficial local Codex usage dashboard and MCP diagnostics from local session logs.", "author": { "name": "Douglas Monsky" diff --git a/CHANGELOG.md b/CHANGELOG.md index d481cbf2..6f35bee7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,15 @@ ## Unreleased +## 0.21.0 - 2026-07-17 + +- Keep the macOS dashboard available at a stable, localhost-only URL with a + login LaunchAgent, explicit port-collision handling, health checks, and + install, status, and uninstall commands. +- Preserve responsive inline thread expansion while bounding initial work and + polishing progressive call loading, retry behavior, and row presentation. +- Preserve full-width Windows filesystem identifiers so distinct sources do + not collapse during aggregate usage ingestion. - Ingest aggregate `response.completed` telemetry from local `codex-completions*.jsonl` exporter files and conservatively reconcile exact Fast/Standard service-tier evidence to canonical calls without retaining raw diff --git a/docs/development.md b/docs/development.md index 724848a5..a668aef0 100644 --- a/docs/development.md +++ b/docs/development.md @@ -174,8 +174,8 @@ python scripts/smoke_installed_package.py --docker To verify the public PyPI package instead of the local checkout: ```bash -python scripts/smoke_installed_package.py --from-pypi --version 0.20.0 -python scripts/smoke_installed_package.py --docker --from-pypi --version 0.20.0 +python scripts/smoke_installed_package.py --from-pypi --version 0.21.0 +python scripts/smoke_installed_package.py --docker --from-pypi --version 0.21.0 ``` `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. diff --git a/docs/one-dot-oh-readiness.md b/docs/one-dot-oh-readiness.md index e1a4781f..0af9194a 100644 --- a/docs/one-dot-oh-readiness.md +++ b/docs/one-dot-oh-readiness.md @@ -24,12 +24,12 @@ Not guaranteed: ## 1. Public Install And Package Metadata -- [x] Verify the current public PyPI version is visible as `0.20.0`: `python -c "import json, urllib.request; print(json.load(urllib.request.urlopen('https://pypi.org/pypi/codex-usage-tracking/json'))['info']['version'])"`. -- [x] Verify public venv install for `0.20.0`: `python -m venv /tmp/codex-usage-pypi-smoke && . /tmp/codex-usage-pypi-smoke/bin/activate && python -m pip install codex-usage-tracking==0.20.0 && codex-usage-tracker --version`. -- [x] Verify public pipx install path for `0.20.0`: `PIPX_HOME=/tmp/codex-usage-pipx-home PIPX_BIN_DIR=/tmp/codex-usage-pipx-bin pipx install codex-usage-tracking==0.20.0 && /tmp/codex-usage-pipx-bin/codex-usage-tracker --version`. +- [x] Verify the current public PyPI version is visible as `0.21.0`: `python -c "import json, urllib.request; print(json.load(urllib.request.urlopen('https://pypi.org/pypi/codex-usage-tracking/json'))['info']['version'])"`. +- [x] Verify public venv install for `0.21.0`: `python -m venv /tmp/codex-usage-pypi-smoke && . /tmp/codex-usage-pypi-smoke/bin/activate && python -m pip install codex-usage-tracking==0.21.0 && codex-usage-tracker --version`. +- [x] Verify public pipx install path for `0.21.0`: `PIPX_HOME=/tmp/codex-usage-pipx-home PIPX_BIN_DIR=/tmp/codex-usage-pipx-bin pipx install codex-usage-tracking==0.21.0 && /tmp/codex-usage-pipx-bin/codex-usage-tracker --version`. - [x] Verify installed package resources from a built wheel: `python scripts/smoke_installed_package.py`. - [x] Verify installed package resources in Linux Docker: `python scripts/smoke_installed_package.py --docker`. -- [x] Verify public PyPI package in Docker: `python scripts/smoke_installed_package.py --docker --from-pypi --version 0.20.0`. +- [x] Verify public PyPI package in Docker: `python scripts/smoke_installed_package.py --docker --from-pypi --version 0.21.0`. - [x] Verify PyPI metadata names remain unchanged: `python scripts/check_release.py`. - [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. @@ -134,14 +134,14 @@ Not guaranteed: ## Evidence References -These references are the concrete proof behind completed checklist items. Public package smoke commands are version-specific to `0.20.0`; all repo tests use synthetic or aggregate-only data. +These references are the concrete proof behind completed checklist items. Public package smoke commands are version-specific to `0.21.0`; all repo tests use synthetic or aggregate-only data. ### Public Install And Package Metadata - Public PyPI version, public venv install, and public pipx install are proven by the exact public-install commands in section 1. - 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`. - Linux package-resource coverage is proven by `scripts/smoke_installed_package.py --docker`. -- Public PyPI Docker coverage is proven by `scripts/smoke_installed_package.py --docker --from-pypi --version 0.20.0`. +- Public PyPI Docker coverage is proven by `scripts/smoke_installed_package.py --docker --from-pypi --version 0.21.0`. - 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`. ### Upgrade And Migration @@ -219,8 +219,8 @@ These references are the concrete proof behind completed checklist items. Public - 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`. - 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`. - 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`. -- 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.20.0`. -- 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.20.0`. +- 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.21.0`. +- 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.21.0`. - Release recovery documentation is proven by `scripts/check_release.py` required-file and docs checks. ### Known Limitations diff --git a/pyproject.toml b/pyproject.toml index cbd6d337..5b751c76 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "codex-usage-tracking" -version = "0.20.0" +version = "0.21.0" description = "Unofficial local Codex plugin and dashboard for investigating aggregate token usage, costs, caching, and thread patterns." readme = "README.md" requires-python = ">=3.10" diff --git a/skills/codex-usage-tracker/scripts/run_mcp.py b/skills/codex-usage-tracker/scripts/run_mcp.py index ff0ba41b..5852318f 100644 --- a/skills/codex-usage-tracker/scripts/run_mcp.py +++ b/skills/codex-usage-tracker/scripts/run_mcp.py @@ -15,9 +15,9 @@ PACKAGE_SPEC = os.environ.get( "CODEX_USAGE_TRACKER_PACKAGE_SPEC", - "codex-usage-tracking==0.20.0", + "codex-usage-tracking==0.21.0", ) -RUNTIME_VERSION = "0.20.0" +RUNTIME_VERSION = "0.21.0" PACKAGE_SPEC_MARKER = ".codex-usage-tracker-package-spec" MODULE_CHECK = ( "import importlib.metadata; " diff --git a/src/codex_usage_tracker/__init__.py b/src/codex_usage_tracker/__init__.py index 2a4988c0..0c197dc2 100644 --- a/src/codex_usage_tracker/__init__.py +++ b/src/codex_usage_tracker/__init__.py @@ -2,6 +2,6 @@ from codex_usage_tracker.core.models import UsageEvent -__version__ = "0.20.0" +__version__ = "0.21.0" __all__ = ["UsageEvent", "__version__"]