- Add BotServerInstance::start_with_main_stack() for using real LLM
- Update E2E tests to auto-start BotServer and BotUI if not running
- Prefer Brave browser over Chrome/Chromium for CDP testing
- Upgrade chromiumoxide to 0.8
- Add browser window position/size for visibility
- Fix chat tests to require BotUI for chat interface
- Add browser_service.rs for CDP-based browser management
- Remove chromedriver dependency (use CDP directly)
- Add existing() constructors for BotServerInstance and BotUIInstance
- Use BOTSERVER_URL and BOTUI_URL env vars with sensible defaults
- Fix database defaults for existing stack mode (gbuser/gbuser)
- Add BotUIInstance struct to start botui alongside botserver
- Update E2ETestContext to start botui and use its URL as base_url
- Add start_botui() method to TestContext
- Fix harness to use env vars BOTUI_PORT and BOTSERVER_URL for botui
- Update harness to use debug build by default
- Add SKIP_LLM_SERVER env var to skip local LLM server in tests
- Make stack_path absolute and canonicalize botserver paths
- PostgresService: Find PostgreSQL from system paths or botserver-stack
- MinioService: Find MinIO from system paths or botserver-stack
- BotServerInstance: Pass --stack-path to create clean test stack
- Fix test_mock_services_available to only check enabled services
- Fix test_full_harness_has_all_services for current config
- Fix test_botserver_startup to skip if botserver not available
- All 41 e2e tests now pass
- Create platform_flow.rs with complete user journey test (load → botserver → login → chat → logout)
- Add TEMP_STACK_SETUP.md guide for using temporary isolated stacks
- Add E2E_TESTING_PLAN.md with architecture and implementation strategy
- Update e2e mod.rs to include new platform_flow module
- Include helpers for: platform loading, botserver verification, login, chat, logout
- Support for headless and headed browser testing
- Environment variable configuration for WebDriver, timeouts, logging