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>
- Replace "dashboard" terminology with "agent" throughout template
- Update CSS classes from dashboard-* to agent-*
- Change page title from "Data Analyzer Dashboard" to "Data Analyzer"
- Update JavaScript function names from initializeDashboard to initializeAgent
- Maintain all existing functionality while using proper agent terminology
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Replace objects.create() with get_or_create() to prevent duplicate responses
- Handle case where response already exists by updating it instead of creating new one
- Fix both success and error response creation
- Prevents 'UNIQUE constraint failed: data_analyzer_responses.request_id' error
Issue: OneToOneField relationship allows only one response per request
Solution: Use get_or_create() pattern to handle existing responses gracefully
## Issues Fixed
- Fixed TypeError: text.replace is not a function in parseMarkdown
- Enhanced type checking for null/undefined inputs in agent-utils.js
- Data analyzer now properly handles all response data types
## Enhancements
- Improved parseMarkdown function with better type safety
- Enhanced markdown parsing with proper HTML styling
- Added custom parseMarkdownToHTML for data analyzer with rich formatting
- Better handling of headers, lists, bold text, and paragraphs
## Data Analyzer Improvements
- Custom markdown parser with styled headers and lists
- Proper content extraction priority: report_text > insights_summary > raw_response.analysis
- Enhanced visual formatting with CSS variables for consistent theming
- Better error handling and fallback content
## Technical Changes
- Added typeof checks to prevent non-string inputs causing errors
- Enhanced bullet point and numbered list conversion
- Improved paragraph formatting and line break handling
- Consistent styling across all markdown elements
## Test Results
- Data analyzer successfully processes PDF files
- Returns proper JSON responses with formatted analysis
- Markdown parsing works correctly with complex content structure
- No more JavaScript type errors in console
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>