- Fixed a critical in the company-explorer by forcing a database re-initialization with a new file (). This ensures the application code is in sync with the database schema.
- Documented the schema mismatch incident and its resolution in MIGRATION_PLAN.md.
- Restored and enhanced BUILDER_APPS_MIGRATION.md by recovering extensive, valuable content from the git history that was accidentally deleted. The guide now again includes detailed troubleshooting steps and code templates for common migration pitfalls.
Refactors the GTM orchestrator prompts (phases 2-9) to use a question-based strategic framework derived from the internal marketing blueprint. This new 'Meta-Framework' approach ensures strategic depth and prevents content pollution from irrelevant examples when analyzing new product categories.
- Updates orchestrator prompts in .
- Adds documentation in explaining how to modify the new strategy logic.
- Includes minor fixes to the Node.js and dependency updates in .
- Implemented semantic classification for Products (e.g. 'Cleaning', 'Logistics') and Battlecards (e.g. 'Price', 'Support').
- Created 'import_competitive_radar.py' for full 4-database relational import to Notion.
- Updated Orchestrator with new prompts for structured output.
- Cleaned up obsolete scripts.
- Extended import_relational_radar.py to include a 'Products' database.
- Implemented full dual-way relations for Companies <-> Landmines, References, Products.
- Updated documentation to reflect the 4-database architecture.
- Added import_relational_radar.py for bidirectional database structure in Notion.
- Added refresh_references.py to populate analysis data with grounded facts via scraping.
- Updated documentation for Competitive Radar v2.0.
Improves the competitor reference analysis (Step 8) by replacing the previous LLM-only approach with a grounded, scraping-based method.
- Implemented a new scraper to actively search for and parse competitor reference/case study pages.
- The analysis is now based on actual website content, significantly increasing the accuracy and reliability of the results and preventing model hallucinations.
- Updated documentation to reflect the new 'Grounded References' architecture.
Resolved multiple issues preventing the 'competitor-analysis' app from running and serving its frontend:
1. **Fixed Python SyntaxError in Prompts:** Corrected unterminated string literals and ensure proper multi-line string formatting (using .format() instead of f-strings for complex prompts) in .
2. **Addressed Python SDK Compatibility (google-generativeai==0.3.0):**
* Removed for and by adapting the orchestrator to pass JSON schemas as direct Python dictionaries, as required by the older SDK version.
* Updated with detailed guidance on handling / imports and dictionary-based schema definitions for older SDKs.
3. **Corrected Frontend Build Dependencies:** Moved critical build dependencies (like , , ) from to in .
* Updated to include this pitfall, ensuring frontend build tools are installed in Docker.
4. **Updated Documentation:**
* : Added comprehensive lessons learned regarding dependencies, Python SDK versioning (specifically and imports for ), and robust multi-line prompt handling.
* : Integrated specific details of the encountered errors and their solutions, making the migration report a more complete historical record and guide.
These changes collectively fix the 404 error by ensuring the Python backend starts correctly and serves the frontend assets after a successful build.
- Fixed TypeError in SessionBrowser by adding defensive checks for the sessions array.
- Implemented mandatory URL persistence: The research URL is now saved in DB, shown in UI, and included in reports.
- Added 'Start New Analysis' button to the session browser for better UX flow.
- Updated documentation to reflect v2.6.1 changes.
- Replaced the basic session list with a dedicated, card-based Session Browser page.
- Each session card now displays product name, category, description, and a thumbnail placeholder for better usability.
- Updated the backend DB manager to extract this rich information from the existing JSON data store.
- Refactored the frontend (App.tsx, types.ts) to support the new UI and data structure.
- Added new component SessionBrowser.tsx and its corresponding CSS.
- Updated documentation to reflect the v2.6 changes.
- Implement relational data structure in Notion as per the plan.
- Add scripts for initial data import (import_product.py) and distribution to related databases (distribute_product_data.py).
- Create helper scripts for reading Notion content.
- Update Notion_Dashboard.md and GEMINI.md with the latest implementation status, database IDs, and key lessons learned from the MVP phase, including API constraints and schema-first principles.
- Added logic to automatically flatten list-wrapped JSON responses from LLM in Impressum extraction.
- Fixed 'Unknown Legal Name' issue by ensuring property access on objects, not lists.
- Finalized v0.3.0 features and updated documentation with Lessons Learned.
- Increased logging verbosity in to track raw input to LLM and raw LLM response.
- This helps diagnose why Impressum data extraction might be failing for specific company websites.
- Enforced fresh scrape on 'Analyze' request to bypass stale cache.
- Implemented 2-Hop Impressum scraping strategy (via Kontakt page).
- Refined numeric extraction for German locale (thousands separators).
- Updated documentation with Lessons Learned.
- Updated version to v0.3.0 (UI & Backend) to clear potential caching confusion.
- Enhanced Impressum scraper to extract VAT ID (Umsatzsteuer-ID).
- Implemented 2-Hop scraping strategy: Looks for 'Kontakt' page if Impressum isn't on the start page.
- Added VAT ID display to the Legal Data block in Inspector.
- Implemented Impressum scraping with Root-URL fallback and enhanced keyword detection.
- Added 'clean_json_response' helper to strip Markdown from LLM outputs, preventing JSONDecodeErrors.
- Improved numeric extraction for German formatting (thousands separators vs decimals).
- Updated Inspector UI with Polling logic for auto-refresh and display of AI Dossier and Legal Data.
- Added Manual Override for Website URL.
- Ported robust Wikipedia extraction logic (categories, first paragraph) from legacy system.
- Implemented database-driven Robotics Category configuration with frontend settings UI.
- Updated Robotics Potential analysis to use Chain-of-Thought infrastructure reasoning.
- Added Manual Override features for Wikipedia URL (with locking) and Website URL (with re-scrape trigger).
- Enhanced Inspector UI with Wikipedia profile, category tags, and action buttons.
This commit introduces the foundational elements for the new "Company Explorer" web application, marking a significant step away from the legacy Google Sheets / CLI system.
Key changes include:
- Project Structure: A new directory with separate (FastAPI) and (React/Vite) components.
- Data Persistence: Migration from Google Sheets to a local SQLite database () using SQLAlchemy.
- Core Utilities: Extraction and cleanup of essential helper functions (LLM wrappers, text utilities) into .
- Backend Services: , , for AI-powered analysis, and logic.
- Frontend UI: Basic React application with company table, import wizard, and dynamic inspector sidebar.
- Docker Integration: Updated and for multi-stage builds and sideloading.
- Deployment & Access: Integrated into central Nginx proxy and dashboard, accessible via .
Lessons Learned & Fixed during development:
- Frontend Asset Loading: Addressed issues with Vite's path and FastAPI's .
- TypeScript Configuration: Added and .
- Database Schema Evolution: Solved errors by forcing a new database file and correcting override.
- Logging: Implemented robust file-based logging ().
This new foundation provides a powerful and maintainable platform for future B2B robotics lead generation.
- Added documentation for Notion setup and resources (notion_integration.md).
- Added scripts for authentication test, database creation, and product insertion.
- Successfully tested connection and data mapping for 'RoboPlanet Product Master'.
- Added section on 'Hardware / DSL-Leitung' explaining the detected 17m branch line (Stichleitung) causing signal reflections and timeouts.
- Clarified that 'IP Flapping' was caused by stale caching of the previous day's IP, exacerbated by incorrect DNS settings (8.8.8.8).
- Finalized troubleshooting steps for Synology and FritzBox configuration.