Remove Compass from the dashboard and API

Merged
EM
1d ago
+34-13206

Retires Compass: the insight feed, its detectors and the chat assistant.

What's removed

Server

  • polar/compass/ and tests/compass/, plus the /v1/compass router (private endpoints, not in the public spec).
  • The compass-assistant rate-limit rule.
  • enqueue_track_compass_assistant_usage, so no new self-billing usage jobs are queued.
  • The compass_enabled feature flag: Organization.is_compass_enabled, the OrganizationFeatureSettings field, the seed value, and the property in the committed docs/openapi specs.

Dashboard

  • components/Compass, the /compass routes, hooks/queries/compass.ts and useCompassAssistant.
  • The Home widget and box, the intro modal, and the Compass nav item.
  • The split product navigation, which was gated on compass_enabled. Every organization now gets the standard navigation.
  • The regenerated API client drops only the Compass schemas and paths.

Kept for one deploy

  • CompassThread and CompassThreadMessage models. CI runs alembic check, which would flag the tables as drift without them.
  • The polar_self.track_compass_assistant_usage actor and its client method, so jobs already queued still run.

A follow-up PR, stacked on this one and merged after this is deployed, drops the tables and removes the models, the actor and the stored compass_enabled values.

Notes

  • compass_enabled leaves the public OrganizationFeatureSettings response. It's a staff-managed flag.
  • The generated SDKs still list the field until the next sdk[release].
  • The "Cost insights" marketing pages, the Compass seed customers and ADR-0012's history are kept on purpose.

Testing

  • Server: task lint, task lint_types, and the rate limit, integrations/polar, organization and seed tests (1,079 passed).
  • Web: pnpm lint, format:check, tsc, and the full vitest suite (1,188 passed).

šŸ¤– Generated with Claude Code