教程结束后的低打扰聊天支线
文档性质:proposal。 当前源码没有按本页旧版 Day 1–7 状态键实现完整“剧场后支线”系统;不要把下列建议写成已上线行为。
目标
主教程归还控制权后,可由普通 React 聊天消息提供一次可拒绝的后续入口,帮助用户重新找到刚介绍的功能。支线不能重新进入强接管教程,也不能自动点击敏感功能。
建议模型
每个候选支线至少包含:
id:稳定机器 ID;prerequisites:已完成的教程日与真实使用信号;cooldown:按用户/日期的冷却;messageKey:8 locale 中的聊天文案;actions:最多两个明确动作和一个拒绝动作;targetRoute或 command bus 命令;privacyClass:是否涉及屏幕、麦克风、文件或 Agent。
状态应由一个统一 store 管理,不再新增 avatarFloatingGuide.dayN... 的散落 localStorage 键。
候选主题
| 教程后 | 可选支线 | 限制 |
|---|---|---|
| 屏幕与语音 | 重新打开屏幕来源或设备设置 | 只导航,不自动开始采集 |
| 角色互动 | 打开 Avatar 工具菜单或小游戏入口 | 不模拟道具点击 |
| 陪伴设置 | 打开对话/隐私设置 | 不修改设置 |
| 个性化 | 打开模型、声音或角色卡管理 | 一次只推荐一个入口 |
| Agent | 打开 Agent 设置或任务 HUD | 不自动启用外部能力 |
触发约束
- 仅在主教程自然完成并已清理 overlay 后评估。
- 用户正在输入、录音、分享屏幕、执行 Agent 任务或处于小游戏时不弹出。
- 同一支线被拒绝后当天不再出现;总频率应有全局上限。
- 使用真实产品状态作为 prerequisite,不用“经过了几分钟”推测用户没用过功能。
- 消息进入唯一的 React 聊天实现;不要写入隐藏的
#chat-container。
实现前置工作
- 先确定统一状态 schema 与迁移方式。
- 复用当前 tutorial completion 事件和 React message action 契约。
- 为每个 route/command 做可用性检查。
- 添加频率、拒绝、隐私和多窗口测试。
- Electron 导航/窗口唤起需在 N.E.K.O-PC 单独设计并验证。
