mirror of
https://github.com/Significant-Gravitas/AutoGPT.git
synced 2026-02-16 01:36:36 -05:00
## Summary Implement selective rollout of payment functionality using LaunchDarkly feature flags to enable gradual deployment to pilot users. - Add `ENABLE_PLATFORM_PAYMENT` flag to control credit system behavior - Update `get_user_credit_model` to use user-specific flag evaluation - Replace hardcoded `NEXT_PUBLIC_SHOW_BILLING_PAGE` with LaunchDarkly flag - Enable payment UI components only for flagged users - Maintain backward compatibility with existing beta credit system - Default to beta monthly credits when flag is disabled - Fix tests to work with new async credit model function ## Key Changes ### Backend - **Credit Model Selection**: The `get_user_credit_model()` function now takes a `user_id` parameter and uses LaunchDarkly to determine which credit model to return: - Flag enabled → `UserCredit` (payment system enabled, no monthly refills) - Flag disabled → `BetaUserCredit` (current behavior with monthly refills) - **Flag Integration**: Added `ENABLE_PLATFORM_PAYMENT` flag and integrated LaunchDarkly evaluation throughout the credit system - **API Updates**: All credit-related endpoints now use the user-specific credit model instead of a global instance ### Frontend - **Dynamic UI**: Payment-related components (billing page, wallet refill) now show/hide based on the LaunchDarkly flag - **Removed Environment Variable**: Replaced `NEXT_PUBLIC_SHOW_BILLING_PAGE` with runtime flag evaluation ### Testing - **Test Fixes**: Updated all tests that referenced the removed global `_user_credit_model` to use proper mocking of the new async function ## Deployment Strategy This implementation enables a controlled rollout: 1. Deploy with flag disabled (default) - no behavior change for existing users 2. Enable flag for pilot/beta users via LaunchDarkly dashboard 3. Monitor usage and feedback from pilot users 4. Gradually expand to more users 5. Eventually enable for all users once validated ## Test Plan - [x] Unit tests pass for credit system components - [x] Payment UI components show/hide correctly based on flag - [x] Default behavior (flag disabled) maintains current functionality - [x] Flag enabled users get payment system without monthly refills - [x] Admin credit operations work correctly - [x] Backward compatibility maintained 🤖 Generated with [Claude Code](https://claude.ai/code) --------- Co-authored-by: Claude <noreply@anthropic.com>