Files
igny8/CHANGELOG.md
IGNY8 VPS (Salman) c777e5ccb2 dos updates
2026-01-20 14:45:21 +00:00

3342 lines
121 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# IGNY8 Change Log
**Current Version:** 1.8.4
**Last Updated:** January 20, 2026
---
## Version History
| Version | Date | Summary |
|---------|------|---------|
| 1.8.4 | Jan 20, 2026 | **Documentation Accuracy & Launch Prep** - Fixed API docs (Swagger/ReDoc), serializer field mismatches resolved, comprehensive docs audit, root-level INDEX.md + DESIGN-GUIDE.md + .cursorrules created |
| 1.8.3 | Jan 20, 2026 | **Billing System Standardization** - Two-pool credit system (plan + bonus), industry-standard renewal workflow (no advance notice for Stripe/PayPal), simplified bank transfer flow (3 emails), Payment Logs in admin, WebhookEvent logging for all payment types |
| 1.8.2 | Jan 19, 2026 | **Keywords Library Redesign & Sector Filtering** - Complete Keywords Library page overhaul with sector metric cards, Smart Suggestions, cascading filters, sector-specific keyword filtering, UI/UX improvements, and backend sector_ids parameter support |
| 1.8.1 | Jan 18, 2026 | **Automation Scheduling Overhaul** - Hourly scheduling (replaces 15-min windows), DefaultAutomationConfig singleton for centralized defaults, test mode for admin testing, Reset button fetches from backend, new migrations 0009-0012 |
| 1.8.0 | Jan 17, 2026 | **Major** - Unified Settings Consolidation: AI & Automation settings merged into Site Settings > Automation tab; Navigation Refactor Complete; Automation Overview & Run Detail pages; Publishing & Scheduling UX improvements; Skip Stage configuration; Content Calendar fixes |
| 1.7.6 | Jan 15, 2026 | **Navigation Refactor Complete** - Complete sidebar restructure, new Automation Overview page, Publish Settings page, Content Calendar improvements |
| 1.7.5 | Jan 14, 2026 | **Automation Overview** - New dashboard for automation runs, detailed run history, real-time progress tracking |
| 1.7.4 | Jan 13, 2026 | **Publishing & Scheduling UX** - Phase 1-6 implementation, Content Calendar fixes, auto-approval/publish workflows |
| 1.7.3 | Jan 12, 2026 | **Skip Stage Configuration** - Ability to skip individual stages, stage-level controls, budget allocation per stage |
| 1.7.2 | Jan 11, 2026 | **Bug Fixes & Planner/Writer Filters** - Filter fixes across all pages, metrics improvements, keyword library enhancements |
| 1.7.1 | Jan 11, 2026 | **Bug Fixes & Improvements** - SeeDream AI image model integration, Image generation credit fixes, Widget improvements, Template optimizations, Phase 4 completion (Email/Notifications QA) |
| 1.7.0 | Jan 10, 2026 | **Major** - Pre-Launch Cleanup Complete (Phases 1, 5, 6): Code cleanup, UX improvements, data backup tools; WordPress plugin distribution system; Template design improvements; AI model fixes |
| 1.6.2 | Jan 8, 2026 | **Design Refinements** - Updated marketing site gradients to brand colors (primary + success), reduced shadow weights, simplified automation icons, added Upcoming Features page |
| 1.6.1 | Jan 8, 2026 | **Email System** - SMTP configuration, email templates, password reset flow, email verification, unsubscribe functionality |
| 1.6.0 | Jan 8, 2026 | **Major** - Payment System Refactor Complete: Stripe, PayPal, Bank Transfer flows finalized; Simplified signup (no payment redirect); Country-based payment rules; Webhook security; PDF invoices |
| 1.5.0 | *Planned* | Image Generation System Overhaul, Quality Tier Refinements, Credit Service Enhancements |
| 1.4.0 | Jan 5, 2026 | **Major** - AI Model Architecture Overhaul, IntegrationProvider Model, AIModelConfig with Credit System, SystemAISettings, Django Admin Reorganization |
| 1.3.2 | Jan 3, 2026 | **Major** - Publishing Scheduler, Onboarding Wizard, Content Calendar, Design System Consolidation, Site Dashboard redesign |
| 1.3.1 | Jan 2, 2026 | **Design System Consolidation** - Updated .rules with comprehensive design system & component rules, ESLint enforcement |
| 1.3.0 | Jan 1, 2026 | **Major** - Automation overhaul, AI provider integrations (Anthropic/Bria), Model Registry, Global Progress tracking, CSS globalization |
| 1.2.2 | Dec 28, 2025 | **NEW** - Full notifications page with filtering and bulk actions |
| 1.2.1 | Dec 28, 2025 | **Critical Fix** - AI task notifications now working |
| 1.2.0 | Dec 27, 2025 | **Final Launch Release** - Notifications system, Dashboard widgets, ThreeWidgetFooter, UI polish |
| 1.1.9 | Dec 27, 2025 | UI improvements - PageContext, SearchModal, AppHeader/Layout updates |
| 1.1.8 | Dec 27, 2025 | Section 6 SIDEBAR restructure - Dropdowns, breadcrumbs, navigation cleanup |
| 1.1.7 | Dec 27, 2025 | Section 5 HELP module - Support links, Documentation, FAQ updates |
| 1.1.6 | Dec 27, 2025 | Section 4 ACCOUNT modules - Profile API, Password Change, Billing improvements |
| 1.1.5 | Jan 2, 2025 | Section 3 WORKFLOW modules - Planner, Writer, Progress Modal fixes |
| 1.1.4 | Dec 27, 2025 | Section 2 SETUP modules - Add Keywords, Content Settings, Sites fixes |
| 1.1.3 | Dec 27, 2025 | Merged RULES.md into .rules |
| 1.1.2 | Dec 27, 2025 | Module status documentation, TODOS.md |
| 1.1.1 | Dec 27, 2025 | Simplified AI agent rules file |
| 1.1.0 | Dec 25, 2025 | UX overhaul, page consolidation, pre-launch audit |
| 1.0.5 | Dec 12, 2025 | Purchase Credits tab, UI reorganization |
| 1.0.4 | Dec 12, 2025 | Credit Activity tab, Cost Reference panel |
| 1.0.3 | Dec 12, 2025 | Usage Limits color variety, Cost Breakdown |
| 1.0.2 | Dec 12, 2025 | Usage Analytics consolidation, Design system |
| 1.0.1 | Dec 12, 2025 | Usage summary endpoint, Plan limits UI |
| 1.0.0 | Dec 12, 2025 | Initial production release |
---
## v1.8.4 - January 20, 2026
### Documentation Accuracy & Launch Preparation
This release focuses on ensuring 100% documentation accuracy and establishing maintainability standards for launch.
---
### 🔧 API Documentation Fixes
**Problem Resolved:**
- Swagger UI (`/api/docs/`) and ReDoc (`/api/redoc/`) were returning 500 errors
- Root cause: Serializer field mismatches in `settings_serializers.py`
**Fixes Applied:**
- `AccountSettingsSerializer`: Changed `config``value` to match model
- `ModuleSettingsSerializer`: Removed non-existent `config` field
**Verified:**
- Schema endpoint returns valid OpenAPI YAML
- Both documentation UIs now accessible
---
### 📚 Root-Level Documentation
**New Files Created:**
| File | Purpose |
|------|---------|
| `/INDEX.md` | Quick-start documentation index |
| `/DESIGN-GUIDE.md` | Mandatory UI/UX standards |
| `/.cursorrules` | Development rules & standards |
---
### 📊 Documentation Audit Results
**Codebase Metrics Verified:**
- Routes: 100 (documented in PAGES.md)
- Models: 52+ (documented in MODELS.md)
- Zustand Stores: 11 (documented in STORES.md)
- Celery Tasks: 25+ (documented per module)
**Files Cleaned:**
- `docs/30-FRONTEND/PAGES.md`: Removed duplicate content, rebuilt from scratch
---
### 📋 Maintainability Standards
**New .cursorrules establishes:**
1. Mandatory documentation updates for code changes
2. CHANGELOG updates for user-facing changes
3. Design guide compliance for frontend
4. Serializer-model field validation
5. Code review checklist
---
## v1.8.3 - January 20, 2026
### Billing System Standardization & Two-Pool Credit System
This release implements industry-standard billing practices and introduces the two-pool credit system for clearer credit management.
---
### 💳 Two-Pool Credit System
**Architecture:**
- `account.credits` = Plan credits (from subscription, resets on renewal)
- `account.bonus_credits` = Purchased credits (NEVER expire, NEVER reset)
**Deduction Priority:**
1. Plan credits consumed FIRST
2. Bonus credits consumed only when plan credits = 0
**Key Behaviors:**
| Event | Plan Credits | Bonus Credits |
|-------|--------------|---------------|
| Payment success | Reset to plan amount | No change |
| No payment (24h) | Reset to 0 | No change |
| Late payment | Reset to plan amount | No change |
**Implementation:**
- All deduction logic centralized in `CreditService.deduct_credits()`
- AI functions unchanged - they call the same credit check/deduct methods
- Transparent to all consumers - two-pool logic is internal only
---
### 🔄 Renewal Workflow Standardization
**Stripe/PayPal (Auto-Pay) - Industry Standard:**
- **No advance notice** (like Netflix, Spotify, Adobe)
- Day 0: Auto-charge attempt
- Success: Receipt email + credits reset to plan amount
- Failure: Retry notification, Stripe retries 4x over 7 days
- Day +7: Expired if all retries fail
**Bank Transfer (Manual Pay) - Simplified 3-Email Flow:**
- Day -3: Invoice created + Email sent
- Day 0: Renewal day reminder (if unpaid)
- Day +1: Urgent reminder + credits reset to 0
- Day +7: Subscription expired
---
### 📋 Admin Improvements
**Payment Logs in Admin Sidebar:**
- Added "Payment Logs" link under Plans & Billing menu
- Quick access to WebhookEvent records
**WebhookEvent Logging:**
- All payment types now logged to WebhookEvent model:
- Stripe webhooks (existing)
- PayPal webhooks (existing)
- Bank transfer approvals (NEW)
- Manual payment events (NEW)
---
### 🔧 Celery Task Updates
**Renamed Tasks:**
| Old Name | New Name | Purpose |
|----------|----------|---------|
| `send_renewal_notices` | `create_bank_transfer_invoices` | Invoice 3 days before (bank transfer only) |
| `send_invoice_reminders` | `send_renewal_day_reminders` | Day 0 reminder (bank transfer) |
**Combined Tasks:**
- `send_day_after_reminders` now handles both Day +1 reminder AND credit reset
- Removed separate `reset_unpaid_renewal_credits` task
**Updated Schedule:**
| Task | Schedule | Purpose |
|------|----------|---------|
| `create_bank_transfer_invoices` | Daily 09:00 | Invoice 3 days before |
| `process_subscription_renewals` | Daily 00:05 | Auto-pay renewals |
| `send_renewal_day_reminders` | Daily 10:00 | Day 0 reminder |
| `send_day_after_reminders` | Daily 09:15 | Day +1 urgent + credit reset |
| `check_expired_renewals` | Daily 00:15 | Expire after 7-day grace |
---
### 📚 Documentation Updates
**Updated Files:**
- `docs/10-MODULES/BILLING-PAYMENTS-COMPLETE.md` - Primary billing reference
- `docs/10-MODULES/BILLING.md` - Added two-pool section
- `docs/90-REFERENCE/BILLING-SYSTEM-MASTER.md` - Complete rewrite
- `docs/90-REFERENCE/PAYMENT-SYSTEM.md` - Updated header
- `docs/INDEX.md` - Updated billing links
- `docs/40-WORKFLOWS/CONTENT-PIPELINE.md` - Fixed credit terminology
- `docs/10-MODULES/PLANNER.md` - Fixed credit cost descriptions
- `docs/10-MODULES/WRITER.md` - Fixed credit cost descriptions
**Key Documentation Changes:**
- Removed outdated "idea credit", "content credit", "image credit" terminology
- Updated to unified credit system based on AIModelConfig
- Credit costs now reference `tokens_per_credit` and `credits_per_image`
---
### Files Modified
**Backend:**
- `igny8_core/settings.py` - Added Payment Logs to admin sidebar
- `igny8_core/celery.py` - Updated task schedule
- `business/billing/billing_views.py` - Added WebhookEvent logging
- `modules/billing/views.py` - Added payment approval logging
- `business/billing/tasks/subscription_renewal.py` - Refactored tasks
**Documentation:**
- 8 documentation files updated for two-pool system
---
## v1.8.2 - January 19, 2026
### Keywords Library Complete Redesign & Sector-Specific Filtering
This release delivers a comprehensive redesign of the Keywords Library page with major architectural improvements to ensure sites only see keywords from their configured sectors, new UI components for better keyword discovery, and cascading filters matching the Planner pages pattern.
---
### 🎯 Critical Fix: Sector-Specific Filtering
**Problem:** Sites were seeing keywords from ALL sectors in their industry, not just their configured sectors. For example, a "Technology Consulting" site was seeing AI & Machine Learning keywords even though it wasn't configured for that sector.
**Root Cause:** Backend `get_queryset()` was filtering by `industry_id`, which returned ALL `IndustrySector` records for that industry, regardless of which sectors the site actually has.
**Solution:**
- Added `sector_ids` parameter support to backend API endpoints
- Frontend now passes site's specific `industry_sector` IDs
- Keywords filtered to only those matching site's configured sectors
- Both `sector_stats` and `list` endpoints respect sector filtering
**API Changes:**
```python
# New parameter support
GET /api/v1/keywords-library/?sector_ids=1,2,3
GET /api/v1/keywords-library/sector_stats/?sector_ids=1,2,3
```
**Impact:**
- Sites now see ONLY keywords relevant to their configured sectors
- Stat counts accurate (available, added, high-opportunity, etc.)
- Sector metric cards show correct totals
- Smart Suggestions reflect only relevant keywords
---
### 📊 Sector Metric Cards (New Component)
**New Feature:** Sector overview cards at top of page showing key stats per sector.
**Features:**
- **6 Stat Types:**
- 📦 Total Keywords - All keywords in sector
- ✅ Added - Keywords site has added
- ⭐ High-Opportunity - Premium keywords with high volume
- 🎯 Available - Keywords not yet added
- 💰 Paid - Premium keywords requiring credits
- 🆓 Free - No-cost keywords
- **Interactive Filtering:**
- Click any stat type to filter table
- Active stat highlighted with success color badge (top-right)
- Aggregates counts across all site sectors
- Respects search and other filters
- **Visual Design:**
- Card layout with sector name and description
- Metric grid showing all 6 stats
- Hover effects and smooth transitions
- Active badge in top-right corner when filtering by that sector
**Location:** Appears at top of page, before filters and table
---
### ✨ Smart Suggestions Redesign
**New Behavior:** Smart Suggestions now appear dynamically after user interaction (search or filter) instead of always visible.
**Features:**
- **6 Bulk-Add Options:**
- All Available - Add all unfettered keywords
- High-Opportunity Available - Add premium keywords not yet added
- High-Opportunity Missing - Suggest premium keywords to add
- Top 50 by Volume - Add highest traffic keywords
- Low Difficulty - Add easiest-to-rank keywords
- Paid Available - Add premium keywords
- **Dynamic Display:**
- Hidden by default on page load
- Appears after search or filter interaction
- Breathing animation indicator when active
- Metric cards show available counts for each option
- **Bulk Add Confirmation:**
- Modal confirmation before bulk operations
- Shows count of keywords to be added
- Prevents accidental mass additions
**Note:** Smart Suggestions metric cards do NOT show active badges (only Sector Cards do)
---
### 🔍 Cascading Filters Implementation
**Pattern Match:** Keywords Library now uses same filter UX as Planner pages (Keywords, Clusters, Ideas).
**Filter Options:**
- 🔍 Search - Keyword name search
- 🌍 Country - Filter by target country
- 📈 Volume - Traffic volume ranges
- 💪 Difficulty - SEO difficulty levels (Easy, Medium, Hard, Very Hard)
- 📊 Status - Added vs Available
- 🎯 Sector - Filter by specific sector (NEW)
**Cascading Behavior:**
- Each filter shows only values present in current data
- Filters update based on other active filters
- "Clear Filters" button appears when filters active
- Active filter indicator shows count
**UI Improvements:**
- Centered filter bar matching Planner pages
- Consistent spacing and styling
- Responsive layout
- Clear visual hierarchy
---
### 🎨 UI/UX Improvements
**Typography:**
- Reduced font sizes across page for better density
- Keyword names: text-base (was text-lg)
- Descriptions: text-sm (was text-base)
- Stat labels: text-xs (consistent with design system)
**Layout:**
- Sector cards at top with proper spacing
- Smart Suggestions below sector cards (when visible)
- Filter bar centered and properly aligned
- Table with improved readability
**Interactions:**
- Smooth transitions and hover states
- Active filter highlighting with success color
- Breathing indicator for Smart Suggestions
- Clear add/added button states
**State Management:**
- "Added" button state persists correctly after page reload
- Aggregated available counts accurate across all stats
- localStorage tracks added keywords
- Real-time stat updates when keywords added/removed
---
### 🔧 Backend Changes
**Files Modified:**
- `backend/igny8_core/auth/views.py` - SeedKeywordViewSet
**Changes:**
1. **sector_ids Parameter Support:**
```python
def get_queryset(self):
sector_ids_param = self.request.query_params.get('sector_ids', None)
if sector_ids_param:
sector_ids = [int(id.strip()) for id in sector_ids_param.split(',')]
queryset = queryset.filter(industry_sector_id__in=sector_ids)
```
2. **sector_stats Endpoint Updated:**
- Accepts sector_ids parameter
- Filters stats by specified sectors
- Returns accurate counts per sector
3. **Improved Query Performance:**
- Optimized sector filtering
- Reduced database queries
- Better indexing for sector lookups
---
### 🎯 Frontend Changes
**Files Modified:**
- `frontend/src/pages/Setup/IndustriesSectorsKeywords.tsx` - Main page component
- `frontend/src/components/keywords-library/SectorCardsGrid.tsx` - Sector metric cards
- `frontend/src/components/keywords-library/SectorMetricCard.tsx` - Individual sector card
- `frontend/src/components/keywords-library/SmartSuggestions.tsx` - Smart Suggestions component
- `frontend/src/services/api.ts` - API integration
**Major Changes:**
1. **Sector Filtering Integration:**
```typescript
const loadSectorStats = async () => {
const sectorIds = sectors.map(s => s.industry_sector).filter(Boolean);
const stats = await fetchSectorStats({ sector_ids: sectorIds });
};
```
2. **Available Counts Aggregation:**
- Fixed aggregation for all 6 stat types
- Correct counts for Total, Added, Available, High-Opportunity, Paid, Free
- Respects both sector filtering and search/filters
3. **State Management:**
- localStorage for added keywords tracking
- React state for sector stats and filters
- Proper dependency arrays for useEffect hooks
- Real-time updates on keyword add/remove
4. **UI Component Structure:**
```
KeywordsLibrary
├── SectorCardsGrid (if sectors)
│ └── SectorMetricCard[] (per sector)
├── SmartSuggestions (if search/filter active)
│ └── SectorMetricCard[] (for bulk actions)
├── FilterBar (centered, cascading)
└── KeywordsTable (filtered results)
```
---
### 📝 Terminology Standardization
**Unified Naming:** "Keywords Library" everywhere (was inconsistent: "Keyword Library", "Add Keywords", "Seed Keywords")
**Changes:**
- Sidebar: "Keywords Library"
- Page Title: "Keywords Library"
- URL: `/keywords-library` (was `/setup/add-keywords`)
- API Endpoint: `/api/v1/keywords-library/` (was `/api/v1/auth/seed-keywords/`)
- Code: Internal `SeedKeyword` model name kept, but all user-facing text updated
**Note:** No backward compatibility redirects - direct change to new naming.
---
### 🐛 Bug Fixes
1. **"Added" Button State:**
- Fixed state not reflecting correctly after page reload
- Now properly checks localStorage and aggregates counts
- Real-time updates when keywords added/removed
2. **Sector Card Active Badge:**
- Moved to top-right corner (was bleeding into card content)
- Uses success color variant
- Only shows on Sector Cards, not Smart Suggestions
3. **Wrong Sector Keywords:**
- Sites no longer see keywords from unconfigured sectors
- Sector filtering now works at backend level
- Accurate filtering prevents data pollution
4. **Available Count Accuracy:**
- Fixed aggregation logic for all stat types
- Correct counts regardless of active filters
- Proper handling of edge cases (0 available, all added, etc.)
---
### 📦 Files Changed (6 commits)
**Commit 328098a4:** "COMPLETED KEYWORDS-LIBRARY-REDESIGN-PLAN.md"
- Final implementation of sector filtering and UI polish
- 6 files: views.py, SectorCardsGrid, SectorMetricCard, SmartSuggestions, IndustriesSectorsKeywords, api.ts
**Commit 05bc433c:** "keywrods library fixes"
- Major refactoring and bug fixes
- 8 files including backend views, frontend components, API, design system
**Commit 4cf27fa8:** "keywrod slibrary page dsigning"
- UI/UX design implementation
- 9 files including new components and design system updates
**Commit aa03e15e:** "fixes ofkewyrod library"
- Cleanup and optimization
- 1 file: IndustriesSectorsKeywords component simplification
**Commit 43df7af9:** "keywrods libarry update"
- Major feature additions (Smart Suggestions, Bulk Add, etc.)
- 16 files including new components and API endpoints
**Commit 9e88c475:** "keywrod library sorting issue and fitlers inclusion"
- Initial redesign planning and filter improvements
- 4 files: pagination, views, redesign plan document, API
---
### 📋 Known Issues & Future Improvements
**Partially Implemented:**
- ⬜ Remove sector selector from AppHeader (route updated, selector still present)
- ⬜ Center filter bar styling (functional but needs polish)
- ⬜ Default table display (kept existing "Browse" toggle UX)
**Future Enhancements:**
- Multi-select sector filtering
- Export filtered keywords
- Keyword comparison across sectors
- Bulk edit operations
- Advanced search with operators
---
### 🎯 Impact Summary
**User Experience:**
- ✅ Sites only see relevant keywords for their sectors
- ✅ Clear visual organization with sector cards
- ✅ Powerful bulk-add options via Smart Suggestions
- ✅ Consistent filtering UX across platform
- ✅ Accurate stats and counts everywhere
**Performance:**
- ✅ Optimized backend queries with sector filtering
- ✅ Reduced data transfer (only relevant keywords)
- ✅ Better caching opportunities
- ✅ Faster page load times
**Maintainability:**
- ✅ Consistent terminology across codebase
- ✅ Clear component structure
- ✅ Well-documented API changes
- ✅ Comprehensive redesign plan document
---
## v1.8.1 - January 18, 2026
### Automation Scheduling Overhaul & Centralized Default Settings
This release introduces a complete overhaul of the automation scheduling system, moving from 15-minute window checking to hourly scheduling. It also introduces the `DefaultAutomationConfig` singleton model for centralized default settings management, test mode functionality for admins, and backend-driven reset functionality for the frontend.
---
### ⏰ Hourly Scheduling System
**Previous Behavior (v1.8.0):**
- Celery checked every 15 minutes for automations within a 15-minute window
- Complex time window calculations prone to edge cases
**New Behavior (v1.8.1):**
- Celery checks **every hour at `:05`** (`crontab(minute=5)`)
- Simple hour matching: `scheduled_hour == current_hour`
- Users select hour only (12-hour AM/PM format in UI, stored as 24-hour `HH:00`)
**Celery Beat Schedule:**
| Task | Schedule | Purpose |
|------|----------|---------|
| `check_scheduled_automations` | Every hour at `:05` | Check if automations should run |
| `check_test_triggers` | Every minute | Check for admin test triggers |
| `schedule_approved_content` | Every hour at `:00` | Schedule approved content |
| `process_scheduled_publications` | Every 5 minutes | Publish scheduled content |
---
### 🔧 DefaultAutomationConfig Model
**New Singleton Model** (`backend/igny8_core/business/automation/models.py`):
A centralized configuration model for all default automation settings:
**Scheduling Defaults:**
- `is_enabled`, `frequency` (daily/weekly/monthly)
- `base_scheduled_hour`, `next_scheduled_hour` (auto-increment for new sites)
**Stage Defaults (per stage 1-7):**
- `stage_X_enabled` - Enable/disable individual stages
- `stage_X_batch_size` - Items per batch
- `stage_X_use_testing` - Use test AI model (AI stages only)
- `stage_X_budget_pct` - Credit budget percentage (AI stages only)
**Per-Run Limits:**
- `max_keywords_per_run`, `max_clusters_per_run`, etc.
- `max_credits_per_run`
**Publishing Defaults:**
- `auto_approval_enabled`, `auto_publish_enabled`
- `daily_publish_limit`, `weekly_publish_limit`, `monthly_publish_limit`
- `publish_days` (JSONField - e.g., `['mon', 'tue', 'wed', 'thu', 'fri']`)
- `publish_time_slots` (JSONField - e.g., `['09:00', '14:00', '18:00']`)
**Image Defaults:**
- `image_style` (default: 'photorealistic')
- `max_images_per_article` (default: 4)
---
### 🧪 Test Mode (Admin Feature)
New fields on `AutomationConfig` for admin testing:
- `test_mode_enabled` - Enable test functionality for a config
- `test_trigger_at` - When to trigger (set to `now` for immediate)
**How It Works:**
1. Admin enables test mode and sets trigger time
2. `check_test_triggers` task runs every minute
3. When `test_trigger_at <= now`, automation starts with `trigger_type='test'`
4. Bypasses 23-hour blocking and schedule requirements
**Admin Actions:**
- 🧪 **Trigger test run** - Sets test mode and immediate trigger
- 🧹 **Clear test mode** - Disables and clears trigger
---
### 🔄 Reset Button Backend Integration
**New API Endpoint:** `GET /api/v1/integration/settings/defaults/`
Frontend reset button now fetches defaults from backend instead of using hardcoded values:
**Response Format:**
```json
{
"automation": {
"enabled": false,
"frequency": "daily",
"time": "02:00"
},
"stages": [
{"number": 1, "enabled": true, "batch_size": 50, "per_run_limit": 0, "use_testing": false, "budget_pct": 15},
...
],
"delays": {
"within_stage": 3,
"between_stage": 5
},
"publishing": {
"auto_approval_enabled": false,
"auto_publish_enabled": false,
"daily_publish_limit": 3,
"weekly_publish_limit": 15,
"monthly_publish_limit": 50,
"publish_days": ["mon", "tue", "wed", "thu", "fri"],
"time_slots": ["09:00", "14:00", "18:00"]
},
"images": {
"style": "photorealistic",
"max_images": 4
}
}
```
**Note:** Image settings are NOT reset by the reset button - they come from a separate global system (`/api/v1/account/settings/ai/`).
---
### 🗄️ Database Migrations
| Migration | Description |
|-----------|-------------|
| `0009_add_stage_use_testing_and_budget_pct.py` | Adds `use_testing` and `budget_pct` fields per AI stage |
| `0010_add_test_mode_fields.py` | Adds `test_mode_enabled` and `test_trigger_at` fields |
| `0011_add_default_automation_config.py` | Creates `DefaultAutomationConfig` singleton model |
| `0012_add_publishing_image_defaults.py` | Adds publishing and image default fields to `DefaultAutomationConfig` |
---
### 🖥️ Admin Interface
**DefaultAutomationConfig Admin:**
- New admin page for managing centralized defaults
- Organized fieldsets: Scheduling, Stage Toggles, Batch Sizes, Testing Models, Budget Allocation, Per-Run Limits, Delays, Publishing, Images
**AutomationConfig Admin:**
- New Test Mode actions: "🧪 Trigger test run", "🧹 Clear test mode"
- Display of test mode status in list view
---
### 🎨 Frontend Fixes
**AIAutomationSettings Component:**
- Reset button fetches from `/api/v1/integration/settings/defaults/`
- Fixed Run Time dropdown layout (was bleeding outside card)
- Uses `grid grid-cols-2 gap-2` with wrapped dropdowns
- Toast message clarifies which settings are reset
**Dropdown Fixes:**
- Fixed `SelectDropdown` width issues in Run Time selection
- Hour and AM/PM dropdowns no longer overlap or bleed
---
### 📚 Documentation
**New Documentation:**
- [AUTOMATION-AND-PUBLISHING-SCHEDULING.md](docs/40-WORKFLOWS/AUTOMATION-AND-PUBLISHING-SCHEDULING.md) - Comprehensive guide to the scheduling system
**Reorganized:**
- Moved `AUTOMATION-ENHANCEMENT-PLAN.md` to `docs/plans/automation/`
- Moved `FINAL-PRELAUNCH-*.md` to `docs/plans/implemented/`
---
### 🐛 Bug Fixes
- Fixed 404 on `/v1/settings/defaults/` (correct path: `/v1/integration/settings/defaults/`)
- Fixed "Cannot read properties of undefined (reading 'automation')" error in reset handling
- Fixed SelectDropdown bleeding outside card boundaries
- Fixed dropdown portals not opening when `overflow-hidden` was applied
---
## v1.8.0 - January 17, 2026
### Unified Settings Consolidation & Navigation Refactor Complete
This major release consolidates all AI, Automation, and Publishing settings into a unified interface within Site Settings. The Navigation Refactor is now complete with streamlined sidebar navigation and improved user workflows.
---
### 🔧 Settings Consolidation
**Unified Automation Tab in Site Settings:**
- New `AIAutomationSettings` component consolidating all automation controls
- Three-card layout: Automation Schedule, Content Publishing, Image Generation
- Stage Configuration matrix with per-stage controls (batch size, limit, model, budget)
- Schedule & Capacity cards showing publishing days, time slots, and calculated capacity
- Help cards explaining Publishing workflow, Stage Configuration, and Schedule settings
**Removed Standalone Pages:**
- `/automation/settings` (PipelineSettings) - Now redirects to Site Settings > Automation tab
- `/publisher/settings` (PublishSettings) - Integrated into Automation tab
- AI Settings tab removed from Site Settings (text AI overrides removed from user control)
**Backend Unified Settings API:**
- New endpoint: `GET/PUT /api/v1/integration/sites/{site_id}/unified-settings/`
- Consolidates AutomationConfig, PublishingSettings, and stage configurations
- Computed capacity properties (daily, weekly, monthly)
- Stage-level `per_run_limit` and `use_testing` fields
---
### 🧭 Navigation Refactor Complete
**Sidebar Changes:**
- Publisher dropdown: Removed "Publish Settings" (now in Site Settings)
- Automation dropdown: Removed "Settings" link (now in Site Settings)
- Cleaner navigation with fewer redundant pages
**Route Changes:**
- `/automation/settings` → Redirects to `/sites/settings?tab=automation`
- `/publisher/settings` → Removed (404)
---
### 🚀 Automation Overview & Run Details
**New Automation Overview Page (`/automation/overview`):**
- Dashboard showing recent automation runs
- Pipeline status overview with stage counts
- Quick access to Run Now and Settings
**Enhanced Run Detail Page (`/automation/runs/:runId`):**
- Detailed stage-by-stage progress visualization
- Real-time log streaming
- Credit usage tracking per stage
- Initial snapshot comparison
---
### 📅 Publishing & Scheduling UX (Phases 1-6)
**Content Calendar Improvements:**
- Fixed calendar grid display issues
- Better date selection and slot visualization
- Improved drag-and-drop scheduling
**Auto-Approval & Auto-Publish Workflows:**
- Clear visual indicators for automation status
- Toggle controls in unified settings
- Capacity calculation based on days × time slots
---
### ⚙️ Stage Configuration Enhancements
**Per-Stage Controls:**
- `enabled` - Toggle individual stages on/off
- `batch_size` - Items processed together
- `per_run_limit` - Maximum items per automation run (0 = all)
- `use_testing` - Use test AI model instead of production
- `budget_pct` - Credit budget allocation percentage
**Skip Stage Support:**
- Stages can be disabled individually
- Local stages (Ideas→Tasks, Review→Approved) clearly marked
---
### 🐛 Bug Fixes
- Fixed SelectDropdown width issues (icon bleeding outside box)
- Fixed stage configuration table column widths
- Fixed frequency/run time layout in automation card
- Fixed Next Run info display always visible
- Filter fixes across Planner/Writer pages
- Metrics widgets showing correct totals
---
## v1.7.6 - January 15, 2026
### Navigation Refactor Complete
**Frontend Navigation:**
- Complete sidebar restructure with logical groupings
- New Automation Overview page with run history
- Publish Settings page (later consolidated in v1.8.0)
- Content Calendar improvements
**Commit:** `501a2694` - NAVIGATION_REFACTOR COMPLETED
---
## v1.7.5 - January 14, 2026
### Automation Overview Implementation
**New Features:**
- Automation Overview dashboard (`/automation/overview`)
- Run history with detailed status tracking
- Real-time progress monitoring
- Enhanced CurrentProcessingCardV2
**Commits:** `6b1fa0c1`, `0435a5cf` - automation overview page implementation
---
## v1.7.4 - January 13, 2026
### Publishing & Scheduling UX (Phases 1-6)
**Implementation:**
- Phase 1-3: Core scheduling infrastructure
- Phase 4-6: Content Calendar fixes and UX improvements
- Auto-approval and auto-publish workflows
- Scheduling time slots configuration
**Commits:** `1f0a31fe`, `7e8d667e`, `cf755b23` - Publishing and scheduling implementation
---
## v1.7.3 - January 12, 2026
### Skip Stage Configuration
**Features:**
- Ability to enable/disable individual stages
- Stage-level batch size and limit controls
- Budget allocation per AI stage
- Test vs Live model selection per stage
**Commit:** `97f5ff81` - skip stage configured and working
---
## v1.7.2 - January 11, 2026
### Bug Fixes & Planner/Writer Filters
**Fixes:**
- Filter fixes for all Planner/Writer pages
- Metrics showing correct totals
- Keyword library improvements
- Primary keyword column in Ideas
- Drafts page error fixes
**Commits:** `a8309078`, `51292bb1`, `cb2d1095`, `d2fc5b1a` - filter and UI fixes
---
## v1.7.1 - January 11, 2026
### Bug Fixes, Improvements, and Phase 4 Completion
This release includes critical bug fixes for image generation, SeeDream AI model integration, widget improvements across multiple pages, and completion of Phase 4 (Email & Notifications QA) from the pre-launch checklist.
---
### 🖼️ Image Generation & AI Models
**SeeDream AI Model Integration:**
- Added new SeeDream AI model via migration [0031_add_seedream_model.py](backend/igny8_core/business/billing/migrations/0031_add_seedream_model.py)
- Configured as high-quality image generation model with appropriate credit costs
- Updated landscape/portrait/square size configurations
- Integrated with model registry and credit system
**Image Generation Credit Fixes:**
- Fixed credit deduction logic in [tasks.py](backend/igny8_core/ai/tasks.py)
- Resolved issues with credit verification before image generation
- Fixed AITaskLog logging for image generation operations
- Improved error handling for insufficient credits scenarios
**Model Configuration Updates:**
- Updated image size configurations in migration [0030_add_aimodel_image_sizes.py](backend/igny8_core/business/billing/migrations/0030_add_aimodel_image_sizes.py)
- Added landscape_size, portrait_size, square_size fields to AIModelConfig
- Enhanced model registry with better size handling
---
### 📊 Widget & UI Improvements
**Dashboard Widgets:**
- Fixed WorkflowCompletionWidget data loading and display issues
- Improved useWorkflowStats hook for better performance and accuracy
- Updated CurrentProcessingCardV2 with better state handling
- Enhanced dashboard widgets layout and responsiveness
**Page-Level Improvements:**
- **Keywords Page**: Improved table layout, filtering, and bulk actions
- **Clusters Page**: Enhanced clustering UI and workflow visualization
- **Ideas Page**: Better idea management and status tracking
- **Tasks Page**: Improved task queue display and processing indicators
- **Content Page**: Enhanced content review and editing interface
- **Sites Pages**: Improved site listing and settings management
- **Publisher/Calendar**: Better content scheduling interface
- **Help Page**: Updated documentation links and support resources
**Color System:**
- Added new color tokens to [colors.config.ts](frontend/src/config/colors.config.ts)
- Improved color consistency across components
---
### 🔧 Backend Improvements
**AI Core & Processing:**
- Refactored [ai_core.py](backend/igny8_core/ai/ai_core.py) for better model handling
- Updated [generate_images.py](backend/igny8_core/ai/functions/generate_images.py) with improved error handling
- Enhanced [ai_processor.py](backend/igny8_core/utils/ai_processor.py) for better task processing
- Improved model registry in [model_registry.py](backend/igny8_core/ai/model_registry.py)
**Automation Service:**
- Enhanced [automation_service.py](backend/igny8_core/business/automation/services/automation_service.py)
- Improved stage processing and error recovery
- Better credit tracking across automation stages
**Credit Service:**
- Updated [credit_service.py](backend/igny8_core/business/billing/services/credit_service.py)
- Fixed credit calculation for image generation
- Improved credit logging and transaction history
**System Settings:**
- Enhanced [ai_settings.py](backend/igny8_core/modules/system/ai_settings.py) with default quality tier settings
- Updated [integration_views.py](backend/igny8_core/modules/system/integration_views.py) for better API handling
- Improved [settings_views.py](backend/igny8_core/modules/system/settings_views.py)
---
### ✅ Phase 4 Completion: Email & Notifications QA
**Email System Verification:**
- Verified SMTP configuration and email delivery
- Tested password reset email flow
- Confirmed email verification functionality
- Validated unsubscribe mechanisms
- Tested notification emails for AI task completion/failures
**Notification System:**
- Verified notification creation for all AI operations
- Tested notification delivery for automation stages
- Confirmed notification filtering and bulk actions
- Validated notification preferences and settings
---
### 📚 Documentation Updates
**Updated Documentation:**
- [BILLING.md](docs/10-MODULES/BILLING.md) - Updated credit system documentation
- [CREDIT-SYSTEM.md](docs/40-WORKFLOWS/CREDIT-SYSTEM.md) - Enhanced credit workflow documentation
- [FINAL-PRELAUNCH-PENDING.md](docs/plans/FINAL-PRELAUNCH-PENDING.md) - Updated with Phase 4 completion
**New Documentation:**
- [COMPREHENSIVE-SYSTEM-FIX-PLAN-JAN-10-2026.md](docs/plans/implemented/COMPREHENSIVE-SYSTEM-FIX-PLAN-JAN-10-2026.md) - System fix documentation
- [FOOTER-WIDGETS-AUDIT.md](docs/plans/implemented/FOOTER-WIDGETS-AUDIT.md) - Widget audit results
- [IMAGE-GENERATION-GAPS.md](docs/plans/implemented/IMAGE-GENERATION-GAPS.md) - Image generation issues and fixes
**Documentation Reorganization:**
- Moved completed documentation to `docs/plans/implemented/` folder
- Better organization of planning vs. implemented features
---
### 🐛 Bug Fixes
- Fixed credit deduction not working properly for image generation
- Resolved widget data loading issues on Dashboard
- Fixed automation stage processing errors
- Corrected image size configuration for different models
- Fixed notification creation timing issues
- Resolved UI responsiveness issues on various pages
---
### 🔄 Code Cleanup & Organization
- Reorganized documentation structure
- Improved code comments and documentation
- Enhanced error messages for better debugging
- Cleaned up unused code and imports
- Improved type safety in TypeScript components
---
### 📁 Files Changed
| File | Changes |
|------|---------|
| `backend/igny8_core/business/billing/services/credit_service.py` | Added `check_credits_for_image()` method |
| `backend/igny8_core/ai/tasks.py` | Added credit check, AITaskLog logging, notifications |
---
### 📋 Credit Usage Logging Locations
| Table | Purpose |
|-------|---------|
| `CreditTransaction` | Financial ledger entry (via `deduct_credits_for_image`) |
| `CreditUsageLog` | Detailed usage log with model, cost, credits |
| `AITaskLog` | AI task execution tracking |
| `Notification` | User notifications for completion/failure |
---
## v1.7.0 - January 10, 2026
### Pre-Launch Cleanup & Plugin Distribution System
This major release completes critical pre-launch phases (1, 5, 6) with comprehensive code cleanup, UX improvements, and data management tools. It also introduces the WordPress plugin distribution infrastructure and improves template rendering.
---
### 🧹 Phase 1: Code Cleanup & Technical Debt - COMPLETE ✅
**Code Quality Improvements:**
- Removed 3,218 lines of legacy code
- Deleted 24 files and cleaned up 11 empty directories
- Removed 17 console.log/debug statements:
- UserProfile components (UserMetaCard, UserAddressCard, UserInfoCard)
- Automation/ConfigModal
- ImageQueueModal (8 statements)
- ImageGenerationCard (7 statements)
- Applied ESLint auto-fixes (9 errors fixed)
- All TypeScript strict mode checks passing
**Removed Test Files:**
- `test-module-settings.html` (manual API test)
- `test_urls.py` (one-time URL verification)
- `test_stage1_refactor.py` (stage 1 verification)
**Deleted Unused Components:**
- ecommerce/ template components (7 files)
- sample-components/ (2 HTML files)
- charts/bar/ and charts/line/
- tables/BasicTables/
- CurrentProcessingCard.old.tsx
**Production Status:**
- ✅ Build time: ~9 seconds
- ✅ All tests passing
- ✅ ESLint compliance
- ✅ TypeScript strict mode
- ✅ Production-ready codebase
---
### 🎨 Phase 5: UX Improvements - COMPLETE ✅
**Enhanced Search Modal:**
- Added search filters: All, Workflow, Setup, Account, Help
- Implemented recent searches (localStorage, max 5)
- Added category display in results
- Improved result filtering by type and category
- Deep linking to help sections with auto-expand accordions
**Smart Search Features:**
- Intelligent phrase matching (strips filler words: how, to, what, is)
- Basic stemming support (tasks → task)
- Duplicate prevention using Set
- Enhanced matching logic:
- Direct keyword match
- Normalized term match
- Question text match
**Comprehensive Keyword Coverage:**
Added 10+ keyword categories:
- task, cluster, billing, invoice, payment
- plan, usage, schedule, wordpress
- writing, picture, user, ai
**Help System:**
- Added 25+ help questions across 8 topics
- Context snippets and highlighting
- Suggested questions
- Fixed duplicate keywords in navigation
---
### 💾 Phase 6: Data Backup & Cleanup Tools - COMPLETE ✅
**New Django Management Commands:**
1. **export_system_config**
- Exports system configuration to JSON
- Includes: Plans, Credit Costs, AI Models, Industries, Sectors, etc.
- Metadata with export timestamp and stats
- Usage: `python manage.py export_system_config --output-dir=backups/config`
2. **cleanup_user_data**
- Safely deletes all user-generated data
- DRY-RUN mode to preview deletions
- Confirmation prompt for safety
- Production environment protection
- Deletes: Sites, Keywords, Content, Images, Transactions, Logs
- Preserves: System config and user accounts
- Usage: `python manage.py cleanup_user_data --dry-run`
- Usage: `python manage.py cleanup_user_data --confirm`
**Documentation:**
- Comprehensive 300+ line backup and cleanup guide
- Atomic transactions and safety features
- Ready for V1.0 production database preparation
---
### 🔌 WordPress Plugin Distribution System
**Infrastructure Setup:**
- Full plugin distribution system implemented
- Directory structure: `/plugins/{platform}/source/` and `/dist/`
- Database models: Plugin, PluginVersion, PluginInstallation, PluginDownload
- API endpoints for download, check-update, register, health-check
- WordPress auto-update mechanism via `pre_set_site_transient_update_plugins` hook
- Build scripts for ZIP generation with versioning
- Security: signed URLs, checksums (MD5/SHA256), rate limiting
- Monitoring and analytics dashboard widgets
**Plugin Versioning:**
- Semantic versioning system
- Automated packaging and distribution
- Update check mechanism
- Health check endpoints
- Installation tracking
**Platform Ready:**
- WordPress: Production ready
- Shopify: Infrastructure ready
- Custom sites: Infrastructure ready
---
### 🤖 AI & Backend Improvements
**AI Model Fixes:**
- Fixed AI and image-related models in backend
- Improved image generation reliability
- Better error handling for AI tasks
- Enhanced prompt handling
- Improved aspect ratio detection
**Template Rendering:**
- Template design improvements
- Better content section handling
- Image layout enhancements
- Improved prose styling
---
### 📚 Documentation Updates
**Documentation Reorganization:**
- Restructured docs folder
- Updated plugin distribution documentation
- Added comprehensive system guides
- Improved workflow documentation
**New/Updated Docs:**
- Plugin distribution system guide
- Backup and cleanup guide (300+ lines)
- Pre-launch checklist updates
- Version update workflow
---
### 🔧 Technical Changes
**Build & Development:**
- 23 commits since v1.6.2
- 24+ files modified
- Major merge: Phase 1, 5, 6 implementation
- Build optimizations
**Database & API:**
- Enhanced model relationships
- Improved query optimization
- Better API endpoint structure
- Rate limiting enhancements
**Frontend:**
- Component cleanup and organization
- Better state management
- Improved type safety
- Search modal enhancements
---
### 🚀 Production Readiness Status
**Completed:**
- ✅ Phase 1: Code cleanup complete
- ✅ Phase 5: UX improvements complete
- ✅ Phase 6: Data backup & cleanup tools ready
- ✅ Plugin distribution system operational
- ✅ All tests passing
- ✅ Production build ready
**Deferred to Post-Launch:**
- Image regeneration feature (Phase 9)
- Additional AI model integrations
- Advanced automation features
**Next Steps:**
- Phase 7: User acceptance testing
- Performance optimization
- Final pre-launch checklist
- V1.0 production deployment
---
## v1.6.2 - January 8, 2026
### Marketing Site Design Refinements
This release updates the marketing site visual design to use consistent brand colors (primary + success gradient mix) throughout, reduces shadow weights for a cleaner appearance, and adds a comprehensive Upcoming Features roadmap page.
---
### 🎨 Brand Color Consistency
**Gradient Updates - Primary + Success Mix:**
All marketing page gradients updated from purple/pink tones to brand colors (primary + success)
**Hero Sections Updated:**
- `Home.tsx` - Hero gradient: `from-primary via-primary-dark to-success`
- `Upcoming.tsx` - Hero gradient: `from-primary via-primary-dark to-success`
- Updated radial glow overlays to use success RGB values
**CTA Sections Before Footer:**
All pre-footer CTA sections updated across 5 pages:
- `Home.tsx` - CTA gradient: `from-success via-primary-dark to-primary`
- `Product.tsx` - CTA gradient: `from-success via-primary-dark to-primary`
- `Pricing.tsx` - CTA gradient: `from-success via-primary-dark to-primary`
- `Solutions.tsx` - CTA gradient: `from-success via-primary-dark to-primary`
- `Partners.tsx` - CTA gradient: `from-success via-primary-dark to-primary`
- `CaseStudies.tsx` - CTA gradient: `from-success via-primary-dark to-primary`
---
### 🧹 Shadow & Visual Refinements
**Product Module Screenshots:**
- Reduced shadow from `shadow-2xl` to `shadow-md` for cleaner appearance
- Reduced blur from `blur-xl` to `blur-lg` on gradient glows
- Reduced inset values for more subtle frame effects
- Updated across all 4 product module sections
**Hero Dashboard:**
- Reduced shadow from `shadow-2xl` to `shadow-lg`
- Reduced blur effects from `blur-3xl`/`blur-2xl` to `blur-xl`/`blur-lg`
- Toned down opacity on glow effects (from 30%/20% to 20%/10%)
**Automation Engine Section:**
- Simplified numbered badges from colorful mix to consistent primary gradient
- Changed size from `w-10 h-10` to `w-9 h-9` for cleaner appearance
- Removed heavy `shadow-lg` effects, using subtle `shadow-sm`
- Removed neon glow and hover animations for cleaner branded look
- Reduced automation dashboard shadow from `shadow-2xl` to `shadow-md`
- Updated all 7 automation handoff badges to use consistent primary gradient
---
### 🚀 Upcoming Features Page
**New Page: `/upcoming`**
- Comprehensive roadmap page with timeline-based feature organization
- 3 phases with unique visual badges
- 10 major upcoming features documented
**Phase 1 - Launching February 2026:**
- **Linker Module** - Internal/external linking with keyword clustering
- **Optimizer Module** - Content re-optimization engine
**Phase 2 - Launching Q2 2026:**
- **Products Pages** - E-commerce product content generation
- **Services Pages** - Service business content engine
- **Company Pages** - Corporate website essentials
- **Socializer** - Multi-platform social media publishing
**Phase 3 - Launching Q3-Q4 2026:**
- **Video Content Creator** - AI video generation & publishing
- **Site Builder** - The SEO holy grail
- **Advanced Analytics** - Performance insights & reporting
**Visual Design:**
- Rich gradient badges for each timeline phase (Success, Purple, Warning gradients)
- Feature cards with icons, descriptions, and detailed bullet points
- Hover effects and visual polish
- Consistent with marketing site design system
**Navigation:**
- Added "Upcoming Features" link to footer Resources section
- Route integrated in `MarketingApp.tsx`
- Lazy-loaded for performance
---
### 📄 Documentation Updates
**Marketing Site Updates:**
All marketing pages synced with current app architecture:
- Updated `Home.tsx` with 8-stage pipeline and 7 automation handoffs
- Updated `Product.tsx` with accurate module descriptions
- Updated `Tour.tsx` with 5 comprehensive steps
- Updated `Solutions.tsx` with current architecture
**Prelaunch Plan Progress:**
- Marked Phase 7.1 (Documentation Updates) complete
- Marked Phase 8.1 (Site Content) complete
- Marked Phase 8.2 (Pricing Page) complete
- Marked Phase 8.3 (Upcoming Features Section) complete
---
### 📦 Files Changed Summary
**Frontend Marketing Pages (8):**
| File | Changes | Description |
|------|---------|-------------|
| `marketing/pages/Home.tsx` | ~30 lines | Hero gradient, CTA gradient, shadow reductions, automation simplification |
| `marketing/pages/Upcoming.tsx` | NEW - 362 lines | Comprehensive upcoming features page |
| `marketing/pages/Product.tsx` | ~5 lines | CTA gradient update |
| `marketing/pages/Pricing.tsx` | ~5 lines | CTA gradient update |
| `marketing/pages/Solutions.tsx` | ~5 lines | CTA gradient update |
| `marketing/pages/Partners.tsx` | ~5 lines | CTA gradient update |
| `marketing/pages/CaseStudies.tsx` | ~5 lines | CTA gradient update |
| `marketing/MarketingApp.tsx` | +3 lines | Upcoming route |
**Navigation & Config (1):**
| File | Changes | Description |
|------|---------|-------------|
| `marketing/data/navLinks.ts` | +1 link | Added "Upcoming Features" to footer |
**Documentation (1):**
| File | Changes | Description |
|------|---------|-------------|
| `docs/plans/FINAL-PRELAUNCH.md` | ~20 lines | Marked Phase 7 & 8 tasks complete |
---
### 🎯 Design Principles Applied
1. **Brand Consistency** - All gradients now use primary + success mix (matching logo)
2. **Visual Hierarchy** - Reduced shadow weights prevent visual overwhelm
3. **Clean & Branded** - Simplified automation icons from "trainbox mix" to consistent primary gradient
4. **Subtle & Elegant** - Shadow weights reduced to md/lg instead of 2xl for modern appearance
5. **Content First** - Reduced decorative effects to let content shine
---
### Git Reference
```bash
# Commits in this release:
4f99fc14 - Update all CTA section backgrounds to primary + success gradient
84ed711f - Reduce shadow weights and simplify automation icons
7c79bdcc - Update gradient backgrounds from purple/pink to primary + success mix
74370685 - Add Upcoming Features page with timeline-based roadmap
e2a1c151 - Update FINAL-PRELAUNCH.md: Mark Phase 7 & 8 tasks complete
51512d6c - Update Tour and Solutions pages with accurate pipeline
```
---
## v1.6.1 - January 8, 2026
### Email System Implementation
This release implements a comprehensive email system with SMTP configuration, customizable email templates, and user authentication flows including password reset, email verification, and unsubscribe functionality.
---
### 📧 SMTP Configuration & Admin
**New Models:**
- `EmailSettings` - SMTP configuration model with server settings
- Fields: `smtp_host`, `smtp_port`, `smtp_username`, `smtp_password`
- TLS/SSL configuration options
- Default sender email and name
- Test email functionality from admin
**Django Admin Integration:**
- Custom admin panel for email settings (`email_admin.py`)
- Test email sending directly from admin interface
- Custom admin templates:
- `admin/system/emailsettings/change_form.html` - Settings form with test button
- `admin/system/emailsettings/test_email.html` - Test email confirmation page
**Migration:**
- `0021_add_smtp_email_settings.py` - Creates EmailSettings table
---
### 🔐 Authentication Flows
**Password Reset Flow:**
- `ForgotPassword.tsx` - Email submission form for password reset requests
- `ResetPassword.tsx` - Token-based password reset form
- Backend endpoints integrated with email service
- Secure token generation and validation
**Email Verification:**
- `VerifyEmail.tsx` - Email verification page for new users
- Token-based verification flow
- Success/error state handling
- Auto-redirect after verification
**Unsubscribe:**
- `Unsubscribe.tsx` - One-click email unsubscribe page
- Token-based unsubscribe for security
- Confirmation messaging
---
### 📨 Email Service Enhancements
**Email Service Updates** (`email_service.py`):
- SMTP-based email sending with configurable settings
- Support for HTML email templates
- Template rendering with dynamic context
- Error handling and logging
- Integration with authentication views
**Email Templates Updated:**
- `emails/base.html` - Enhanced base template (126+ lines updated)
- `emails/email_verification.html` - Verification email template
- `emails/password_reset.html` - Password reset email template
- `emails/welcome.html` - Welcome email for new users
- `emails/low_credits.html` - Low credit warning email
- `emails/payment_approved.html` - Payment approval notification
- `emails/payment_confirmation.html` - Payment confirmation
- `emails/payment_failed.html` - Payment failure notification
- `emails/payment_rejected.html` - Payment rejection notification
- `emails/refund_notification.html` - Refund notification
- `emails/subscription_activated.html` - Subscription activation
- `emails/subscription_renewal.html` - Subscription renewal reminder
---
### 🎨 Frontend Pages
**New Pages:**
| Route | Component | Description |
|-------|-----------|-------------|
| `/forgot-password` | `ForgotPassword.tsx` | Password reset request form |
| `/reset-password` | `ResetPassword.tsx` | Password reset with token |
| `/verify-email` | `VerifyEmail.tsx` | Email verification handler |
| `/unsubscribe` | `Unsubscribe.tsx` | Email unsubscribe page |
**Route Updates:**
- Added new routes to `App.tsx` (12+ lines)
- Authentication URL patterns in `auth/urls.py` (209+ lines)
---
### 📚 Documentation Updates
**Django Admin Access Guide:**
- Updated `docs/90-REFERENCE/DJANGO-ADMIN-ACCESS-GUIDE.md` (104+ lines added)
- Added email settings administration documentation
- Test email procedures documented
**Legal Pages:**
- Minor updates to `Privacy.tsx` and `Terms.tsx`
---
### 🗄️ Database Changes
**New Migration:**
- `0020_add_email_models.py` - Email models and templates (93 lines)
- `0021_add_smtp_email_settings.py` - SMTP settings model (53 lines)
**New Models:**
- `EmailSettings` - SMTP configuration
- `EmailTemplate` - Customizable email templates (292 lines in `email_models.py`)
---
### 📦 Files Changed Summary
**Backend Files (7):**
| File | Changes |
|------|---------|
| `billing/services/email_service.py` | +427 lines - Complete email service implementation |
| `modules/system/email_admin.py` | +448 lines - Django admin for email management |
| `modules/system/email_models.py` | +338 lines - Email settings and template models |
| `auth/views.py` | +17 lines - Password reset and verification views |
| `auth/urls.py` | +209 lines - Authentication URL patterns |
| `billing/views/paypal_views.py` | +26 lines - Email notification integration |
| `billing/views/stripe_views.py` | +21 lines - Email notification integration |
**Frontend Files (5):**
| File | Changes |
|------|---------|
| `pages/AuthPages/ForgotPassword.tsx` | NEW - 177 lines |
| `pages/AuthPages/ResetPassword.tsx` | NEW/Updated - 350 lines |
| `pages/AuthPages/VerifyEmail.tsx` | NEW - 220 lines |
| `pages/AuthPages/Unsubscribe.tsx` | NEW - 83 lines |
| `App.tsx` | +12 lines - New route definitions |
**Template Files (13):**
- All email templates in `templates/emails/` updated for consistency
**Admin Templates (2):**
- `admin/system/emailsettings/change_form.html` - 15 lines
- `admin/system/emailsettings/test_email.html` - 97 lines
- `admin/system/emailtemplate/test_email.html` - 78 lines
---
### Git Reference
```bash
# Commits in this release:
d4ecddba - SMTP and other email related settings
3651ee9e - Email Configs & setup
```
---
## v1.6.0 - January 8, 2026
### Major Release: Payment System Refactor Complete
This release completes the comprehensive refactoring of the payment system, including all three payment gateways (Stripe, PayPal, Bank Transfer), simplified signup flow, and enhanced security.
---
### 💳 Payment Gateway Integration
**Stripe Integration:**
- Subscription checkout sessions
- Credit package checkout
- Billing portal for subscription management
- Webhook processing with idempotency
- Signature verification enforced
**PayPal Integration:**
- One-time orders for credit packages
- Subscription orders for plans
- Order capture flow
- Webhook signature verification enabled
- Amount validation on capture
**Bank Transfer (Pakistan):**
- Manual payment submission
- File upload for payment proof
- Admin approval workflow
- Email notifications on approval/rejection
---
### 🔄 Simplified Signup Flow
**Before:** Payment gateway redirect from signup page
**After:** Signup creates account only, payment on /account/plans
**Changes:**
- Removed Stripe/PayPal checkout creation from registration
- Account created with `status='pending_payment'` for paid plans
- User redirected to Plans & Billing page to complete payment
- Single `/signup` route (removed `/signup/pk` variant)
---
### 🌍 Country-Based Payment Rules
**Global Users (non-PK):**
- Stripe (Credit/Debit Card) ✅
- PayPal ✅
- Bank Transfer ❌
**Pakistan Users (PK):**
- Stripe (Credit/Debit Card) ✅
- PayPal ❌ (not available in Pakistan)
- Bank Transfer ✅
---
### 🎨 Frontend Components
**New Components:**
- `PendingPaymentView` - Full-page payment interface for new users
- `BankTransferForm` - Bank transfer submission with proof upload
- `PaymentGatewaySelector` - Gateway selection UI
**Updated Components:**
- `PlansAndBillingPage` - Conditional rendering based on user state
- `PendingPaymentBanner` - Alert for pending payments
- `PayInvoiceModal` - Invoice payment modal
---
### 🔒 Security Enhancements
- **Webhook Idempotency:** `WebhookEvent` model tracks processed events
- **PayPal Signature Verification:** Enabled and enforced
- **Stripe Signature Verification:** Already enforced
- **Amount Validation:** PayPal capture validates amount matches expected
- **Manual Reference Uniqueness:** Database constraint prevents duplicates
---
### 📄 PDF Invoice Generation
- Added `reportlab` for professional PDF generation
- Logo integration from frontend assets
- Proper formatting (no HTML tags in output)
- Clean layout with company info, line items, totals
- Payment information section for paid invoices
---
### 🗄️ Database Changes
**New Migration:** `0029_add_webhook_event_and_manual_reference_constraint`
**New Model:** `WebhookEvent`
```python
class WebhookEvent(models.Model):
provider = models.CharField(choices=['stripe', 'paypal'])
event_id = models.CharField(max_length=255)
event_type = models.CharField(max_length=100)
payload = models.JSONField()
status = models.CharField() # pending, processed, failed
processed_at = models.DateTimeField(null=True)
```
**Updated Model:** `Payment`
- Added unique constraint on `manual_reference`
---
### 📚 Documentation
**Consolidated:** Three payment documentation files merged into one:
- `PAYMENT-SYSTEM-ARCHITECTURE.md` → Removed
- `PAYMENT-SYSTEM-AUDIT-REPORT.md` → Removed
- `PAYMENT-SYSTEM-REFACTOR-PLAN.md` → Removed
**New:** `90-REFERENCE/PAYMENT-SYSTEM.md`
- Complete payment system documentation
- All flows, endpoints, models in one file
- Current state only (no planning artifacts)
---
### 📦 Backend Files Changed
| File | Changes |
|------|---------|
| `billing/views/stripe_views.py` | Idempotency, enhanced logging |
| `billing/views/paypal_views.py` | Signature verification, amount validation, idempotency |
| `billing/views/refund_views.py` | Fixed imports |
| `billing/services/stripe_service.py` | Full service implementation |
| `billing/services/paypal_service.py` | Full service implementation |
| `billing/services/pdf_service.py` | Professional PDF generation with logo |
| `billing/services/email_service.py` | Payment notification emails |
| `billing/models.py` | WebhookEvent model, payment method choices |
| `auth/serializers.py` | Removed checkout creation from registration |
| `auth/urls.py` | Added country list endpoint |
---
### 📱 Frontend Files Changed
| File | Changes |
|------|---------|
| `SignUpFormUnified.tsx` | Simplified, removed payment selection |
| `PlansAndBillingPage.tsx` | Conditional views, state handling |
| `PendingPaymentView.tsx` | New component for new user payments |
| `BankTransferForm.tsx` | New component for bank transfers |
| `PaymentGatewaySelector.tsx` | New component for gateway selection |
| `billing.api.ts` | Country-based gateway availability |
| `authStore.ts` | Removed checkout URL handling |
---
### 🗑️ Removed
- `/signup/pk` route (consolidated into `/signup`)
- `SignUpPK.tsx` page component
- Payment gateway redirect from signup
- Three separate payment documentation files
---
## v1.5.0 - Planned
### Upcoming Release: Image Generation System Overhaul
This release will focus on improving the image generation system with better model support, fixed aspect ratios, and enhanced quality tier selection.
---
### 🖼️ Image Generation Improvements (PLANNED)
**Quality Tier Models:**
- **Basic (1 credit):** Hi Dream Full (`runware:97@1`) - Fast, general-purpose diffusion
- **Quality (5 credits):** Bria 3.2 (`bria:10@1`) - Balanced quality
- **Premium (15 credits):** Nano Banana (`google:4@2`) - Highest quality
**Fixed Image Sizes:**
- Featured Image: 1792×1024 (landscape, prominent)
- In-Article Square: 1024×1024
- In-Article Landscape: Model-dependent (1280×768 or 1344×768)
**In-Article Image Pattern:**
- Position 0: Square 1024×1024
- Position 1: Landscape (model-specific)
- Position 2: Square 1024×1024
- Position 3: Landscape (model-specific)
**UI Changes:**
- Removed mobile image options from settings
- Image progress modal width increased
- Unique position constraints for in-article images
---
### 💰 Credit Service Enhancements (PLANNED)
**New Methods:**
- `CreditService.calculate_credits_for_image()` - Model-specific image credit calculation
- `CreditService.calculate_credits_from_tokens_by_model()` - Model-specific token-to-credit conversion
**Improvements:**
- Better fallback to global defaults when model lacks configuration
- Enhanced logging for credit calculations
- Validation for missing `credits_per_image` or `tokens_per_credit`
---
### 📋 Planning Documentation
**New Files:**
- `docs/plans/4th-jan-refactor/IMAGE_MODELS_IMPLEMENTATION_PLAN.md` - Detailed image system implementation plan
- `docs/plans/4th-jan-refactor/REFACTOR-OVERVIEW.md` - Architecture refactor overview
- `docs/plans/4th-jan-refactor/implementation-plan-for-ai-models-and-cost.md` - AI models and cost plan
- `docs/plans/4th-jan-refactor/safe-migration-and-testing-plan.md` - Migration and testing strategy
---
## v1.4.0 - January 5, 2026
### Major Release: AI Architecture Overhaul & Model Configuration System
This release introduces a comprehensive refactoring of the AI system architecture, centralizing all AI model configurations, provider API keys, and credit-based billing into a unified, database-driven system. Key improvements include the new `IntegrationProvider`, `AIModelConfig`, and `SystemAISettings` models, along with Django Admin reorganization and enhanced frontend settings pages.
---
### 🤖 AI Model Architecture Overhaul (MAJOR)
**New Model: IntegrationProvider** (`modules/system/models.py`)
- Centralized storage for ALL external service API keys
- Supports providers: `openai`, `anthropic`, `runware`, `stripe`, `paypal`, `resend`
- Fields: `provider_id` (PK), `display_name`, `provider_type` (ai/payment/email/storage)
- API key management: `api_key`, `api_secret`, `webhook_secret`, `api_endpoint`
- Configuration: `config` (JSONField), `is_active`, `is_sandbox`
- Audit trail: `updated_by`, `created_at`, `updated_at`
**New Model: AIModelConfig** (`business/billing/models.py`)
- Single Source of Truth for all AI models (text + image) with pricing
- Fields: `model_name` (unique), `model_type` (text/image), `provider`, `display_name`
- Status: `is_default` (one per type), `is_active`
- Text Model Pricing: `cost_per_1k_input`, `cost_per_1k_output`, `tokens_per_credit`
- Image Model Pricing: `credits_per_image`, `quality_tier` (basic/quality/premium)
- Model Limits: `max_tokens`, `context_window`, `capabilities` (JSONField)
- History tracking via `simple_history`
**New Model: SystemAISettings** (`modules/system/ai_settings.py`)
- System-wide AI defaults (Singleton pattern, pk=1)
- AI Parameters: `temperature` (0.0-2.0), `max_tokens`
- Image Settings: `image_style`, `image_quality`, `max_images_per_article`, `image_size`
- Helper methods: `get_effective_*` for account-specific overrides via `AccountSettings`
- Image Style Choices: photorealistic, illustration, 3d_render, minimal_flat, artistic, cartoon
**Model Registry Service** (`ai/model_registry.py`)
- Central registry with database-driven model configuration
- Caching layer for performance (5-minute TTL)
- Methods: `get_model()`, `get_rate()`, `calculate_cost()`, `get_default_model()`
- Provider methods: `get_provider()`, `get_api_key()`, `get_api_secret()`, `get_webhook_secret()`
- List and validation: `list_models()`, `validate_model()`, `clear_cache()`
---
### 💰 Credit System Integration
**AIModelConfig Credit Fields:**
- `tokens_per_credit` - Text models: tokens per 1 credit (e.g., 1000 for GPT-4, 10000 for GPT-4o-mini)
- `credits_per_image` - Image models: credits per image (1=basic, 5=quality, 15=premium)
- `quality_tier` - Image quality tier for UI display
**Credit Cost Configuration:**
- Per `final-model-schemas.md`: Simplified to `operation_type`, `display_name`, `base_credits`, `is_active`
- Removed `tokens_per_credit` from CreditCostConfig (moved to AIModelConfig)
**New Migrations:**
- `0025_add_aimodel_credit_fields.py` - Add credit fields to AIModelConfig
- `0026_populate_aimodel_credits.py` - Populate default credit values
- `0027_model_schema_update.py` - Schema updates for final model architecture
---
### 🔧 Django Admin Reorganization
**Admin Group Structure:**
- Consolidated admin panels with logical grouping
- AI Configuration: AIModelConfig, IntegrationProvider, SystemAISettings
- Billing: CreditCostConfig, BillingConfiguration, Invoices, Payments, Credit Packages
- Custom logo support via `staticfiles/admin/img/`
**AIModelConfig Admin:**
- List display: model_name, model_type, provider, is_default, is_active
- Bulk actions: activate/deactivate, set as default
- Fieldsets: Basic Info, Pricing (Text), Pricing (Image), Model Limits, Capabilities
- Import/Export support
**IntegrationProvider Admin:**
- List display: provider_id, display_name, provider_type, is_active, is_sandbox
- Secure API key display (masked in list view)
- Fieldsets: Provider Info, Authentication, Configuration, Status
---
### 🎨 Frontend Settings Updates
**Site Settings Page Refactoring** (`pages/Sites/Settings.tsx`)
- Tab restructure: General → AI Settings → Integrations → Publishing → Content Types
- Image settings merged into AI Settings tab (previously separate)
- Quality tier picker with credit display
- Temperature and max_tokens controls
- Image style selection with previews
**AI Settings Tab Features:**
- Content Generation Settings: append_to_prompt, default_tone, default_length
- AI Parameters: temperature slider (0.0-2.0), max_tokens dropdown
- Image Generation: quality tier selector (Basic/Quality/Premium with credit costs)
- Image style dropdown with 6 style options
- Max images per article control (1-8)
**Removed Pages:**
- `frontend/src/pages/Settings/AI.tsx` - Merged into Site Settings AI tab
---
### 📊 System Migrations
**System Module Migrations:**
- `0015_add_integration_provider.py` - Create IntegrationProvider model
- `0016_populate_integration_providers.py` - Seed default providers (openai, runware, anthropic, stripe, paypal, resend)
- `0017_create_ai_settings.py` - Create AISettings model
- `0018_create_ai_settings_table.py` - Create SystemAISettings table
- `0019_model_schema_update.py` - Final schema updates
**Billing Module Migrations:**
- `0024_update_image_models_v2.py` - Update image model configurations
- `0025_add_aimodel_credit_fields.py` - Add credit fields
- `0026_populate_aimodel_credits.py` - Populate credit values
- `0027_model_schema_update.py` - Schema finalization
---
### 🔄 AI Core Updates
**AI Core Service** (`ai/ai_core.py`)
- Refactored to use ModelRegistry for model configuration
- Dynamic API key retrieval from IntegrationProvider
- Improved error handling and logging
- Cost calculation using AIModelConfig rates
**AI Tasks** (`ai/tasks.py`)
- Updated to use new model configuration system
- Credit deduction via AIModelConfig settings
- Quality tier support for image generation
**AI Settings** (`ai/settings.py`)
- Simplified to use SystemAISettings singleton
- Removed hardcoded API keys (now in IntegrationProvider)
- Helper functions for getting effective settings with account overrides
**Generate Images** (`ai/functions/generate_images.py`)
- Quality tier-based model selection
- Credits deducted based on `credits_per_image` from AIModelConfig
- Style parameter support from SystemAISettings
---
### 📝 Documentation Updates
**New Documentation:**
- `docs/plans/4th-jan-refactor/final-model-schemas.md` - Complete model schema specification
- `docs/plans/4th-jan-refactor/django-plan.md` - Django admin reorganization plan
**Model Architecture:**
- Total Models: 5 (IntegrationProvider, AIModelConfig, AISettings, AccountSettings, CreditCostConfig)
- Removed: IntegrationSettings merged into AISettings/AccountSettings
- Simplified: CreditCostConfig.tokens_per_credit moved to AIModelConfig
---
### 🐛 Bug Fixes & Improvements
- Fixed image generation model selection for different quality tiers
- Improved API key security (no longer stored in GlobalIntegrationSettings)
- Fixed admin panel navigation for billing and AI configuration
- Corrected credit calculation for token-based text models
- Fixed singleton pattern enforcement for SystemAISettings
---
## v1.3.2 - January 3, 2026
### Major Release: Publishing Scheduler, Onboarding Wizard & Content Calendar
This release introduces automated publishing scheduling, a streamlined onboarding wizard for new users, a content calendar for managing publishing schedules, comprehensive design system consolidation, and site-specific dashboard improvements.
---
### 📅 Publishing Scheduler System (NEW)
**Backend: Publishing Scheduler Tasks**
- **NEW FILE**: `backend/igny8_core/tasks/publishing_scheduler.py`
- `schedule_approved_content` - Hourly task that schedules approved content based on site's publishing settings
- `process_scheduled_publications` - Every 5 minutes, publishes content that's due
- `update_content_site_status` - Callback task for status updates after WordPress publish
- Calculates available slots based on publish_days, publish_time_slots, and daily/weekly/monthly limits
- Respects site-specific publishing limits
**Content Model Updates:**
- **NEW MIGRATION**: `0014_add_approved_status.py`
- Added `approved` status to Content model: `draft → review → approved → published`
- Created `ImagePrompts` proxy model
- **NEW MIGRATION**: `0015_add_publishing_scheduler_fields.py`
- `site_status` field: `not_published | scheduled | publishing | published | failed`
- `scheduled_publish_at` field: DateTime for scheduled publishing
- `site_status_updated_at` field: Timestamp for status tracking
**PublishingSettings Model (NEW):**
- **NEW MODEL**: `backend/igny8_core/business/integration/models.py`
- `auto_approval_enabled` - Auto-approve content after review
- `auto_publish_enabled` - Auto-publish approved content
- `daily_publish_limit`, `weekly_publish_limit`, `monthly_publish_limit`
- `publish_days` - JSON array of allowed days (mon, tue, wed, etc.)
- `publish_time_slots` - JSON array of times (09:00, 14:00, 18:00)
- Default: 3/day, 15/week, 50/month, Mon-Fri at 9am/2pm/6pm
**DefaultsService (NEW):**
- **NEW FILE**: `backend/igny8_core/business/integration/services/defaults_service.py`
- `create_site_with_defaults()` - Creates site with publishing and automation settings
- `apply_defaults_to_existing_site()` - Applies defaults to existing sites
- Optimized defaults for automated content publishing
**API Endpoints (NEW):**
- `GET /api/v1/integration/sites/{site_id}/publishing-settings/` - Get publishing settings
- `PUT/PATCH /api/v1/integration/sites/{site_id}/publishing-settings/` - Update settings
- `POST /api/v1/writer/content/{id}/schedule/` - Schedule content for publishing
- `POST /api/v1/writer/content/{id}/unschedule/` - Remove from schedule
- `GET /api/v1/writer/content/?status__in=` - Filter by multiple statuses
**Celery Beat Schedule:**
- Added `schedule-approved-content` task (hourly)
- Added `process-scheduled-publications` task (every 5 minutes)
---
### 🧙 Onboarding Wizard (NEW)
**NEW COMPONENTS**: `frontend/src/components/onboarding/`
**OnboardingWizard.tsx:**
- 5-step wizard for new user setup
- Manages wizard state and navigation
- Creates site with optimized defaults
**Step Components:**
- `Step1Welcome.tsx` - Welcome screen with feature overview
- `Step2AddSite.tsx` - Site creation with industry/sector selection
- Uses SelectDropdown for industry
- Badge-based sector selection (up to 5)
- Shows optimized defaults info card
- `Step3ConnectIntegration.tsx` - WordPress plugin installation
- API key display with copy button
- 4-step installation guide
- Connection test functionality
- Optional - can skip
- `Step4AddKeywords.tsx` - Initial keyword entry
- Multi-keyword input with paste support
- Keyword suggestions
- Optional - can skip
- `Step5Complete.tsx` - Success screen with next steps
- Setup summary
- Expected timeline
- Quick links to key areas
**Route:** `/setup/wizard` - New onboarding wizard page
---
### 📆 Content Calendar (NEW)
**NEW PAGE**: `frontend/src/pages/Publisher/ContentCalendar.tsx`
- Calendar view of scheduled content
- List view with drag-and-drop reordering
- Schedule/unschedule content
- View scheduled vs published vs approved content
- Month navigation
- Stats: scheduled, publishing, published counts
**Features:**
- Drag content from approved list to calendar dates
- Click to view content details
- Remove from queue functionality
- Publishing status badges (Scheduled, Publishing, Published, Failed)
- Real-time updates
**Route:** `/publisher/content-calendar` (main)
**Redirect:** `/sites/:id/publishing-queue` → `/publisher/content-calendar`
---
### 🎨 Design System Consolidation
**CSS Consolidation:**
- **NEW FILE**: `frontend/src/styles/design-system.css` (836 lines)
- Single source of truth for all design tokens
- Only 6 base hex values - everything else derived
- Tailwind default colors DISABLED
- Color scales: brand-*, success-*, warning-*, error-*, purple-*, gray-*
- Module-specific color schemes
- Dark mode support
- **DELETED FILES**:
- `frontend/src/styles/global.css`
- `frontend/src/styles/tokens.css`
- `frontend/src/index.css` (571 lines removed)
**ESLint Plugin (NEW):**
- **NEW FILE**: `frontend/eslint/eslint-plugin-igny8-design-system.cjs`
- `no-tailwind-default-colors` - Blocks blue-*, red-*, green-*, etc.
- `no-hardcoded-colors` - Blocks inline hex colors
- `no-lucide-imports` - Enforces local icon imports
- `no-icon-children` - Blocks children in icon components
**Module Color Scheme:**
- Planner (Keywords/Clusters/Ideas): Purple theme
- Writer (Tasks/Content/Images): Green theme
- Automation: Blue theme
- Publisher: Brand/Orange theme
- Unified visual distinction across pipeline
**Component Updates:**
- 100+ files updated for semantic color tokens
- All hardcoded Tailwind colors replaced
- All inline hex colors replaced
- Badge, Button, Card components updated
---
### 🏠 Site Dashboard Redesign
**Site Dashboard (`/sites/:id`):**
- **NEW**: SiteInfoBar component for site-specific pages
- **NEW**: Quick Actions grid (2-column card layout)
- **FIXED**: Race condition in Dashboard.tsx - async loadSiteData using stale closure
- AI Operations widget now loads real data from getDashboardStats API
- Proper site filtering for all widgets
**Site Settings Page:**
- Industry/Sector selector redesigned to match wizard style
- SelectDropdown for industry selection
- Badge-based sector selection with visual feedback
- Publishing Settings tab (NEW)
- Auto-approval toggle
- Auto-publish toggle
- Daily/Weekly/Monthly limits
- Publish days selection
- Time slots configuration
**Site List Page:**
- Enhanced site cards with setup progress
- WordPress connection status indicators
- Quick actions per site
---
### 📄 New Pages & Routes
| Route | File | Description |
|-------|------|-------------|
| `/setup/wizard` | `Setup/SetupWizard.tsx` | Onboarding wizard |
| `/publisher/content-calendar` | `Publisher/ContentCalendar.tsx` | Content calendar |
| `/ui-elements` | `UIElements.tsx` | Design system reference (internal) |
**Legacy Redirects:**
- `/sites/:id/publishing-queue` → `/publisher/content-calendar`
---
### 🔧 Backend Improvements
**New Migrations:**
- `0014_add_approved_status.py` - Content approved status
- `0015_add_publishing_scheduler_fields.py` - Scheduling fields
- `0003_add_publishing_settings.py` - PublishingSettings model
**Celery Configuration:**
- Added publishing scheduler tasks to celery beat
- New `tasks/__init__.py` consolidating all task imports
**WordPress Publishing:**
- Updated `publish_content_to_wordpress` to update `site_status`
- On success: site_status='published'
- On failure: site_status='failed'
---
### 🐛 Bug Fixes
**Dashboard:**
- Fixed race condition where async loadSiteData used stale siteId closure
- Now passes currentSiteId as parameter to loadSiteData function
- Fixed site 5 showing site 21 data issue
**Content Filtering:**
- Added `status__in` query parameter support for multiple status filtering
- Content serializer includes new `site_status` and `scheduled_publish_at` fields
**UI/UX:**
- Fixed industry/sector selector styling inconsistency
- Fixed Site Dashboard quick actions layout
- Fixed notification dropdown styling in dark mode
---
### 📚 Documentation Updates
**New Documentation:**
- `docs/30-FRONTEND/COMPONENT-SYSTEM.md` - Complete UI components reference
- `docs/30-FRONTEND/DESIGN-GUIDE.md` - Design system guidelines
- `docs/50-DEPLOYMENT/WORDPRESS-INTEGRATION-FLOW.md` - WordPress setup guide
- `docs/plans/FINAL-PRELAUNCH.md` - Pre-launch checklist
- `docs/plans/implemented/FRONTEND-AUDIT-PLAN.md` - Frontend audit plan
- `docs/plans/implemented/PUBLISHING-ONBOARDING-IMPLEMENTATION-PLAN.md` - Implementation plan
**Moved/Reorganized:**
- `IGNY8-APP.md` → `docs/00-SYSTEM/IGNY8-APP.md`
- `fixes-kb.md` → `docs/90-REFERENCE/FIXES-KB.md`
- Various plan docs → `docs/plans/implemented/`
**Updated Documentation:**
- `docs/INDEX.md` - Added new doc links, updated version
- `docs/30-FRONTEND/DESIGN-TOKENS.md` - Expanded with color scales
- `frontend/src/styles/README.md` - Updated for design-system.css
---
### 📁 Files Summary
**New Files (20+):**
```
backend/igny8_core/tasks/__init__.py
backend/igny8_core/tasks/publishing_scheduler.py
backend/igny8_core/business/integration/services/defaults_service.py
backend/igny8_core/modules/writer/migrations/0014_add_approved_status.py
backend/igny8_core/modules/writer/migrations/0015_add_publishing_scheduler_fields.py
backend/igny8_core/business/content/migrations/0003_add_publishing_settings.py
frontend/src/components/onboarding/OnboardingWizard.tsx
frontend/src/components/onboarding/steps/Step1Welcome.tsx
frontend/src/components/onboarding/steps/Step2AddSite.tsx
frontend/src/components/onboarding/steps/Step3ConnectIntegration.tsx
frontend/src/components/onboarding/steps/Step4AddKeywords.tsx
frontend/src/components/onboarding/steps/Step5Complete.tsx
frontend/src/components/onboarding/steps/index.ts
frontend/src/components/common/SiteInfoBar.tsx
frontend/src/components/ui/button/IconButton.tsx
frontend/src/components/ui/tooltip/CalendarItemTooltip.tsx
frontend/src/pages/Publisher/ContentCalendar.tsx
frontend/src/pages/Setup/SetupWizard.tsx
frontend/src/pages/UIElements.tsx
frontend/src/styles/design-system.css
frontend/eslint/eslint-plugin-igny8-design-system.cjs
frontend/audit-results/*.txt
```
**Major Changes (50+ files):**
- All frontend components updated for semantic colors
- Site Dashboard, Settings, Content pages redesigned
- Automation page color scheme updated
- 100+ files with color token replacements
**Deleted Files:**
- `frontend/src/styles/global.css`
- `frontend/src/styles/tokens.css`
- `frontend/src/index.css` (content moved to design-system.css)
- Various old logo files
- `docs/plans/final-fixes.md` (moved to implemented)
- `docs/plans/flexible-model-configuration-plan.md` (moved)
---
### Git Reference
```bash
# Commits since v1.3.0 (21 commits)
git log af408d0747429d94ab9168884c8f0e8e97add810..HEAD --oneline
# Key commits:
# f1ba0aa5 - Section 2 Completed
# 4d6ee214 - Section 2 Part 3
# e2d462d8 - Update dashboard and automation colors
# f28f641f - Components standardization 2
# e9606977 - Global Styling part 1
# f81fffc9 - Section 1 & 2 - Migration Run
# 03400169 - Section 3-8 - Migration Run
```
---
## v1.3.1 - January 2, 2026
### Design System Consolidation (Pre-Launch Section 1)
**Updated `.rules` file with comprehensive design system rules:**
- Added required doc reading: `COMPONENT-SYSTEM.md` mandatory for frontend work
- Added new Project Structure entries: Design Tokens, UI Components, Form Components, Icons paths
- Added complete Design System Rules section with color system (6 base colors only)
- Added Tailwind color classes allowed/banned list
- Added Component Rules section with required component mappings
- Added component quick reference with Button, InputField, Badge examples
- Added icon rules with import path and sizing guidelines
- Expanded coding rules from 14 to 20 rules (split backend/frontend)
- Added ESLint check step: `npm run lint` for design system violations
- Added comprehensive Don't Do section for frontend violations
- Updated Quick Checklist with separate Backend/Frontend sections
**Updated `DESIGN-GUIDE.md`:**
- Added Color System section with 6 base color tokens table
- Added Tailwind color utilities documentation (available vs disabled)
- Added color usage examples (correct vs wrong)
- Updated ESLint rules table with `no-icon-children` rule
- Added docker exec command for lint checking
- Updated last updated date
**Updated `frontend/DESIGN_SYSTEM.md`:**
- Updated status to "🔒 LOCKED"
- Updated last updated date
---
## v1.3.0 - January 1, 2026
### Major Release: Automation Overhaul & AI Provider Integrations
This release introduces significant improvements to the automation pipeline, adds support for multiple AI providers (Anthropic Claude, Bria AI), implements a centralized Model Registry for cost calculation, and includes comprehensive UI/UX improvements with CSS globalization.
---
### 🚀 Automation Pipeline Overhaul
**Complete Rewrite of Automation System:**
- Redesigned 7-stage automation pipeline with accurate progress tracking
- Added initial snapshot capture for proper progress percentage calculation
- Implemented incremental saves after each item for real-time UI updates
- Fixed progress calculation using stage-specific keys instead of summing all numeric values
- Stage 7 converted from "Manual Review Gate" to "Auto-Approve and Publish"
**New Components:**
- `GlobalProgressBar.tsx` - Full pipeline progress across all 7 stages with segmented visualization
- `CurrentProcessingCardV2.tsx` - Simplified real-time progress card
**Backend Improvements:**
- `automation_service.py` - Complete rewrite with proper item counting
- `_capture_initial_snapshot()` - Captures queue sizes at run start
- `_update_snapshot_after_stage()` - Updates counts for cascading stages
- Fixed `_get_processed_count()` to use stage-specific keys
- Credits now tracked via `CreditUsageLog` (matches billing source of truth)
- New `run_progress` API endpoint for unified progress data
**Stage Card UI Improvements:**
- New layout with icon, stage number, and function name in header
- Larger Pending/Processed counts with semantic colors
- Breathing circle indicator for active stages
- Progress bar with stage-specific gradient colors
- Credits and duration displayed inline
**Pipeline Overview Fixes:**
- Stage 1 pending now matches Keywords "New" count (removed `cluster__isnull` filter)
- Stage 3 uses `status='new'` instead of `status='approved'`
- Stage 4 uses `status='queued'` matching pipeline_overview
---
### 🤖 AI Provider Integrations
**Anthropic Claude Support:**
- Full integration with Claude API (claude-3-5-sonnet, claude-3-opus, claude-3-haiku)
- New `_make_anthropic_request()` method in AICore
- Cost calculation using ModelRegistry with fallback rates
- Token tracking (input/output) for accurate billing
- Added `anthropic_api_key` to GlobalIntegrationSettings
- Migration: `0013_add_anthropic_integration.py`
**Bria AI Image Generation:**
- Support for Bria AI image generation API
- New `_generate_image_bria()` method in AICore
- Models: bria-2.3, bria-2.3-fast, bria-2.2
- Added `bria_api_key` to GlobalIntegrationSettings
- Migration: `0012_add_bria_integration.py`
---
### 📊 Model Registry Service
**New Centralized Model Configuration:**
- `backend/igny8_core/ai/model_registry.py` - Central registry with caching
- Database-driven model configs via `AIModelConfig`
- Fallback to `constants.py` for backward compatibility
- 5-minute cache TTL for performance
**Features:**
- `ModelRegistry.get_model(model_id)` - Get config from cache/DB/constants
- `ModelRegistry.get_rate(model_id, rate_type)` - Get input/output/image rates
- `ModelRegistry.calculate_cost()` - Unified cost calculation
- `ModelRegistry.list_models()` - List all active models with filters
- `ModelRegistry.validate_model()` - Check if model is valid and active
**Migration:**
- `0009_seed_ai_model_configs.py` - Seeds initial model configurations
---
### 🎨 CSS Globalization & Design System
**Semantic Color Standardization:**
- Replaced hardcoded Tailwind colors with semantic tokens throughout:
- `blue-*` → `brand-*` (primary brand color)
- `green-*` → `success-*` (success states)
- `red-*` → `error-*` (error states)
- `yellow-*` → `warning-*` (warning states)
- `slate-*` → `gray-*` (neutral grays)
**Files Updated (100+ files):**
- All Automation components
- All Billing components
- All Auth components (SignIn, SignUp forms)
- All Marketing pages
- Account pages (Settings, Billing, Usage, Notifications)
- Planner, Writer, Thinker pages
- Common components (ProgressModal, ColumnSelector, etc.)
**CSS Cleanup:**
- Removed `igny8-colors.css` (617 lines deleted)
- Consolidated color definitions in `tokens.css`
- Updated `index.css` with streamlined utilities
---
### 📝 Prompt System Enhancements
**Prompt Prefix Tracking:**
- New prompt prefix system for tracking prompt source
- `##GP01-Clustering` (Global Prompt) vs `##CP01-Clustering` (Custom Prompt)
- `get_prompt_with_metadata()` returns prompt source information
- `get_prompt_prefix_for_function()` for tracking without full prompt fetch
**Prompt Types Added:**
- `PROMPT_PREFIX_MAP` with numbered prefixes for all 11 prompt types
- Enables tracking whether AI used global or customized prompts
---
### 📄 New Pages & Routes
**Legal Pages:**
- `frontend/src/pages/legal/Privacy.tsx` - Privacy Policy page
- `frontend/src/pages/legal/Terms.tsx` - Terms of Service page
- Routes added to App.tsx
---
### 🔧 Backend Improvements
**New Migrations:**
- `0006_automationrun_initial_snapshot.py` - Stores snapshot at run start
- `0008_global_payment_methods.py` - Global payment method support
- `0009_seed_ai_model_configs.py` - AI model configurations
- `0011_disable_phase2_modules.py` - Phase 2 module toggles
- `0012_add_bria_integration.py` - Bria AI integration settings
- `0013_add_anthropic_integration.py` - Anthropic integration settings
**API Enhancements:**
- New `run_progress` endpoint in automation views
- Account API expansions for usage tracking
- Billing API improvements for payment methods
**Planning Module:**
- Added `signals.py` for planning model signals
- Improved clustering service
- Fixed keyword status queries
---
### 🐛 Bug Fixes
**Automation:**
- Fixed progress percentage calculation (was summing all result values)
- Fixed Stage 1 pending count (was filtering by cluster__isnull)
- Fixed remaining count calculation during active processing
- Fixed credits tracking to use CreditUsageLog
**UI/UX:**
- Fixed PageHeader description rendering (removed from body, title in AppHeader)
- Fixed account page JSX syntax errors causing module import failures
- Fixed notification count display location
- Fixed duplicate headings on Plans & Billing page
**Backend:**
- Fixed content validation service
- Fixed clustering service dependencies
- Fixed writer admin configurations
---
### 📚 Documentation
**New Docs:**
- `docs/fixes/component-audit-report.md`
- `docs/fixes/design-verification-report.md`
- `docs/fixes/footer-widget-pagination-fix.md`
- `docs/fixes/phase2-module-activation.md`
- `docs/plans/MASTER-IMPLEMENTATION-PLAN.md`
- `docs/plans/flexible-model-configuration-plan.md`
- `docs/plans/final-fixes.md`
**Moved/Reorganized:**
- `TODOS.md` → `docs/plans/TODOS.md`
- `immediate-updates-completed.md` → `docs/immediate-updates-completed.md`
---
### Files Summary
**New Files (15):**
```
frontend/src/components/Automation/GlobalProgressBar.tsx (248 lines)
frontend/src/components/Automation/CurrentProcessingCardV2.tsx (344 lines)
frontend/src/pages/legal/Privacy.tsx (260 lines)
frontend/src/pages/legal/Terms.tsx (186 lines)
frontend/src/hooks/useWorkflowStats.ts (294 lines)
frontend/src/services/automationService.ts (71 lines)
backend/igny8_core/ai/model_registry.py (339 lines)
backend/igny8_core/business/planning/signals.py (130 lines)
backend/igny8_core/migrations/0006_automationrun_initial_snapshot.py
backend/igny8_core/business/billing/migrations/0008_global_payment_methods.py
backend/igny8_core/business/billing/migrations/0009_seed_ai_model_configs.py
backend/igny8_core/modules/system/migrations/0011_disable_phase2_modules.py
backend/igny8_core/modules/system/migrations/0012_add_bria_integration.py
backend/igny8_core/modules/system/migrations/0013_add_anthropic_integration.py
🚀 AUTOMATION PAGE MASTER FIX PLAN.md
```
**Major Changes (20+ files):**
- `frontend/src/pages/Automation/AutomationPage.tsx` - Complete UI overhaul
- `backend/igny8_core/ai/ai_core.py` - Anthropic & Bria integration (+557 lines)
- `backend/igny8_core/business/automation/services/automation_service.py` - Pipeline rewrite (+619 lines)
- `backend/igny8_core/business/automation/views.py` - New endpoints (+241 lines)
- `frontend/src/index.css` - CSS consolidation
- 100+ files updated for semantic color tokens
**Deleted Files:**
- `frontend/src/styles/igny8-colors.css` (617 lines)
- `COMPREHENSIVE-AUDIT-REPORT.md`
- Multiple test files in `frontend/src/__tests__/sites/`
- `to-do-s/` folder contents (migrated to docs)
---
### Git Reference
```bash
# Commits since v1.2.2 (20 commits)
git log 0605f650..HEAD --oneline
# Key commits:
# ea9125b8 - Automation revamp part 1
# 53fdebf7 - automation and ai and some planning and fixes
# c91175fd - styling css globalization
# 2af7bb72 - master plan implementation
# 89b64cd7 - modules widgets and colors and styling
# 0d3e25e5 - automation and other pages updates
```
---
## v1.2.2 - December 28, 2025
### Full Notifications Page Implementation
**Problem:**
- NotificationDropdown "View All Notifications" link was broken (404 error)
- Link pointed to `/notifications` which didn't exist
- No way to view full notification history or apply filters
- No bulk actions for managing notifications
**Solution:**
- Created comprehensive NotificationsPage at `/account/notifications`
- Added advanced filtering capabilities (severity, type, read status, site, date range)
- Implemented bulk actions (mark all as read)
- Integrated into sidebar navigation under ACCOUNT section
- Fixed broken link in NotificationDropdown
**Features:**
- **Filters:**
- Severity: info/success/warning/error
- Notification type: All AI operations, WordPress sync, credits, setup events
- Read status: all/unread/read
- Site: Filter by specific site
- Date range: From/to date filters
- **Actions:**
- Mark individual notifications as read
- Mark all as read (bulk)
- Delete individual notifications
- Navigate to action URL on click
- **UI:**
- Full notification history with proper styling
- Severity icons with color coding
- Relative timestamps with date-fns
- Site badges when applicable
- Unread badge in sidebar menu
- Empty states for no notifications/no matches
- Loading states with spinner
**Frontend Changes:**
- **NEW PAGE**: `frontend/src/pages/account/NotificationsPage.tsx`
- **Route Added**: `/account/notifications` in App.tsx
- **Sidebar**: Added Notifications menu item with Bell icon and unread count badge
- **Fixed**: NotificationDropdown link updated from `/notifications` to `/account/notifications`
**Documentation Updates:**
- `docs/30-FRONTEND/PAGES.md` - Added NotificationsPage with features
- `docs/10-MODULES/NOTIFICATIONS.md` - Updated with new page details, removed "broken link" warnings
- Version updated from v1.2.1 to v1.2.2
### Files Changed
- `frontend/src/pages/account/NotificationsPage.tsx` - NEW: Full notifications page
- `frontend/src/App.tsx` - Added notifications route and lazy import
- `frontend/src/components/header/NotificationDropdown.tsx` - Fixed link to /account/notifications
- `frontend/src/layout/AppSidebar.tsx` - Added Notifications menu item with Bell icon
- `docs/30-FRONTEND/PAGES.md` - Added NotificationsPage documentation
- `docs/10-MODULES/NOTIFICATIONS.md` - Updated with new page, fixed issues, version history
- `CHANGELOG.md` - Added this entry
### Files Added
```
frontend/src/pages/account/NotificationsPage.tsx (475 lines)
```
### Git Reference
```bash
git add frontend/src/pages/account/NotificationsPage.tsx frontend/src/App.tsx frontend/src/components/header/NotificationDropdown.tsx frontend/src/layout/AppSidebar.tsx docs/30-FRONTEND/PAGES.md docs/10-MODULES/NOTIFICATIONS.md CHANGELOG.md
git commit -m "feat: add full notifications page with filtering and bulk actions"
```
---
## v1.2.1 - December 28, 2025
### Critical Bug Fix - AI Task Notifications
**Problem:**
- Notifications system was implemented in v1.2.0 but notifications were never being created
- AI functions (clustering, idea generation, content generation, etc.) completed successfully but no notifications appeared in the dropdown
- NotificationService existed but was never called from AIEngine
**Root Cause:**
- `AIEngine.execute()` method completed successfully but never called `NotificationService`
- No notification creation in either success or failure paths
- Celery logs showed tasks completing but no notification records in database
**Solution:**
- Added `_create_success_notification()` method to AIEngine class
- Added `_create_failure_notification()` method to AIEngine class
- Integrated notification creation in `execute()` success path (after DONE phase)
- Integrated notification creation in `_handle_error()` failure path
- Used lazy imports to avoid Django app loading issues at module level
- Maps each AI function to appropriate NotificationService method:
- `auto_cluster` → `notify_clustering_complete/failed`
- `generate_ideas` → `notify_ideas_complete/failed`
- `generate_content` → `notify_content_complete/failed`
- `generate_image_prompts` → `notify_prompts_complete/failed`
- `generate_images` → `notify_images_complete/failed`
**Testing:**
- Celery worker restarted successfully with new code
- Notifications now created for both successful and failed AI operations
- Frontend notification dropdown will display notifications via existing API integration
**Documentation Added:**
- Created comprehensive `docs/10-MODULES/NOTIFICATIONS.md`
- Documents all notification types and triggers
- Includes frontend implementation details
- Lists all 15 notification types with message formats
- Debug commands and testing procedures
- Added to `docs/INDEX.md` module listing
- **Clarified:** No dedicated notifications page exists (only dropdown)
**Additional Fix - Keyword Import Notifications:**
- Added notification creation to `add_to_workflow` endpoint in KeywordViewSet
- When users add keywords to workflow, notification now appears
- Notification format: "Added X keywords to [site]"
- Lazy import pattern to avoid circular dependencies
### Files Changed
- `backend/igny8_core/ai/engine.py` - Added notification creation methods and integration points
- `backend/igny8_core/modules/planner/views.py` - Added notification for keyword import
- `docs/10-MODULES/NOTIFICATIONS.md` - NEW: Complete notifications module documentation
- `docs/INDEX.md` - Added Notifications module to index
### Files Added
```
docs/10-MODULES/NOTIFICATIONS.md
```
### Git Reference
```bash
git add backend/igny8_core/ai/engine.py backend/igny8_core/modules/planner/views.py docs/10-MODULES/NOTIFICATIONS.md docs/INDEX.md CHANGELOG.md
git commit -m "fix: AI task notifications + keyword import notifications + comprehensive docs"
```
---
## v1.2.0 - December 27, 2025
### Final Launch Release - Notifications, Dashboard, UI Polish
This release marks the final pre-launch state with comprehensive UI polish, real-time notifications, and dashboard overhaul.
**Backend: Notifications Module**
- **NEW MODULE**: `backend/igny8_core/business/notifications/`
- Models: `Notification`, `NotificationPreference`
- NotificationType choices: AI operations (cluster/ideas/content/images complete/failed), workflow events, WordPress sync, credits/billing, system
- Services: `NotificationService` for creating/managing notifications
- REST API: `/api/v1/notifications/` endpoints
- Registered in `settings.py` INSTALLED_APPS
- Added URL routing in `urls.py`
**Frontend: Notification System**
- **NEW STORE**: `notificationStore.ts` - Zustand store for notification management
- In-memory queue for optimistic UI
- API sync for persistent notifications
- Auto-dismissal with configurable timeout
- Read/unread state tracking
- Category-based filtering (ai_task, system, info)
- **NEW API SERVICE**: `notifications.api.ts`
- `fetchNotifications()`, `fetchUnreadCount()`
- `markNotificationRead()`, `markAllNotificationsRead()`
- `deleteNotification()`
- **UPDATED**: `NotificationDropdown.tsx` - Real notification integration
**Frontend: Dashboard Home Overhaul**
- **NEW WIDGETS** in `components/dashboard/`:
- `WorkflowPipelineWidget.tsx` - Visual flow: Sites → Keywords → Clusters → Ideas → Tasks → Drafts → Published
- `AIOperationsWidget.tsx` - Operation stats with time filter (7d/30d/90d)
- `RecentActivityWidget.tsx` - Activity feed with type icons
- `ContentVelocityWidget.tsx` - Week/Month/Total metrics table
- `AutomationStatusWidget.tsx` - Status, schedule, last/next run info
- `NeedsAttentionBar.tsx` - Alert bar for pending actions
- `QuickActionsWidget.tsx` - Quick action buttons
- `CreditAvailabilityWidget.tsx` - Credit balance display
- `OperationsCostsWidget.tsx` - Cost breakdown by operation type
- `SiteConfigWidget.tsx` - Site configuration status
- Updated `Home.tsx` to use new dashboard widgets with real data from APIs
**Frontend: ThreeWidgetFooter Component**
- **NEW COMPONENT**: `ThreeWidgetFooter.tsx` - 3-column footer for table pages
- Widget 1: Page Progress (metrics + progress bar)
- Widget 2: Module Stats (pipeline flow with arrows)
- Widget 3: Completion (tree structure for both modules)
- **NEW HOOK**: `useThreeWidgetFooter.ts` - Data preparation hook
- **IMPLEMENTED ON**: Keywords, Clusters, Ideas, Tasks, Content pages
**Frontend: Page Rename - Published → Approved**
- **RENAMED**: `Writer/Published.tsx` → `Writer/Approved.tsx`
- **RENAMED**: Config `published.config.tsx` → `approved.config.tsx`
- **ROUTE**: `/writer/approved` (legacy `/writer/published` redirects)
- Updated sidebar navigation label to "Approved"
**Frontend: Site Selectors**
- **NEW COMPONENTS**:
- `SingleSiteSelector.tsx` - Simple site dropdown
- `SiteWithAllSitesSelector.tsx` - Site selector with "All Sites" option
- Updated `SiteAndSectorSelector.tsx` for improved UX
- Enhanced `PageHeader.tsx` with badge props and breadcrumb support
**Backend: SiteSerializer Fixes**
- Fixed `has_integration` field to use `platform` field (not `integration_type`)
- Added missing serializer fields for frontend consumption
**Progress Modal Text Updates**
- Fixed placeholder "X" text in image prompt steps
- Improved step labels with actual counts when available
### Files Added
```
backend/igny8_core/business/notifications/
├── __init__.py
├── admin.py
├── apps.py
├── models.py
├── serializers.py
├── services.py
├── urls.py
├── views.py
└── migrations/0001_initial.py
frontend/src/components/dashboard/
├── AIOperationsWidget.tsx
├── AutomationStatusWidget.tsx
├── ContentVelocityWidget.tsx
├── CreditAvailabilityWidget.tsx
├── NeedsAttentionBar.tsx
├── OperationsCostsWidget.tsx
├── QuickActionsWidget.tsx
├── RecentActivityWidget.tsx
├── SiteConfigWidget.tsx
├── ThreeWidgetFooter.tsx
└── WorkflowPipelineWidget.tsx
frontend/src/components/common/
├── SingleSiteSelector.tsx
└── SiteWithAllSitesSelector.tsx
frontend/src/hooks/useThreeWidgetFooter.ts
frontend/src/services/notifications.api.ts
frontend/src/store/notificationStore.ts
```
### Files Modified
- `backend/igny8_core/settings.py` - Added notifications to INSTALLED_APPS
- `backend/igny8_core/urls.py` - Added notifications URL routing
- `backend/igny8_core/auth/serializers.py` - Fixed SiteSerializer fields
- `backend/igny8_core/ai/engine.py` - Progress tracking updates
- `frontend/src/App.tsx` - Route updates for approved page
- `frontend/src/layout/AppHeader.tsx` - Dashboard context support
- `frontend/src/layout/AppLayout.tsx` - Layout improvements
- `frontend/src/layout/AppSidebar.tsx` - Navigation label updates
- `frontend/src/pages/Dashboard/Home.tsx` - Complete dashboard overhaul
- `frontend/src/pages/Writer/*.tsx` - ThreeWidgetFooter integration
- `frontend/src/pages/Planner/*.tsx` - ThreeWidgetFooter integration
- `frontend/src/components/common/ProgressModal.tsx` - Text fixes
- `frontend/src/components/common/SiteCard.tsx` - Setup checklist updates
- `frontend/src/config/pages/*.config.tsx` - Column/action updates
- `frontend/src/config/routes.config.ts` - Route updates
- `frontend/src/context/PageContext.tsx` - Enhanced page context
- `frontend/src/icons/index.ts` - New icon exports
---
## v1.1.9 - December 27, 2025
### UI Infrastructure & Polish
**PageContext System**
- **NEW**: `PageContext.tsx` - React context for page-level state management
- Provides site filter, sector filter state to nested components
- Enables AppHeader to access current page info
**Search Modal**
- **NEW**: `SearchModal.tsx` - Global search modal component
- Cmd+K / Ctrl+K keyboard shortcut
- Search across pages, content, keywords
**Header & Layout Updates**
- Enhanced `AppHeader.tsx`:
- Site filter integration
- Breadcrumb support
- Search modal trigger
- Improved responsive behavior
- Updated `AppLayout.tsx`:
- Better sidebar/content coordination
- Dark mode improvements
- Updated `AppSidebar.tsx`:
- Module dropdown improvements
- Active state indicators
**Table Template Improvements**
- Enhanced `TablePageTemplate.tsx`:
- Better filter UI
- Improved empty states
- Column configuration updates
- Updated page configs for consistency
**Style Updates**
- `igny8-colors.css` - Token refinements
- Dark mode consistency improvements
### Files Added
- `frontend/src/components/common/SearchModal.tsx`
- `frontend/src/context/PageContext.tsx`
- `docs/30-FRONTEND/PAGE-REQUIREMENTS.md`
### Files Modified
- `frontend/src/layout/AppHeader.tsx`
- `frontend/src/layout/AppLayout.tsx`
- `frontend/src/layout/AppSidebar.tsx`
- `frontend/src/templates/TablePageTemplate.tsx`
- `frontend/src/pages/Planner/*.tsx`
- `frontend/src/pages/Writer/*.tsx`
- `frontend/src/styles/igny8-colors.css`
---
## v1.1.8 - December 27, 2025
### Section 6 Sidebar & Navigation Restructure
**Sidebar Module Changes:**
- **REMOVED** Linker from sidebar (module not ready for launch)
- **REMOVED** Optimizer from sidebar (module not ready for launch)
- **REORDERED** SETUP menu: Sites → Add Keywords → Content Settings → Thinker
**Sidebar Dropdown Navigation:**
- Added sub-item dropdowns for major modules in AppSidebar.tsx:
- **Planner**: Keywords, Clusters, Ideas
- **Writer**: Queue, Drafts, Images, Review, Published
- **Content Settings**: Content Generation, Publishing, Image Settings
- **Thinker**: Prompts, Author Profiles
- **Account Settings**: Account, Profile, Team
- **Plans & Billing**: Current Plan, Upgrade Plan, History
- **Usage Analytics**: Limits & Usage, Credit History, Activity Log
**URL-Based Tab Navigation:**
- Converted Account pages from useState tabs to URL-based navigation:
- `AccountSettingsPage.tsx` - `/account/settings`, `/account/settings/profile`, `/account/settings/team`
- `PlansAndBillingPage.tsx` - `/account/plans`, `/account/plans/upgrade`, `/account/plans/history`
- `UsageAnalyticsPage.tsx` - `/account/usage`, `/account/usage/credits`, `/account/usage/activity`
- `ContentSettingsPage.tsx` - `/account/content-settings`, `/account/content-settings/publishing`, `/account/content-settings/images`
- Added corresponding routes in App.tsx
**ModuleNavigationTabs Removal:**
- Removed redundant ModuleNavigationTabs from all pages (navigation now via sidebar):
- Planner: Keywords.tsx, Clusters.tsx, Ideas.tsx
- Writer: Tasks.tsx, Content.tsx, Images.tsx, Review.tsx, Published.tsx
- Thinker: Prompts.tsx, AuthorProfiles.tsx, Strategies.tsx, ImageTesting.tsx
- Sites: List.tsx
**Breadcrumb Navigation:**
- Added `breadcrumb` prop to PageHeader component
- Implemented breadcrumb display across all module pages
- Format: "Module / Page" (e.g., "Planner / Keywords", "Writer / Drafts")
**Files Modified:**
- `frontend/src/layout/AppSidebar.tsx` - Sidebar restructure with dropdowns
- `frontend/src/App.tsx` - Added sub-routes for URL-based navigation
- `frontend/src/components/common/PageHeader.tsx` - Added breadcrumb prop
- `frontend/src/pages/account/AccountSettingsPage.tsx` - URL-based tabs
- `frontend/src/pages/account/PlansAndBillingPage.tsx` - URL-based tabs
- `frontend/src/pages/account/UsageAnalyticsPage.tsx` - URL-based tabs
- `frontend/src/pages/account/ContentSettingsPage.tsx` - URL-based tabs
- `frontend/src/pages/Planner/*.tsx` - Removed tabs, added breadcrumb
- `frontend/src/pages/Writer/*.tsx` - Removed tabs, added breadcrumb
- `frontend/src/pages/Thinker/*.tsx` - Removed tabs, added breadcrumb
- `frontend/src/pages/Sites/List.tsx` - Removed tabs, added breadcrumb
---
## v1.1.7 - December 27, 2025
### Section 5 HELP Module Implementation
**Support Links Fixed (CRITICAL):**
- Fixed UserDropdown links going to `/profile` (404)
- "Edit profile" → `/account/settings`
- "Account settings" → `/account/settings`
- "Support" → `/help`
- Implemented Contact Support button with `mailto:support@igny8.com`
- Implemented Feature Request button with `mailto:feedback@igny8.com`
**Placeholder Pages Deleted (HIGH):**
- **DELETED** `pages/Help/Docs.tsx` - Empty placeholder
- **DELETED** `pages/Help/SystemTesting.tsx` - Empty placeholder
- **DELETED** `pages/Help/FunctionTesting.tsx` - Empty placeholder
- Removed routes `/help/docs`, `/help/system-testing`, `/help/function-testing` from App.tsx
**Documentation Added:**
- Added comprehensive Table of Contents with new sections
- Added Dashboard documentation section
- Added Setup Module documentation:
- Add Keywords (step-by-step guide)
- Content Settings (3 tabs explained)
- Sites Management (WordPress integration)
- Added Account & Billing documentation:
- Account Settings (Account, Profile, Team tabs)
- Plans & Billing (plan management, cancellation)
- Usage & Limits (credit tracking, alerts)
**FAQ Expanded:**
- Added 8 new FAQ items:
- How do credits work?
- What uses credits?
- How do I purchase more credits?
- How do I change my payment method?
- Can I cancel my subscription?
- How do I connect WordPress?
- Why isn't my content syncing to WordPress?
- Can I schedule automation to run at specific times?
- What happens if automation fails?
### Files Changed
- `frontend/src/App.tsx` - Removed placeholder help page imports/routes
- `frontend/src/components/header/UserDropdown.tsx` - Fixed all broken links
- `frontend/src/pages/Help/Help.tsx` - Added documentation sections, expanded FAQ, working support buttons
### Files Deleted
- `frontend/src/pages/Help/Docs.tsx`
- `frontend/src/pages/Help/SystemTesting.tsx`
- `frontend/src/pages/Help/FunctionTesting.tsx`
---
## v1.1.6 - December 27, 2025
### Section 4 ACCOUNT Modules Implementation
**Account Settings Page (`/account/settings`):**
- **Profile Tab**: Now loads user data from auth store (name, email, phone, timezone)
- **Password Change**: Added password change modal with validation
- Connects to `/v1/auth/change-password/` backend endpoint
- Validates minimum 8 characters, confirmation match
- Shows success/error feedback via toast
- Added `getUserProfile()`, `updateUserProfile()`, `changePassword()` to billing.api.ts
**Plans & Billing Page (`/account/plans`):**
- **Cancellation Confirmation Modal**: Cancel button now shows confirmation dialog
- Explains consequences: loss of features, 30-day credit preservation
- Requires explicit "Yes, Cancel Subscription" confirmation
- Prevents accidental cancellations
**Usage Analytics Page (`/account/usage`):**
- **Fixed Fake API Activity Data**: Removed hardcoded values
- Old: Hardcoded "98.5%" success rate, 1,234/567/342 endpoint calls
- New: Uses real `analytics?.usage_by_type` data
- Shows "Operations by Type" with actual credits/counts from backend
- Empty state when no operations recorded
**Cleanup:**
- **DELETED** `TeamManagementPage.tsx` - orphaned page (functionality exists in AccountSettingsPage Team tab)
- Legacy routes verified working: `/account/team` → `/account/settings`, `/settings/profile` → `/account/settings`
### Files Changed
- `frontend/src/services/billing.api.ts` - Added profile/password API functions
- `frontend/src/pages/account/AccountSettingsPage.tsx` - Password change modal, profile loading
- `frontend/src/pages/account/PlansAndBillingPage.tsx` - Cancellation confirmation modal
- `frontend/src/pages/account/UsageAnalyticsPage.tsx` - Real data for API Activity tab
### Files Deleted
- `frontend/src/pages/account/TeamManagementPage.tsx`
---
## v1.1.5 - January 2, 2025
### Section 3 WORKFLOW Modules Implementation
**Planner Module:**
- **DELETED** `KeywordOpportunities.tsx` - orphaned page, Add Keywords is source of truth
- Removed route `/planner/keyword-opportunities` from App.tsx
- Updated Clusters table to show ideas count badge: "X ideas" (green) or "No ideas" (gray)
- Made cluster name clickable in Ideas table - navigates to `/planner/clusters/:id`
**Writer Module:**
- Fixed duplicate tags/categories display in ContentView template
- Removed redundant tags/categories section that appeared below the main metadata
- Tags and categories now display only once in the Topic section
**Progress Modals:**
- Fixed placeholder "X" text in image prompt progress modals:
- Changed "Mapping Content for X Image Prompts" → "Mapping content for image prompts"
- Changed "Writing X Inarticle Image Prompts" → "Writing Inarticle Image Prompts"
- Changed "Featured Image and X Inarticle..." → "Image prompts ready for generation"
- All step labels now show actual counts when available, clean fallbacks otherwise
### Files Changed
- `frontend/src/App.tsx` - Removed KeywordOpportunities import/route
- `frontend/src/config/pages/clusters.config.tsx` - Ideas count badge styling
- `frontend/src/config/pages/ideas.config.tsx` - Clickable cluster link
- `frontend/src/templates/ContentViewTemplate.tsx` - Removed duplicate tags/categories
- `frontend/src/components/common/ProgressModal.tsx` - Fixed placeholder texts
- `docs/30-FRONTEND/PAGES.md` - Removed KeywordOpportunities references, updated version
- `docs/20-API/ENDPOINTS.md` - Added Content Settings API documentation
### Files Deleted
- `frontend/src/pages/Planner/KeywordOpportunities.tsx`
---
## v1.1.4 - December 27, 2025
### Section 2 SETUP Modules Implementation
**Add Keywords Page (`/setup/add-keywords`):**
- Added "Not Yet Added Only" filter toggle to show only keywords not in workflow
- Added keyword count summary: "X keywords in your workflow • Y available to add"
- Added "Next: Plan Your Content →" CTA button (appears after adding keywords)
- Added "Keyword Research coming soon!" teaser text
- Sector requirement tooltip already existed - no changes needed
**Content Settings Page (`/account/content-settings`):**
- **NEW Backend API**: Created `/v1/system/settings/content/<pk>/` endpoints
- `GET /v1/system/settings/content/content_generation/` - Retrieve settings
- `POST /v1/system/settings/content/content_generation/save/` - Save settings
- `GET /v1/system/settings/content/publishing/` - Retrieve settings
- `POST /v1/system/settings/content/publishing/save/` - Save settings
- Content Generation tab now persists: append_to_prompt, default_tone, default_length
- Publishing tab now persists: auto_publish_enabled, auto_sync_enabled
- Fixed false "saved" confirmation - now actually saves to backend
**Sites Module:**
- **NEW Component**: Created `SiteSetupChecklist` component showing setup progress
- Displays checklist: Site created, Industry/Sectors, WordPress integration, Keywords
- Progress bar with percentage
- "Complete Setup" button linking to first incomplete item
- "Ready to create content!" message when all complete
- Updated Site Dashboard to use SiteSetupChecklist instead of mock stats
- Removed mock statistics that showed all zeros
**Cleanup:**
- Deleted `pages/Sites/Manage.tsx` (redundant duplicate of List.tsx)
- Removed empty `pages/Sites/Builder/` folder structure
- Removed `/sites/manage` route from App.tsx
- Removed SiteManage lazy import from App.tsx
### Files Changed
- `frontend/src/pages/Setup/IndustriesSectorsKeywords.tsx`
- `frontend/src/pages/account/ContentSettingsPage.tsx`
- `frontend/src/pages/Sites/Dashboard.tsx`
- `frontend/src/App.tsx`
- `backend/igny8_core/modules/system/settings_views.py`
- `backend/igny8_core/modules/system/urls.py`
### Files Created
- `frontend/src/components/sites/SiteSetupChecklist.tsx`
### Files Deleted
- `frontend/src/pages/Sites/Manage.tsx`
- `frontend/src/pages/Sites/Builder/` (empty directory)
---
## v1.1.3 - December 27, 2025
### Changed
- **Merged RULES.md into .rules** - Single rules file for AI agents
- Added documentation rules section to `.rules`
- Deleted redundant `RULES.md` file
- Now only one rules file: `.rules`
---
## v1.1.2 - December 27, 2025
### Added
- **Module Status section** in `.rules` file showing active/inactive modules
- Linker, Optimizer marked as ⏸️ Inactive (Phase 2)
- SiteBuilder marked as ❌ Removed (deprecated)
- **TODOS.md** file for tracking deprecated code cleanup
- Template for logging SiteBuilder and other deprecated code
### Changed
- Updated "Don't Do" list with warnings about inactive modules and SiteBuilder
---
## v1.1.1 - December 27, 2025
### Changed
- **Rules File Overhaul**: Simplified `.rules` file for AI agents
- Reduced from 300+ lines to ~150 lines
- Added clear Docker container names and correct exec commands
- Added one-line rules format for quick reading
- Added quick reference table pointing to INDEX.md
- Removed verbose code examples (agents should read actual codebase)
- Added changelog format with git reference requirement
- **Added Data Scoping section** clarifying Global vs Account vs Site/Sector models
- Global settings (API keys, prompts, author profiles) are platform-wide, NOT account-scoped
- Site/Sector models (Keywords, Clusters, Content) need site+sector filtering
### Added
- **MODELS.md**: Added Data Scoping Overview table and Global Models section
- Documents `GlobalIntegrationSettings`, `GlobalAIPrompt`, `GlobalAuthorProfile`
- Clear distinction between Global/Account/Site scoped models
---
## v1.1.0 - December 25, 2025
### Major Changes
**Page Consolidation:**
- **AccountSettingsPage**: Consolidated into 3 tabs (Account, Profile, Team)
- Merged separate Team and Profile pages into single Account Settings page
- Removed redundant TeamManagement.tsx and ProfileSettings.tsx pages
- **ContentSettingsPage**: Rebuilt with 3 tabs (Content Generation, Publishing, Image Settings)
- Content Generation: Append to prompt, default tone, default length
- Publishing: WordPress auto-publish and sync toggles (removed Shopify/IGNY8)
- Image Settings: Quality, style, sizes, format settings
- **PlansAndBillingPage**: Simplified to 3 tabs (Plan, Upgrade, History)
- Removed duplicate Usage tab (Usage is separate page)
**Sidebar Navigation Cleanup:**
- Removed empty SETTINGS section label
- Moved AI Models to ACCOUNT section
- Removed version badge below logo
- Removed slogan widget from sidebar bottom
- Reduced vertical spacing between menu items
- Darkened group label colors for better visibility
- Removed Publishing menu item (moved to Content Settings tab)
- Removed Team, Profile, Import/Export menu items (consolidated)
**Route Updates:**
- Added redirects for legacy paths (/team, /profile, /import-export)
- Updated navigation to new consolidated pages
### Added
- **Pre-Launch Audit Document**: Comprehensive module-by-module audit
- 37 issues identified (10 critical, 14 high, 13 medium)
- Implementation phases defined
- Quick wins listed
- Orphaned files identified
### UX Improvements (Earlier in Dec 25)
- User-friendly text across all pages
- Improved Dashboard text per plan type
- Better descriptions in Planner, Writer, Automation modules
- Updated Sites and Add Keywords pages
- Improved Help documentation
### Fixed
- PlansAndBillingPage nested comment syntax error
- Button component consistency in Publishing settings
### Known Issues (from Audit)
- Content Generation/Publishing settings not connected to backend API
- Profile settings save is placeholder (no API)
- Password change button non-functional
- API Activity data is hardcoded
- Support buttons in Help have no handlers
## v1.0.5 - December 12, 2025
### Added
- **Purchase Credits Tab**: New dedicated tab in Plans & Billing
- Separated credit package purchases from Credits Overview
- Shows all available credit packages in horizontal scrollable layout
- Payment method requirement notice for users without payment methods
### Changed
- **Plans & Billing Tab Organization**: 4 tabs instead of 3
- Current Plan → Credits Overview → Purchase Credits → Billing History
- **Link Updates**: Purchase Credits buttons now link to correct tab
---
## v1.0.4 - December 12, 2025
### Added
- **Credit Activity Tab**: Transaction history in Usage Analytics
- **Credit Costs Reference Panel**: Shows cost per operation type
### Changed
- **Usage Analytics Reorganization**: 3 tabs (Limits & Usage, Activity, API Usage)
---
## v1.0.3 - December 12, 2025
### Added
- **Color Variety in Usage Limits**: Subtle color accents per limit type
- **Credit Cost Breakdown Panel**: Detailed cost analytics
### Changed
- **Plans & Billing Enhancement**: Cost analytics in Credits Overview tab
- **Comprehensive Color Refactoring**: All components use CSS variables
---
## v1.0.2 - December 12, 2025
### Changed
- **UI/UX Reorganization**: Consolidated Usage Analytics layout
- **Design System Enforcement**: Standardized IGNY8 brand colors
### Removed
- `frontend/src/styles/account-colors.css` - deprecated custom color file
---
## v1.0.1 - December 12, 2025
### Fixed
- Usage summary endpoint routing
### Added
- **Frontend Plan Limits Display**: Visual progress bars for all plan limits
- **IGNY8 Brand Styling**: Custom CSS design system
---
## v1.0.0 - December 12, 2025 (Initial Production Release)
### Core Features
**Multi-Tenancy System:**
- Complete account isolation with row-level security
- Multi-site management per account
- Sector-based content organization
- Role-based access control (Owner, Admin, Editor, Viewer)
**Planner Module:**
- Bulk keyword import (CSV)
- AI-powered keyword clustering (GPT-4)
- Global seed keyword database (50+ industries)
- Content idea generation from clusters
**Writer Module:**
- AI content generation (GPT-4)
- Task management and queuing
- Content taxonomy system
- Status workflow (draft, review, published)
**Image Generation:**
- DALL-E 3 and Runware providers
- Featured and in-article images
- Automatic alt text generation
**Automation Pipeline:**
- 7-stage automation (keywords → images)
- Scheduled runs (daily, weekly, monthly)
- Configurable batch sizes
**WordPress Integration:**
- One-click publishing
- Bidirectional sync
- Taxonomy synchronization
**Billing & Credits:**
- Usage-based credit system
- Plan-based limits
- Monthly usage tracking
### Tech Stack
- Django 5.x + DRF
- React 19 + TypeScript
- PostgreSQL + Redis
- Celery + Celery Beat
- Docker deployment
---
## Critical Bug Fixes - December 9, 2025
### Fixed
- **User Swapping Issue**: Redis sessions + NoCacheModelBackend + session integrity checks
- **HMR Navigation Errors**: Single top-level Suspense boundary for Routes
- **Registration Token Issue**: JWT tokens now returned on signup
---
## Pre-1.0 Development
### November-December 2025
- Initial development
- Multi-tenancy architecture
- AI integration (OpenAI, DALL-E, Runware)
- WordPress integration
- Automation pipeline
- Billing system
---
## Changelog Guidelines
When adding entries:
1. Use version format: `v{major}.{minor}.{patch}`
2. Categorize: Added, Changed, Fixed, Removed, Security
3. Include date
4. Reference related documentation if applicable
5. Note breaking changes prominently
**Update this file after every release or significant change.**