Skip to content

feat(vscode): show usage by routed model#11746

Merged
alex-alecu merged 15 commits into
mainfrom
feat/vscode-routed-model-usage
Jun 29, 2026
Merged

feat(vscode): show usage by routed model#11746
alex-alecu merged 15 commits into
mainfrom
feat/vscode-routed-model-usage

Conversation

@lambertjosh

Copy link
Copy Markdown
Contributor

Why

The VS Code session header shows aggregate tokens, context pressure, and total cost, but it does not explain which provider route and concrete model consumed that usage. It also derives the token summary from loaded messages, so unloaded history and delegated subagent work can be omitted.

What changed

The Tokens row now uses the complete persisted task-tree totals from the local model-usage endpoint and becomes an accessible disclosure. Expanding it shows usage grouped by configured provider and model, including steps, direct cost, input/output/reasoning tokens, cache reads/writes, and cache rate. Provider headings keep direct subscriptions distinct from Kilo Gateway routing, while model rows use compact catalog display names with routed-ID fallback.

The extension host owns the authenticated SDK request and workspace routing. Webview state is keyed by session and request UUID, retains successful data during refresh, ignores stale responses, refreshes for relevant root/subagent events and reconnects, and falls back to the existing message-derived Tokens summary when the endpoint is unavailable.

Stack

This PR is stacked on #11608 and targets feat/tui-routed-model-usage because it reuses and extends the local session model-usage endpoint introduced there.

Comment thread .changeset/vscode-model-usage.md
@kilo-code-bot

kilo-code-bot Bot commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Files Reviewed (1 files)
  • packages/kilo-vscode/src/KiloProvider.ts
Previous Review Summaries (5 snapshots, latest commit d9a5125)

Current summary above is authoritative. Previous snapshots are kept for context only.

Previous review (commit d9a5125)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (1 files)
  • packages/kilo-vscode/src/KiloProvider.ts

Previous review (commit a08fa5f)

Status: 1 Issues Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 1
SUGGESTION 0

Fix these issues in Kilo Cloud

Issue Details (click to expand)

WARNING

File Line Issue
packages/kilo-vscode/src/KiloProvider.ts 3516 Brand-new sibling or subagent sessions are ignored by the refresh path because their IDs are absent from the previous usage snapshot, leaving aggregate usage totals stale until some already-known family member changes.
Files Reviewed (4 files)
  • packages/kilo-vscode/src/KiloProvider.ts - 1 issue
  • packages/kilo-vscode/webview-ui/src/components/chat/TaskUsage.tsx - 0 issues
  • packages/kilo-vscode/webview-ui/src/context/session.tsx - 0 issues
  • packages/kilo-vscode/webview-ui/src/types/messages/extension-messages.ts - 0 issues

Previous review (commit de28740)

Status: 2 Issues Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 1
SUGGESTION 1

Fix these issues in Kilo Cloud

Issue Details (click to expand)

WARNING

File Line Issue
packages/kilo-vscode/src/KiloProvider.ts 1672 Removing the usage-family tracking makes a child viewer stop refreshing when parent or sibling sessions add more model usage, even though the displayed totals still aggregate the whole top-level family.

SUGGESTION

File Line Issue
packages/kilo-vscode/webview-ui/src/components/chat/TaskUsage.tsx 107 The new "Hit Rate" label overstates what is measured because the current formula includes cache writes in the denominator.
Files Reviewed (3 files)
  • packages/kilo-vscode/src/KiloProvider.ts - 1 issue
  • packages/kilo-vscode/webview-ui/src/components/chat/TaskUsage.tsx - 1 issue
  • packages/kilo-vscode/webview-ui/src/context/session.tsx - 0 issues

Previous review (commit 980af98)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (3 files)
  • .changeset/vscode-model-usage.md
  • packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/chat/task-usage-collapsed-chromium-linux.png
  • packages/kilo-vscode/webview-ui/src/styles/task-header.css

Previous review (commit dd3aa14)

Status: 1 Issues Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 0
SUGGESTION 1

