- Dockerfile: Install Google Chrome stable instead of Playwright npm package
(playwright-cli defaults to /opt/google/chrome/chrome path). Removed unused
Playwright npm package, kept Playwright Python for page automation.
- bundle/bundle.md: Fix orchestrator config override with correct key path
(session.orchestrator.config.extended_thinking: false) to properly override
foundation's extended_thinking: true default, which was causing empty
AI text responses.
- bundle/agents/researcher.md: Add strong pre-installed environment guardrail
telling agent NOT to install packages. Add explicit bash() tool call examples
showing correct playwright-cli syntax. Fix snapshot command (removed non-existent
-ic flag), change 'type' to 'fill' for form field syntax.
- bundle/context/researcher-instructions.md: Enrich from thin pointer to
concrete examples with correct bash() wrapping and actual playwright-cli
commands. Add 'do NOT install' guardrail.
Validated: Agent now opens Chrome browser during research queries, noVNC panel
shows live browser activity, AI generates text responses properly.
Generated with Amplifier
Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com>
- bundle/bundle.md: Add provider-anthropic with source URL and orchestrator config override
to disable extended_thinking (foundation enables it by default, causes empty text
responses for simple queries)
- Dockerfile: Add amplifier-module-provider-anthropic pip install for container
- backend/agui_adapter.py: Fix thinking block handling and empty text block rendering
- Thinking blocks no longer fall through to text handler
- Text blocks only emit START when actual content arrives
- Handle amplifierd wire format (block_index/block_type, complete text in content_block:end)
- frontend/src/hooks/useChat.ts: Reset assistantId on TEXT_MESSAGE_END to prevent stale
message IDs across turns
- tests/test_agui_adapter.py: Add extended thinking test coverage
Chat functionality now works end-to-end. Verified: login -> create session -> send message -> receive AI response visible in chat UI.
Generated with Amplifier
Sequential build failures fixed:
1. uv run playwright install chromium → playwright not in pyproject.toml/venv
Fix: npm install -g @playwright/cli playwright && playwright install chromium
Also installs @playwright/cli (the browser CLI used by research agents)
2. uv pip install amplifierd → package not on PyPI
Fix: uv pip install --system from github.com/microsoft/amplifierd
Also installs amplifier-foundation (also not on PyPI, git-only dep)
Uses uv (not plain pip) to respect [tool.uv.sources] resolution
3. COPY frontend/dist/ → dist is gitignored, breaks fresh-clone builds
Fix: build the frontend inside Docker using the installed Node.js
(npm ci + npm run build); removes the pre-built dist assumption
Other fixes:
- Add git to apt-get (required for pip/uv git+https installs)
- Fix entrypoint.sh: amplifierd uses 'serve' subcommand and NAME=URI
bundle format — was: amplifierd --port ... --bundle /path
now: amplifierd serve --port ... --bundle name=/path --default-bundle name
- Add .dockerignore to exclude node_modules, .venv, dist, .git, etc.
(keeps build context small and avoids stale artifacts in COPY steps)
- Dockerfile with Xvfb + x11vnc + noVNC for browser-in-a-URL
- search.py auto-detects DISPLAY env to run headed vs headless
- pause_for_human() function for CAPTCHA/login handoff
- Facebook Marketplace search (headed mode only, needs login)
- Updated README with both modes