AAP loop: рендерер подписан на agent-answer:received IPC
Что изменилось
Завершён фронт AAP loop: renderer подписывается на IPC-push от main и автоматически отображает структурированные ответы в чате.
- AgentAnswerAttachment компонент: читает
designAttachmentAtomFamily(turnId)и рендерит соответствующий компонент поkind:design-artifact→DesignArtifactCard;viewer-artifact→ArtifactViewer; text/code → пустой fragment (rendered основным сообщением). - useAgentAnswerStream хук: подписывается на
agent-answer:receivedIPC push на mount, отписывается на unmount; нет memory leaks при переключении сессий. - Jotai atoms: состояние хранится в
atomFamilyпоturnId— multiple AAP per session без коллизий. - Discriminated narrowing: TS-narrowing через
kindполе гарантирует type-safe доступ к payload-полям без runtime-checks. - E2E smoke test: 6-тестовый bun:test harness валидирует полный путь emitter → router → IPC bridge без xvfb и packaged app.
Где попробовать
Любое сообщение ассистента с структурированным контентом (код-блоки, артефакты, дизайн-команды) автоматически отображается через AAP-pipeline. Откройте DevTools, чтобы увидеть agent-answer:received события.
Связано
PR #347 — DesignArtifactCard wire-up. PR #348 — e2e smoke test.