dca9f2aaf0
Комментарии человека находят агента сами: короткая эфемерная строка 'new comments: N on page … — call listComments(pageId)' в результате ЛЮБОГО tool-вызова, mid-turn. Общий хелпер packages/mcp/src/comment-signal.ts (createCommentSignalTracker: watermark + per-page debounce + working-set; buildCommentSignalLine; defangCommentSignalTitle). - Standalone MCP (index.ts): второй wrapper в choke point registerTool (паттерн метрик #402) — отдельный {type:'text'} content-элемент, форма результата не меняется. Источник: rate-limited listComments по working-set, title через getPageRaw только на hit. State per-session. - In-app (ai-chat-tools.service.ts): execute ВСЕГДА возвращает сырой результат (part.output/цитаты не трогаются), сигнал доставляется модели через отдельный toModelOutput ({type:'content', value:[raw, signal]}) — зеркало MCP; no-signal ветка точно воспроизводит дефолт SDK. Источник: REST-probe (осознанный форк от DB-count из ТЗ — чтобы не менять конструктор сервиса и не ломать спеки). - Инъекционная защита: в сигнал идут только count+pageId+defanged-title, НИКОГДА текст комментария (untrusted). Per-page watermark (не глобальный) — комментарии на второй странице не теряются. closes #417 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>