Skip to content

B16: Stats IPC, dashboard, sessions, heatmap, commands, and localization - #21

Closed
myk1yt wants to merge 10 commits into
mainfrom
pr/b16-stats-ui
Closed

myk1yt wants to merge 10 commits into
mainfrom
pr/b16-stats-ui

Conversation

@myk1yt

@myk1yt myk1yt commented Jul 29, 2026

Copy link
Copy Markdown
Owner

WHY

Add stats IPC, dashboard UI, sessions view, heatmap, commands, and localization for the usage stats system.

Scope

  • Stats message handler (6 handlers)
  • Dashboard view with summary/session list/session detail
  • Usage heatmap component
  • Number formatting utilities
  • Locale strings for all 17 languages
  • Command registration and navigation menus

Dependencies

B09, B10, B14, B15

Verification

  • CI: lint, check-types, translations — PASS

Exclusion attestation

No reports, helpers, stale reversions, or operational noise.

Lee-Si-Yoon and others added 10 commits July 28, 2026 23:57
…de-Org#950)

* chore(lint): add core/webview to no-floating-promises ratchet

* fix(webview): catch indexing errors and cover changed handler paths

* chore(lint): triage new core/webview call sites after merging main

Also restore README.md to the upstream version, dropping an unintended formatter artifact picked up during the merge commit.

---------

Co-authored-by: edelauna <54631123+edelauna@users.noreply.github.com>
…Zoo-Code-Org#971)

* fix(branding): replace remaining user-facing "Roo" strings with "Zoo"

Replace user-facing product references from "Roo" to "Zoo":
- Webview panel and editor tab titles
- Integrated terminal names
- Diff view labels
- VS Code LM authorization justification
- LM Studio error messages
- Missing-parameter tool error (now i18n-keyed via tools:missingToolParameter[WithPath] across all 16 locales)
- Webview-ui localization strings (chat, settings, prompts across all locales)

Per review feedback, references to the external Roo provider/router remain
untouched: the routerRemoval messages, errors.roo/info.roo i18n keys, Roo
credit-balance notices, and other internal identifiers that reference the
legacy Roo provider rather than our brand.

* test: bump coverage for Roo-to-Zoo user-facing string changes (Zoo-Code-Org#971)

* chore: simplify i18n mocking in Task.spec.ts

* test: increase coverage of vscode-lm.ts and vscode-lm-format.ts

* fix(types): eliminate any casts in vscode-lm provider and format transform

---------

Co-authored-by: Roomote <roomote@roomote.dev>
Co-authored-by: Elliott de Launay <edelauna@gmail.com>
… emit output (Zoo-Code-Org#1043)

* fix(terminal): delay command_output ask for short foreground commands

The command_output ask fired on the first output chunk of any foreground
command, prompting users even for commands about to complete. Schedule the
ask instead so it only fires when the command is still running after a
5s delay, preserving the interrupt/feedback path for long-running commands
while letting short commands finish without prompting.

Closes Zoo-Code-Org#1042

* fix(terminal): anchor command_output ask delay to execution start

Anchor the ask-delay timer to onShellExecutionStarted (falling back to the
pre-runCommand timestamp) so shell-integration startup on cold terminals
does not consume the grace period, and expand ask-policy tests to cover
the agent-timeout cancel, re-anchor reschedule, ask error handling, and
non-message responses to restore patch coverage.

* test(terminal): cover fallback anchor for command_output ask delay

* fix(terminal): clean up pending command_output ask on completion

- Supersede a still-pending command_output ask in onCompleted so it
  resolves immediately instead of lingering until the next interactive
  message, and clear the Proceed/Kill controls in the webview when the
  final non-partial command_output say arrives.
- Continue the process for any ask answer, not just typed messages, so a
  non-message response actually backgrounds the command and the tool
  resolves before the process completes.
- Strengthen ask-policy tests: assert the rescheduled ask still fires at
  the re-anchored deadline, assert early resolution for non-message
  answers, and cover ask supersession on completion.

* test(terminal): note synthetic yesButtonClicked in non-message ask test

---------

Co-authored-by: Roomote <roomote@roomote.dev>
…, Story 3.1) (Zoo-Code-Org#1031)

* feat(TaskScheduler): introduce TaskScheduler and wire into ClineProvider

* feat(Task): keep track of active running task

* docs(eslint): updating guidance on how to handle suppression file

* fix(ClineProvider): route createTaskWithHistoryItem through taskScheduler

* test(e2e): add scheduler regression tests for task resume paths

* refactor(ClineProvider): extract scheduleTask helper to deduplicate fire-and-forget scheduling

* refactor(ClineProvider): extract scheduleTask helper to deduplicate fire-and-forget scheduling

---------

Co-authored-by: Naved  Merchant <naved.merchant@gmail.com>
…nd localization

- usageStatsMessageHandler: handle getUsageStats, clearUsageStats, exportUsageStats, requestClearNonce, getDashboardSessions, getDashboardSessionDetail
- DashboardView: summary cards, time range selection, model/provider breakdown, responsive heatmap (30d/60d/120d/360d)
- SessionList/SessionDetail: expandable session titles with per-API-call cost and token details
- UsageHeatmap: blue gradient 6-level calendar heatmap with white borders
- formatNumber: compact K/M/B formatting utility
- Commands: register dashboardButtonClicked, wire to App.tsx tab routing
- Localization: dashboard.json + stats.json for all 17 languages, package.nls command.dashboard.title
- types: ExtensionMessage/WebviewMessage stats types, CommandId dashboardButtonClicked
@myk1yt myk1yt closed this Jul 29, 2026
@myk1yt
myk1yt deleted the pr/b16-stats-ui branch August 7, 2026 13:06
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.

5 participants