Skip to content

codeburn models shows raw ids (gpt-5.6-*, accounts/fireworks/models/*) and duplicate rows that report resolves correctly #967

Description

@therickfactr

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions