Parent contract: #140
Program: #130
Depends on: #145 MCP conformance gate
Dependency
Start only after slice D (#145) proves all seven MCP commands conform to the registry.
Owned paths
backend/api/v1/chat.py
tests/unit/api/test_chat_agent_data_tools.py
tests/integration/test_chat_agent_data_loop.py
Required behavior
Derive Provider Chat data tools from the authoritative registry instead of maintaining a parallel handwritten list. Preserve existing governed proposal behavior, shared session refs and the five accepted workflow.* commands. Provider-specific Source commands remain prohibited.
Acceptance gate
Chat and MCP publish identical versions, schemas, availability and stable errors. Multi-turn sessions preserve Run/Artifact refs. Wrong Project/RBAC, missing capability and secret/untrusted-content cases fail closed and redacted. Targeted unit/integration tests pass without regressing proposal confirmation behavior.
Parent contract: #140
Program: #130
Depends on: #145 MCP conformance gate
Dependency
Start only after slice D (#145) proves all seven MCP commands conform to the registry.
Owned paths
backend/api/v1/chat.pytests/unit/api/test_chat_agent_data_tools.pytests/integration/test_chat_agent_data_loop.pyRequired behavior
Derive Provider Chat data tools from the authoritative registry instead of maintaining a parallel handwritten list. Preserve existing governed proposal behavior, shared session refs and the five accepted
workflow.*commands. Provider-specific Source commands remain prohibited.Acceptance gate
Chat and MCP publish identical versions, schemas, availability and stable errors. Multi-turn sessions preserve Run/Artifact refs. Wrong Project/RBAC, missing capability and secret/untrusted-content cases fail closed and redacted. Targeted unit/integration tests pass without regressing proposal confirmation behavior.