Fix these issues in Kilo Cloud

Issue Details (click to expand)

SUGGESTION

File Line Issue
.changeset/vscode-model-usage.md 2 The changeset text is VS Code-specific even though this file also publishes notes for @kilocode/cli and @kilocode/sdk.
Files Reviewed (21 files)
  • .changeset/vscode-model-usage.md - 1 issue
  • packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/chat/task-usage-collapsed-chromium-linux.png - 0 issues
  • packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/chat/task-usage-expanded-200-chromium-linux.png - 0 issues
  • packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/chat/task-usage-expanded-chromium-linux.png - 0 issues
  • packages/kilo-vscode/src/KiloProvider.ts - 0 issues
  • packages/kilo-vscode/tests/unit/model-usage.test.ts - 0 issues
  • packages/kilo-vscode/webview-ui/src/components/chat/TaskHeader.tsx - 0 issues
  • packages/kilo-vscode/webview-ui/src/components/chat/TaskUsage.tsx - 0 issues
  • packages/kilo-vscode/webview-ui/src/context/model-usage.ts - 0 issues
  • packages/kilo-vscode/webview-ui/src/context/session.tsx - 0 issues
  • packages/kilo-vscode/webview-ui/src/stories/StoryProviders.tsx - 0 issues
  • packages/kilo-vscode/webview-ui/src/stories/chat.stories.tsx - 0 issues
  • packages/kilo-vscode/webview-ui/src/styles/task-header.css - 0 issues
  • packages/kilo-vscode/webview-ui/src/types/messages/extension-messages.ts - 0 issues
  • packages/kilo-vscode/webview-ui/src/types/messages/sessions.ts - 0 issues
  • packages/kilo-vscode/webview-ui/src/types/messages/webview-messages.ts - 0 issues
  • packages/opencode/src/kilocode/session/model-usage.ts - 0 issues
  • packages/opencode/test/kilocode/cli/cmd/tui/model-usage.test.ts - 0 issues
  • packages/opencode/test/kilocode/session-model-usage.test.ts - 0 issues
  • packages/sdk/js/src/v2/gen/types.gen.ts - 0 issues
  • packages/sdk/openapi.json - 0 issues

Reviewed by gpt-5.4-20260305 · Input: 87.2K · Output: 4.7K · Cached: 197.1K

Review guidance: REVIEW.md from base branch main

@lambertjosh lambertjosh requested a review from alex-alecu June 27, 2026 04:05
@lambertjosh

Copy link
Copy Markdown
Contributor Author

@alex-alecu - can you review this since you are reviewing the first one? Also, it may be good to add the same model name to the auto efficient responses like you did on the TUI, but that can probably be a different PR.

Base automatically changed from feat/tui-routed-model-usage to main June 27, 2026 12:44
@lambertjosh

Copy link
Copy Markdown
Contributor Author

There is now an expandable section for the existing tokens line:
image

When it's expanded:
image

@lambertjosh

Copy link
Copy Markdown
Contributor Author

@alex-alecu - this is ready for review

Comment thread packages/kilo-vscode/src/KiloProvider.ts Outdated
Comment thread packages/kilo-vscode/webview-ui/src/context/session.tsx
Comment thread packages/kilo-vscode/src/KiloProvider.ts
Comment thread packages/kilo-vscode/webview-ui/src/components/chat/TaskUsage.tsx
Comment thread packages/kilo-vscode/src/KiloProvider.ts
@alex-alecu

Copy link
Copy Markdown
Contributor
Screenshot 2026-06-29 at 16 11 09

Tested locally and works

@alex-alecu alex-alecu merged commit 3a3b917 into main Jun 29, 2026
30 checks passed
@alex-alecu alex-alecu deleted the feat/vscode-routed-model-usage branch June 29, 2026 13:58
vkeerthivikram pushed a commit to vkeerthivikram/kilocode that referenced this pull request Jun 30, 2026
…del-usage

feat(vscode): show usage by routed model
NJ-2020 pushed a commit to NJ-2020/kilocode that referenced this pull request Jul 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants