# Remote Commits Integration Plan **Created:** December 23, 2025 **Current Branch:** main (commit d768ed71 - New Model & tokens/credits updates) **Remote Branch:** origin/main (9 commits ahead) **Purpose:** Integrate all remote features while maintaining new AIModelConfig token-based system --- ## Executive Summary ### Current Situation - **Local:** Implemented Phase 1 & 2.1 of AIModelConfig refactor (token-based billing with centralized model pricing) - **Remote:** 9 commits with features we need to integrate: 1. Token analytics reports (e041cb8e, c17b22e9) - ALREADY ANALYZED 2. Global settings system (3283a83b, 9e8ff4fb, 7a1e952a, 5c9ef81a, 646095da) 3. Admin bulk actions (ab0d6469) 4. Frontend cleanup (eb6cba79) ### Integration Strategy 1. **Direct Apply:** Non-conflicting changes (frontend cleanup, bulk actions) 2. **Adapt & Merge:** Global settings to work with AIModelConfig 3. **Skip:** Old token system (BillingConfiguration) - replaced by AIModelConfig 4. **Enhance:** Analytics reports adapted for new schema --- ## Commit-by-Commit Analysis ### Commit 1: e041cb8e - "ai & tokens" (Dec 19, 2025) **Status:** ✅ Already Analyzed in PHASE2-COMMIT-COMPARISON.md **Files Changed:** - backend/igny8_core/admin/reports.py (+322 lines) - backend/igny8_core/admin/site.py (+2 lines) - backend/igny8_core/templates/admin/reports/ai_cost_analysis.html (+218 lines) - backend/igny8_core/templates/admin/reports/token_usage.html (+414 lines) **Features:** - Token Usage Report view with Chart.js visualizations - AI Cost Analysis Report with forecasting and anomaly detection - Admin URL routes registered **Integration Decision:** ADAPT FOR AIMODELCONFIG - Reports use `model_used` CharField - need to adapt for `model_config` FK - Cost tracking in `cost_usd` - need to adapt for `cost_usd_input/output/total` - Token tracking already compatible --- ### Commit 2: c17b22e9 - "credits adn tokens final correct setup" (Dec 20, 2025) **Status:** ✅ Already Analyzed in PHASE2-COMMIT-COMPARISON.md **Files Changed:** - CREDITS-TOKENS-GUIDE.md (new) - backend/igny8_core/admin/reports.py (updated token_usage_report) - backend/igny8_core/ai/engine.py (token extraction) - backend/igny8_core/business/billing/models.py (BillingConfiguration) - backend/igny8_core/business/billing/services/credit_service.py (token calculation) - backend/igny8_core/business/linking/services/linker_service.py (token usage) - backend/igny8_core/business/optimization/services/optimizer_service.py (token usage) - backend/igny8_core/management/commands/backfill_tokens.py (new) - backend/igny8_core/modules/billing/admin.py (token config admin) - Migrations: 0018_remove_creditcostconfig_credits_cost_and_more.py, 0019_populate_token_based_config.py - Templates: Updated analytics templates **Features:** - BillingConfiguration model with `default_tokens_per_credit = 100` - Per-operation token ratios in CreditCostConfig - AIEngine token extraction from AI responses - Service updates to pass tokens - Backfill command to populate historical data **Integration Decision:** PARTIALLY SKIP, ADAPT KEY PARTS - ❌ Skip BillingConfiguration model (replaced by AIModelConfig) - ❌ Skip per-operation tokens_per_credit (using AIModelConfig.tokens_per_credit instead) - ✅ Copy AIEngine token extraction logic - ✅ Copy service update patterns (linker, optimizer) - ✅ Adapt backfill command for new schema --- ### Commit 3: ab0d6469 - "bulk actions & some next audits docs" (Dec 20, 2025) **Files Changed:** - AWS_ADMIN_ACCOUNT_AUDIT_REPORT.md (+601 lines) - DATA_SEGREGATION_SYSTEM_VS_USER.md (+356 lines) - SESSION_SUMMARY_DJANGO_ADMIN_ENHANCEMENT.md (+226 lines) - backend/igny8_core/ai/admin.py (+38 lines) - backend/igny8_core/auth/admin.py (+468 lines) - backend/igny8_core/business/automation/admin.py (+137 lines) - backend/igny8_core/business/billing/admin.py (+69 lines) - backend/igny8_core/business/integration/admin.py (+60 lines) - backend/igny8_core/business/optimization/admin.py (+36 lines) - backend/igny8_core/business/publishing/admin.py (+63 lines) - backend/igny8_core/modules/billing/admin.py (+171 lines) - backend/igny8_core/modules/planner/admin.py (+189 lines) - backend/igny8_core/modules/system/admin.py (+160 lines) - backend/igny8_core/modules/writer/admin.py (+469 lines) - content-generation-prompt.md (deleted) - idea-generation-prompt.md (deleted) **Features Added:** - Bulk actions across all admin models: * Activate/Deactivate items * Export to CSV/JSON * Batch update status * Clone/duplicate items * Delete with confirmation - Enhanced admin list displays with filters - Improved search functionality - Audit documentation for AWS admin account **Integration Decision:** ✅ DIRECT APPLY (Non-conflicting) - Admin bulk actions don't conflict with AIModelConfig - Can be applied directly after resolving any merge conflicts - Documentation files can be added as-is --- ### Commit 4: eb6cba79 - "cleanup - froentend pages removed" (Dec 20, 2025) **Files Changed (43 deletions):** Frontend pages deleted: - frontend/src/pages/Admin/* (AdminBilling, AdminCreditCosts, AdminAPIMonitor, AdminAccountLimits, AdminActivityLogs, AdminAnalytics, AdminBillingHistory, AdminCostBreakdown, AdminCreditUsage, AdminDashboard, AdminGlobalSettings, AdminModelCosts) - frontend/src/pages/Settings/UiElements/* (20+ UI component showcase pages) - frontend/src/pages/Settings/ApiMonitor.tsx - frontend/src/pages/Settings/DebugStatus.tsx - frontend/src/pages/Settings/MasterStatus.tsx - frontend/src/components/sidebar/ApiStatusIndicator.tsx - frontend/src/components/auth/AdminGuard.tsx Documentation files added: - COMPREHENSIVE_REFACTORING_PLAN.md (+1615 lines) - DJANGO_ADMIN_ACTIONS_COMPLETED.md (+453 lines) - DJANGO_ADMIN_ACTIONS_QUICK_REFERENCE.md (+511 lines) - DJANGO_ADMIN_ACTIONS_TODO.md (+317 lines) - FRONTEND_ADMIN_PAGES_COMPREHENSIVE_AUDIT.md (+311 lines) - FRONTEND_ADMIN_REFACTORING_COMPLETE.md (+467 lines) - SYSTEM_ARCHITECTURE_ANALYSIS_SUPERUSER_STRATEGY.md (+696 lines) **Rationale:** - Move admin functionality to Django Admin interface - Remove duplicate frontend admin pages - Eliminate unmaintained UI showcase pages - Simplify frontend architecture **Integration Decision:** ✅ DIRECT APPLY (Non-conflicting) - File deletions don't conflict with AIModelConfig - Documentation provides context for architectural decisions - Can be cherry-picked directly --- ### Commit 5: 3283a83b - "feat(migrations): Rename indexes and update global integration settings..." (Dec 20, 2025) **Files Changed (51 files):** **New Models:** - backend/igny8_core/modules/system/global_settings_models.py (+270 lines) * GlobalIntegrationSettings (singleton, pk=1) * Fields: openai_api_key, openai_model, openai_temperature, openai_max_tokens * Fields: dalle_api_key, dalle_model, dalle_size, dalle_quality, dalle_style * Fields: runware_api_key, runware_model * Fields: default_image_service, image_quality, image_style * Purpose: Platform-wide API keys and default settings **Updated Models:** - backend/igny8_core/modules/system/models.py (IntegrationSettings refactored) * Removed API key storage (moved to GlobalIntegrationSettings) * Changed to store only model/parameter overrides in JSON `config` field * Free plan: Cannot override, uses global defaults * Paid plans: Can override model, temperature, tokens, image settings **Migrations:** - backend/igny8_core/modules/system/migrations/0002_add_global_settings_models.py (+186 lines) - backend/igny8_core/modules/system/migrations/0004_fix_global_settings_remove_override.py (+108 lines) **Admin Enhancements:** - backend/igny8_core/admin/monitoring.py (+406 lines) * API monitoring dashboard * Debug console * System health checks - backend/igny8_core/templates/admin/monitoring/*.html (3 new templates) **AI System Changes:** - backend/igny8_core/management/commands/populate_global_prompts.py (+238 lines) - backend/igny8_core/ai/prompts.py (refactored, -640 lines) - backend/igny8_core/ai/ai_core.py (+25 lines) - backend/igny8_core/ai/settings.py (+113 lines) **Removed Files (IMPORTANT):** - backend/igny8_core/api/base.py, permissions.py, throttles.py (deleted -118 lines) - backend/igny8_core/auth/middleware.py, utils.py (deleted -32 lines) - Reason: Consolidated into core modules **Frontend Changes:** - frontend/src/App.tsx (-11 lines): Removed AwsAdminGuard imports - frontend/src/components/auth/AwsAdminGuard.tsx (deleted -31 lines) - Various frontend components cleaned up **Documentation:** - 02_COMPREHENSIVE_REFACTORING_PLAN.md (renamed from COMPREHENSIVE_REFACTORING_PLAN.md) - 03_COMPLETE-IMPLEMENTATION-GUIDE.md (+1100 lines) - 04_GLOBAL-SETTINGS-ACCESS-GUIDE.md (+322 lines) - 05_GLOBAL-SETTINGS-CORRECT-IMPLEMENTATION.md (+320 lines) - docs/AI_CLEANUP_SUMMARY.md, docs/AI_SYSTEM_AUDIT.md (moved to docs/) **Integration Decision:** ⚠️ ADAPT FOR AIMODELCONFIG **CRITICAL:** This commit introduces GlobalIntegrationSettings which CONFLICTS with our AIModelConfig approach **Problems:** 1. GlobalIntegrationSettings stores model names as CharField with hardcoded choices 2. Our AIModelConfig uses database-driven model config with pricing 3. Duplicate model selection logic **Solution:** - Keep GlobalIntegrationSettings for API keys ONLY - Remove model selection fields from GlobalIntegrationSettings - Use AIModelConfig for all model selection and pricing - Adapt IntegrationSettings.config to reference AIModelConfig FKs **What to Keep:** - ✅ GlobalIntegrationSettings for API keys (openai_api_key, dalle_api_key, runware_api_key) - ✅ Admin monitoring templates (system health, debug console) - ✅ populate_global_prompts command - ✅ Frontend cleanup changes - ❌ Model selection fields from GlobalIntegrationSettings (use AIModelConfig instead) --- ### Commit 6: 9e8ff4fb - "globals" (Dec 20, 2025) **Files Changed (18 files):** **Key Changes:** - INTEGRATION-SETTINGS-WORKFLOW.md (+223 lines) - Workflow documentation - backend/igny8_core/modules/system/global_settings_models.py (enhanced +129 lines) * Added more model choices (GPT-5.1, GPT-5.2) * Added image service selection * Enhanced configuration options - backend/igny8_core/modules/system/integration_views.py (refactored -349 lines) * Simplified integration settings API * Removed complex override logic * Uses GlobalIntegrationSettings as source of truth - backend/igny8_core/modules/system/admin.py (+20 lines) * Enhanced GlobalIntegrationSettings admin - backend/igny8_core/ai/prompts.py (massive refactor -640 lines) * Simplified prompt management * Removed hardcoded prompts **Migrations:** - 0004_fix_global_settings_remove_override.py (revised) - 0005_add_model_choices.py (+33 lines) - 0006_fix_image_settings.py (+44 lines) - 0007_add_image_defaults.py (+28 lines) - 0008_add_default_image_service.py (+18 lines) - 0009_fix_variables_optional.py (+18 lines) **Image Generation:** - backend/igny8_core/business/automation/migrations/0005_add_default_image_service.py (+18 lines) **Frontend:** - frontend/src/components/common/ValidationCard.tsx (+23 lines) - frontend/src/layout/AppSidebar.tsx (+29 lines) - frontend/src/pages/Settings/Integration.tsx (+13 lines) **Integration Decision:** ⚠️ ADAPT FOR AIMODELCONFIG - Same issue as commit 3283a83b - model choices hardcoded - Workflow documentation useful but needs updating for AIModelConfig - Migrations will conflict - need to merge with our migrations **Adaptation Strategy:** - Extract API key management from GlobalIntegrationSettings - Replace hardcoded model choices with AIModelConfig references - Update workflow documentation for AIModelConfig system --- ### Commit 7: 7a1e952a - "feat: Add Global Module Settings and Caption to Images" (Dec 20, 2025) **Files Changed (16 files):** **New Model:** - backend/igny8_core/modules/system/global_settings_models.py (+71 lines) * GlobalModuleSettings model * Fields: is_clustering_enabled, is_ideas_enabled, is_content_enabled, is_optimization_enabled, is_linking_enabled, is_images_enabled, is_publishing_enabled * Purpose: Platform-wide enable/disable for modules * Singleton pattern (pk=1) **Image Model Enhancement:** - backend/igny8_core/business/content/models.py (+1 line) * Added `caption` TextField to Images model - backend/igny8_core/modules/writer/migrations/0013_add_caption_to_images.py (+18 lines) **AI Functions:** - backend/igny8_core/ai/functions/generate_image_prompts.py (+38 lines) * Updated to handle caption in image prompt generation **System Module:** - backend/igny8_core/modules/system/migrations/0010_globalmodulesettings_and_more.py (+36 lines) - backend/igny8_core/modules/system/admin.py (+53 lines) - GlobalModuleSettings admin - backend/igny8_core/modules/system/serializers.py (+13 lines) - backend/igny8_core/modules/system/settings_views.py (+64 lines) - backend/igny8_core/modules/system/utils.py (refactor -337 lines) - backend/igny8_core/modules/system/views.py (+53 lines) **Frontend:** - frontend/src/pages/Thinker/Prompts.tsx (+36 lines) - Caption field in UI - frontend/src/services/api.ts (+1 line) - frontend/src/store/settingsStore.ts (+15 lines) - frontend/src/templates/ContentViewTemplate.tsx (+14 lines) - Display captions **Integration Decision:** ✅ DIRECT APPLY (Non-conflicting) - GlobalModuleSettings is independent feature - Image caption field is enhancement - No conflicts with AIModelConfig - Can be applied after migration number adjustments --- ### Commit 8: 5c9ef81a - "moduels setigns rmeove from frotneend" (Dec 20, 2025) **Files Changed (10 files):** **Backend Cleanup:** - backend/igny8_core/modules/system/settings_admin.py (+21 lines) - backend/igny8_core/modules/system/settings_serializers.py (+13 lines) - backend/igny8_core/modules/system/settings_views.py (-152 lines cleanup) **Frontend Cleanup:** - frontend/src/App.tsx (-114 lines) * Removed module settings routes - frontend/src/components/common/ModuleGuard.tsx (-35 lines cleanup) - frontend/src/config/modules.config.ts (-28 lines cleanup) - frontend/src/layout/AppSidebar.tsx (-120 lines cleanup) - frontend/src/pages/Settings/Modules.tsx (deleted -91 lines) * Removed frontend module settings page - frontend/src/services/api.ts (-39 lines) - frontend/src/store/settingsStore.ts (-76 lines cleanup) **Rationale:** - Module settings moved to Django Admin only - Removed duplicate frontend UI - Simplified architecture **Integration Decision:** ✅ DIRECT APPLY (Non-conflicting) - File deletions don't conflict - Cleanup is beneficial - Can be cherry-picked --- ### Commit 9: 646095da - "moduel setgins fixed" (Dec 20, 2025) **Files Changed (7 files):** **Backend:** - backend/igny8_core/modules/system/settings_views.py (+9 lines) - Bug fixes - backend/igny8_core/modules/system/urls.py (+4 lines) - Route fixes **Frontend:** - frontend/src/App.tsx (+9 lines) - Module settings route restoration - frontend/src/layout/AppSidebar.tsx (+105 lines) - Restored module toggle UI - frontend/src/services/api.ts (+19 lines) - Module API endpoints - frontend/src/store/moduleStore.ts (+59 lines new file) - Module state management - frontend/test-module-settings.html (+69 lines new file) - Test page **Rationale:** - Reverted partial removal from commit 5c9ef81a - Module settings needed in frontend for user convenience - Added dedicated moduleStore for state management **Integration Decision:** ✅ DIRECT APPLY (Non-conflicting) - Latest version of module settings - Can be applied after commit 8 --- ## Dependency Graph ``` Timeline (oldest to newest): e041cb8e → c17b22e9 → ab0d6469 → eb6cba79 → 3283a83b → 9e8ff4fb → 7a1e952a → 5c9ef81a → 646095da │ │ │ │ │ │ │ │ │ └──────────┴───────────┴───────────┴───────────┴───────────┴───────────┴───────────┴───────────┘ Token System Admin Cleanup Global Settings System Module Settings Dependencies: 1. e041cb8e + c17b22e9: Token analytics (Phase 3 of our plan) 2. 3283a83b + 9e8ff4fb: Global settings foundation → needs AIModelConfig adaptation 3. 7a1e952a: GlobalModuleSettings (depends on global settings models) 4. 5c9ef81a + 646095da: Module settings UI (latest = 646095da) 5. ab0d6469: Admin bulk actions (independent) 6. eb6cba79: Frontend cleanup (independent) ``` --- ## Integration Phases ### Phase A: Non-Conflicting Features (Safe to Apply) **Estimated Time:** 2 hours 1. **Frontend Cleanup (eb6cba79)** - Delete 43 unused admin/UI pages - Add architecture documentation - No code conflicts 2. **Admin Bulk Actions (ab0d6469)** - Apply bulk action enhancements to all admin models - Add audit documentation - Compatible with our admin changes 3. **Module Settings Final (5c9ef81a + 646095da)** - Apply latest module settings UI - Add moduleStore for state management - Independent feature 4. **Image Captions (from 7a1e952a)** - Add caption field to Images model - Update image generation functions - Update frontend components - No conflicts --- ### Phase B: Global Settings Adaptation (Complex) **Estimated Time:** 6-8 hours **Current State:** - Remote: GlobalIntegrationSettings with hardcoded model choices - Local: AIModelConfig with database-driven model configs **Target Architecture:** ``` GlobalIntegrationSettings (API Keys ONLY) ├── openai_api_key ├── anthropic_api_key ├── runware_api_key └── (remove all model selection fields) AIModelConfig (Our System) ├── model_name ├── provider ├── cost_per_1k_input_tokens ├── cost_per_1k_output_tokens ├── tokens_per_credit └── is_default IntegrationSettings (Account Overrides) ├── default_text_model → FK to AIModelConfig ├── default_image_model → FK to AIModelConfig └── config: {temperature, max_tokens, image_size, etc.} ``` **Steps:** 1. **Create Hybrid GlobalIntegrationSettings Model** ```python class GlobalIntegrationSettings(models.Model): # API Keys (from remote commits) openai_api_key = CharField(...) anthropic_api_key = CharField(...) runware_api_key = CharField(...) # Default Models (link to AIModelConfig) default_text_model = ForeignKey('AIModelConfig', related_name='global_text_default') default_image_model = ForeignKey('AIModelConfig', related_name='global_image_default') # Global Parameters (can be overridden per account) default_temperature = FloatField(default=0.7) default_max_tokens = IntegerField(default=8192) default_image_size = CharField(default='1024x1024') default_image_quality = CharField(default='standard') default_image_style = CharField(default='realistic') ``` 2. **Adapt IntegrationSettings (Already Done)** - We already have default_text_model and default_image_model FKs - Keep config JSON for parameter overrides - No changes needed 3. **Create Migration Strategy** ``` Migration 0020_add_global_integration_settings: - Create GlobalIntegrationSettings table - Populate with default AIModelConfig references - Copy API keys from first IntegrationSettings (if exists) Migration 0021_migrate_integration_settings: - Update IntegrationSettings to use new structure - Backfill default_text_model, default_image_model ``` 4. **Update API Key Access Pattern** ```python # OLD (from remote commits): integration_settings = account.integration_settings.first() api_key = integration_settings.openai_api_key # NEW (hybrid approach): global_settings = GlobalIntegrationSettings.objects.get(pk=1) api_key = global_settings.openai_api_key ``` 5. **Update Model Selection Logic (Already Done)** - Our CreditService.get_model_for_operation() already implements priority - Just need to add GlobalIntegrationSettings fallback 6. **Admin Interface** - Adapt admin templates from 3283a83b monitoring.py - Keep API monitoring, debug console, system health - Update to show AIModelConfig instead of hardcoded choices --- ### Phase C: GlobalModuleSettings Integration **Estimated Time:** 2 hours 1. **Copy GlobalModuleSettings Model (from 7a1e952a)** ```python class GlobalModuleSettings(models.Model): is_clustering_enabled = BooleanField(default=True) is_ideas_enabled = BooleanField(default=True) is_content_enabled = BooleanField(default=True) is_optimization_enabled = BooleanField(default=True) is_linking_enabled = BooleanField(default=True) is_images_enabled = BooleanField(default=True) is_publishing_enabled = BooleanField(default=True) ``` 2. **Create Migration** - Add to modules/system/migrations/ 3. **Update Admin** - Add GlobalModuleSettings admin interface - Singleton pattern enforcement 4. **Update Frontend** - Copy module settings UI components - Update AppSidebar to respect module toggles --- ### Phase D: Token Analytics (Already Planned in Phase 3) **Estimated Time:** 4 hours 1. **Adapt Reports from e041cb8e + c17b22e9** - Copy token_usage_report() view - Copy ai_cost_analysis() view - Update to use model_config FK instead of model_used CharField - Update to use cost_usd_input/output/total fields 2. **Copy Templates** - token_usage.html with Chart.js - ai_cost_analysis.html with visualizations 3. **Register URLs** - Add to admin/site.py --- ### Phase E: AIEngine & Services (Already Planned in Phase 2.2-2.3) **Estimated Time:** 3 hours 1. **Copy Token Extraction from c17b22e9:engine.py** 2. **Update Services from c17b22e9 Pattern** - linker_service.py - optimizer_service.py - clustering_service.py - ideas_service.py - content_service.py - image_service.py --- ## Migration File Consolidation ### Remote Migration Numbers (Conflicts) ``` Commit 3283a83b: - 0002_add_global_settings_models.py - 0004_fix_global_settings_remove_override.py Commit 9e8ff4fb: - 0004_fix_global_settings_remove_override.py (revised) - 0005_add_model_choices.py - 0006_fix_image_settings.py - 0007_add_image_defaults.py - 0008_add_default_image_service.py - 0009_fix_variables_optional.py Commit 7a1e952a: - 0010_globalmodulesettings_and_more.py - 0013_add_caption_to_images.py (writer module) Our Local: - 0019_add_ai_model_config.py (billing) - 0002_add_model_fk_to_integrations.py (system) ``` ### Renumbering Strategy ``` modules/system/migrations/: - 0001_initial.py (existing) - 0002_add_model_fk_to_integrations.py (OUR - keep) - 0003_add_global_integration_settings.py (NEW - API keys only) - 0004_add_global_module_settings.py (from remote 7a1e952a) - 0005_add_caption_to_images.py (from remote 7a1e952a writer module) modules/billing/migrations/: - 0018_... (existing) - 0019_add_ai_model_config.py (OUR - keep) - 0020_update_credit_usage_log_costs.py (NEW - add cost_usd_input/output/total) ``` --- ## Testing Strategy ### Unit Tests 1. GlobalIntegrationSettings API key access 2. AIModelConfig model selection priority 3. Credit calculation with new cost fields 4. Token extraction from AI responses ### Integration Tests 1. Full AI generation flow with token tracking 2. Model selection cascade (Task → Account → Operation → System → Fallback) 3. Credit deduction with granular costs 4. Analytics report data accuracy ### Frontend Tests 1. Module settings toggle 2. Image caption display 3. Integration settings UI with new structure --- ## Rollback Plan ### Git Strategy ```bash # Create backup branch before integration git branch backup-before-remote-integration # Create feature branches for each phase git checkout -b feature/phase-a-non-conflicting git checkout -b feature/phase-b-global-settings git checkout -b feature/phase-c-module-settings git checkout -b feature/phase-d-analytics git checkout -b feature/phase-e-services # Merge phases incrementally # Test after each phase # Rollback if issues: git checkout main git reset --hard backup-before-remote-integration ``` ### Database Rollback - Keep migration rollback scripts for each phase - Test migrations on staging database first - Create database backup before applying --- ## File Checklist ### Files to Copy Directly (No Changes) - [ ] AWS_ADMIN_ACCOUNT_AUDIT_REPORT.md - [ ] DATA_SEGREGATION_SYSTEM_VS_USER.md - [ ] SESSION_SUMMARY_DJANGO_ADMIN_ENHANCEMENT.md - [ ] COMPREHENSIVE_REFACTORING_PLAN.md → 02_COMPREHENSIVE_REFACTORING_PLAN.md - [ ] DJANGO_ADMIN_ACTIONS_COMPLETED.md - [ ] DJANGO_ADMIN_ACTIONS_QUICK_REFERENCE.md - [ ] DJANGO_ADMIN_ACTIONS_TODO.md - [ ] FRONTEND_ADMIN_PAGES_COMPREHENSIVE_AUDIT.md - [ ] FRONTEND_ADMIN_REFACTORING_COMPLETE.md - [ ] SYSTEM_ARCHITECTURE_ANALYSIS_SUPERUSER_STRATEGY.md - [ ] INTEGRATION-SETTINGS-WORKFLOW.md - [ ] frontend/test-module-settings.html ### Files to Delete (Frontend Cleanup) - [ ] frontend/src/pages/Admin/* (12 files) - [ ] frontend/src/pages/Settings/UiElements/* (25 files) - [ ] frontend/src/pages/Settings/ApiMonitor.tsx - [ ] frontend/src/pages/Settings/DebugStatus.tsx - [ ] frontend/src/pages/Settings/MasterStatus.tsx - [ ] frontend/src/components/sidebar/ApiStatusIndicator.tsx - [ ] frontend/src/components/auth/AdminGuard.tsx ### Files to Adapt (Merge Required) - [ ] backend/igny8_core/modules/system/models.py (GlobalIntegrationSettings API keys only) - [ ] backend/igny8_core/modules/system/global_settings_models.py (new, adapted) - [ ] backend/igny8_core/admin/reports.py (token analytics adapted) - [ ] backend/igny8_core/templates/admin/reports/token_usage.html (adapted) - [ ] backend/igny8_core/templates/admin/reports/ai_cost_analysis.html (adapted) - [ ] backend/igny8_core/ai/engine.py (token extraction) - [ ] backend/igny8_core/business/linking/services/linker_service.py (token usage) - [ ] backend/igny8_core/business/optimization/services/optimizer_service.py (token usage) ### Files to Create (New) - [ ] backend/igny8_core/modules/system/migrations/0003_add_global_integration_settings.py - [ ] backend/igny8_core/modules/system/migrations/0004_add_global_module_settings.py - [ ] backend/igny8_core/modules/billing/migrations/0020_update_credit_usage_log_costs.py - [ ] backend/igny8_core/management/commands/backfill_cost_fields.py - [ ] frontend/src/store/moduleStore.ts ### Bulk Admin Actions to Add - [ ] backend/igny8_core/ai/admin.py (bulk actions) - [ ] backend/igny8_core/auth/admin.py (bulk actions) - [ ] backend/igny8_core/business/automation/admin.py (bulk actions) - [ ] backend/igny8_core/business/billing/admin.py (bulk actions) - [ ] backend/igny8_core/business/integration/admin.py (bulk actions) - [ ] backend/igny8_core/business/optimization/admin.py (bulk actions) - [ ] backend/igny8_core/business/publishing/admin.py (bulk actions) - [ ] backend/igny8_core/modules/billing/admin.py (bulk actions) - [ ] backend/igny8_core/modules/planner/admin.py (bulk actions) - [ ] backend/igny8_core/modules/system/admin.py (bulk actions) - [ ] backend/igny8_core/modules/writer/admin.py (bulk actions) --- ## Estimated Timeline | Phase | Tasks | Time | Priority | |-------|-------|------|----------| | Phase A | Non-conflicting (cleanup, bulk actions, modules, captions) | 2 hours | HIGH | | Phase B | Global settings adaptation | 6-8 hours | CRITICAL | | Phase C | GlobalModuleSettings | 2 hours | MEDIUM | | Phase D | Token analytics | 4 hours | HIGH | | Phase E | AIEngine & services | 3 hours | CRITICAL | | **Total** | | **17-19 hours** | | --- ## Success Criteria ### Phase A Complete - ✅ 43 frontend files deleted successfully - ✅ Bulk actions working in all admin models - ✅ Module settings UI functional - ✅ Image captions field added and working ### Phase B Complete - ✅ GlobalIntegrationSettings storing API keys - ✅ AIModelConfig used for all model selection - ✅ IntegrationSettings.config working with parameter overrides - ✅ Admin monitoring templates functional - ✅ No hardcoded model choices anywhere ### Phase C Complete - ✅ GlobalModuleSettings admin accessible - ✅ Module toggles working in frontend - ✅ Disabled modules inaccessible to users ### Phase D Complete - ✅ Token usage report showing accurate data - ✅ AI cost analysis with forecasting - ✅ Charts rendering correctly - ✅ All reports use model_config FK ### Phase E Complete - ✅ AIEngine extracting tokens from all providers - ✅ All 6 services passing tokens to CreditService - ✅ Token data flowing through entire system - ✅ Credit calculation accurate for all models --- ## Next Steps 1. **Immediate:** Start Phase A (non-conflicting features) ```bash git checkout -b feature/phase-a-integration git cherry-pick eb6cba79 # Frontend cleanup git cherry-pick ab0d6469 # Bulk actions git cherry-pick 646095da # Module settings # Test, then merge to main ``` 2. **Critical:** Design GlobalIntegrationSettings migration (Phase B) - Create hybrid model combining API keys + AIModelConfig references - Write migration to create table and populate defaults - Update all API key access code 3. **Follow-up:** Execute phases C, D, E in sequence - Each phase builds on previous - Test thoroughly after each phase 4. **Documentation:** Update all docs for final architecture - Revise AI-MODEL-COST-REFACTOR-PLAN.md with global settings - Update CREDITS-TOKENS-GUIDE.md - Create final architecture diagram --- ## Conclusion This plan integrates 9 remote commits (~4,500 lines added, ~9,000 lines removed) while preserving our superior AIModelConfig architecture. The phased approach minimizes risk and allows incremental testing. Estimated completion: 17-19 hours of focused development. **Key Innovation:** Hybrid GlobalIntegrationSettings that stores API keys centrally while delegating model selection to our AIModelConfig system - best of both approaches.