API interna (engine para api)

As rotas sob /internal/* são chamadas só pelo engine, com o token de serviço compartilhado (X-Brabo-Service-Token). O inventário completo das rotas está em security-surface.md.

Perguntas em aberto

POST /internal/projects/:projectId/open-questions/:questionId/answer

Um agente fecha uma pergunta em aberto que o usuário respondeu no chat (RN-1002).

Corpo: { sessionId: string, agentId: string, resposta?: string, messageEventId?: string }.

Status Corpo Quando
200 { status: "answered", questionId } fechada agora
200 { status: "already_answered", questionId } já estava fechada (idempotente, nunca 409)
400 corpo inválido, ou sem resposta e a pergunta não tem sugestão
404 pergunta fora deste projeto, ou sessionId fora deste projeto

Grava o mesmo par decision_record + open_question.answered da resposta humana e retoma o gate de QA estacionado das tarefas afetadas. Sem resposta, a sugestão da pergunta é a resposta.