Skip to content

chore(desktop): decide fate of speculative maka.usage and cursor-subscription IPC surface #1982

Description

@Astro-Han

Summary

Two IPC surfaces have zero renderer/overlay/e2e consumers but are deliberately-built (not accidental) — they need an explicit product decision rather than a silent delete.

1. maka.usage bridge namespace (speculative authority surface)

  • preload/preload.ts:935-953 exposes usage.summary/buckets/logs/listPricing/putPricing/resetPricingmain/usage-ipc-main.ts:86-166 handlers + usage:pricing:changed push.
  • Zero consumers on main and across all local/remote branches (verified by repo-wide grep). The usage settings page (renderer/settings/usage-settings-page.tsx) uses settings:usageStats (usage-ipc-main.ts:83) via onReload/onUpdate props — not this namespace. usage:pricing:put is the only writer of pricing overrides, so that feature is currently unreachable.
  • However, this is the v0 Host surface deliberately exposed by feat(runtime-host): extract Usage/Pricing authority #1596 "Usage/Pricing authority" (tracked under [Tracking] Runtime Host M3 domain ownership migration #1167 M3), with full main-side tests (main/__tests__/usage-ipc-main.test.ts incl. CAS/notification contract). The fix/usage-stats-restyle branch restyles only the renderer page and does not wire maka.usage (its merge-base predates feat(runtime-host): extract Usage/Pricing authority #1596).

Options: (a) remove the maka.usage preload namespace now, keep main-side authority handlers for the planned consumer; or (b) explicitly defer with an owner and delivery plan. Do not silently delete the main-side authority.

2. maka.cursorSubscription OAuth service + 8 channels (experimental, previously shipped UI)

  • preload/preload.ts:749; service constructed every boot (main/boot.ts:380); channels in main/subscription-ipc-main.ts:361-411 gated by MAKA_CURSOR_SUBSCRIPTION_EXPERIMENTAL !== '0' (default on, opt-out — oauth/cursor-subscription-helpers.ts:79-80).
  • No renderer consumer; OAuthCardId (renderer/settings/provider-oauth-section.tsx:20) has no cursor. A cursor card existed until refactor(desktop): simplify model connection settings #1033 removed it (2026-07-15). main/app-lifecycle.ts:275-282 still migrates the legacy .cursor_subscription_token file, suggesting historical user credentials exist.
  • Incidental: cursor-subscription:logout is not gated by the flag (subscription-ipc-main.ts:408-411).

Options: (a) product retired the Cursor subscription — remove service/handlers/preload namespace, with an explicit plan for any migrated credentials; (b) a card is planned — add cursor to OAuthCardId + provider-oauth-section.tsx. Do not delete without the credential-migration decision.

Owner

Product owner (desktop subscriptions) + main process (usage/pricing authority).

Acceptance

  • An explicit decision is recorded on this issue; the chosen option lands in a follow-up PR.

Metadata

Metadata

Assignees

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