- market_db_manager.py: Made DB_PATH configurable via environment variable.
- Dockerfile.b2b: Included market_db_manager.py in the B2B container image.
- docker-compose.yml: Configured separate DB paths and volumes for Market Intel and B2B Assistant.
- B2B Server: Added API routes for project management (list, load, save, delete).
- B2B UI: Implemented auto-save and a 'Project History' modal for loading past runs.
- market_db_manager.py: Created SQLite manager for saving/loading projects.
- server.cjs: Added API routes for project management.
- geminiService.ts: Added client-side DB functions.
- StepInput.tsx: Added 'Past Runs' sidebar to load previous audits.
- App.tsx: Added auto-save functionality and full state hydration logic.
- StepOutreach.tsx: Improved UI layout by merging generated campaigns and suggestions into one list.
- market_intel_orchestrator.py: Updated generate_outreach_campaign to identify all relevant roles, generate top 5, and return remaining as suggestions. Added specific_role mode.
- types.ts: Added OutreachResponse interface.
- geminiService.ts: Updated to handle new response structure and specificRole parameter.
- StepOutreach.tsx: Added sidebar section for Suggested Roles with on-demand generation buttons.
- market_intel_orchestrator.py: Updated analyze_company to NOT abort if homepage scraping fails (e.g. 403 Forbidden). Instead, it sets a placeholder and proceeds using external search signals.
- market_intel_orchestrator.py: Updated get_website_text to use a modern, realistic User-Agent to reduce blocking.
- market_intel_orchestrator.py: Adjusted Gemini prompt to handle missing homepage content gracefully.
- market_intel_orchestrator.py: Rewrote prompt in generate_search_strategy to explicitly distinguish between 'Your Company (Context)' and 'Reference Client (Seed)'. This fixes the issue where the AI was searching for competitors to the user's company instead of the reference client.
- market_intel_orchestrator.py: Clarified prompt in identify_competitors.
- market_intel_orchestrator.py: Added RAW JSON debug logging to stderr to diagnose missing fields.
- StepReport.tsx: Added Search Strategy ICP, Digital Signals, and Target Pages to both the UI view and the Markdown export.
- StepReport.tsx: Fixed 'Back' button behavior to prevent state reset (uses new onBack prop).
- App.tsx: Passed handleBack to StepReport onBack prop.
- types.ts: Extended SearchStrategy interface with optional fields for the new signals.
- Added searchStrategyICP, digitalSignals, and targetPages to the JSON output in market_intel_orchestrator.py.
- Updated the prompt and fallback error handling to include the new fields.
- Added new steps (7, 8, 9) for Search Strategy ICP, Digital Signals, and Target Pages to the b2b_marketing_orchestrator.py.
- Updated STEP_PROMPTS_DE and STEP_PROMPTS_EN with corresponding prompts.
- Extended STEP_TITLES for both German and English languages.
- Modified step_keys lists in format_context_for_prompt and next_step functions.
- Updated b2b_marketing_assistant_plan.md to reflect the new report sections.
- Consolidated architecture overview in readme.md\n- Updated deployment and development sections in b2b_marketing_assistant_plan.md and market_intel_backend_plan.md
- Implement a central reverse proxy (Nginx) with Basic Auth on port 8090.
- Create a unified landing page (dashboard) to access B2B Assistant and Market Intelligence.
- Update frontends with relative API paths and base paths for subdirectory routing (/b2b/, /market/).
- Optimize Docker builds with .dockerignore and a Python-based image for market-backend.
- Enable code sideloading for Python logic via Docker volumes.
- Fix TypeScript errors in general-market-intelligence regarding ImportMeta.