- Reverts docker-compose.yml to use volume mount for gemini_api_key.txt, due to format constraints.
- Restores and refines Config.load_api_keys() in config.py.
- **Crucially, calls Config.load_api_keys() at the start of gtm_architect_orchestrator.py to ensure keys are loaded.**
- Adjusts _get_gemini_api_key in helpers.py to prioritize keys from Config.API_KEYS.
- This definitively addresses the 'API Key missing' error by guaranteeing key initialization.
- Modifies docker-compose.yml to use for injecting the Gemini API key, which is more robust than volume mounting.
- Updates helpers.py to prioritize reading the API key from the environment variable.
- Removes the now-redundant file-based key loading logic from config.py and the Dockerfile.
- This change completely bypasses the problematic file system interactions within the container, providing a definitive fix for the 'API Key missing' error.
- Adds a prominent warning section to the migration guide.
- Explains that local volume mounts (sideloading) will overwrite container code.
- Explicitly states that Already up to date. on the host is mandatory before rebuilding to ensure changes are applied. This addresses a recurring debugging issue.
- Adds a version and timestamp to the orchestrator's startup logs to verify code deployment.
- Introduces extensive debug logging in config.py and helpers.py to trace the API key loading process, including exact file paths and environment variable checks. This will help diagnose the persistent 'API Key missing' error.
- Changes the expected API key filename from 'api_key.txt' to 'gemini_api_key.txt' to match the project standard.
- Enhances logging to output the absolute path when an API key file is not found, simplifying future debugging.
- Updates requirements.txt to use the new 'google-genai' package.
- Updates import statements and error messages in helpers.py to use the new library.
- Ensures the gemini_api_key.txt is copied into the Docker container to resolve API key errors.
- Refactors the gtm-architect Dockerfile for a flat, more efficient build process.
- Implements robust web scraping via BeautifulSoup in helpers.py for URL analysis in phase1.
- Makes shared library imports (gspread, pandas, etc.) in helpers.py optional to prevent ModuleNotFoundErrors in microservices.
- Implements the main execution logic in the orchestrator to handle command-line arguments.
- Updates documentation to reflect the new architecture, scraping feature, and dependency handling.
- Refactor Docker build process for gtm-app to ensure reliability
- Correct volume mounts and build context in docker-compose.yml to prevent stale code
- Fix frontend 404 error by using relative paths in index.html
- Ensure API key is correctly mounted into the container
- Stabilize Node.js to Python data passing via explicit --data argument
- Update gtm_architect_documentation.md with extensive troubleshooting guide
- 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.