fix(packaging): ship the model_market catalog in the wheel - #10
Merged
Conversation
The rate catalog lives at <repo>/data/model_market, outside src/, so hatchling did not pick it up as package data and the wheel shipped code only. At runtime _resolve_catalog_root then fell through to its cwd-relative last resort, so an installed `ace up` launched from anywhere but the repo root found no rates and recorded every turn as UNPRICED at $0.00 — including opus-5, sonnet-5, opus-4-8 and fable-5, which warn on startup. force-include maps the catalog to ace/data/model_market, the in-wheel path the resolver already probes. feeds/ is excluded: 2.9M of the 3.1M catalog, raw litellm/models.dev dumps that nothing in the shipped package reads. Verified by installing the built wheel into a clean 3.12 venv and running from /tmp: catalog resolves under site-packages, all four models price, and `ace up` starts with no pricing warnings. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QqmDAhC6dkRJdgW1cQhSLC
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QqmDAhC6dkRJdgW1cQhSLC
The [0.1.1] - 2026-08-11 section documented a release that does not exist: PyPI has only 0.1.0, and every item under that heading — /metrics, the E2E script, publish.yml, the issue/PR templates, the agent-filter fix — is already present in the v0.1.0 tag's tree. The v0.1.1 tag does exist, but on a lineage that is not an ancestor of main (~50 commits unique to it); main's history was rebuilt and the whole body of work published in one go as 0.1.0, while the CHANGELOG kept the older pre-rebuild split. Fold those items into [0.1.0] and date it 2026-08-15, the PyPI upload date (the section previously read 2026-08-07; the tagged commit is 2026-08-14). Also record the dashboard routing/button fix from #9, which landed on main after the tag and was documented nowhere, and add compare links. uv.lock pinned ace-sidecar at 0.1.1, inherited from the same abandoned lineage; regenerating it agrees with pyproject.toml and the released version. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QqmDAhC6dkRJdgW1cQhSLC
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
The rate catalog lives at /data/model_market, outside src/, so hatchling did not pick it up as package data and the wheel shipped code only. At runtime _resolve_catalog_root then fell through to its cwd-relative last resort, so an installed
ace uplaunched from anywhere but the repo root found no rates and recorded every turn as UNPRICED at $0.00 — including opus-5, sonnet-5, opus-4-8 and fable-5, which warn on startup.force-include maps the catalog to ace/data/model_market, the in-wheel path the resolver already probes. feeds/ is excluded: 2.9M of the 3.1M catalog, raw litellm/models.dev dumps that nothing in the shipped package reads.
Verified by installing the built wheel into a clean 3.12 venv and running from /tmp: catalog resolves under site-packages, all four models price, and
ace upstarts with no pricing warnings.Type of Change
Verification
Describe the tests and checks performed to verify changes:
pytestpasses cleanly.python -m buildandtwine check dist/*pass.scripts/e2e_test.pypasses.Checklist
CHANGELOG.mdwith my changes.