Improved agent responses to match the formatting quality of other agents
with structured, engaging content using markdown and professional styling.
## Changes:
### 📝 Enhanced Welcome Message:
- Added markdown headers and emojis for engagement
- Structured sections: 'How It Works' and 'Getting Started'
- Clear bullet points and bold emphasis for key concepts
- Professional yet friendly tone
### 🔧 Improved N8N Webhook Instructions:
- Detailed formatting requirements (headers, bold, lists, emojis)
- Clear content guidelines for systematic 5 Whys guidance
- Instructions for structured but conversational responses
- Focus on interactive guidance vs final reports
### 💻 JavaScript Markdown Processing:
- Added formatMarkdownContent() function for consistent formatting
- Processes headers (##, ###), bold text (**text**), bullet points
- Handles both new real-time messages and existing messages on load
- Shared formatting logic for consistency
### 🎨 Enhanced CSS & Template:
- Better message bubble styling for structured content
- Improved typography and spacing for readability
- Support for formatted headers, lists, and emphasis
- Added data attributes for content processing
## Expected User Experience:
- **Before**: Plain text responses lacking visual hierarchy
- **After**: Professional, structured responses with clear sections,
bullet points, bold emphasis, and engaging emojis
The 5 Whys agent now provides responses that match the quality and
formatting standards of other premium agents in the platform.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
## Major Features Added:
### 🕒 Session Time Limits (2hr → 30min)
- Updated ChatSession model: expires_at, extend_session methods
- Changed session creation and extension logic
- Updated JavaScript timing calculations
- Fixed timing indicator functionality with real-time server data
### 💬 Message Limits (50 → 20)
- Added message_limit field to Agent model with migration
- Implemented auto-completion when message limit reached
- Only count user messages (not agent responses) toward limit
- Enhanced error messaging for limit exceeded
### 📥 Chat Download System
- Added PDF and TXT export functionality using ReportLab
- Download buttons in chat header for active sessions
- Comprehensive export with session metadata and formatting
- New API endpoints: /agents/api/chat/export/{session_id}/
### 📋 Previous Sessions Management
- Created Previous Sessions widget showing last 5 non-active sessions
- Download access for all completed sessions with messages
- Session status indicators (✅ Completed, ⏰ Expired, ❌ Abandoned)
- Clean sidebar organization with session history
### 🎨 UI/UX Improvements
- Moved session info from main chat to sidebar for cleaner interface
- Increased chat height: 600px → 800px (mobile: 500px → 650px)
- Added Current Session widget with status, ID, and start time
- Enhanced sidebar layout with proper component stacking
- Responsive design with mobile optimizations
### 🔧 Session Indicators System
- Real-time session status API with server-side data
- Progress bars for time remaining and message usage
- Warning notifications for approaching limits
- Automatic updates every 30 seconds
### 💰 Payment Flow Fixes
- Fixed charging system to actually deduct wallet balance
- Each new session charges 15 AED for 20 messages + 30 minutes
- Proper error handling for insufficient balance
- Session cleanup on payment failures
## Technical Implementation:
**Backend Changes:**
- Enhanced ChatSession model with 30-minute duration
- Message counting logic (user messages only)
- Auto-completion on limit reached
- Session status API endpoint
- PDF/TXT export with ReportLab
**Frontend Changes:**
- Comprehensive sidebar widget system
- Real-time indicator updates with server sync
- Download functionality with loading states
- Session history display with status icons
- Responsive layout improvements
**Database:**
- Added message_limit field to Agent model
- Updated ChatSession expiration logic
- Efficient queries for session history
## User Experience:
✅ Clear session limits (20 messages, 30 minutes)
✅ Automatic session completion with preserved history
✅ Easy download access for all previous sessions
✅ Transparent pricing (15 AED per session)
✅ Clean, organized interface with more chat space
✅ Real-time feedback on session progress
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
BREAKING CHANGE: Complete removal of legacy workflows system
- Remove entire workflows/ directory and all related files
- Update Django settings to remove workflows from INSTALLED_APPS
- Fix all URL references from workflows:marketplace to agents:marketplace
- Update core views to use agents.models.Agent instead of config files
- Fix agent detail template component includes (workflows/components → components)
- Update documentation to reflect database-driven agents system only
- Remove N8N workflow management script (no longer needed)
Template fixes:
- Agent header, quick agents panel, processing status, results container
- All error pages (403, 404, 500) now point to agents marketplace
- Base template navigation and footer updated
- Wallet pages redirect to agents marketplace
Core changes:
- Homepage uses Agent.objects instead of get_all_agents()
- Health check counts active agents from database
- All template references updated to use components/ path
Result: Clean, streamlined agents-only system with no legacy code
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Redesign agent cards with sleek modern styling (white cards, gradient shadows)
- Implement authentication-aware UI: blue "Try Now" vs black "Login to Try"
- Add login_required decorator to agent detail views for security
- Fix quick agents panel to show only 3 working agents
- Update PDF Summarizer reset functionality to properly clear file uploads
- Remove category badges for unauthenticated users to prevent layout issues
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Updated wallet templates to use workflows:marketplace instead of agent_base:marketplace
- Fixed error page templates (404, 403, 500) with correct namespace
- Fixed quick agents panel component reference
- Wallet should now work properly without namespace errors
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Reduce template from 2024+ lines to 769 lines (62% reduction)
- Replace extensive inline CSS with template prototype framework
- Modernize JavaScript from SocialAdsModule to SocialAdsUtils pattern
- Convert to component-based architecture using template includes
- Remove duplicate processing view and clean up unused imports
- Enhance results display with rich social ad formatting
- Maintain all existing functionality and user experience
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Replace placeholder alert with functional wallet top-up link
- Update wallet_card.html to use {% url 'wallet:wallet_topup' %}
- Change from button to anchor tag with proper styling
- Links directly to /wallet/topup/ for immediate top-up access
- Affects all agent pages using the shared wallet card component
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
BREAKING CHANGES:
- Move marketplace and agent discovery views from core to agent_base app
- Transfer all wallet functionality from core to dedicated wallet app
- Move Stripe webhook handling to wallet app for better organization
- Consolidate payment system logic under single responsibility
NEW STRUCTURE:
- core app: Platform pages only (homepage, pricing)
- agent_base app: Complete agent marketplace and catalog system
- wallet app: Full payment system with Stripe integration
- Individual agent apps: Unchanged, self-contained
IMPROVEMENTS:
- Clean URL namespacing (agent_base:marketplace, wallet:wallet)
- Template organization by app responsibility
- Removed deprecated CSS files (header.css)
- Added utility classes (.hidden)
- Updated all template references to new URL structure
- Comprehensive CLAUDE.md documentation updates
TECHNICAL CHANGES:
- Templates moved: marketplace.html, agent_detail.html → agent_base/
- Templates moved: wallet*.html → wallet/
- New files: agent_base/views.py, agent_base/urls.py, wallet/urls.py
- Updated main urls.py routing configuration
- Fixed Django system checks and namespace conflicts
- Verified all functionality with test suite
This reorganization follows Django best practices with single responsibility
principle, making the codebase more maintainable and scalable.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Extract 476 lines of inline CSS from pricing.html to external pricing.css file
- Unify font stack across all pages to use 'Inter', Arial, sans-serif consistently
- Fix font weight inconsistency between marketplace and pricing page navigation
- Add clean active page indicator with thin blue underline for current page
- Optimize CSS loading order: page-specific CSS first, header-component.css last
- Remove font inheritance conflicts between agent-base.css and header component
- Standardize Inter font loading in base.html for all pages (single source of truth)
- Improve browser compatibility with font smoothing and rendering optimizations
- Add comprehensive documentation in HEADER_OPTIMIZATION.md
Key improvements:
• Consistent navigation font weight across all pages (resolves bold font issue)
• Better performance with external CSS files and browser caching
• Clean component-based CSS architecture for maintainability
• Subtle active state indicators without layout shifts
• Unified theme system with CSS custom properties
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Major fixes:
- Weather Reporter: Restore correct API-based processing pattern
* Fix form submission URL to use /agents/weather-reporter/process/
* Remove incorrect polling logic (API agents return immediate results)
* Fix response field mapping to use formatted_report instead of analysis_text
* Implement immediate response display without polling
- Agent CSS System: Enhance unified styling system
* Add missing CSS classes for status display (.status-title, .status-subtitle)
* Add enhanced typography for results content formatting
* Include modern info boxes (.key-points, .insights, .summary)
* Fix animation keyframes for proper loading states
- Template Consistency: Update agents to use shared components
* Job Posting Generator: Add cache-busted CSS and shared header/panel
* Social Ads Generator: Add unified CSS link and shared components
* Create component templates for consistent agent layouts
Key architectural insight: Weather Reporter is API-based (immediate response)
while Data Analyzer is webhook-based (async polling). Fixed Weather Reporter
to use correct pattern based on git history commit 82fc051.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>