You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
discussion(desktop): v2 usage IPC query surface is unreachable (6 orphan channels of 191 handlers) #3214
Found by a repo-wide simplification audit; re-verified with git grep -aI.
The v2 usage query surface is unreachable from the shipped app:
apps/desktop/src/main/runtime-host-usage-ipc-main.ts registers six channels (usage:summary, usage:buckets, usage:logs, usage:pricing:list|put|reset) and they are the only 6 of the app's 191 IPC handlers with zero preload exposure and zero renderer callers.
usage:pricing:changed is the only main-process send() in the whole app with no listener.
The shipped Usage settings page uses the v1 path instead: settings-store scan-aggregation via runtime-host-boot.ts → usage-settings-page.tsx.
Related architecture context: usage metering is currently double-written (recordLlmCall legacy writer vs recordModelCallAttempt canonical, merged at query time by usage-ledger-merge), with Host auxiliary calls (memory extraction, Daily Review, title/recap) still on the legacy writer.
Question (go/stop): is the orphan IPC surface the half-landed renderer side of a new Usage page (if so — progress check), or should the v2 query surface be removed until a consumer exists? Deciding which ledger is the long-term authority for auxiliary Host calls is a separate architecture decision this issue only flags.
Answered by in-flight work: #2641 (fix(desktop): read Usage from Runtime Host, active as of 2026-08-18) is exactly the missing renderer side of these six channels — the orphan IPC surface is the landed half of the feature, not dead code. Closing; no cleanup needed. The remaining note about the double ledger (recordLlmCall vs recordModelCallAttempt for Host auxiliary calls) can be revisited after #2641 lands if it still applies.
Activity
Astro-Han commentedon Aug 18, 2026
Answered by in-flight work: #2641 (fix(desktop): read Usage from Runtime Host, active as of 2026-08-18) is exactly the missing renderer side of these six channels — the orphan IPC surface is the landed half of the feature, not dead code. Closing; no cleanup needed. The remaining note about the double ledger (recordLlmCall vs recordModelCallAttempt for Host auxiliary calls) can be revisited after #2641 lands if it still applies.