Repository navigation
agentacct 0.12.7
dsh (DeepSeek Harness) usage rows are priced again after a provider-name mismatch left every one cost-unknown.
DeepSeek Harness records its own route name, deepseek-official, as the provider on every usage row, while the pricing tables key DeepSeek's own models under provider deepseek. No lookup step matched — not the exact key, the provider aliases, the client model aliases, nor the generic <vendor>/<model> fallback (the id carries no slash) — so apply_pricing_estimate_to_event returned False and every imported dsh row stayed cost-unknown, which the Usage views render as unpriced.
macOS app (no Python, pipx, or terminal needed): agentacct-0.12.7.dmg — signed, notarized, and stapled, built from this release's own commit; the frozen agentacct CLI it embeds carries the fix, and the app installs that CLI on first setup. It opens with a normal double-click.
CLI: pipx install agentacct==0.12.7 (or uv tool install agentacct==0.12.7).
What changed since 0.12.6:
- dsh rows are priced again. A provider alias (
deepseek-official→deepseek) resolves the client's route name to the catalog's DeepSeek list prices (deepseek-flash,deepseek-v4-flash,deepseek-v4-flash-vision-exp,deepseek-v4-pro). It is a name mapping only: the target row's list price applies as an ≈ estimate, never provider billing, and a dsh model id no catalog row covers still stays cost-unknown. - Stored dsh rows repair themselves without rereading transcripts.
agentacct usage import-local --client dsh --refresh --estimate-costs, and the watcher's equivalent scan, promote previously imported unknown-cost dsh rows toestimated_from_tokensestimates — 95 rows on the maintainer's own store, 75 of them outside the discovery window — while already-priced rows and recorded token counts stay untouched. - The dsh import fixture now matches the client it claims to model (
deepseek-official/deepseek-flashinstead of the staledeepseek/deepseek-chatshape no current dsh version reports), alongside an alias test, an end-to-end pricing test, and a stored-row reprice test.