Legacy Pricing System Cleanup and Admin Quota Infrastructure
October 24, 2025
This release resolves a long-standing source of internal complexity: the platform was running two parallel systems for managing subscription tiers and usage limits. The older pricing system has been fully deprecated in favor of the modern quota system, eliminating conflicts between the two and establishing a clean foundation for continued quota management development. An admin interface for managing quota tiers has also been built.
Infrastructure
- Unified quota system — The platform previously had two parallel systems for managing tiers and usage limits, causing type conflicts and ambiguous behavior. All tier references now point to the modern quota system exclusively, and the service layer has been updated to use quota-based lookups throughout. This eliminates an entire category of potential bugs where different parts of the platform disagreed about a user’s tier or limits.
- Admin tier management — A new admin interface provides full create, read, update, and delete operations for quota tiers. Administrators can view all tiers, adjust limits, and manage tier configurations from a dedicated dashboard. User management with tier assignment has also been started and will be completed in a follow-up release.
- Code quality across 60+ files — All TypeScript compilation errors and ESLint warnings introduced by the dual system conflict have been resolved, bringing the codebase back to zero errors and zero warnings.
Deprecated / Removed
- Legacy pricing services deprecated — Three legacy services that powered the old pricing system have been deprecated with clear notices directing any remaining references to the modern quota alternatives. This prevents the old system from being accidentally used in new development.
- 11 legacy database tables marked for removal — Tables from the old pricing system (including feature limits and LLM configuration tables) have been marked as deprecated and cleanup scripts have been prepared. The tables will be dropped in a future migration after a verification period.

