Skip to content

feat: Add ActiveAdmin, subscription system, and UI improvements#10

Merged
princetechs merged 2 commits into
mainfrom
add-active-admin
Feb 14, 2026
Merged

feat: Add ActiveAdmin, subscription system, and UI improvements#10
princetechs merged 2 commits into
mainfrom
add-active-admin

Conversation

@azadhash

@azadhash azadhash commented Feb 9, 2026

Copy link
Copy Markdown
Collaborator

Summary

This PR adds ActiveAdmin for managing application data and integrates DodoPayments for subscription handling.

Changes

ActiveAdmin

  • Added ActiveAdmin with resources for Users, Tenants, Projects, Containers, ApiTokens, LlmConfigs, Memberships, UserApiKeys
  • Added AdminUser model with Devise authentication
  • Configured custom dashboard

Subscription System

  • Integrated DodoPayments for payment processing
  • Added subscription controller and views (new, success, cancel)
  • Added webhook controller for payment events
  • Added subscription-related migrations (subscription_status, subscription_id, subscription_plan, last_payment_at)

Other Improvements

  • Updated models with display_name methods for admin interface
  • Added node_modules to .gitignore
  • Various styling and layout improvements

Migrations Required

```bash
rails db:migrate
```"

azadhash and others added 2 commits February 10, 2026 01:19
- Add ActiveAdmin with resources for Users, Tenants, Projects, Containers, ApiTokens
- Add DodoPayments subscription integration with webhooks
- Add subscription-related migrations and fields
- Update models with display_name methods for admin interface
- Update routes for admin and subscription endpoints
- Add node_modules to .gitignore
- Various styling and layout improvements
@princetechs
princetechs merged commit 776db6a into main Feb 14, 2026
3 of 5 checks passed
princetechs pushed a commit that referenced this pull request Feb 15, 2026
Root cause: IntentDetectionJob claimed a warm instance, which immediately
triggered WarmPoolReplenishJob to cold-provision a replacement. This meant
every visit to 'New Project' page launched 2 EC2 instances.

Fix:
- WarmPoolManager#claim_warm_instance! no longer triggers replenishment
- Replenishment now happens in ContainerProvisionJob after successful deploy
- IntentDetectionJob no longer cold-provisions when no warm instance exists
  (cold provisioning happens on-demand in ContainerProvisionJob instead)

Flow now:
1. Visit New Project → IntentDetectionJob starts 1 warm instance (if available)
2. Deploy container → ContainerProvisionJob uses the warm instance
3. After successful deploy → WarmPoolReplenishJob provisions replacement
4. If user never deploys → IdleReaperJob stops instance after 5min (back to warm)

Cleaned up: terminated idle Node #9, Node #10 is warm spare
princetechs pushed a commit that referenced this pull request Feb 15, 2026
Root cause: IntentDetectionJob claimed a warm instance, which immediately
triggered WarmPoolReplenishJob to cold-provision a replacement. This meant
every visit to 'New Project' page launched 2 EC2 instances.

Fix:
- WarmPoolManager#claim_warm_instance! no longer triggers replenishment
- Replenishment now happens in ContainerProvisionJob after successful deploy
- IntentDetectionJob no longer cold-provisions when no warm instance exists
  (cold provisioning happens on-demand in ContainerProvisionJob instead)

Flow now:
1. Visit New Project → IntentDetectionJob starts 1 warm instance (if available)
2. Deploy container → ContainerProvisionJob uses the warm instance
3. After successful deploy → WarmPoolReplenishJob provisions replacement
4. If user never deploys → IdleReaperJob stops instance after 5min (back to warm)

Cleaned up: terminated idle Node #9, Node #10 is warm spare
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants