The file was a manual integration script with a hard-coded
``localhost:8888`` URL and an empty ``TOKEN`` slot, not a pytest test,
but its ``test_`` filename caused pytest to collect and import it
during CI runs. Moving it under ``scripts/`` (alongside
``a2a_smoke_test.py``) and renaming to ``knowledge_smoke_test.py``
keeps it discoverable for manual runs without polluting the test tree.
Docstring updated with the new path and a reminder that the sibling
sample docs must live in the same directory.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Rename scripts/test_a2a_live.py to scripts/a2a_smoke_test.py to
prevent pytest from collecting it as a test file. Add testpaths =
["tests"] to pyproject.toml to restrict test discovery.
- Add A2A Protocol section to System settings with toggle, agent name,
description, task timeout, and trusted agents list
- Wire frontend state, WebSocket save/load, and backend handler
- Add docs/integrations/a2a-protocol.mdx with full protocol docs
- Add A2A to sidebar nav and integrations overview card
- Add live smoke test script (scripts/test_a2a_live.py)
Smoke test (scripts/smoke_test.sh) starts the server and checks 7
endpoints — health, version, dashboard, OpenAPI, sessions, settings.
Run before releases to catch startup failures.
Integration tests (32 tests) cover server boot, tool bridge
completeness, permission_mode enforcement, and memory tool timeout
guards so bugs like the v0.4.9 permission hang get caught by CI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>