架构变更(主人要求,design/07 §1/§2 已改定稿):把「9 个行为模式 = 9 个独立页面」改为 「一个共享页面 + 每条消息绑 mode,消息框按对应 mode 渲染」。 - ChatMessage 增 mode?(types.ts);useAppStore addUserMessage/beginAssistant 带 mode; useSendChat.send(text, mode) / chatStream body 带 mode(通知后端按 mode 回复)。 - MessageBubble 按 message.mode 分发到 components/messages/ 各形态渲染器 (chat 气泡 / code 等宽代码块 / home 设备卡 / docs 文档卡 / work 任务卡 / vision 视觉卡)。 - ChatInput 顶部加「行为模式」chip 切换下一条消息的 mode(默认 chat);输入框上方显示当前模式。 - ModeRouter 收敛为只渲染 ChatShell;删除 9 个旧独立 mode 页面;Nav/TopBar 的 mode 改为 「输入模式」语义;settings 归管理面板(design/10)。 同时补全上一轮 emoji→MD3 图标(约 23 文件):新增 Icon.tsx(MD3 SVG、IconName、零依赖、 离线优先),全部界面 emoji 替换为 <Icon name=... />;正文说明箭头保留。 npm run build 绿(tsc 0 错,79→71 模块,JS 284KB/gzip 86KB)。
新增 src/components/Icon.tsx(Material Symbols Rounded 风格,24 viewBox / currentColor / 零运行时依赖 / 可 tree-shake / 离线优先),导出 <Icon name size /> 与 IconName 类型, 覆盖全部现有界面图标的语义映射(chart/dna/chat/memory/docs/plugin/channel/device/robot/ clock/agent/night/trend/users/settings/light/ac/mic/micOff/sun/moon/lock/block/check/close/ gear/file/package/folder/shield/storage/refresh/vision/home/arrow/terminal)。 将用户端(Nav/TopBar/ChatInput/chat + 各 modes)与管理面板(sidebar 15 模块/Dashboard 卡片/System SectionTitle/Observability StatCard/Agents/Backthink/Automations/AdminTable empty)中的 emoji 图标全部替换为 <Icon name=... />,icon 字段由 string 改为 IconName / ReactNode。保留正文说明性箭头(如“设置→连接”)与流程方向箭头。 npm run build(tsc --noEmit + vite build)通过:79 模块,JS 300KB/gzip 90KB。