Problem
On 0.9.20, codeburn models and codeburn report disagree about the same models. report resolves friendly names; models shows raw ids for some families and also emits duplicate rows.
Evidence (0.9.20, npm)
Same three models, same run:
codeburn models |
codeburn report |
gpt-5.6-sol |
GPT-5.6 Sol |
gpt-5.6-terra |
GPT-5.6 Terra |
accounts/fireworks/models/kimi-k2p6 |
Kimi K2.6 |
report also resolves gpt-5.6-luna → GPT-5.6 Luna, which models does not surface under a friendly name either.
This is not a missing-names problem — the names clearly exist, since report produces them from the same data in the same binary.
It is also not "models deliberately shows raw ids". The same table mixes both conventions: GLM-5.2, Kimi K2.7 Code, DeepSeek v4 Pro, Qwen 3.7 Plus and Grok 4.5 all render friendly, while the gpt-5.6-* family and the full accounts/fireworks/models/* path form stay raw. So the resolution path runs in models, but misses those two shapes.
Second symptom, same view: duplicate rows
codeburn models lists Cline CLI | GLM-5.2 twice:
│ Cline CLI │ GLM-5.2 │ Testing (75%) │ 867.3K │ $0.246 │
│ Cline CLI │ GLM-5.2 │ Conversation (43%) │ 15.7K │ $0.019 │
Two distinct raw ids collapse to one display name and are not merged, so one model is reported as two, splitting its tokens and cost across rows. Reproducible with:
codeburn models | awk -F'│' 'NF>3 {gsub(/^ +| +$/,"",$2); gsub(/^ +| +$/,"",$3); print $2" | "$3}' | sort | uniq -d
That row-merge already exists — aggregateModelTotals(), keyed by display name, added in #787 for the By Model panel. It looks like models does not go through it.
Why it matters
codeburn models is the natural place to look up an id before running codeburn model-alias, and it is the view where a raw id is most likely to be copied into a command or a report. Two rows for one model also understates that model's real share when scanning the list by eye.
Suggested direction
Route the models command through the same name resolution and the same aggregateModelTotals() merge that report uses, rather than adding more entries to the names table — the entries are already there.
Happy to send the PR if you'd like it; wanted to check the approach first per CONTRIBUTING.
Environment: codeburn 0.9.20 (npm), macOS 26.6.1 (25G76) arm64, Node v26.5.0.
Problem
On 0.9.20,
codeburn modelsandcodeburn reportdisagree about the same models.reportresolves friendly names;modelsshows raw ids for some families and also emits duplicate rows.Evidence (0.9.20, npm)
Same three models, same run:
codeburn modelscodeburn reportgpt-5.6-solgpt-5.6-terraaccounts/fireworks/models/kimi-k2p6reportalso resolvesgpt-5.6-luna→ GPT-5.6 Luna, whichmodelsdoes not surface under a friendly name either.This is not a missing-names problem — the names clearly exist, since
reportproduces them from the same data in the same binary.It is also not "
modelsdeliberately shows raw ids". The same table mixes both conventions:GLM-5.2,Kimi K2.7 Code,DeepSeek v4 Pro,Qwen 3.7 PlusandGrok 4.5all render friendly, while thegpt-5.6-*family and the fullaccounts/fireworks/models/*path form stay raw. So the resolution path runs inmodels, but misses those two shapes.Second symptom, same view: duplicate rows
codeburn modelslistsCline CLI | GLM-5.2twice:Two distinct raw ids collapse to one display name and are not merged, so one model is reported as two, splitting its tokens and cost across rows. Reproducible with:
That row-merge already exists —
aggregateModelTotals(), keyed by display name, added in #787 for the By Model panel. It looks likemodelsdoes not go through it.Why it matters
codeburn modelsis the natural place to look up an id before runningcodeburn model-alias, and it is the view where a raw id is most likely to be copied into a command or a report. Two rows for one model also understates that model's real share when scanning the list by eye.Suggested direction
Route the
modelscommand through the same name resolution and the sameaggregateModelTotals()merge thatreportuses, rather than adding more entries to the names table — the entries are already there.Happy to send the PR if you'd like it; wanted to check the approach first per CONTRIBUTING.
Environment: codeburn 0.9.20 (npm), macOS 26.6.1 (25G76) arm64, Node v26.5.0.