diff options
| author | Adam Malczewski <[email protected]> | 2026-10-14 17:04:35 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-10-14 17:04:35 +0900 |
| commit | 10e78065201c8387494b8aafabb987da87183b3a (patch) | |
| tree | f038f368459acbd3b817974100fb4bd4817ecbff /src/app/register-views.ts | |
| parent | 551a7a050e8cd25e795026a1060c9d5b5ea028bf (diff) | |
| download | dispatch-web-10e78065201c8387494b8aafabb987da87183b3a.tar.gz dispatch-web-10e78065201c8387494b8aafabb987da87183b3a.zip | |
feat(account-usage): sidebar Usage view with Claude/Codex quota bars + on-track pace markers
Consumes GET /usage (transport-contract 0.25.0). DaisyUI progress bars per quota
window with a dot at the elapsed fraction of the window (the 'on track' level),
ahead/under-pace labels, reset countdowns, stale/unavailable/not-configured states.
Diffstat (limited to 'src/app/register-views.ts')
| -rw-r--r-- | src/app/register-views.ts | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/app/register-views.ts b/src/app/register-views.ts index 5b462fe..05afd89 100644 --- a/src/app/register-views.ts +++ b/src/app/register-views.ts @@ -9,7 +9,7 @@ * * `chat` / `composer` / `message-queue` are CONTENT views (decision 5): they * register with `panelEligible: false` so they never appear in the panel - * dropdowns. All 14 sidebar views keep the eligible default. + * dropdowns. All 15 sidebar views keep the eligible default. * * Imported ONCE by App.svelte's module script — before any tile renders. */ @@ -17,6 +17,7 @@ import type { Component } from "svelte"; import { registerView, type ViewComponent, type ViewRegistration } from "../features/layout"; import type { AppViewPorts } from "./view-ports"; +import AccountUsagePane from "./views/AccountUsagePane.svelte"; import CacheWarmingPane from "./views/CacheWarmingPane.svelte"; import ChatPane from "./views/ChatPane.svelte"; import CompactionPane from "./views/CompactionPane.svelte"; @@ -50,7 +51,7 @@ function asView(component: WrapperComponent): ViewComponent { export function registerBuiltinViews(): void { const views: readonly ViewRegistration[] = [ - // --- sidebar views (panel-eligible by default — the 14 old viewKinds) + // --- sidebar views (panel-eligible by default — the 14 old viewKinds + account-usage) { id: "tabs", label: "Tabs", component: asView(TabsPane) }, { id: "model", label: "Model", component: asView(ModelPane) }, { id: "named-agents", label: "Named Agents", component: asView(NamedAgentsPane) }, @@ -63,6 +64,7 @@ export function registerBuiltinViews(): void { { id: "vision", label: "Vision", component: asView(VisionPane) }, { id: "heartbeat", label: "Heartbeat", component: asView(HeartbeatPane) }, { id: "concurrency", label: "Concurrency", component: asView(ConcurrencyPane) }, + { id: "account-usage", label: "Usage", component: asView(AccountUsagePane) }, { id: "system-prompt", label: "System Prompt", component: asView(SystemPromptPane) }, { id: "settings", label: "Settings", component: asView(SettingsPane) }, // --- content views (never in the panel dropdowns — decision 5) |
