Files
igny8/tmp-md-files/REMOTE-COMMITS-INTEGRATION-PLAN.md
alorig d5d8ce9168 123
2025-12-24 02:03:10 +05:00

30 KiB

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

    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

    # 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)

    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

# 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)

    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.