Each task has a lock in its header (task["privacy"]); the Gates window sets the default for
new tasks, and turning the default off pins the tasks it covered. mcp_server hands every
tool result to ai_privacy.guard last, after run pictures and the user's messages were
added, so a private task's image content never leaves; a call tied to no task is private
while the default is on or a private task is unfinished. The card in the AI app shows no
pictures for it, begin_task tells the AI, and turning it on or off is a user step and a
decision. A test calls every tool with a picture in its result and checks none gets out.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- api/mcp_apps.py + api/mcp_app/task_card.html (MCP Apps, io.modelcontextprotocol/ui): apps that
support it (Claude, ChatGPT, VS Code…) show Anomalous's own card under begin_task, show_panel,
report and run_workflow results: the task's steps, latest thumbnails (inline), the AI's open
questions answered with a click (app_answer, plus a chat message so the AI goes on). The card
reads through app_task_view; both tools are for the card only (visibility "app"), are never
steps and never take the user's news. The card never answers a gate: an OK is only given in
Anomalous, so no tool an AI can reach grants one.
- api/mcp_prompts.py: prompts/list and prompts/get, four ready-made requests (slash commands):
workbench_task, pick_best, fix_missing_models, explain_canvas.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>