14 KiB
Changelog
All notable changes to the IGNY8 platform will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
📋 Changelog Management
IMPORTANT: This changelog is only updated after user confirmation that a fix or feature is complete and working.
Changelog Structure
Each entry follows this format:
- Version: Semantic versioning (MAJOR.MINOR.PATCH)
- Date: YYYY-MM-DD format
- Type: Added, Changed, Fixed, Deprecated, Removed, Security
- Description: Clear description of the change
- Affected Areas: Modules, components, or features affected
[1.0.0] - 2025-11-24
Added
Backend Core
-
Multi-Tenancy System
- Complete account isolation with Account → Site → Sector hierarchy
- User roles: Developer, Owner, Admin, Editor, Viewer, System Bot
- Automatic account filtering via
AccountContextMiddleware - Base classes:
AccountModelViewSetandSiteSectorModelViewSet - Account isolation at database level with ForeignKey relationships
-
Authentication & Authorization
- JWT token authentication with PyJWT 2.8+
- 15-minute access token expiry
- Refresh token support
- API key authentication for WordPress integration
- Permission classes:
IsAuthenticatedAndActive,HasTenantAccess,IsEditorOrAbove,IsAdminOrOwner - Role-based access control matrix
-
Planner Module (
modules/planner/)- Keywords model with search volume, difficulty, intent tracking
- Clusters model with many-to-many keyword relationships
- ContentIdeas model linked to clusters
- AI-powered keyword clustering via
auto_clusterfunction - AI-powered content idea generation via
generate_ideasfunction - Bulk keyword import (CSV and manual)
- ViewSets:
KeywordViewSet,ClusterViewSet,ContentIdeasViewSet
-
Writer Module (
modules/writer/)- Tasks model for content creation workflow
- Content model with HTML/plain text support and unified taxonomy structure
- Images model with featured/in-article image support
- AI content generation via GPT-4 (
generate_contentfunction) - AI image generation via DALL-E 3 and Runware (
generate_imagesfunction) - Content taxonomies (
ContentTaxonomy) and attributes (unified JSON structure) - ViewSets:
TasksViewSet,ContentViewSet,ImagesViewSet,ContentTaxonomyViewSet,ContentAttributeViewSet
-
Linker Module (
modules/linker/)- Internal linking recommendations
- Link graph analysis
LinkerViewSetfor link operations
-
Optimizer Module (
modules/optimizer/)- Content quality scoring
- SEO optimization suggestions
OptimizerViewSetfor optimization operations
-
Publisher Module (
modules/publisher/)- Publishing records tracking (
PublishingRecordmodel) - Deployment records (
DeploymentRecordmodel) PublisherViewSet,PublishingRecordViewSet,DeploymentRecordViewSet
- Publishing records tracking (
-
Site Builder Module (
modules/site_builder/)- Site blueprint management (
SiteBlueprintmodel) - Page blueprint creation (
PageBlueprintmodel) - Site structure planning with clusters and taxonomies
SiteBlueprintViewSet,PageBlueprintViewSet,SiteAssetView,SiteBuilderMetadataView
- Site blueprint management (
-
Automation Module (
modules/automation/)- Automation rules engine (
AutomationRulemodel) - Scheduled tasks (
ScheduledTaskmodel) - Rule execution via Celery beat
AutomationRuleViewSet,ScheduledTaskViewSet
- Automation rules engine (
-
Integration Module (
modules/integration/)- WordPress integration support via
SiteIntegrationmodel - Connection testing:
POST /integrations/test-connection/ - Structure update:
POST /integrations/{id}/update-structure/ - Content type summary:
GET /integrations/{id}/content-types/ - Bidirectional sync support with sync status and logs
- Integration services:
IntegrationService,SyncService,ContentSyncService,SyncHealthService - Site-level sync endpoints:
/sites/{id}/sync/status/,/sites/{id}/sync/run/ IntegrationViewSetwith comprehensive sync management
- WordPress integration support via
-
System Module (
modules/system/)- AI prompt management (
AIPromptmodel with types: cluster, ideas, content, image_prompts) - Integration settings (
IntegrationSettingsmodel for OpenAI/Runware config) - Author profiles for content style (
AuthorProfilemodel) - Content strategies (
Strategymodel) - System and account settings endpoints
- ViewSets:
AIPromptViewSet,AuthorProfileViewSet,StrategyViewSet - Settings ViewSets:
SystemSettingsViewSet,AccountSettingsViewSet,UserSettingsViewSet,ModuleSettingsViewSet,AISettingsViewSet
- AI prompt management (
-
Billing Module (
modules/billing/)- Credit-based usage system
- Credit transactions tracking (
CreditTransactionmodel) - Usage analytics (
CreditUsageLogmodel) CreditServicefor credit operations- Monthly credit replenishment via Celery beat task
- ViewSets:
CreditBalanceViewSet,CreditUsageViewSet,CreditTransactionViewSet
-
AI Framework (
ai/)AIEngine- Central orchestrator for all AI operations with progress trackingAICore- Unified API client for OpenAI/Runware with rate calculationBaseAIFunction- Abstract interface for AI function implementations- AI function registry system with 5 core functions
- Progress tracking with Celery task state updates
- Cost tracking (token usage and pricing)
- Console step tracker for debugging (
ConsoleStepTracker) - Prompt registry system (
PromptRegistry) - Model configuration per account via
IntegrationSettings - Validators for payload validation
- Celery task wrapper:
run_ai_task
-
AI Functions (
ai/functions/)auto_cluster.py- Semantic keyword clusteringgenerate_ideas.py- Content idea generation from clustersgenerate_content.py- Full blog post generation with HTMLgenerate_image_prompts.py- Extract image prompts from contentgenerate_images.py- Image generation via DALL-E 3 / Runware
-
API Infrastructure (
api/)- Unified response format:
{success, data, message, request_id} - Response helpers:
success_response(),error_response(),paginated_response() - Request ID tracking via
RequestIDMiddleware - Resource tracking via
ResourceTrackingMiddleware - Rate limiting with
DebugScopedRateThrottle(bypass in DEBUG mode) - Custom pagination:
CustomPageNumberPagination(default: 10, max: 100) - OpenAPI 3.0 schema via drf-spectacular
- Swagger UI at
/api/docs/ - ReDoc at
/api/redoc/ - Centralized exception handling with unified error format
- Unified response format:
-
Celery Integration (
celery.py)- Async task processing for AI operations
- Celery beat for scheduled tasks
- Beat schedule: monthly credit replenishment, automation rule execution (every 5 min)
- Task autodiscovery from all installed apps
Frontend Core
-
React 19 Application (
frontend/)- Vite 6.1.0 build system with fast HMR
- TypeScript 5.7.2 for type safety
- React Router v7.9.5 for client-side routing
- Zustand 5.0.8 state management with localStorage persistence
- Lazy loading for all module pages (code splitting)
- Tailwind CSS 4.0.8 for styling
-
Authentication (
pages/AuthPages/,store/authStore.ts)- JWT-based authentication with automatic token refresh
- Login/signup pages
- Protected routes with
ProtectedRoutecomponent - Auth store with Zustand (user, token, refreshToken state)
- Auto token refresh on 401 errors
-
Module Pages
- Planner (
pages/Planner/): Keywords list, Clusters view, Ideas dashboard, Keyword opportunities - Writer (
pages/Writer/): Tasks dashboard, Content viewer with HTML preview, Drafts, Published list, Images gallery - Linker (
pages/Linker/): Link analysis dashboard, Content list with link suggestions - Optimizer (
pages/Optimizer/): Optimization dashboard, Content selector, Analysis preview - Thinker (
pages/Thinker/): AI prompts editor, Author profiles, Strategies, Image testing - Billing (
pages/Billing/): Credit balance, Transaction history, Usage analytics - Automation (
pages/Automation/): Rules management, Scheduled tasks list - Settings (
pages/Settings/): General, Users, Subscriptions, System, AI settings, API monitor
- Planner (
-
UI Components (
components/)- Reusable components library
- ApexCharts for data visualization
- Heroicons for icons
- Responsive layouts with Tailwind
- Form components with validation
- Modal system
- Loading states and skeletons
-
API Integration (
api/,services/)- Axios client with automatic token injection
- Request/response interceptors
- Automatic token refresh on 401
- Module-specific API clients (planner, writer, linker, etc.)
fetchAPIwrapper with unified format handling- Error handling with toast notifications
-
State Management (
store/)authStore- User authentication statesiteStore- Site and sector context- Module-specific stores (plannerStore, writerStore, etc.)
- Global app state (loading, errors, notifications)
- Zustand persist middleware for localStorage
WordPress Plugin
-
Core Plugin (
igny8-wp-integration/)- Plugin version 1.0.0
- WordPress 5.0+ compatibility
- PHP 7.4+ requirement
- Main file:
igny8-bridge.php - Uninstall cleanup:
uninstall.php
-
API Client (
includes/class-igny8-api.php)Igny8APIclass for backend communication- API key authentication (primary method)
- JWT token authentication support (fallback)
- Automatic retry on 401 errors
- Request/response parsing with unified format support
- Methods:
connect(),get(),post(),put(),delete(),parse_response()
-
REST API Endpoints (
includes/class-igny8-rest-api.php)GET /wp-json/igny8/v1/site-metadata/- Export site structureGET /wp-json/igny8/v1/post-by-task-id/{id}- Lookup by task IDGET /wp-json/igny8/v1/post-by-content-id/{id}- Lookup by content IDPOST /wp-json/igny8/v1/posts/- Create post from IGNY8PUT /wp-json/igny8/v1/posts/{id}- Update post from IGNY8- API key authentication via
X-IGNY8-API-Keyheader
-
Synchronization (
sync/)- WP → IGNY8 (
post-sync.php): Post status sync onsave_posthook - IGNY8 → WP (
igny8-to-wp.php): Content publishing via REST API - Taxonomy Sync (
taxonomy-sync.php): Taxonomy term synchronization - Hooks (
hooks.php): WordPress action/filter hook registration - Bidirectional sync with status mapping
- Post meta tracking:
_igny8_task_id,_igny8_content_id,_igny8_wordpress_status,_igny8_last_synced,_igny8_managed
- WP → IGNY8 (
-
Admin Interface (
admin/)- Settings page at Settings → IGNY8 API (
settings.php) - API key, email, password configuration
- Connection testing button
- Post columns showing IGNY8 status (
class-admin-columns.php) - Post meta boxes in editor (
class-post-meta-boxes.php) - Admin class:
Igny8Admin(class-admin.php)
- Settings page at Settings → IGNY8 API (
-
Data Collection (
data/)- Full site metadata collection (
site-collection.php) - Post type discovery with counts
- Taxonomy discovery with counts
- Link graph extraction (
link-graph.php) - Semantic mapping (
semantic-mapping.php) - WooCommerce integration support (
woocommerce.php)
- Full site metadata collection (
-
Supporting Classes (
includes/)Igny8Site- Site data collection and exportIgny8Webhooks- Webhook handlers (legacy)Igny8WebhookLogs- Webhook loggingIgny8LinkQueue- Link processing queue- Helper functions in
functions.php
Infrastructure
-
Docker Deployment (
docker-compose.app.yml)- Multi-container setup for development
- Services: PostgreSQL, Redis, Django backend, Celery worker, Celery beat
- Volume persistence for database and media
- Network isolation
-
Database (PostgreSQL 14+)
- Multi-tenant data model with account isolation
- Optimized indexes for common queries
- JSON fields for flexible configuration storage
- Database migrations system
-
Task Queue (Celery + Redis)
- Redis as message broker
- Celery worker for async tasks
- Celery beat for scheduled tasks
- Progress tracking with task state updates
Documentation
-
Master Documentation (
master-docs/)- Complete architecture documentation
- API reference with endpoint details
- Frontend and backend implementation guides
- WordPress plugin integration guide
-
Project Documentation
MASTER_REFERENCE.md- Complete system architecture and navigationREADME.md- Quick start and setup guideCHANGELOG.md- This file
Changed
- N/A (Initial release)
Deprecated
- N/A (Initial release)
Removed
- N/A (Initial release)
Fixed
- N/A (Initial release)
Security
- JWT token authentication with 15-minute expiry and refresh tokens
- Secure API key storage in WordPress using encryption helpers
- CSRF protection on all forms
- SQL injection prevention via Django ORM
- XSS protection via Django template escaping
- HTTPS enforcement in production
- Account isolation at database level with automatic filtering
- Permission-based access control with role matrix
- Rate limiting to prevent abuse
- Request ID tracking for audit trails
Version History
- 1.0.0 (2025-11-24) - Initial release with complete feature set
Versioning Strategy
- Major version (X.0.0) - Breaking changes, major architectural changes
- Minor version (1.X.0) - New features, new modules, backward compatible
- Patch version (1.0.X) - Bug fixes, minor improvements, documentation updates
Upgrade Notes
Upgrading to 1.0.0
This is the initial release. No upgrade path required.
Future upgrade notes will be documented here for each version.
Future Roadmap
Planned features and improvements (subject to change):
- Enhanced analytics and reporting
- Additional AI model integrations
- Stripe payment integration
- Advanced automation workflows
- Mobile app support
- API webhooks
- Collaborative editing features
- Multi-language support
See project board for current priorities and development status.
Note: This changelog is maintained according to Keep a Changelog principles and only updated after user confirmation of completed features and fixes.