mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-10-25 21:20:00 +00:00
070d2a0e53
## Why The in-app Assistant chat window was retired in #3126. Several backend routes existed only for that window, and Pulse Mobile, the remaining chat client, never called them. This removes them and the code that only they reached. ## What changes - **Routes removed:** - `GET /api/ai/assistant/surface-tools` - `POST /api/ai/workflow-prompts/render` - `POST /api/ai/question/{id}/answer` - the `/summarize`, `/fork`, `/undo`, `/redo`, `/steer`, `/diff`, `/revert` and `/unrevert` sub-resources under `/api/ai/sessions/{id}`. These now return `404` after the existing `ai:chat` scope check. - **Code removed behind them:** - the handlers and their `AIService` methods; - the chat service's fork, undo, redo, steer, summarize, answer-question and surface-tool methods; - the session store's fork and turn-undo operations and the persisted redo stack (`can_redo` leaves session summaries); - session compaction, the agent loop's steering inbox and question-answer wait, the `steered` message flag, and the `question` and `steer_applied` stream events. - **The question tool is no longer offered.** Interactive chat still offered `pulse_question`, and Pulse Mobile has no way to answer it, so a Mobile turn that called it waited until the request ended. Now: - no profile offers the tool; - the agent loop answers any call with a refusal telling the model to ask in its reply text, the same path Patrol runs already took; - the chat system prompt no longer mentions a clarification tool; - the agent capabilities manifest's Pulse Assistant surface no longer declares the `interactiveQuestions` affordance, so the prompt's affordance text, the fallback governance names, and the generated `docs/AI.md` and `cmd/pulse-mcp/README.md` surface blocks drop it. The External agents settings panel stops showing an "Interactive questions" affordance for Pulse Assistant. The shared `pulse_question` declaration stays. - **Docs and contracts:** - `docs/API.md` lists the remaining routes under "Chat Sessions (Pulse Mobile)", including the rename route Mobile already used. - The ai-runtime and api-contracts rules for the removed workflows are rewritten, and the dependent contracts carry dated notes. ## Unchanged - `/api/ai/chat` and the session list, create, rename, delete, messages and abort routes, which are the Pulse Mobile relay route list. - `/api/ai/status`, which the dev health check uses. - `/api/ai/workflow-prompts/activity`, which Patrol uses. - Patrol investigations, provider routing, model-boundary sanitizing and approvals. - Old session files: they load as before and drop the redo stack and `steered` flags on their next write. ## Not in this PR - The Pulse Assistant surface description in the manifest, which still calls it a handoff surface for Patrol findings. It now describes Pulse Mobile chat and can be reworded with the surface contract when Mobile retires. - The browser's legacy fallback in `frontend-modern/src/api/agentCapabilities.ts`. It still gives Pulse Assistant `interactiveQuestions` when a manifest declares no affordances at all. A same-version server always declares them, so that path is unused; it changes with the surface description. - The dead `highlight.js` chunk rule in `vite.config.ts`. ## Release note > Removed API routes the retired in-app chat window used: Assistant surface tools, workflow-prompt rendering, question answers, and the session summarize, fork, undo, redo, steer, diff, revert and unrevert routes. Pulse Mobile's chat is unaffected.