Skip to content

discussion(desktop): v2 usage IPC query surface is unreachable (6 orphan channels of 191 handlers) #3214

Description

@Astro-Han

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.tsusage-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.

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