Files
igny8/CHANGELOG.md
2026-01-10 09:39:17 +00:00

2406 lines
89 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.7.0
**Last Updated:** January 10, 2026
---
## Version History
| Version | Date | Summary |
|---------|------|---------|
| 1.7.1 | Jan 10, 2026 | **Image Generation Credits** - Complete credit deduction, verification, and logging for all image generation models (DALL-E 3, Runware, Google); Pre-generation credit check; AITaskLog logging; Notification integration |
| 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.7.1 - January 10, 2026
### Image Generation Credit System
This release implements complete credit deduction, verification, and logging for all 3 image generation models, ensuring consistency with other AI functions in the automation pipeline.
---
### 💰 Credit System for Image Generation
**New Credit Check Method:**
- Added `CreditService.check_credits_for_image()` in [credit_service.py:307-335](backend/igny8_core/business/billing/services/credit_service.py#L307-L335)
- Pre-checks if account has sufficient credits before image generation starts
- Uses `credits_per_image` from AIModelConfig (as configured in admin)
- Returns required credits or raises `InsufficientCreditsError`
**Pre-Generation Credit Verification:**
- Added credit check before processing images in [tasks.py:290-319](backend/igny8_core/ai/tasks.py#L290-L319)
- Checks total credits needed for all images BEFORE starting generation
- Returns error with `InsufficientCreditsError` if not enough credits
- Gracefully handles missing model configurations for backward compatibility
**Credit Deduction (Already Existed - Now Verified):**
- `deduct_credits_for_image()` called after each successful image in [tasks.py:745-770](backend/igny8_core/ai/tasks.py#L745-L770)
- Fixed cost retrieval to use `result.get('cost')` (was incorrectly using `cost_usd`)
- Credits per model (from AIModelConfig):
- `runware:97@1`: 1 credit/image (basic tier)
- `dall-e-3`: 5 credits/image (quality tier)
- `google:4@2`: 15 credits/image (premium tier)
---
### 📊 Logging & Notifications
**AITaskLog Integration:**
- Added AITaskLog logging in [tasks.py:838-875](backend/igny8_core/ai/tasks.py#L838-L875)
- Records function_name (`generate_images`), account, phase, status, cost
- Consistent with other AI function logging (clustering, content generation, etc.)
**Notification Integration:**
- Added notification creation in [tasks.py:877-895](backend/igny8_core/ai/tasks.py#L877-L895)
- Creates success notifications via `NotificationService.notify_images_complete()`
- Creates failure notifications via `NotificationService.notify_images_failed()`
- Same pattern as used in AIEngine for other AI functions
---
### 🔄 Automation Compatibility
**Verified automation flow for image generation:**
- Stage 6 in automation service calls `process_image_generation_queue` correctly
- Credit deduction happens inside the task (same as manual image generation)
- Credits tracked via `_get_credits_used()` and stored in `stage_6_result`
- Consistent with Stages 1, 2, 4, 5 credit tracking
---
### 📁 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.**