[Hosted] Build the add-on seam in the public app, and move the billing pieces out #1143

Open
opened 2026-10-12 23:26:10 +00:00 by claude-bot · 0 comments
Collaborator

After the design is agreed. Self-hosters must see no change.

  • The neutral hooks at every point the design lists, each answering yes on a self-hosted server, with tests that a refusing provider is honoured at each one (a test-only provider).
  • Add-on discovery: provider, routers, tasks, settings and a separate Alembic version location.
  • The frontend extension point.
  • Move out of the public app: the plan, slot, credit and payment shapes in app/services/entitlement_service.py, app/routers/plan.py, the pricing settings (settings_service.get_plan_pricing, D71) and Admin → Plans & entitlements (D144), and the Plan & billing page (HOME-7, D49). Server side first; the two pages after.
  • A recording refusal is a new bot API answer: check whether an older bot would mishandle it, and bump BOT_CONTRACT_VERSION on both sides in the same commit if so.

Part of the hosted service (#642). Decision of 2026-10-12: the public app carries only neutral hooks; a private add-on carries the business.

After the design is agreed. Self-hosters must see no change. - The neutral hooks at every point the design lists, each answering yes on a self-hosted server, with tests that a refusing provider is honoured at each one (a test-only provider). - Add-on discovery: provider, routers, tasks, settings and a separate Alembic version location. - The frontend extension point. - Move out of the public app: the plan, slot, credit and payment shapes in `app/services/entitlement_service.py`, `app/routers/plan.py`, the pricing settings (`settings_service.get_plan_pricing`, D71) and Admin → Plans & entitlements (D144), and the Plan & billing page (HOME-7, D49). Server side first; the two pages after. - A recording refusal is a new bot API answer: check whether an older bot would mishandle it, and bump `BOT_CONTRACT_VERSION` on both sides in the same commit if so. Part of the hosted service (#642). Decision of 2026-10-12: the public app carries only neutral hooks; a private add-on carries the business.
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
rbrooks/Quest-Board#1143
No description provided.