A reliability and quality pass focused on billing accuracy and AI output.
Credit grant fix. A bug was causing admin-granted bonus credits to carry over permanently across billing cycles instead of resetting monthly. This has been corrected and affected accounts have been updated. Bonus credits now consume after plan-included credits and before purchased credits, and reset cleanly on each billing cycle.
AI generation improvements. IntakeBot generation prompts have been refined to produce better field selection and higher-quality schemas. Submission Intelligence scoring prompts now assign tiers more accurately. Template variable interpolation is more reliable across edge cases.
Billing architecture. All plan limit enforcement now runs through a single resolution path with consistent defaults. Admin-enabled feature flags now reflect correctly without requiring a page refresh. Credit purchase webhook writes are atomic, preventing partial failures from leaving accounts in an inconsistent state.
Refined IntakeBot generation prompts for better field selection and schema quality. Improved Submission Intelligence prompts for more accurate scoring and tier assignment. Hardened template variable interpolation engine with additional edge case handling.
Unified all plan limit enforcement into a single resolution path with consistent defaults. Feature flag overrides are now visible on the client — admin-enabled features render correctly without page refresh. Credit purchase webhook writes are now atomic, preventing inconsistent state on partial failures. Removed deprecated database column and eliminated duplicated constants across the billing stack.
Admin credit grants now use a dedicated bonus credit pool that is consumed after plan-included credits and before purchased credits. Bonus credits are automatically zeroed on monthly billing reset — fixing a bug where admin-granted credits would recur permanently every billing cycle. Existing affected subscriptions have been corrected. The admin credits dashboard now displays bonus credits separately.
Added global error boundaries with structured error reporting across all application routes. Unhandled errors are now captured with context and surfaced gracefully to users instead of blank screens. FlowApp pages include dedicated error recovery with retry actions.
Streamlined the IntakeBot field panel with unified create flow for fields and content blocks. Improved bookend (welcome/thank-you) editing with inline read and edit modes. Records table enhanced with better empty states, header actions, and overall polish. Template interpolation engine hardened with additional edge case handling.
Workspace routing now prefers workspaces with content over empty ones and intercepts pending invitations before routing. The invitation acceptance page shows contextual errors (expired, email mismatch, already a member, workspace full) with clear recovery actions — including sign-out-and-switch for email mismatches. Invited team members are no longer sent through onboarding; only workspace owners see the setup wizard.