From a43662a99fe586859234176edb3aeab06b1e5d89 Mon Sep 17 00:00:00 2001 From: ethan su Date: Wed, 6 May 2026 16:35:11 +0800 Subject: [PATCH 1/2] docs(redesign): add redesign index and Logi reference spec set --- .../macos/client/docs/redesign/00-glossary.md | 188 +++++++ .../client/docs/redesign/00-redesign-index.md | 54 ++ .../client/docs/redesign/01-home-page.md | 247 +++++++++ .../docs/redesign/02-device-studio-page.md | 313 ++++++++++++ .../docs/redesign/03-ux-state-machine.md | 182 +++++++ .../00-index.md | 151 ++++++ .../01-reference-baseline.md | 303 +++++++++++ .../02-information-architecture.md | 360 +++++++++++++ .../03-home-overview-spec.md | 290 +++++++++++ .../04-device-studio-spec.md | 459 +++++++++++++++++ .../05-secondary-pages-spec.md | 374 ++++++++++++++ .../06-state-machine-spec.md | 403 +++++++++++++++ .../07-visual-system-spec.md | 474 ++++++++++++++++++ .../08-swiftui-implementation-spec.md | 288 +++++++++++ .../09-web-electron-prototype-spec.md | 418 +++++++++++++++ .../10-inspector-content-spec.md | 459 +++++++++++++++++ 16 files changed, 4963 insertions(+) create mode 100644 platforms/macos/client/docs/redesign/00-glossary.md create mode 100644 platforms/macos/client/docs/redesign/00-redesign-index.md create mode 100644 platforms/macos/client/docs/redesign/01-home-page.md create mode 100644 platforms/macos/client/docs/redesign/02-device-studio-page.md create mode 100644 platforms/macos/client/docs/redesign/03-ux-state-machine.md create mode 100644 platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/00-index.md create mode 100644 platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/01-reference-baseline.md create mode 100644 platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/02-information-architecture.md create mode 100644 platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/03-home-overview-spec.md create mode 100644 platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/04-device-studio-spec.md create mode 100644 platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/05-secondary-pages-spec.md create mode 100644 platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/06-state-machine-spec.md create mode 100644 platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/07-visual-system-spec.md create mode 100644 platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/08-swiftui-implementation-spec.md create mode 100644 platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/09-web-electron-prototype-spec.md create mode 100644 platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/10-inspector-content-spec.md diff --git a/platforms/macos/client/docs/redesign/00-glossary.md b/platforms/macos/client/docs/redesign/00-glossary.md new file mode 100644 index 0000000..95dea3a --- /dev/null +++ b/platforms/macos/client/docs/redesign/00-glossary.md @@ -0,0 +1,188 @@ +# AhaKey Studio 概念词汇表 + +更新时间:2026-05-02 +状态:规范文档(所有 redesign 文档应以本文为准) + +--- + +## 原则 + +本文档的目的是消除 AhaKey Studio 设计和开发过程中的概念混淆。每个词条给出: +- **定义**:这个词指什么 +- **不要混淆**:容易和哪些词混用 +- **用户可见文案**:UI 里应该用什么词 + +--- + +## 一、进程与运行时 + +### AhaKey Studio +**定义:** 用户打开的主 macOS 应用程序。负责配置编辑、按键映射写入、OLED 上传、UI 展示。 + +**用户可见文案:** "AhaKey Studio" + +--- + +### ahakeyconfig-agent(后台守护进程) +**定义:** 一个独立的后台进程(macOS LaunchAgent),由 AhaKey Studio 安装和管理。负责监听 Claude/Cursor/Codex 的 Hook 事件,通过 BLE 向键盘发送灯效状态、读取拨杆位置。用户不直接操作它。 + +**不要混淆:** +- 不要叫"Agent 模式"——这不是一种使用模式,是一个后台进程 +- 不要叫"AI Agent"——它不是 AI,是一个状态桥接进程 +- 不要在 UI 里暴露"ahakeyconfig-agent"这个技术名称 + +**用户可见文案:** "后台服务"或"状态同步服务"(如果必须提及) + +--- + +### AI 工具 / AI 平台(Claude Code / Cursor / Codex 等) +**定义:** 用户在电脑上运行的 AI 编程工具。AhaKey 通过 Hook 机制感知这些工具的状态,并把状态映射到键盘灯效和按键行为。 + +**不要混淆:** +- 不要叫"Agent"——Claude Code / Cursor 本身不是 AhaKey 的 Agent +- 不要叫"模式"——这是"平台"或"工具上下文" + +**用户可见文案:** "Claude Code"、"Cursor"、"Codex"(直接用产品名) + +--- + +### 通用智能体(Hermes / OpenClaw 等) +**定义:** 用户本地运行的通用 AI Agent 运行时,不绑定特定 IDE。可能同时运行多个实例,通过 app id / port 区分。 + +**不要混淆:** +- 和 ahakeyconfig-agent(后台守护进程)是完全不同的东西 +- 和 Claude Code / Cursor(IDE 工具)也不同——通用智能体没有固定的 Hook 协议 + +**用户可见文案:** "本地 Agent"(作为类别名),具体实例用产品名("Hermes"、"OpenClaw") + +--- + +## 二、BLE 连接 + +### BLE 连接持有方 +**定义:** CoreBluetooth 限制同一时刻只能有一个进程持有与键盘的 GATT 连接。持有方可以是 AhaKey Studio(主 App)或 ahakeyconfig-agent(后台守护进程)。 + +**不要混淆:** +- 不要叫"App 模式 / Agent 模式"——这不是模式,是底层资源的持有状态 +- 不要把这个概念暴露给用户——用户不需要知道"谁持有 BLE" + +**用户可见文案:** 不直接暴露。翻译成用户能理解的两种状态(见下) + +--- + +### 配置模式(App 持有 BLE) +**定义:** AhaKey Studio 持有 BLE 连接,可以向键盘写入配置。此时后台守护进程断开,灯效不跟随 AI 工具状态。 + +**触发:** 用户点击"编辑配置"按钮 + +**用户可见文案:** "配置中"(顶栏 chip) + +--- + +### 运行模式(后台守护进程持有 BLE) +**定义:** 后台守护进程持有 BLE 连接,灯效跟随 AI 工具状态,拨杆生效。此时 AhaKey Studio 无法向键盘发送 BLE 命令。 + +**触发:** 用户点击"完成配置"/ App 启动默认状态 + +**用户可见文案:** "运行中"(顶栏 chip) + +--- + +## 三、配置状态 + +### 草稿(Draft) +**定义:** 用户在 AhaKey Studio 里正在编辑的配置,存储在本地,尚未写入键盘。草稿在 App 关闭后持久化。 + +**不要混淆:** +- 不要叫"本地配置"——容易和"已同步配置"混淆 +- 不要叫"当前配置"——"当前"有歧义(是草稿还是设备上的?) + +**用户可见文案:** 不直接暴露"草稿"这个词。通过"未同步改动 N 项"间接表达。 + +--- + +### 已同步配置(Last Synced) +**定义:** 上一次成功写入键盘的配置快照,存储在本地。是 App 知道的"键盘应该是什么状态"。 + +**不要混淆:** +- 不等于"设备真实状态"——键盘可能在 App 不知情的情况下被其他工具修改 +- 不等于"草稿"——草稿是用户正在编辑的,已同步配置是上次写入的 + +**用户可见文案:** 不直接暴露。通过"已同步"状态标注间接表达。 + +--- + +### 设备真实状态(Device Ground Truth) +**定义:** 键盘此刻实际运行的配置。只有在 App 持有 BLE 且主动查询时才可知。运行模式下(后台守护进程持有 BLE)对 App 不可观测。 + +**不要混淆:** +- 不等于"已同步配置"——两者可能因为固件更新、其他工具写入等原因产生差异 + +**用户可见文案:** 不直接暴露。仅在切换到配置模式时触发一次查询,差异通过 banner 提示。 + +--- + +## 四、平台与模式 + +### 平台(Platform) +**定义:** 用户当前使用的 AI 工具上下文,决定了键盘按键的行为映射。对应固件层的 Mode 0/1/2,但用户不需要知道 Mode 编号。 + +**不要混淆:** +- 不要叫"模式"——"模式"在 AhaKey 里有太多含义(固件 Mode、配置模式、运行模式) +- 不要叫"场景"——太模糊 + +**用户可见文案:** 直接用产品名("Claude Code"、"Cursor"、"Codex") + +--- + +### 固件 Mode(Mode 0 / 1 / 2) +**定义:** 键盘固件内部的工作档位,决定了按键发出的 HID 码。是技术实现细节,不是用户概念。 + +**不要混淆:** +- 不要在 UI 里暴露"Mode 0 / 1 / 2"——用平台名替代 +- 不要叫"模式"(在用户文案里) + +**用户可见文案:** 不暴露。内部映射:Mode 0 = Claude Code,Mode 1 = Cursor,Mode 2 = Codex(默认,可配置) + +--- + +### Hook +**定义:** 安装在 AI 工具(Claude Code / Cursor / Codex)里的脚本,在工具执行特定操作时触发,向后台守护进程发送状态事件。 + +**用户可见文案:** "Hook"(技术用户可以理解),或"状态感知"(面向普通用户时) + +--- + +## 五、操作 + +### 同步(Sync) +**定义:** 把草稿写入键盘的操作。需要 App 持有 BLE 连接。 + +**用户可见文案:** "同步到键盘"(主按钮) + +--- + +### 编辑配置 +**定义:** 切换到配置模式的操作(App 抢占 BLE)。 + +**用户可见文案:** "编辑配置"(按钮) + +--- + +### 完成配置 +**定义:** 切换回运行模式的操作(App 释放 BLE,后台守护进程重新连接)。可以选择同步后切换,也可以不同步直接切换。 + +**用户可见文案:** "完成"或"同步并完成"(按钮,根据是否有未同步改动动态变化) + +--- + +## 六、禁止使用的词 + +| 禁止词 | 原因 | 替代词 | +|--------|------|--------| +| Agent 模式 | 混淆"后台守护进程"和"AI Agent"两个概念 | 运行模式 | +| App 模式 | 不直观,用户不理解"App"在这里的含义 | 配置模式 | +| 模式(单独使用) | 在 AhaKey 里有四种不同含义,必须加限定词 | 加限定词:固件 Mode / 配置模式 / 运行模式 / 平台 | +| 当前配置 | 歧义:是草稿还是已同步? | 草稿 / 已同步配置(明确区分) | +| Agent 控制中 | 暴露了技术实现细节 | 运行中 | +| 设备信息 · Agent | 把设备信息和 Agent 混在一起 | 设备信息(独立)/ 后台服务(独立) | diff --git a/platforms/macos/client/docs/redesign/00-redesign-index.md b/platforms/macos/client/docs/redesign/00-redesign-index.md new file mode 100644 index 0000000..abf1d43 --- /dev/null +++ b/platforms/macos/client/docs/redesign/00-redesign-index.md @@ -0,0 +1,54 @@ +# AhaKey Studio macOS — 重设计文档索引 + +更新时间:2026-05-02 + +## 目录定位 + +本目录存放 AhaKey Studio macOS 客户端的 UI/UX 重设计过程中产生的**决策文档、设计规范和架构思考**。 + +与 `docs/` 根目录下的文档的区别: +- 根目录文档(`ahakey-native-director-brief.md`、`02-ux-blueprint.md`)是**当前已落地实现的规范** +- 本目录文档是**正在演进中的重设计方向**,经过审批后会合并或替换根目录文档 + +## 设计参考基准 + +| 参考产品 | 借鉴维度 | 不借鉴维度 | +|---------|---------|----------| +| Logi Options+ | 首页设备 hero、信息架构分层、Settings 层级、右上角操作区 | 多设备生态复杂度、Flow 跨设备功能 | +| Typeless | 侧栏克制、试用卡样式、权限引导优雅度 | 仪表盘指标、历史记录页 | +| Via / QMK Configurator | 画布点击配置交互、按键映射 UX | 工程师向的信息密度 | + +## 文档列表 + +| 文件 | 内容 | 状态 | +|------|------|------| +| [00-glossary.md](./00-glossary.md) | **概念词汇表(所有文档的用词基准)** | 规范 | +| [01-home-page.md](./01-home-page.md) | 首页(设备 Hero 页)重设计规范 | 草稿 | +| [02-device-studio-page.md](./02-device-studio-page.md) | 设备配置页(Studio)重设计规范 | 草稿 | +| [03-ux-state-machine.md](./03-ux-state-machine.md) | UX 状态机:连接/控制权/草稿同步三层状态 | 草稿 | +| [04-navigation-architecture.md](./04-navigation-architecture.md) | 全局导航架构与页面拆分方案 | 待写 | +| [04-settings-hierarchy.md](./04-settings-hierarchy.md) | Settings 面板层级规范 | 待写 | +| [05-voice-page.md](./05-voice-page.md) | 语音设置页重设计规范 | 待写 | +| [06-agent-page.md](./06-agent-page.md) | Agent 控制台页重设计规范 | 待写 | +| [logi-options-plus-reference-spec/09-web-electron-prototype-spec.md](./logi-options-plus-reference-spec/09-web-electron-prototype-spec.md) | **下一轮 Web / Electron 原型交付 spec** | 草稿 | +| [logi-options-plus-reference-spec/10-inspector-content-spec.md](./logi-options-plus-reference-spec/10-inspector-content-spec.md) | **Inspector 逐部件内容边界与信息披露层次** | 草稿 | + +## 专题目录 + +| 目录 | 内容 | 状态 | +|------|------|------| +| [logi-options-plus-reference-spec/](./logi-options-plus-reference-spec/00-index.md) | 以 Logi Options+ 为高保真参考样本的前台壳重构专题 spec | 草稿 | + +## 下一轮执行口径 + +截至 2026-05-03,下一轮优先做 **Web 前端原型**,必要时再用薄 Electron 壳包装给合作者体验;不在本轮完整构建 macOS 桌面应用。SwiftUI 拆分方案保留为后续原生迁移参考。 + +## 核心设计判断(持续更新) + +1. **首页是设备选择器,不是功能入口。** 用户打开 App 的第一个问题是"我要配置哪个设备",而不是"我要用哪个功能"。即使当前只有一个设备,首页也应该以设备 hero 为中心,为生态扩展预留结构。 + +2. **三条产品主线必须分离。** 配置主线(键盘编辑)、状态反馈主线(Agent/Hook/灯效)、控制权主线(App vs Agent 蓝牙占用)不能混在同一个页面。每个导航目的地只回答一个问题。 + +3. **Inspector 只做属性编辑。** 语音配置、Agent 状态、权限管理不属于 Inspector 的职责范围,应该迁移到独立页面。Inspector 的职责是:当前选中硬件部件的属性编辑面板。 + +4. **Settings 是元操作的容器。** 只有"不属于任何具体功能页面、但影响全局行为"的操作才进 Settings。具体功能的配置(语音预设、Agent 选择)留在对应功能页面。 diff --git a/platforms/macos/client/docs/redesign/01-home-page.md b/platforms/macos/client/docs/redesign/01-home-page.md new file mode 100644 index 0000000..7fab248 --- /dev/null +++ b/platforms/macos/client/docs/redesign/01-home-page.md @@ -0,0 +1,247 @@ +# 首页(设备 Hero 页)重设计规范 + +更新时间:2026-05-02 +状态:草稿 + +参考:Logi Options+ 首页(设备总览页) + +--- + +## 1. 页面定位 + +**首页回答一个问题:我有哪些 AhaKey 设备,我要配置哪一个?** + +首页不是功能入口,不是仪表盘,不是状态监控页。它是一个**设备选择器**,以设备的视觉形态为中心,让用户建立"我在配置一个真实的物理设备"的心智。 + +当前实现的问题:App 启动后直接进入配置界面(`AhaKeyStudioView`),跳过了设备选择层。这在只有一个设备时可以接受,但结构上是错的——它把"选择设备"和"配置设备"混在了同一个视图里。 + +--- + +## 2. 页面结构 + +``` +┌─────────────────────────────────────────────────────────────────┐ +│ 顶栏 │ +│ [AhaKey Studio] [+ 添加设备] [⚡ 快捷操作] [⚙] │ +├─────────────────────────────────────────────────────────────────┤ +│ │ +│ │ +│ 设备 Hero 区(可滚动) │ +│ │ +│ ┌──────────────────────────────────┐ │ +│ │ │ │ +│ │ AhaKey 键盘渲染(1:1) │ │ +│ │ │ │ +│ └──────────────────────────────────┘ │ +│ vibe code 154F │ +│ 🔋 68% · 已连接 · Mode 2 │ +│ │ +│ (未来:多设备时横向排列,类 Logi Options+ 布局) │ +│ │ +│ │ +└─────────────────────────────────────────────────────────────────┘ +``` + +--- + +## 3. 顶栏设计 + +顶栏采用**三区布局**:左品牌 / 中空 / 右操作区。 + +### 3.1 左侧:品牌区 + +- App 名称:`AhaKey Studio` +- 不放设备状态(设备状态在 hero 区下方) +- 不放 Pro Trial 徽章(Trial 状态放在 hero 区下方或侧边) + +### 3.2 右侧操作区(从左到右) + +``` +[+ 添加设备] [⚡ 快捷操作] | [⚙ 设置] +``` + +**+ 添加设备**:扫描并配对新设备。当前版本可以是一个扫描 BLE 的 sheet。 + +**⚡ 快捷操作**(对应 Logi Options+ 的 Smart Actions): +见第 4 节详细说明。 + +**⚙ 设置**:全局设置面板。见第 5 节详细说明。 + +**账户图标**:暂不需要。AhaKey 当前无需用户鉴权。 +Trial/Pro 状态通过 hero 区下方的徽章或侧边卡片展示,不需要独立账户入口。 +(未来如果引入云同步或订阅,再加账户图标。) + +--- + +## 4. 快捷操作(⚡ Quick Actions) + +对应 Logi Options+ 的 Smart Actions,但语义完全不同。 + +Logi Options+ 的 Smart Actions 是跨设备自动化工作流。AhaKey 的快捷操作是**一键切换当前工作上下文**。 + +### 4.1 核心操作 + +| 操作 | 说明 | +|------|------| +| **切换到 Agent 模式** | 将键盘切换到 Agent 控制模式(拨杆自动批准 + Agent 接管蓝牙) | +| **切换到 IDE 模式** | 将键盘切换到 IDE 配置模式(App 控制蓝牙,用户手动操作) | +| **同步所有配置到设备** | 一键把当前草稿全部同步到键盘 | +| **重启 Agent** | Agent 进程异常时快速重启 | + +### 4.2 交互形式 + +点击 ⚡ 图标后弹出一个轻量 popover(不是 sheet,不是新窗口),列出上述操作。 + +每个操作用一行:图标 + 标题 + 当前状态说明。例如: + +``` +⚡ 快捷操作 +───────────────────────────── +🤖 切换到 Agent 模式 + 当前:IDE 模式 · App 控制蓝牙 + +🖥 切换到 IDE 模式 + 当前:已在 IDE 模式 + +↑ 同步所有配置到设备 + 上次同步:3 分钟前 + +↺ 重启 Agent + Agent 状态:未运行 +───────────────────────────── +``` + +### 4.3 为什么不用 segmented control 或 toolbar 按钮 + +Agent 模式 / IDE 模式的切换不是高频操作——用户不会每隔几分钟就切换一次。把它放在 toolbar 的 segmented control 里会让 toolbar 显得很重。放在 Quick Actions popover 里,既保持了 toolbar 的轻量,又让操作可发现。 + +--- + +## 5. 设置面板(⚙ Settings) + +Settings 只放**元操作**:不属于任何具体功能页面、但影响全局行为的配置。 + +具体功能的配置(语音预设、Agent 选择、按键映射)留在对应功能页面,不进 Settings。 + +### 5.1 层级结构 + +``` +设置 +│ +├── 通用(General) +│ ├── 登录时启动 AhaKey Studio +│ ├── 外观:浅色 / 深色 / 跟随系统 +│ └── 语言(如果未来支持多语言) +│ +├── 设备(Device) +│ ├── 默认连接行为(自动连接 / 手动连接) +│ ├── 断开连接时的行为(保持草稿 / 重置) +│ └── 固件更新(检查更新 / 自动更新) +│ +├── Agent 与 Hook +│ ├── Claude Hooks 安装状态 + 安装/卸载 +│ ├── Cursor Hooks 安装状态 + 安装/卸载 +│ ├── Codex Hooks 安装状态 + 安装/卸载 +│ └── Agent 自动启动(登录时 / 手动) +│ +├── 语音(Voice) +│ ├── 默认语音预设(macOS 原生 / Typeless / 微信 / …) +│ ├── 转写语言 +│ └── 权限管理(麦克风 / 语音转写 / 输入监控 / 辅助功能) +│ +├── 通知(Notifications) +│ ├── 设备连接/断开通知 +│ ├── Agent 状态变化通知 +│ └── 同步完成通知 +│ +└── 高级(Advanced) + ├── 诊断模式(展开 BLE 日志、UUID、通信帧) + ├── 导出诊断文件 + ├── 重置所有配置到出厂默认 + └── 关于(版本号、开源协议、反馈入口) +``` + +### 5.2 分层原则 + +**一级分组**(侧栏导航):通用 / 设备 / Agent 与 Hook / 语音 / 通知 / 高级 + +**二级内容**(右侧面板):每个分组对应一个设置面板,用 `Form` 或分组列表展示。 + +**高级分组的处理**:高级分组里的内容(诊断模式、BLE 日志)对普通用户是噪音,但对开发者和售后很重要。建议: +- 高级分组默认折叠或放在列表最底部 +- 诊断模式用一个 toggle 开关控制,开启后才展示 BLE 细节 +- 不要把 BLE UUID、通信日志等工程信息放在普通用户能轻易看到的地方 + +### 5.3 Settings 的实现形式 + +macOS 原生 Settings 用 `Settings` scene(SwiftUI)或 `NSWindowController` + `NSTabViewController`。 + +推荐用 SwiftUI 的 `Settings` scene,配合 `Form` 和 `Section`,风格与系统偏好设置一致。 + +--- + +## 6. 设备 Hero 区 + +### 6.1 单设备状态(当前) + +设备渲染居中,下方显示: +- 设备名(可编辑,双击进入编辑) +- 电量 + 连接状态 + 当前 Mode +- 点击设备渲染 → 进入 Studio 配置页 + +### 6.2 多设备状态(未来) + +多个设备横向排列,类 Logi Options+ 布局: +- 每个设备一个卡片,包含渲染 + 名称 + 状态 +- 点击卡片 → 进入该设备的 Studio 配置页 +- 未连接的设备显示为灰色/半透明 + +### 6.3 无设备状态 + +显示一个空状态区域: +- 插图(AhaKey 键盘轮廓,虚线风格) +- 文案:「还没有连接的设备」 +- 按钮:「+ 添加设备」 + +### 6.4 设备渲染的技术实现 + +当前 `AhaKeyKeyboardCanvasView` 是一个 SwiftUI 绘制的 1:1 键盘画布,用于配置页。 + +首页的设备渲染可以复用同一个 View,但以**只读模式**展示(不显示热区高亮,不响应点击配置)。 +点击整个设备区域 → 导航到 Studio 配置页。 + +--- + +## 7. 与现有实现的关系 + +### 当前实现 + +``` +ContentView.swift + └── AhaKeyStudioView.swift(直接进入配置界面) +``` + +### 目标结构 + +``` +ContentView.swift + ├── HomeView.swift(首页:设备 Hero 页)← 新增 + │ └── 点击设备 → 导航到 StudioView + └── StudioView.swift(配置页:画布 + Inspector)← 重构自 AhaKeyStudioView +``` + +### 迁移策略 + +1. 新建 `HomeView.swift`,实现首页结构 +2. `AhaKeyStudioView` 重命名为 `StudioView`,作为从首页导航进入的子页面 +3. `ContentView` 改为根据连接状态决定显示 `HomeView` 还是直接进入 `StudioView` +4. 语音配置、Agent 状态从 `StudioView` 的 Inspector 迁移到独立页面(见后续文档) + +--- + +## 8. 待决策项 + +- [ ] 首页是否需要侧栏导航?(Logi Options+ 没有侧栏,导航完全通过设备点击) +- [ ] 快捷操作 popover 的触发方式:点击图标 vs 长按设备渲染 +- [ ] 设备渲染在首页是否需要动效(OLED 动图、灯条动效) +- [ ] Trial/Pro 状态的展示位置:hero 区下方 vs 顶栏右侧 vs 侧边卡片 diff --git a/platforms/macos/client/docs/redesign/02-device-studio-page.md b/platforms/macos/client/docs/redesign/02-device-studio-page.md new file mode 100644 index 0000000..3e57746 --- /dev/null +++ b/platforms/macos/client/docs/redesign/02-device-studio-page.md @@ -0,0 +1,313 @@ +# 设备配置页(Studio)重设计规范 + +更新时间:2026-05-02 +状态:草稿 + +参考:Logi Options+ 设备详情页(Keys / Easy-Switch / Settings 三段导航 + Add Application 机制) + +--- + +## 1. 页面定位 + +**设备配置页回答一个问题:这台 AhaKey 键盘在不同 AI 工具上下文里,每个硬件部件应该做什么?** + +从首页点击设备渲染后进入本页。本页是 AhaKey Studio 的核心工作区。 + +--- + +## 2. 页面骨架 + +``` +┌─────────────────────────────────────────────────────────────────────┐ +│ ← AhaKey Studio [Claude] [Cursor] [Codex] [+] [⚙ 设置] │ +│ vibe code 154F │ +├──────────┬──────────────────────────────────────────────────────────┤ +│ │ │ +│ 左侧 │ 中央:键盘画布(1:1,可点击热区) │ +│ 导航 │ │ +│ │ │ +│ ⌨ 按键 │ │ +│ 🖥 OLED │ │ +│ 💡 灯条 │ │ +│ 🔀 拨杆 │ │ +│ │ │ +│ ───── │ │ +│ 🤖 Agent │ │ +│ 🎙 语音 │ │ +│ │ │ +│ ───── │ │ +│ ℹ 设备 │ │ +│ │ │ +│ ───── │ │ +│ 🔋 68% │ │ +│ ⚡ Mode2 │ │ +│ │ │ +└──────────┴──────────────────────────────────────────────────────────┘ +``` + +当用户点击画布上的某个热区后,右侧 Inspector 展开: + +``` +┌──────────┬──────────────────────────────┬──────────────────────────┐ +│ 左侧 │ 中央:键盘画布 │ 右侧:Inspector │ +│ 导航 │ (Key 1 高亮选中) │ │ +│ │ │ Key 1 · 语音键 │ +│ ⌨ 按键 │ │ ───────────────────── │ +│ 🖥 OLED │ │ [Claude 上下文] │ +│ 💡 灯条 │ │ 语音预设:macOS 原生 │ +│ 🔀 拨杆 │ │ 快捷键绑定:F18 │ +│ │ │ 按键描述:Record │ +│ ───── │ │ │ +│ 🤖 Agent │ │ ───────────────────── │ +│ 🎙 语音 │ │ [同步到键盘] │ +│ │ │ │ +└──────────┴──────────────────────────────┴──────────────────────────┘ +``` + +--- + +## 3. 顶栏设计 + +### 3.1 左侧:返回 + 设备名 + +``` +← AhaKey Studio vibe code 154F +``` + +- `←` 返回首页(设备选择器) +- 设备名可点击进入设备信息页(或 inline 编辑) + +### 3.2 右侧:平台上下文切换器 + 设置 + +``` +[Claude logo] [Cursor logo] [Codex logo] [+] | [⚙] +``` + +这是本页最关键的设计决策,见第 4 节详细说明。 + +--- + +## 4. 平台上下文切换器(核心设计) + +### 4.1 概念映射 + +| Logi Options+ | AhaKey | +|--------------|--------| +| Add Application | 添加 AI 平台 | +| 应用图标切换器 | Claude / Cursor / Codex logo 切换器 | +| 当前前台应用(自动切换) | 当前工作模式(手动切换 + 硬件拨杆) | +| 每个应用独立的按键映射 | 每个平台独立的按键映射 | + +AhaKey 的"平台"(Claude Code / Cursor / Codex)本质上就是 Logi Options+ 的"应用"。两者都是"同一个硬件设备,在不同软件上下文里有不同的按键行为"。 + +### 4.2 交互逻辑 + +**状态一:未选中任何键位(画布默认态)** + +顶栏右侧显示平台图标列表,当前选中的平台图标有下划线高亮。 +画布显示当前平台下所有键位的摘要标签(类 Logi Options+ 的 callout 标签)。 +右侧 Inspector 不展开(或显示当前平台的全局说明)。 + +``` +顶栏:[Claude ▼] [Cursor] [Codex] [+] +画布:Key1=Record Key2=Yes Key3=No Key4=Enter (callout 标签) +右侧:空 / 平台说明 +``` + +**状态二:点击画布上的某个键位** + +右侧 Inspector 展开,显示该键位在当前平台下的配置。 +Inspector 顶部显示当前平台 logo + 平台名,可在此切换平台(不需要回到顶栏)。 + +``` +顶栏:[Claude ▼] [Cursor] [Codex] [+] +画布:Key1 高亮选中 +右侧: + Inspector + ───────────────── + [Claude logo] Claude Code + ───────────────── + Key 1 · 语音键 + 语音预设:macOS 原生 + 快捷键绑定:F18 + 按键描述:Record + ───────────────── + [同步到键盘] +``` + +**状态三:在 Inspector 展开态切换平台** + +点击 Inspector 顶部的平台 logo → 切换到该平台的配置,键位选中状态保持不变。 +顶栏的平台切换器同步更新高亮。 + +### 4.3 为什么用顶栏图标而不是 segmented control + +当前实现用的是 `Picker(.segmented)` 显示 "Mode 0 / Mode 1 / Mode 2"。这有两个问题: + +1. "Mode 0 / 1 / 2" 是固件层的概念,对用户来说不直观 +2. Segmented control 占用了顶栏大量空间,且视觉权重过高 + +改用平台 logo 图标(类 Logi Options+ 的应用图标切换器)的优势: +- 视觉识别度高(Claude / Cursor / Codex 的 logo 用户已经熟悉) +- 占用空间小 +- 可扩展(未来加新平台只需加一个图标) +- 与 Logi Options+ 的交互范式一致,用户学习成本低 + +### 4.4 平台与 Mode 的映射关系 + +平台(Claude / Cursor / Codex)是用户心智模型中的概念。 +Mode(0 / 1 / 2)是固件层的概念。 + +两者的映射关系在 Studio 内部处理,不暴露给用户: + +| 用户看到的 | 固件层 | +|-----------|--------| +| Claude Code | Mode 0 | +| Cursor | Mode 1 | +| Codex | Mode 2 | + +这个映射关系应该是可配置的(用户可以把 Cursor 映射到 Mode 0),但默认值固定。 + +--- + +## 5. 左侧导航 + +左侧导航按**硬件部件**和**软件功能**两个维度分组。 + +### 5.1 硬件部件组 + +| 图标 | 标签 | 说明 | +|------|------|------| +| ⌨ | 按键 | 四个主按键(Key 1~4)的配置入口 | +| 🖥 | OLED | OLED 屏幕的动图和显示配置 | +| 💡 | 灯条 | 灯条状态映射(只读,出厂固件驱动) | +| 🔀 | 拨杆 | 自动批准 / 手动批准切换逻辑 | + +点击左侧导航项 → 画布高亮对应的硬件区域 → Inspector 展开对应配置。 +这和直接点击画布热区的效果相同,两者互相联动。 + +### 5.2 软件功能组 + +| 图标 | 标签 | 说明 | +|------|------|------| +| 🤖 | Agent | Agent 状态、Hook 安装、蓝牙控制权 | +| 🎙 | 语音 | 语音预设、权限管理、转写配置 | + +这两项不对应具体的硬件部件,而是跨硬件的软件功能配置。 +点击后进入独立的配置视图(不是 Inspector,而是替换中央区域的内容)。 + +### 5.3 设备信息组 + +| 图标 | 标签 | 说明 | +|------|------|------| +| ℹ | 设备 | 固件版本、BLE 诊断、高级设置 | + +### 5.4 底部状态区 + +左侧导航底部(类 Logi Options+ 的左下角电量 + 蓝牙图标): + +``` +🔋 68% ⚡ Mode 2 ● 已连接 +``` + +这些是只读状态,不是可点击的导航项。 + +--- + +## 6. 中央画布区 + +### 6.1 默认态(未选中键位) + +画布显示完整键盘,每个热区上方有 callout 标签,显示当前平台下的功能摘要: + +``` +[Record] [Yes] [No] [Enter] +``` + +类 Logi Options+ 的 callout 标签风格:白色圆角矩形,细线连接到热区。 + +### 6.2 选中态 + +选中的热区有明显描边 + 外发光。 +其他热区降低对比度(不消失,保持空间感)。 +右侧 Inspector 展开。 + +### 6.3 画布顶部信息条 + +画布顶部有一条轻量信息条,显示当前上下文: + +``` +[Claude logo] Claude Code · Key 1 已选中 · 待同步 2 项 +``` + +--- + +## 7. 右侧 Inspector + +Inspector 只在用户选中某个热区后展开。未选中时不显示(或显示空状态提示)。 + +### 7.1 Inspector 头部 + +``` +[平台 logo] 平台名 +───────────────── +部件名 · 部件副标题 +[未同步] / [已同步] +``` + +平台 logo 可点击切换平台(不需要回到顶栏)。 + +### 7.2 Inspector 内容 + +根据选中的部件类型,显示对应的配置项: + +**按键(Key 1~4)**: +- 快捷键绑定 / 宏 +- 按键描述(写入 OLED) +- 语音预设(仅 Key 1) + +**OLED**: +- 当前模式的动图选择 +- 帧率设置 + +**灯条**: +- 只读说明(出厂固件驱动) +- 状态预览(可发送到设备预览) + +**拨杆**: +- 当前档位(只读,来自硬件) +- 自动批准 / 手动批准的行为说明 + +### 7.3 Inspector 底部操作栏 + +固定在 Inspector 底部,不随内容滚动: + +``` +[切换模式] [同步到键盘] +``` + +- 左侧次按钮:切换到下一个平台(快捷操作) +- 右侧主按钮:同步当前草稿到键盘 + +--- + +## 8. 与当前实现的差异 + +| 维度 | 当前实现 | 目标设计 | +|------|---------|---------| +| 平台切换 | Segmented control "Mode 0/1/2" | 顶栏平台 logo 图标切换器 | +| 左侧导航 | 无(单页全功能) | 硬件部件 + 软件功能两组导航 | +| 语音配置 | 嵌套在 Key 1 的 Inspector 里 | 独立的"语音"导航项 | +| Agent 状态 | 嵌套在拨杆 Inspector 里 | 独立的"Agent"导航项 | +| Inspector 展开时机 | 始终展开 | 仅在选中热区后展开 | +| 平台概念 | 暴露 Mode 0/1/2 | 隐藏 Mode,暴露 Claude/Cursor/Codex | + +--- + +## 9. 待决策项 + +- [ ] 平台 logo 切换器:点击切换 vs hover 预览 vs 下拉菜单 +- [ ] 未选中热区时,Inspector 区域显示什么(空状态 / 平台全局说明 / 隐藏) +- [ ] 左侧导航的"Agent"和"语音"是否替换中央画布,还是在右侧 Inspector 展开 +- [ ] 平台与 Mode 的映射是否允许用户自定义 +- [ ] callout 标签的显示时机:始终显示 vs 仅在 hover 时显示 diff --git a/platforms/macos/client/docs/redesign/03-ux-state-machine.md b/platforms/macos/client/docs/redesign/03-ux-state-machine.md new file mode 100644 index 0000000..1790398 --- /dev/null +++ b/platforms/macos/client/docs/redesign/03-ux-state-machine.md @@ -0,0 +1,182 @@ +# AhaKey Studio UX 状态机设计规范 + +更新时间:2026-05-02 +状态:草稿 + +--- + +## 1. 问题定位 + +AhaKey Studio 是一个上位机软件。它的 UX 难点不在于界面美观,而在于它同时管理三个独立的状态空间,且这三个空间随时可能不一致: + +``` +本地草稿(用户正在编辑的意图) + ≠ +已同步到设备的配置(上次成功写入键盘的值) + ≠ +设备当前真实状态(键盘此刻实际运行的值) +``` + +Logi Options+ 不存在这个问题,因为它的配置是即时生效的(写入即同步)。AhaKey 因为 BLE 写入有代价、需要显式触发,所以这三个空间必须被显式管理。 + +--- + +## 2. 设备连接状态机 + +AhaKey 的设备连接有五个状态,不是简单的"连接/断开": + +``` +未扫描 + ↓ 用户触发 / App 启动 +扫描中 + ↓ 发现设备 +已发现(未连接) + ↓ 用户确认 / 自动连接 +连接中 + ↓ 成功 +已连接 + ↓ 断开(掉线 / 用户主动 / Agent 接管) +已断开(有上次同步记录) +``` + +**关键设计原则:每个状态下,用户能做什么、看到什么,必须有明确规则。** + +| 连接状态 | 画布显示 | Inspector | 同步按钮 | 状态指示 | +|---------|---------|-----------|---------|---------| +| 未扫描 / 扫描中 | 设备轮廓(灰色) | 可编辑草稿 | 禁用,提示"等待连接" | 顶栏 chip:扫描中 | +| 已连接(App 控制) | 完整画布,实时状态 | 可编辑 | 启用 | 顶栏 chip:编辑配置中 | +| 已连接(Agent 控制) | 完整画布,只读 | 只读 + 提示 | 禁用,提示"Agent 控制中" | 顶栏 chip:键盘控制中 | +| 已断开(有草稿) | 设备轮廓(半透明) | 可编辑草稿,标注"离线草稿" | 禁用,提示"连接后可同步" | 顶栏 chip:已断开 | + +**离线编辑是允许的,但必须清楚标注"本地草稿"。** 用户可以在设备不在线时继续编辑,重连后提示差异并确认同步。 + +--- + +## 3. 蓝牙控制权状态机 + +这是 AhaKey 特有的复杂度,Logi Options+ 完全没有对应物。 + +CoreBluetooth 同一时刻只能有一个进程连接键盘,所以 App 和 Agent 之间存在控制权竞争: + +``` +App 控制(编辑配置模式) + ↔ 用户点"同步并返回控制" / "编辑配置" +Agent 控制(运行时模式) +``` + +**这个状态是 AhaKey 最核心的 UX 状态,必须始终可见,但不能喧宾夺主。** + +设计原则: +- 控制权状态用顶栏的一个 chip 表达,始终可见 +- chip 颜色:蓝色 = App 控制(编辑中),绿色 = Agent 控制(运行中) +- 切换控制权的操作是主按钮("同步到键盘" / "编辑配置"),不是隐藏在菜单里 + +--- + +## 4. 草稿同步状态机 + +``` +已同步(草稿 = 设备) + ↓ 用户编辑 +有未同步改动(草稿 ≠ 设备) + ↓ 用户点同步 +同步中 + ↓ 成功 +已同步 + ↓ 失败 +同步失败(草稿 ≠ 设备,有错误信息) +``` + +**底部状态栏只需要表达这一个维度:** + +``` +✓ 已同步 (绿色,轻量) +● 未同步改动 3 项 (橙色,中等权重) +↑ 同步中… (蓝色,动效) +✗ 同步失败:设备未响应 [重试] (红色,需要操作) +``` + +当前实现把"选中部件 · 当前模式"也放在底部状态栏,这是冗余的——选中状态已经在画布和 Inspector 里体现了。底部状态栏应该只表达同步状态。 + +--- + +## 5. 状态信息的归属原则 + +基于以上分析,各类状态信息的正确归属: + +### 归入首页(设备 Hero 页) +- 电量 +- 蓝牙连接状态(已连接 / 未连接) +- 固件版本 +- 设备名 + +**理由:** Logi Options+ 把这些放在首页设备卡片下方是对的。这些是"设备身份信息",不是"编辑会话信息"。用户进入配置页后不需要时刻看到电量——那是首页的职责。 + +### 归入顶栏 chip(始终可见) +- 蓝牙控制权(App 控制 / Agent 控制) +- 当前平台(Claude / Cursor / Codex) + +**理由:** 这两个是"当前会话的核心上下文",用户在配置页的任何操作都依赖这两个状态。 + +### 归入底部状态栏(轻量,仅同步状态) +- 未同步改动数量 +- 同步进度 / 结果 + +**理由:** 类 IDE 底部状态栏,视觉权重最低,只在需要时引起注意。 + +### 归入左侧导航底部(设备状态区) +- 拨杆当前档位(自动批准 / 手动批准) +- 连接状态简要(已连接 · vibe code 154F) + +**理由:** 拨杆状态是硬件状态,不是编辑会话状态,放在左侧导航底部类 Logi Options+ 的左下角状态区。 + +### 从顶栏移除 +- 电量(移入首页) +- 设备名(移入首页 / 左侧导航底部) +- "扫描中 · 等待设备"(移入顶栏 chip,简化表达) + +--- + +## 6. "更多"菜单的拆解归位 + +| 原操作 | 归入位置 | 理由 | +|--------|---------|------| +| 恢复当前模式默认值 | 对应平台 Inspector 底部(破坏性操作,需上下文) | 破坏性操作不应在全局菜单 | +| 重新连接设备 | 顶栏连接状态 chip 的点击操作 / 左侧导航底部 | 连接操作应在连接状态旁边 | +| 清空 OLED 预览 | OLED Inspector 内部 | 局部操作归入局部上下文 | +| 设备信息 | 左侧导航"设备"项 | 导航入口不应在菜单里 | +| 隐藏到后台 | 删除,交给 macOS ⌘W | 系统级操作 | +| 退出 AhaKey Studio | 删除,交给 macOS ⌘Q | 系统级操作 | + +"更多"菜单拆解后应该消失。 + +--- + +## 7. 重连时的 UX 流程 + +这是上位机 UX 最容易做错的地方。 + +**场景:用户在离线状态下编辑了草稿,设备重新连接。** + +``` +设备重新连接 + ↓ +检测本地草稿 vs 设备当前配置 + ↓ +有差异? + ├── 否 → 静默同步,底部状态栏显示"已同步" + └── 是 → 顶部 banner 提示: + "检测到 3 项本地改动与设备当前配置不同" + [查看差异] [同步到设备] [放弃本地改动] +``` + +不要自动覆盖,不要静默丢弃。用户必须知道发生了什么。 + +--- + +## 8. 待决策项 + +- [ ] 离线草稿的视觉标注方式:整体 banner vs 每个改动项单独标注 +- [ ] 重连时差异提示的触发时机:立即弹出 vs 用户主动点同步时提示 +- [ ] Agent 控制期间,用户是否可以预览(只读)配置,还是完全锁定 +- [ ] 拨杆状态变化(用户物理拨动)是否需要在 UI 里有即时反馈动效 diff --git a/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/00-index.md b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/00-index.md new file mode 100644 index 0000000..13598f4 --- /dev/null +++ b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/00-index.md @@ -0,0 +1,151 @@ +# AhaKey Studio macOS - Logi Options+ Reference Spec + +更新时间:2026-05-02 +状态:专题参考 spec(高保真重构工作底稿) + +--- + +## 1. 目录目的 + +本目录用于沉淀一套**以 Logi Options+ 为高保真参考,对 AhaKey Studio 前台壳做高保真重构**的详细 spec。 + +这不是一套“直接替换现有正式规范”的文档,而是一组为下一轮重构服务的**专题参考文档**。它回答的问题不是“当前代码已经是什么”,而是: + +- Logi Options+ 的前台产品壳到底有哪些值得借鉴的结构 +- 哪些借鉴适合 AhaKey,哪些不适合 +- AhaKey 特有的 BLE / Agent / 草稿同步复杂度,应该如何嫁接到 Logi 式 UI/UX 语言里 +- 后续 Web / Electron 原型与 SwiftUI 原生重构时,页面、组件、导航和状态层应该怎样拆 + +--- + +## 2. 与现有文档的关系 + +本目录与以下文档并行存在: + +- [00-redesign-index.md](../00-redesign-index.md):`redesign/` 的总索引 +- [00-glossary.md](../00-glossary.md):所有重设计文档的用词基准 +- [02-ux-blueprint.md](../../02-ux-blueprint.md):当前已落地原生实现的首版蓝图 + +关系说明: + +1. [02-ux-blueprint.md](../../02-ux-blueprint.md) 记录的是**当前首版已落地实现**。 +2. `redesign/` 目录下原有草稿,记录的是**AhaKey 自身正在演进中的重设计方向**。 +3. 本目录记录的是**“以 Logi Options+ 为高保真参考样本”这条专题线**,重点是把参考对象、迁移原则和实现拆分写清楚。 + +因此,本目录的文档默认都属于: + +- 正在演进中的参考 spec +- 可以指导实现 +- 但不会自动替代根级正式规范 + +只有在后续重构真正落地并经过审批后,才会把其中稳定的部分提升为正式规范,或并入根级文档。 + +--- + +## 3. 阅读顺序 + +建议按以下顺序阅读: + +1. [01-reference-baseline.md](./01-reference-baseline.md) +2. [02-information-architecture.md](./02-information-architecture.md) +3. [03-home-overview-spec.md](./03-home-overview-spec.md) +4. [04-device-studio-spec.md](./04-device-studio-spec.md) +5. [05-secondary-pages-spec.md](./05-secondary-pages-spec.md) +6. [06-state-machine-spec.md](./06-state-machine-spec.md) +7. [07-visual-system-spec.md](./07-visual-system-spec.md) +8. [09-web-electron-prototype-spec.md](./09-web-electron-prototype-spec.md) +9. [08-swiftui-implementation-spec.md](./08-swiftui-implementation-spec.md) + +阅读逻辑: + +- `01` 先界定“参考对象是什么、我们看到了什么、哪些不能照搬” +- `02~05` 给出前台产品壳与各页面 spec +- `06` 单独处理 AhaKey 最复杂的状态问题 +- `07` 把“像 Logi”收敛成可执行的视觉与组件规则 +- `09` 定义下一轮优先执行的 Web / Electron 原型交付边界 +- `08` 保留为后续 SwiftUI 原生迁移参考 + +--- + +## 4. 文档列表 + +| 文件 | 作用 | 状态 | +|------|------|------| +| [01-reference-baseline.md](./01-reference-baseline.md) | Logi 参考样本基线、可观察证据、借鉴边界 | 草稿 | +| [02-information-architecture.md](./02-information-architecture.md) | AhaKey 前台信息架构与导航骨架 | 草稿 | +| [03-home-overview-spec.md](./03-home-overview-spec.md) | 首页设备总览页详细 spec | 草稿 | +| [04-device-studio-spec.md](./04-device-studio-spec.md) | 设备工作区详细 spec | 草稿 | +| [05-secondary-pages-spec.md](./05-secondary-pages-spec.md) | Agent / 语音 / Settings / 设备信息等次级页面 spec | 草稿 | +| [06-state-machine-spec.md](./06-state-machine-spec.md) | BLE / 控制权 / 草稿同步三层状态机 | 草稿 | +| [07-visual-system-spec.md](./07-visual-system-spec.md) | 视觉系统、token 与组件语气 | 草稿 | +| [09-web-electron-prototype-spec.md](./09-web-electron-prototype-spec.md) | 下一轮 Web / Electron 原型交付 spec | 草稿 | +| [10-inspector-content-spec.md](./10-inspector-content-spec.md) | Inspector 逐部件内容边界与信息披露层次 | 草稿 | +| [08-swiftui-implementation-spec.md](./08-swiftui-implementation-spec.md) | SwiftUI 重构拆分与实现约束,现作为后续原生迁移参考 | 草稿 | + +附属目录: + +- [captures](./captures/):后续存放截图、标注图、页面比对图,仅做内部参考 + +--- + +## 5. 本目录的适用边界 + +本目录默认采用以下边界: + +### 5.1 借鉴对象 + +借鉴的是 Logi Options+ 的: + +- 信息架构 +- 页面骨架 +- 导航层次 +- 工作区组织方式 +- 组件语气 +- 视觉节奏 +- 设置层级 + +不是借鉴它的: + +- 设备生态规模 +- Flow 自动化能力 +- Logitech 品牌表达 +- 云服务 / 账户体系 +- 具体后端协议和业务能力 + +### 5.2 实现目标 + +目标是让 AhaKey 的前台壳达到: + +- 用户第一次打开时更像成熟桌面产品 +- 页面职责更清晰 +- AhaKey 的复杂状态被表达清楚 +- 后续拆 Web / Electron 或 SwiftUI 组件和页面时有明确边界 + +不是目标: + +- 做一份法律意义上的逐像素复制 +- 在本阶段改变 BLE / Agent / Voice 后端协议 +- 直接从 Logi 包里搬资源进正式产物 + +### 5.3 下一轮交付口径 + +截至 2026-05-03,下一轮优先交付不再是完整 macOS 原生应用,而是: + +- 先做浏览器可运行的 Web 前端原型 +- 必要时用极薄 Electron 壳包装给合作者体验 +- 不在本轮接入真实 BLE、系统权限、后台协议或完整桌面发布链路 + +详见 [09-web-electron-prototype-spec.md](./09-web-electron-prototype-spec.md)。 + +--- + +## 6. 输出标准 + +本目录下的每份文档都应该做到: + +1. 另一个工程师读完后可以直接开始拆页面、建组件、重构导航 +2. 不需要再追问“这个页面回答什么问题” +3. 不需要再追问“这个状态到底显示在哪里” +4. 不需要再追问“哪些行为是 Logi 式参考,哪些是 AhaKey 特有补丁” + +如果后续阅读时发现某份文档仍需要大量口头补充,说明那份 spec 仍未完成。 diff --git a/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/01-reference-baseline.md b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/01-reference-baseline.md new file mode 100644 index 0000000..491d0de --- /dev/null +++ b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/01-reference-baseline.md @@ -0,0 +1,303 @@ +# Logi Options+ 参考基线 + +更新时间:2026-05-03 +状态:草稿 + +--- + +## 1. 文档定位 + +本文档用于记录这条专题线已经确认的**客观事实**、**参考边界**与**迁移原则**。 + +它回答的问题是: + +- 我们实际看到了什么,而不是猜到了什么 +- Logi Options+ 哪些部分值得作为 AhaKey 的高保真参考 +- 哪些部分虽然可见,但不应进入 AhaKey 的正式产品表达 + +这份文档是后续所有页面 spec 的前置约束。 + +--- + +## 2. 已确认的客观事实 + +### 2.1 本机样本 + +本机安装了 `logioptionsplus.app`,当前观察样本版本为: + +- App 名称:`logioptionsplus` +- Bundle Identifier:`com.logi.optionsplus` +- Version:`2.3.879545` + +### 2.2 技术栈确认 + +该样本不是原生 App,而是 **Electron + React** 桌面应用。 + +已确认的证据包括: + +- `Info.plist` 中存在 `ElectronAsarIntegrity` +- `NSPrincipalClass` 为 `AtomApplication` +- 包内存在 `Electron Framework.framework` +- `Contents/Resources` 下存在 `app.asar` + +结论: + +- 这是一个基于 Web 前端封装的桌面应用 +- 前台 UI 结构、样式和资源都具有较高可观察性 + +### 2.3 可见前端资产 + +`app.asar` 中已观察到: + +- `app.min.js` +- `app.min.css` +- 多个 chunk 文件 +- 大量 `assets/` 资源 +- 图片、SVG、字体、GIF 等静态素材 + +还观察到以下前端信号: + +- React +- React Router +- i18n 相关实现 +- CSS 资源完整存在 + +结论: + +- 该应用的前台壳层具有足够高的可见性 +- 我们可以从结构、术语、资源类型、页面家族、样式信号层面对其做高保真参考分析 + +### 2.4 页面家族信号 + +从前端包中的词汇、资源和文案信号可确认,它至少包含以下前台页面家族: + +- 设备总览 / Devices +- 设备详情 / Device +- Keys +- Settings +- Flow / Smart Actions 相关区域 +- Easy-Switch 相关区域 +- 自定义 / Customize 相关区域 + +对 AhaKey 最有参考价值的是: + +- 首页设备总览页 +- 设备详情工作区 +- 右上角操作区 +- Settings 层级 +- 应用上下文切换机制 + +### 2.5 当前截图证据 + +截至 2026-05-03,除 React / CSS / assets 逆向外,已观察到用户提供的运行截图,覆盖: + +- 首页无设备空态 +- 首页单设备 / 多设备总览态 +- 顶部添加设备、Smart Actions、账户、设置等右上角操作区 +- 添加设备的连接类型选择页 +- 设备详情页中的应用 / 平台切换器 +- 中央设备画布、热点 callout、右侧 inspector +- 深色 Settings 的通用设置、通知、反馈与支持页 +- Settings 左侧导航、当前项高亮、开关、下拉框、主题卡片 + +这些截图足以支撑下一轮 Web 原型的视觉方向,但仍不足以穷尽全部 hover、focus、错误、权限和同步状态。 + +### 2.6 主题 token 信号 + +已从 `app.min.css` 中确认 Logi Options+ 使用 `body.light` / `body.dark` 两套主题变量。 + +可确认的关键 token 包括: + +| 角色 | light | dark | +|------|-------|------| +| `--primary` | `#814efa` | `#00ead0` | +| `--primary-hover` | `#673ec8` | `#03dbc3` | +| `--primary-light` | `#d3c3fe` | `#99f7ec` | +| `--primary-background-1` | `#fff` | `#000` | +| `--primary-background-2` | `#000` | `#fff` | +| `--primary-background-4` | `#f5f5f5` | `#060606` | +| `--primary-background-5` | `#d9d9d9` | `#5c5c5c` | +| `--secondary-200` | `#f0f0f0` | `#333` | +| `--text` | `#222425` | `#fbfbfb` | +| `--text-shade-1` | `#888` | `#ccc` | +| `--text-shade-2` | `#fbfbfb` | `#191919` | +| `--checkbox-hover` | `#d1b7ff` | `#99f7ec` | +| `--host-tile-line-1` | `#d8d8d8` | `#666` | + +结论: + +- 明暗两色不是只能从截图估算,而是可以从 React / CSS 包中拿到可靠 token。 +- AhaKey 原型可以建立自己的语义 token,但应保留 Logi 的层级关系:浅色以白底 + 紫色强调为基准,深色以近黑底 + 青绿色强调为基准。 +- 正式产物不直接复制变量名或全量色值,只把它们作为内部参考依据。 + +--- + +## 3. 为什么它适合作为参考样本 + +Logi Options+ 对 AhaKey 来说,不是“业务相同”的参考,而是“**前台产品壳成熟度相近且可迁移**”的参考。 + +两者共同点: + +- 都是桌面端硬件配置软件 +- 都需要在“物理设备”与“软件配置”之间建立稳定心智 +- 都需要把设备身份信息、工作区、设置、状态反馈组织清楚 +- 都需要处理“多上下文映射同一硬件”的问题 + +因此,我们借鉴的不是 Logitech 的具体业务,而是它的: + +- 页面分层方式 +- 设备 hero 表达 +- 工作区组织方法 +- 设置层次感 +- 应用上下文切换语法 + +--- + +## 4. 可借鉴范围 + +### 4.1 允许高保真借鉴的部分 + +- 首页是设备选择器,而不是功能首页 +- 设备 hero 为中心的总览布局 +- 顶栏品牌区 / 操作区分层 +- 设备详情页的工作区组织方式 +- “应用上下文切换器”这类高识别度入口 +- 左侧导航与工作区的职责分离 +- Settings 层级与元操作收纳方式 +- 空态、未连接态、权限态的产品气质 +- 卡片、分隔、弱阴影、弱边框的视觉节奏 + +### 4.2 允许借鉴但必须 AhaKey 化改写的部分 + +- 应用上下文切换:映射为 `Claude Code / Cursor / Codex` +- 顶部快捷操作:映射为 AhaKey 的“编辑配置 / 完成配置 / 同步 / 后台服务” +- 设备详情页的分区:需要适配 AhaKey 的按键 / OLED / 灯条 / 拨杆 +- Settings 的分组:需要适配 Hook、权限、后台服务、BLE 诊断 +- 状态提示:需要覆盖 AhaKey 的草稿与控制权问题 + +### 4.3 不应借鉴或不应出现在正式产物中的部分 + +- Logitech 品牌、图标、文案 +- 原始截图直接作为正式产品资源 +- Flow 自动化完整能力 +- 多设备生态复杂度 +- Logitech 专属设备能力 +- 账户、订阅、云同步表达 +- 直接抽取的前端代码、资源、组件名称 + +--- + +## 5. AhaKey 与 Logi 的根本差异 + +如果不把差异讲清楚,后续 spec 很容易只是“看起来像 Logi”,但产品逻辑是错的。 + +### 5.1 Logi 更接近“即时配置” + +Logi Options+ 的很多配置行为默认是: + +- 用户进入设备详情 +- 修改设备上的配置 +- 修改几乎可视作即时生效 + +因此它不需要显式暴露“本地草稿 / 上次同步 / 设备真实状态”这三层概念。 + +### 5.2 AhaKey 有更强的状态分裂 + +AhaKey 当前存在三层必须被显式管理的状态: + +1. BLE 连接状态 +2. 蓝牙连接持有方(AhaKey Studio vs 后台守护进程) +3. 草稿与同步状态 + +这意味着: + +- AhaKey 不能只学 Logi 的皮 +- 必须在 Logi 式前台壳里,单独补上属于 AhaKey 的状态语言 + +### 5.3 AhaKey 有平台语义,不是应用语义 + +Logi 的“应用切换”是“这台设备在不同前台 App 下行为不同”。 + +AhaKey 的“平台切换”虽然可以借用同样的交互范式,但本质上是: + +- `Claude Code` +- `Cursor` +- `Codex` + +这些是用户明确知道的工作上下文,而不是系统检测到的泛应用列表。 + +因此: + +- AhaKey 需要一个更强的“平台”心智 +- 不能把它做成完全开放式的通用应用列表 + +--- + +## 6. 对正式产物的约束 + +### 6.1 资源层约束 + +允许把 Logi 的资源作为内部观察样本,但: + +- 不把 Logitech 图片、图标、品牌元素直接带入正式产品 +- 不把抽出的资源放进 AhaKey 代码仓库的正式资源链 + +内部参考图一律放在本专题目录的 `captures/` 下,且只做分析用途。 + +### 6.2 文案层约束 + +正式产品中: + +- 使用 AhaKey 自己的产品术语 +- 遵循 [00-glossary.md](../00-glossary.md) 的词汇规则 +- 不复用 Logitech 专有命名 + +### 6.3 架构层约束 + +本专题线只重构前台壳,不触碰: + +- BLE 协议层 +- Agent 通信协议 +- Voice Relay 核心机制 +- 固件命令定义 + +若某个体验问题只能通过协议改造解决,必须在 spec 中单独标记,不能暗含在 UI 重构任务里。 + +### 6.4 下一轮交付约束 + +下一轮优先做 Web 前端原型,并在需要时用 Electron 作为轻量演示壳。 + +该阶段不要求: + +- 完整桌面应用构建 +- 原生 macOS 交互落地 +- 真实 BLE / Agent / Voice 接入 +- 系统权限申请链路 + +该阶段要求: + +- 页面结构足够接近成熟桌面产品 +- 状态模型可以通过 mock 完整演示 +- 视觉、布局、交互节奏足够让合作者评审 +- 代码结构不阻碍后续 Electron 包装或 SwiftUI 迁移 + +--- + +## 7. 对后续 spec 的工作原则 + +后续所有页面 spec 默认遵守以下原则: + +1. **先学结构,再学皮肤。** + 先复刻信息架构、层级、交互节奏,再讨论视觉精修。 + +2. **先保证页面职责清晰,再保证页面像。** + 页面回答的问题必须清楚,否则再像 Logi 也只是空壳。 + +3. **AhaKey 特有复杂度必须显式写出来。** + 尤其是 BLE 占用、运行模式 / 配置模式、草稿同步。 + +4. **一切正式 UI 文案以 AhaKey 术语为准。** + 不把“Mode 0 / 1 / 2”“Agent 模式”这类混乱术语继续扩散。 + +5. **本专题是“高保真参考”,不是“直接复制计划”。** + 目标是借鉴成熟产品语言,而不是做 Logitech 外观替身。 diff --git a/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/02-information-architecture.md b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/02-information-architecture.md new file mode 100644 index 0000000..0b901f3 --- /dev/null +++ b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/02-information-architecture.md @@ -0,0 +1,360 @@ +# 前台信息架构 + +更新时间:2026-05-02 +状态:草稿 + +--- + +## 1. 文档定位 + +本文档定义 AhaKey Studio macOS 在 Logi Options+ 参考框架下的**前台信息架构**。 + +它回答的问题是: + +- 用户打开 App 后,先看到什么 +- 各页面分别回答什么问题 +- 页面之间如何进入、返回、切换 +- 哪些内容属于首页、工作区、次级页面、Settings + +这是所有页面 spec 的总骨架。 + +--- + +## 2. 信息架构总原则 + +### 2.1 首页不是功能入口 + +首页只回答一个问题: + +**“我要配置哪台设备?”** + +因此首页应以设备 hero 为中心,而不是以功能卡片、表格或状态仪表盘为中心。 + +### 2.2 设备工作区不是万能页面 + +设备工作区只回答一个问题: + +**“这台设备在当前平台上下文里,每个硬件部件应该做什么?”** + +因此: + +- 设备工作区负责硬件部件编辑 +- 语音、后台服务、权限、诊断等跨硬件内容,不塞进 inspector + +### 2.3 设置页只承载元操作 + +Settings 负责: + +- 影响全局行为 +- 不属于任何单页主任务 +- 需要系统级或应用级持久化的配置 + +不负责: + +- 单个硬件部件属性编辑 +- 平台上下文映射细节 +- 当前页面的即时配置 + +### 2.4 状态反馈主线与配置主线分离 + +AhaKey 有三条主线: + +1. 配置主线:改键、OLED、灯条、拨杆 +2. 状态反馈主线:后台服务、Hook、权限、运行状态 +3. 控制权主线:当前谁持有 BLE、能否编辑、是否需要同步 + +信息架构上必须让这三条线: + +- 可以相互感知 +- 但不互相污染页面职责 + +--- + +## 3. 页面层级 + +建议的前台层级如下: + +```text +AhaKey Studio +├── 首页 / Home +│ ├── 单设备 hero +│ ├── 多设备总览(未来) +│ ├── 添加设备 +│ ├── 快捷操作 +│ └── Settings 入口 +│ +├── 设备工作区 / Device Studio +│ ├── 按键 +│ ├── OLED +│ ├── 灯条 +│ ├── 拨杆 +│ ├── 平台切换(Claude / Cursor / Codex) +│ └── Inspector +│ +├── 次级页面 +│ ├── 后台服务 / Agent +│ ├── 语音 +│ ├── 设备信息 +│ └── 权限与诊断 +│ +└── Settings + ├── 通用 + ├── 设备 + ├── 后台服务与 Hook + ├── 语音 + ├── 通知 + └── 高级 +``` + +--- + +## 4. 页面职责定义 + +### 4.1 首页 / Home + +首页回答: + +- 我有哪些设备 +- 当前设备是否可用 +- 我是否需要先连接设备 +- 我接下来应该进入哪台设备的工作区 + +首页不回答: + +- 具体某个按键怎么配 +- 语音权限为什么失败 +- 后台服务日志细节 + +### 4.2 设备工作区 / Device Studio + +设备工作区回答: + +- 当前平台下,这台设备各硬件部件如何工作 +- 当前我选中了哪个部件 +- 我的修改是否已同步 +- 我现在是否处于可编辑状态 + +设备工作区不回答: + +- Hook 如何安装 +- 输入监控 / 辅助功能权限为什么没有 +- 后台服务的运行日志 + +### 4.3 后台服务页 / Agent + +后台服务页回答: + +- 后台守护进程是否安装、是否运行 +- Hook 是否已装到 Claude / Cursor / Codex +- 当前运行模式是否正常 +- 用户如何把键盘控制权交回后台服务 + +### 4.4 语音页 / Voice + +语音页回答: + +- 当前有哪些语音路由 +- 当前权限是否齐全 +- 各平台的语音行为如何映射 +- 如何重新检查或引导用户完成权限 + +### 4.5 设备信息页 / Device Info + +设备信息页回答: + +- 设备身份信息 +- 固件与 BLE 诊断 +- 当前连接状态与最近通信状态 +- 面向开发与售后的高级信息 + +### 4.6 Settings + +Settings 回答: + +- 默认连接策略 +- 开机自启、外观、语言等全局行为 +- Hook 与后台服务的全局偏好 +- 通知与高级设置 + +--- + +## 5. 顶层导航原则 + +### 5.1 主路径 + +主路径应始终保持清晰: + +1. 打开 App +2. 到达首页 +3. 选中设备 +4. 进入设备工作区 +5. 编辑并同步 +6. 返回运行状态 + +### 5.2 页面间跳转规则 + +#### 首页 -> 设备工作区 + +- 点击设备 hero / 设备卡片进入 +- 若当前只有一个已连接设备,也建议先看到首页,而不是直接跳过 + +#### 设备工作区 -> 首页 + +- 左上返回入口 +- 返回后保留设备列表上下文 + +#### 设备工作区 -> 后台服务 / 语音 / 设备信息 + +- 通过左侧导航进入 +- 这些页面属于当前设备上下文下的次级视图 +- 返回时应回到设备工作区的最近状态 + +#### 任意页面 -> Settings + +- 通过全局右上角 `⚙` 进入 +- Settings 默认是应用级层,不挂在某个 inspector 内 + +--- + +## 6. 建议的导航承载方式 + +### 6.1 App 级导航 + +App 顶层需要有独立导航状态,而不是让 `ContentView` 直接绑定 `AhaKeyStudioView`。 + +最低限度需要有: + +- 当前顶层页面 +- 当前设备 +- 当前次级页面(如后台服务 / 语音) + +### 6.2 设备工作区内导航 + +设备工作区内部再分两层: + +1. 页面级导航:按键 / OLED / 灯条 / 拨杆 / 后台服务 / 语音 / 设备信息 +2. 画布级选中态:当前选中的具体硬件部件 + +这两层不能混用。 + +示例: + +- “按键”是页面级导航 +- “Key 1”是画布级选中态 + +### 6.3 Settings 承载方式 + +Settings 保持 macOS 原生的独立体验,优先使用系统风格的 Settings scene 或独立设置窗口。 + +不建议: + +- 把 Settings 做成设备工作区里的一个 inspector 分页 +- 把 Settings 混成首页弹层里的长表单 + +--- + +## 7. 关键入口与返回路径 + +### 7.1 首页关键入口 + +- `+ 添加设备` +- `快捷操作` +- `⚙ 设置` +- 设备 hero / 设备卡片 + +### 7.2 设备工作区关键入口 + +- 顶部平台切换器 +- 左侧硬件导航 +- 左侧软件功能导航 +- `同步到键盘` +- `完成` + +### 7.3 次级页面关键入口 + +- 后台服务:从设备工作区左侧导航进入 +- 语音:从设备工作区左侧导航进入 +- 设备信息:从设备工作区左侧导航进入 +- Settings:从全局 `⚙` 进入 + +### 7.4 返回规则 + +- 页面级返回优先回到“上一个页面上下文” +- 不允许让用户在次级页面返回时丢失当前设备上下文 +- 不允许通过关闭 sheet 才能回到主路径 + +--- + +## 8. 空态、加载态、异常态在架构中的位置 + +### 8.1 首页层 + +首页需要承载: + +- 无设备空态 +- 扫描中 +- 扫描失败 +- 已连接 / 未连接设备列表 + +### 8.2 设备工作区层 + +设备工作区需要承载: + +- 配置模式 / 运行模式的不可编辑差异 +- 未同步改动提示 +- 同步中 / 同步失败 / 同步成功 +- 局部能力开发中占位 + +### 8.3 次级页面层 + +后台服务页 / 语音页 / 设备信息页需要各自承载: + +- 权限缺失态 +- 后台服务未安装态 +- Hook 未安装态 +- 诊断信息不可用态 + +### 8.4 全局层 + +全局层只承载: + +- 严重错误 +- 需要阻塞用户继续操作的确认框 +- 系统级操作反馈 + +不承载所有普通提示。 + +--- + +## 9. 与现有代码约束的映射 + +当前代码中已经存在: + +- `AhaKeyBLEManager` +- `AgentManager` +- `VoiceRelayService` +- `AhaKeyStudioView` + +信息架构层默认约束为: + +1. 保留这些运行时单例与状态源 +2. 新建页面壳与导航层,不改它们的核心职责 +3. 让当前集中在 `AhaKeyStudioView` 内的职责拆分到多个页面和组件 + +这意味着: + +- 信息架构重构优先是**前台壳层重构** +- 不是协议层或服务层重构 + +--- + +## 10. 验收标准 + +当有人只看这份文档时,应能明确回答: + +- 首页、设备工作区、次级页面、Settings 各自回答什么问题 +- 用户从打开 App 到完成配置的主路径是什么 +- 语音和后台服务为什么不应继续留在 inspector 里 +- AhaKey 的三条主线在页面层级里分别落在哪里 + +如果这些问题还需要口头解释,说明信息架构仍不完整。 diff --git a/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/03-home-overview-spec.md b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/03-home-overview-spec.md new file mode 100644 index 0000000..7e64d00 --- /dev/null +++ b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/03-home-overview-spec.md @@ -0,0 +1,290 @@ +# 首页设备总览页 Spec + +更新时间:2026-05-02 +状态:草稿 + +--- + +## 1. 页面定位 + +首页回答的问题是: + +**“我有哪些 AhaKey 设备,我要进入哪一台设备的工作区?”** + +这是一个设备选择器,不是功能入口页,不是监控台,也不是状态日志页。 + +--- + +## 2. 目标用户问题 + +用户打开首页时,最想知道的是: + +- 我的设备有没有被识别到 +- 当前是否已连接 +- 哪台设备可配置 +- 我接下来点哪里进入编辑 +- 如果现在还没有设备,下一步该怎么做 + +--- + +## 3. 页面骨架 + +```text +┌──────────────────────────────────────────────────────────────────┐ +│ [AhaKey Studio] [+ 添加设备] [⚡] [⚙] │ +├──────────────────────────────────────────────────────────────────┤ +│ │ +│ 设备 Hero / 设备卡片区域 │ +│ │ +│ ┌────────────────────────────────────────────┐ │ +│ │ │ │ +│ │ 设备 1:1 渲染 / hero 视图 │ │ +│ │ │ │ +│ └────────────────────────────────────────────┘ │ +│ vibe code 154F │ +│ 已连接 · 68% · 运行中 │ +│ │ +│ [进入设备工作区] │ +│ │ +└──────────────────────────────────────────────────────────────────┘ +``` + +未来多设备时改为横向卡片或分页 hero,但首版仍以单设备 hero 为主。 + +--- + +## 4. 页面模块 + +### 4.1 顶栏 + +顶栏采用三段结构: + +- 左侧:品牌区 +- 中间:留白 +- 右侧:操作区 + +#### 左侧品牌区 + +- 文案:`AhaKey Studio` +- 不显示复杂设备状态 +- 不显示工程术语 + +#### 右侧操作区 + +- `+ 添加设备` +- `快捷操作` +- `⚙ 设置` + +可选补充: + +- 如果后续需要全局状态提示,可在最右侧加小型状态图标,但不让它成为主焦点 + +### 4.2 设备 hero 区 + +设备 hero 是首页视觉主角,应占首屏最多注意力。 + +它包含: + +- 设备 1:1 渲染 +- 设备名 +- 电量 +- 连接状态 +- 当前运行状态(运行中 / 配置中) +- 进入设备工作区的明确点击路径 + +### 4.3 次级说明区 + +设备 hero 下方可选承载轻量说明,例如: + +- 上次同步时间 +- 当前平台映射摘要 +- 当前是否有未完成的本地草稿 + +但这些信息只能作为辅助信息,不能抢设备 hero 主体。 + +--- + +## 5. 核心状态 + +### 5.1 无设备 + +页面显示: + +- 空状态插图或键盘轮廓占位 +- 文案:“还没有连接的设备” +- 主按钮:`+ 添加设备` + +不显示: + +- 大量诊断文字 +- 系统术语 + +### 5.2 扫描中 + +页面显示: + +- hero 区保持布局稳定 +- 中央显示扫描中反馈 +- 顶部 `+ 添加设备` 进入 loading 态 + +用户应知道: + +- App 正在做事 +- 不需要再点很多次 + +### 5.3 单设备已连接 + +页面显示: + +- 设备 hero +- 已连接状态 +- 电量 +- 当前运行模式摘要 +- CTA:进入设备工作区 + +这是首版的默认强路径。 + +### 5.4 单设备未连接 + +页面显示: + +- 同一份设备 hero,但状态弱化 +- 未连接提示 +- 明确按钮:`连接设备` + +不直接把用户扔进设备工作区。 + +### 5.5 多设备(未来) + +页面显示: + +- 多个 hero 卡片横向排列 +- 每张卡片显示设备名、状态、电量、进入按钮 + +但首版 spec 中只需预留结构,不要求全部实现。 + +--- + +## 6. 主要交互 + +### 6.1 进入设备工作区 + +点击以下任意区域都可以进入: + +- hero 主体 +- 明确 CTA 按钮 +- 设备名称区域(可选) + +点击后进入当前设备上下文下的设备工作区。 + +### 6.2 添加设备 + +点击 `+ 添加设备` 后: + +- 打开扫描 / 配对 sheet +- 不离开首页主上下文 + +理由: + +- 这是一个新增动作,不应打断首页结构 + +### 6.3 快捷操作 + +点击 `⚡ 快捷操作` 后: + +- 打开轻量 popover +- 提供少量高频控制 + +建议内容: + +- 编辑配置 +- 完成配置 +- 同步所有改动 +- 重启后台服务 + +不把快捷操作做成独立大页面。 + +### 6.4 Settings + +点击 `⚙` 后: + +- 进入独立 Settings 层 +- 返回时应回到首页原上下文 + +--- + +## 7. 与 AhaKey 现有约束的映射 + +### 7.1 BLE 状态 + +首页需要感知: + +- `AhaKeyBLEManager.isConnected` +- `isScanning` +- `batteryLevel` +- `deviceName` + +但首页只显示用户能理解的结果,不暴露 BLE 术语。 + +### 7.2 控制权状态 + +首页需要感知: + +- 当前是运行中还是配置中 + +默认映射: + +- `AhaKey Studio` 持有 BLE -> `配置中` +- 后台守护进程持有 BLE -> `运行中` + +首页不显示“谁持有 BLE”,只显示可理解结果。 + +### 7.3 草稿状态 + +首页可显示轻量提醒: + +- 有未同步改动 + +但不能把首页变成编辑页。 + +--- + +## 8. 非目标项 + +本页不负责: + +- 编辑单个按键 +- 显示完整的权限引导流程 +- 展示后台服务详细日志 +- 展示 BLE 通信明细 +- 承担设置表单 + +--- + +## 9. 验收标准 + +### 9.1 结构验收 + +- 用户打开 App 后先进入首页,而不是直接进入工作区 +- 首页的视觉主角是设备,不是功能列表 +- 顶栏操作区简洁,设备 hero 位置明确 + +### 9.2 心智验收 + +用户应在 5 秒内理解: + +- 这是 AhaKey Studio +- 中间这就是我要配置的设备 +- 点它可以进入编辑 +- 右上角分别是添加设备、快捷操作、设置 + +### 9.3 实现验收 + +另一个工程师仅靠这份 spec,即可开始定义: + +- `HomeView` +- `DeviceHeroCard` +- `QuickActionsPopover` +- `DeviceScannerSheet` + +而不需要再问“首页到底是不是仪表盘”。 diff --git a/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/04-device-studio-spec.md b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/04-device-studio-spec.md new file mode 100644 index 0000000..37e4281 --- /dev/null +++ b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/04-device-studio-spec.md @@ -0,0 +1,459 @@ +# 设备工作区 Spec + +更新时间:2026-05-06 +状态:草稿 + +--- + +## 1. 页面定位 + +设备工作区回答的问题是: + +**“这台 AhaKey 设备在当前平台上下文里,每个硬件部件应该做什么?”** + +它是 AhaKey Studio 的核心生产页面。 + +--- + +## 2. 目标用户问题 + +用户进入设备工作区后,最想知道的是: + +- 我现在在配置哪台设备 +- 我现在在配置哪个平台上下文 +- 我点哪里可以改键、改 OLED、改拨杆 +- 我现在是不是可编辑状态 +- 我改了之后有没有同步到键盘 + +--- + +## 3. 页面骨架 + +```text +┌──────────────────────────────────────────────────────────────────────────┐ +│ ← AhaKey Studio [logo] [logo] [logo] │ +│ vibe code 154F │ +├──────────────┬───────────────────────────────────────┬─────────────────┤ +│ 左侧导航 │ 中央工作区 │ 右侧 Inspector │ +│ │ │ │ +│ ⌨ 按键 │ 1:1 键盘画布 / OLED / 灯条 / 拨杆 │ 当前选中部件属性 │ +│ 🖥 OLED │ │ │ +│ 💡 灯条 │ │ │ +│ 🔀 拨杆 │ │ │ +│ │ │ │ +│ ─────────── │ │ │ +│ 🤖 后台服务 │ │ │ +│ 🎙 语音 │ │ │ +│ ℹ 设备信息 │ │ │ +└──────────────┴───────────────────────────────────────┴─────────────────┘ +``` + +--- + +## 4. 页面 / 模块定位 + +### 4.1 顶部 + +顶部负责承载: + +- 返回首页 +- 当前设备身份 +- 平台切换器 + +不负责: + +- 显示一大堆状态 chip +- 语音权限、后台服务日志等复杂信息 +- 全局设置入口或主页动作组 + +### 4.2 左侧导航 + +左侧导航只做**页面 / 工作区视图切换**。 + +分两组: + +1. 硬件部件组 +2. 软件功能组 + +默认展开态显示 `icon + label`。 + +当右侧 Inspector 在桌面宽度下打开时,左侧导航自动折叠成 `icon-only rail`,只保留: + +- icon +- active tint +- hover / tooltip 名称 + +左侧导航不承载: + +- 二级部件目录 +- 教学说明文字 +- 当前工作流解释 +- 状态摘要块 + +### 4.3 中央工作区 + +中央工作区负责: + +- 展示当前导航项对应的主要内容 +- 在“硬件部件组”下展示 1:1 键盘工作画布 +- 在“后台服务 / 语音 / 设备信息”下替换成对应视图 + +### 4.4 右侧 Inspector + +Inspector 只在“硬件部件编辑上下文”里出现。 + +它负责: + +- 显示当前选中部件的属性 +- 修改该部件在当前平台下的配置 +- 提示脏状态 / 同步相关状态 + +它不负责: + +- 后台服务全页配置 +- 权限全页引导 +- 日志或诊断工具主视图 + +--- + +## 5. 核心状态 + +本页最重要的不是“默认长什么样”,而是**不同状态下的工作区语义**。 + +### 5.1 平台上下文 + +平台切换器在可见层使用 symbol-only logo。 + +- 用户看到的是右上角 3 个平台 logo +- 完整平台名只保留在 tooltip / accessibility label +- 不对用户暴露 `Mode 0 / 1 / 2` + +内部仍可映射: + +- workspace A -> `Mode 0` +- workspace B -> `Mode 1` +- workspace C -> `Mode 2` + +### 5.2 页面级导航状态 + +页面级导航项包括: + +- 按键 +- OLED +- 灯条 +- 拨杆 +- 后台服务 +- 语音 +- 设备信息 + +导航切换时: + +- 保留当前设备上下文 +- 保留当前平台上下文 +- 对硬件编辑页可记住最近一次选中部件 + +### 5.3 选中态 + +在硬件编辑页里,需要有明确的部件选中态: + +- `Key 1` +- `Key 2` +- `Key 3` +- `Key 4` +- `OLED` +- `灯条` +- `拨杆` + +选中态由以下入口共同驱动: + +- 点击画布热区 +- 点击左侧硬件导航 +- Inspector 内的相关切换入口 + +### 5.4 配置模式 / 运行模式 + +本页必须显式区分: + +- `配置中`:本 App 持有 BLE,可编辑、可同步 +- `运行中`:后台守护进程持有 BLE,不可直接写设备 + +这不是辅助状态,而是工作区能否工作的根条件。 + +### 5.5 草稿 / 已同步 + +本页必须显式区分: + +- 无未同步改动 +- 有未同步改动 +- 正在同步 +- 同步失败 + +这是 AhaKey 与 Logi 最大的差异之一,必须成为页面主状态语言的一部分。 + +--- + +## 6. 平台切换器 + +### 6.1 定位 + +平台切换器是本页最重要的高层上下文入口。 + +它表达的不是“一个小过滤器”,而是: + +**“同一台硬件,在不同 AI 平台下的行为映射”** + +### 6.2 交互形式 + +形式参考 Logi 的应用图标切换器,但 AhaKey 采用 logo-only。 + +要求: + +- 空间比传统 segmented control 更轻 +- 视觉上像高层上下文切换,而不是局部表单控件 +- 支持扩展更多平台 +- 不在正文、Inspector、系统页副标题里重复平台品牌名 + +### 6.3 切换行为 + +切换平台时: + +- 保持当前页面级导航项不变 +- 在硬件编辑页里,尽量保持当前选中部件不变 +- Inspector 内容切换为对应平台下的配置 + +--- + +## 7. 左侧导航 + +左侧导航只保留一级导航项,不再显示 Key 1 / Key 2 / Key 3 / Key 4 的左侧二级目录。 + +硬件部件的精确选择由设备热区承担,Inspector 打开时左栏折叠,避免与中央对象争夺注意力。 + +### 7.1 硬件部件组 + +#### 按键 + +- 默认显示键盘画布 +- Key 1 默认选中 + +#### OLED + +- 进入 OLED 编辑上下文 +- 中央仍可显示设备画布,但强调 OLED 区域 + +#### 灯条 + +- 进入灯条编辑上下文 +- 若当前版本只支持有限编辑或只读预览,也要在本页清楚说明 + +#### 拨杆 + +- 进入拨杆配置上下文 +- 解释自动批准 / 手动批准映射 + +### 7.2 软件功能组 + +#### 后台服务 + +- 中央工作区切换为后台服务页 +- Inspector 隐藏 + +#### 语音 + +- 中央工作区切换为语音页 +- Inspector 隐藏 + +#### 设备信息 + +- 中央工作区切换为设备信息页 +- Inspector 隐藏 + +### 7.3 底部状态组 + +仅显示,只读: + +- 运行中 / 配置中 +- 已连接 / 未连接 +- 电量 +- 当前同步概况 + +不把它们做成导航项。 + +--- + +## 8. 中央工作区 + +### 8.1 默认着陆点 + +默认着陆点建议为: + +- 进入工作区时默认落在 `按键` +- 默认平台为当前硬件所处平台 +- 默认选中 `Key 1` + +这样最容易让用户立刻开始配置主价值链。 + +### 8.2 硬件编辑态 + +在 `按键 / OLED / 灯条 / 拨杆` 导航下: + +- 中央工作区显示 1:1 设备工作画布 +- 当前焦点部件高亮 +- 其它部件可见但退后 + +### 8.3 软件功能页态 + +在 `后台服务 / 语音 / 设备信息` 导航下: + +- 中央工作区切换为完整的单页内容 +- 不再强行保留右侧 inspector + +### 8.4 同步状态表达 + +中央工作区顶部或底部需要一个稳定位置表达: + +- 有未同步改动 +- 正在同步 +- 同步成功 +- 同步失败 + +这不能只藏在某个按钮文案里。 + +--- + +## 9. Inspector + +### 9.1 骨架 + +Inspector 统一骨架: + +1. 当前平台摘要 +2. 当前部件标题 +3. 该部件主属性 +4. 预览 / 说明 +5. 高级项 +6. 同步提示 + +### 9.2 Key 1 示例 + +`Key 1` Inspector 重点包括: + +- 当前平台 +- 语音行为 +- 触发键映射 +- 当前语音路由摘要 +- 权限 / 可用性提示(只做摘要,详细内容去语音页) + +### 9.3 OLED 示例 + +`OLED` Inspector 重点包括: + +- 当前显示模式 +- 当前素材摘要 +- 预览入口 +- 上传 / 替换动作 + +### 9.4 灯条示例 + +`灯条` Inspector 重点包括: + +- 状态映射摘要 +- 当前预览 +- 当前阶段支持范围 + +### 9.5 拨杆示例 + +`拨杆` Inspector 重点包括: + +- 自动批准 / 手动批准语义 +- 当前平台下拨杆对应行为 +- 与运行中状态的关系说明 + +### 9.6 不该放进 Inspector 的内容 + +- Hook 安装向导 +- 详细权限流程 +- BLE 日志 +- 后台服务生命周期控制 + +这些内容应跳去对应单页。 + +--- + +## 10. 与 AhaKey 现有约束的映射 + +### 10.1 当前已有运行时 + +本页默认依赖: + +- `AhaKeyBLEManager` +- `AgentManager` +- `VoiceRelayService` + +### 10.2 当前代码现实 + +当前 `AhaKeyStudioView` 已经同时承载: + +- 顶部工具栏 +- 画布 +- Inspector +- 语音权限弹层 +- 设备信息 sheet +- 同步逻辑 + +本 spec 的目标是把这些职责拆开,而不是继续让单视图膨胀。 + +### 10.3 需要保留的核心事实 + +- 平台最终仍映射到固件 `Mode` +- Voice Relay 仍与 `AhaKeyModeSlot` 绑定 +- BLE 连接抑制逻辑仍由 `AgentManager` 与 `AhaKeyBLEManager` 协同 + +因此重构的重点是: + +- 改页面结构 +- 改组件边界 +- 改用户可见心智 + +不是重写服务逻辑。 + +--- + +## 11. 非目标项 + +本页不负责: + +- 定义所有 Settings 表单细项 +- 详细描述权限申请 API +- 修改 BLE 指令协议 +- 重做 Voice Relay 机制 + +--- + +## 12. 验收标准 + +### 12.1 用户视角 + +用户进入设备工作区后,应能迅速理解: + +- 我当前在配置哪台设备 +- 我当前在配置哪个平台 +- 左边切的是“页面 / 功能” +- 中间是设备主工作区 +- 右边是当前部件属性 +- 顶部或固定位置能看到是否需要同步 + +### 12.2 工程视角 + +另一个工程师读完后,应能直接拆出: + +- `StudioView` +- `PlatformSwitcher` +- `StudioSidebar` +- `StudioCanvasHost` +- `StudioInspector` +- `AgentPage` +- `VoicePage` +- `DeviceInfoPage` + +并明确哪些是页面级切换,哪些是部件选中态。 diff --git a/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/05-secondary-pages-spec.md b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/05-secondary-pages-spec.md new file mode 100644 index 0000000..c99666c --- /dev/null +++ b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/05-secondary-pages-spec.md @@ -0,0 +1,374 @@ +# 次级页面 Spec + +更新时间:2026-05-02 +状态:草稿 + +--- + +## 1. 文档定位 + +本文档定义设备工作区之外、但仍属于 AhaKey Studio 主前台壳的次级页面 spec。 + +包括: + +- 后台服务页 +- 语音页 +- Settings +- 设备信息页 +- 权限 / 异常 / 辅助弹层规则 + +这些页面的共同目标是: + +- 把跨硬件功能从 inspector 中拆出来 +- 让页面职责更稳定 +- 让用户在复杂状态下仍知道自己在处理哪一类问题 + +--- + +## 2. 总体原则 + +### 2.1 次级页面回答的是“系统能力问题” + +这些页面共同回答的不是“这个键该怎么配”,而是: + +- 系统是否准备好了 +- 后台服务是否正常 +- 权限是否齐全 +- 设备状态是否可信 + +### 2.2 次级页面需要完整画布,而不是塞进小 panel + +因此: + +- 进入次级页面时,中央工作区切换为整页 +- 右侧 inspector 默认隐藏 + +### 2.3 这些页面应降低认知负担 + +它们不该长得像工程调试工具。 + +即使包含诊断信息,也要: + +- 先给结论 +- 再给操作 +- 最后才给细节 + +--- + +## 3. 后台服务页 / Agent + +### 3.1 页面回答的问题 + +- 后台守护进程是否安装 +- 是否正在运行 +- 当前 Hook 覆盖到哪些 AI 工具 +- 当前设备是否处于运行中 +- 如何切回由后台服务持有键盘控制权 + +### 3.2 页面骨架 + +```text +┌─────────────────────────────────────────────────────┐ +│ 后台服务 │ +├─────────────────────────────────────────────────────┤ +│ 状态总览卡 │ +│ - 已安装 / 未安装 │ +│ - 运行中 / 未运行 │ +│ - 已连接键盘 / 未连接键盘 │ +│ │ +│ Hook 覆盖区 │ +│ - Claude Code │ +│ - Cursor │ +│ - Codex │ +│ │ +│ 控制权区 │ +│ - 当前为运行中 / 配置中 │ +│ - 切回运行中 / 进入配置中 │ +│ │ +│ 高级 / 诊断折叠区 │ +└─────────────────────────────────────────────────────┘ +``` + +### 3.3 核心状态 + +- 未安装 +- 已安装但未运行 +- 已运行但未连接键盘 +- 已运行且已连接键盘 +- Hook 不完整 + +### 3.4 主要交互 + +- 安装后台服务 +- 启用 / 停用后台服务 +- 重新检查状态 +- 安装 / 修复 Hook +- 切换到运行中 / 配置中 + +### 3.5 非目标项 + +- 不在这里编辑单个键位 +- 不在这里展示完整 BLE 通信日志默认态 + +--- + +## 4. 语音页 / Voice + +### 4.1 页面回答的问题 + +- 当前语音路由是否有效 +- 系统权限是否齐全 +- 各平台下的语音行为如何映射 +- 用户下一步该去系统设置还是该回到工作区 + +### 4.2 页面骨架 + +```text +┌─────────────────────────────────────────────────────┐ +│ 语音 │ +├─────────────────────────────────────────────────────┤ +│ 权限总览卡 │ +│ - 输入监控 │ +│ - 辅助功能 │ +│ - 麦克风 │ +│ - 语音识别 │ +│ │ +│ 平台语音映射区 │ +│ - Claude Code │ +│ - Cursor │ +│ - Codex │ +│ │ +│ 当前路由摘要 │ +│ │ +│ 操作区 │ +│ - 重新检查权限 │ +│ - 打开系统设置 │ +│ - 重启并重新打开 │ +└─────────────────────────────────────────────────────┘ +``` + +### 4.3 核心状态 + +- 权限全部齐全 +- 缺少输入监控 +- 缺少辅助功能 +- 缺少麦克风 / 语音识别 +- 路由为空 +- 路由存在但依赖某外部 App + +### 4.4 主要交互 + +- 重新检查权限 +- 打开系统权限设置 +- 引导重启 App +- 查看当前平台的语音映射 + +### 4.5 设计要求 + +- 先说清权限状态 +- 再给下一步动作 +- 最后才解释底层原理 + +--- + +## 5. 设备信息页 / Device Info + +### 5.1 页面回答的问题 + +- 当前设备是谁 +- 固件是什么版本 +- 当前 BLE 状态是否正常 +- 我是否需要进入诊断模式 + +### 5.2 页面骨架 + +```text +┌─────────────────────────────────────────────────────┐ +│ 设备信息 │ +├─────────────────────────────────────────────────────┤ +│ 身份卡 │ +│ - 设备名 │ +│ - 型号 │ +│ - 固件版本 │ +│ - UUID │ +│ │ +│ 连接状态卡 │ +│ - 已连接 / 未连接 │ +│ - 电量 / 信号 │ +│ - 当前平台 / 当前运行状态 │ +│ │ +│ 高级诊断区(折叠) │ +│ - BLE 状态 │ +│ - 最近日志 │ +│ - 导出诊断 │ +└─────────────────────────────────────────────────────┘ +``` + +### 5.3 核心状态 + +- 已连接且信息完整 +- 已连接但部分信息未读到 +- 未连接 +- 诊断模式开启 + +### 5.4 主要交互 + +- 重新读取设备信息 +- 导出诊断 +- 进入高级诊断展开态 + +### 5.5 设计要求 + +- 默认态不应工程化 +- 高级诊断默认折叠 + +--- + +## 6. Settings + +### 6.1 页面回答的问题 + +- 影响整个应用的偏好是什么 +- 哪些行为是默认策略 +- 哪些是与单个页面无关的元设置 + +### 6.2 建议层级 + +- 通用 +- 设备 +- 后台服务与 Hook +- 语音 +- 通知 +- 高级 + +### 6.3 Settings 承载方式 + +优先采用: + +- macOS 原生 Settings scene 或独立设置窗口 + +不建议: + +- 大 sheet +- 从首页弹一个超长浮层 + +### 6.4 各组示意 + +#### 通用 + +- 登录时启动 +- 外观 +- 语言(未来) + +#### 设备 + +- 默认连接策略 +- 断连后的行为 +- 固件更新入口(未来) + +#### 后台服务与 Hook + +- Hook 安装状态 +- 自动启动后台服务 +- 默认运行策略 + +#### 语音 + +- 默认语音行为 +- 默认平台路由偏好 + +#### 通知 + +- 连接通知 +- 同步完成通知 +- 后台服务异常通知 + +#### 高级 + +- 诊断模式 +- 导出诊断 +- 重置配置 +- 关于 + +--- + +## 7. 弹层 / sheet / dialog 规则 + +### 7.1 Popover + +适合: + +- 快捷操作 +- 轻量帮助说明 +- 局部二级选择 + +不适合: + +- 大表单 +- 权限引导主流程 + +### 7.2 Sheet + +适合: + +- 添加设备 +- 大型媒体预览 +- 一次性向导 + +### 7.3 Dialog / Alert + +适合: + +- 切换运行状态的确认 +- 未同步改动离开确认 +- 需要重启 App 的确认 + +### 7.4 独立页面 + +以下内容优先用独立页面而非弹层: + +- 后台服务 +- 语音 +- 设备信息 +- Settings + +--- + +## 8. 与现有约束的映射 + +### 8.1 后台服务页 + +应直接复用 `AgentManager` 的状态,而不是再造一个平行状态源。 + +### 8.2 语音页 + +应直接复用: + +- `VoiceRelayService` +- `NativeSpeechTranscriptionService` + +### 8.3 设备信息页 + +应直接复用 `AhaKeyBLEManager` 已发布状态与诊断信息。 + +### 8.4 当前实现存在的问题 + +当前部分内容分散在: + +- 顶栏 +- inspector +- sheet +- alert + +本 spec 的目标是把这些零散入口收敛成稳定页面。 + +--- + +## 9. 验收标准 + +读完本文后,另一个工程师应能直接明确: + +- 哪些内容属于独立页面 +- 哪些页面需要隐藏 inspector +- 哪些动作该用 popover / sheet / alert +- 为什么后台服务和语音不该继续塞在 `AhaKeyStudioView` 的右侧属性面板里 diff --git a/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/06-state-machine-spec.md b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/06-state-machine-spec.md new file mode 100644 index 0000000..bc44d96 --- /dev/null +++ b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/06-state-machine-spec.md @@ -0,0 +1,403 @@ +# UX 状态机 Spec + +更新时间:2026-05-02 +状态:草稿 + +--- + +## 1. 文档定位 + +本文档定义 AhaKey Studio 在高保真重构后必须遵守的**三层状态机**。 + +这是整套专题文档里最关键的一份,因为: + +- Logi Options+ 没有这套复杂度 +- AhaKey 的大量 UX 风险都来自状态层表达不清 + +本文档回答的问题是: + +- 用户当前到底处于什么工作状态 +- 哪些状态是互斥的,哪些是并行的 +- 每个状态下允许哪些操作 +- 状态应该显示在页面的什么位置 + +--- + +## 2. 为什么需要单独写状态机 + +如果只看页面结构,很容易把 AhaKey 误做成“像 Logi 的配置软件”。 + +但 AhaKey 与 Logi 的根本差异在于: + +- 不是所有时候都能编辑 +- 不是所有改动都会即时生效 +- App 并不总是持有设备连接 + +因此必须把以下三层状态拆开: + +1. BLE 连接状态 +2. 键盘控制权状态 +3. 草稿 / 同步状态 + +任何一个页面,只要忽略其中一层,用户就会对“我现在到底能不能改、改了会不会生效”产生误解。 + +--- + +## 3. 三层状态定义 + +### 3.1 第一层:BLE 连接状态 + +回答: + +**“App 当前是否与设备建立了可用连接?”** + +状态集合: + +- 未连接 +- 扫描中 +- 连接中 +- 已连接 +- 连接异常 + +用户可见位置: + +- 首页设备 hero +- 设备工作区左下状态区 +- 设备信息页 + +### 3.2 第二层:控制权状态 + +回答: + +**“当前由谁持有与键盘的可写控制权?”** + +内部真实状态: + +- `AhaKey Studio` 持有 BLE +- `ahakeyconfig-agent` 持有 BLE + +用户可见文案映射: + +- `配置中` +- `运行中` + +用户可见位置: + +- 首页 hero 状态摘要 +- 设备工作区左下状态区 +- 工作区顶部主状态提示 +- 后台服务页 + +### 3.3 第三层:草稿 / 同步状态 + +回答: + +**“我正在看的配置,是本地草稿、已同步快照,还是设备真实状态?”** + +用户可见的主要状态: + +- 无未同步改动 +- 有未同步改动 +- 同步中 +- 同步成功 +- 同步失败 +- 设备真实状态未知 + +用户可见位置: + +- 设备工作区顶部或底部稳定提示区 +- Inspector 辅助提示 +- 首页轻量摘要(可选) + +--- + +## 4. 三层状态之间的关系 + +三层状态不是一条线性状态机,而是三条并行状态线。 + +可以组合出如下典型工作态: + +| BLE | 控制权 | 草稿/同步 | 用户语义 | +|----|----|----|----| +| 已连接 | 配置中 | 无未同步改动 | 可以继续编辑,也可以结束 | +| 已连接 | 配置中 | 有未同步改动 | 正在编辑,尚未写入键盘 | +| 已连接 | 配置中 | 同步中 | 正在把草稿写入键盘 | +| 已连接 | 配置中 | 同步失败 | 用户需要重试或处理异常 | +| 未连接 | 运行中 | 无未同步改动 | 键盘由后台服务运行,App 当前不可写 | +| 未连接 | 运行中 | 有未同步改动 | 本地仍有草稿,但当前不能直接写设备 | +| 连接异常 | 配置中 | 有未同步改动 | 高风险态,需优先保护草稿 | + +结论: + +- “是否已连接”并不能替代“是否可编辑” +- “是否可编辑”也不能替代“是否需要同步” + +--- + +## 5. 状态优先级 + +当多个状态同时成立时,界面必须有优先级。 + +建议优先级如下: + +1. 严重阻断态 +2. 控制权冲突态 +3. 未同步改动态 +4. 一般信息态 + +### 5.1 严重阻断态 + +例如: + +- 连接异常 +- 同步失败 +- 关键权限缺失导致功能完全不可用 + +表现要求: + +- 页面必须显著提示 +- 用户无需找半天才知道为什么不能继续 + +### 5.2 控制权冲突态 + +例如: + +- 当前处于运行中,用户进入工作区但不能直接写设备 + +表现要求: + +- 工作区需要显式提示“当前不可写,需要进入配置中” +- 不能让用户误以为自己正在改真实设备 + +### 5.3 未同步改动态 + +例如: + +- 草稿已改但未同步 + +表现要求: + +- 必须持续可见 +- 但不应比阻断态更抢眼 + +### 5.4 一般信息态 + +例如: + +- 电量 +- 最近同步时间 +- 当前平台名 + +这些信息可以低权重表达。 + +--- + +## 6. 关键用户流状态机 + +### 6.1 从首页进入设备工作区 + +#### 情况 A:当前为运行中 + +用户进入设备工作区后应看到: + +- 当前设备上下文 +- 当前平台 +- 页面可浏览 +- 但需要一个清楚的主提示:当前是运行中,若要写入配置,需要进入配置中 + +允许操作: + +- 查看配置 +- 切换平台 +- 浏览后台服务 / 语音 / 设备信息 + +不允许误导用户: + +- 以为点了就已经写到设备 + +#### 情况 B:当前为配置中 + +用户进入设备工作区后应看到: + +- 可直接编辑 +- 当前同步状态 +- 明确的同步和完成操作 + +### 6.2 切换到配置中 + +触发后状态变化: + +1. 后台守护进程释放控制权 +2. App 抢占 BLE +3. BLE 进入连接中 +4. 成功后进入已连接 + 配置中 +5. 工作区从“浏览 / 半可用”切到“可编辑” + +若失败: + +- 停留在原状态 +- 给出清楚失败提示 + +### 6.3 编辑并产生草稿 + +用户修改配置后: + +- 进入“有未同步改动” +- 当前修改仅写入草稿 +- 页面必须持续显示未同步状态 + +### 6.4 同步到键盘 + +点击同步后: + +1. 进入同步中 +2. 禁用部分冲突操作 +3. 成功后进入无未同步改动 +4. 失败后进入同步失败 + +### 6.5 完成配置 + +点击完成时要区分: + +#### 无未同步改动 + +- 直接释放 BLE +- 回到运行中 + +#### 有未同步改动 + +需要显式二选一: + +- 同步并完成 +- 放弃本次写入,回到运行中,但本地草稿保留 + +这里不能隐式做决定。 + +--- + +## 7. 状态可见位置规范 + +### 7.1 首页 + +首页只展示高层状态: + +- 已连接 / 未连接 +- 运行中 / 配置中 +- 电量 +- 可选:存在未同步改动 + +不展示: + +- 复杂诊断态 +- 详细同步错误栈 + +### 7.2 设备工作区 + +设备工作区必须同时承载三层状态摘要: + +- 左下:连接与控制权 +- 顶部或底部主状态带:同步与阻断态 +- Inspector 辅助提示:当前部件相关的同步 / 权限摘要 + +### 7.3 次级页面 + +#### 后台服务页 + +重点显示控制权状态。 + +#### 语音页 + +重点显示权限状态。 + +#### 设备信息页 + +重点显示连接与诊断状态。 + +--- + +## 8. 状态与操作权限矩阵 + +| 状态 | 可浏览 | 可编辑草稿 | 可同步到设备 | 可切回运行中 | +|------|------|------|------|------| +| 运行中 + 未连接 | 是 | 受限,默认只读或本地预编辑 | 否 | 已在运行中 | +| 配置中 + 连接中 | 部分 | 否 | 否 | 否 | +| 配置中 + 已连接 + 无脏改动 | 是 | 是 | 是 | 是 | +| 配置中 + 已连接 + 有脏改动 | 是 | 是 | 是 | 是(需确认) | +| 配置中 + 同步中 | 是 | 部分禁用 | 进行中 | 否 | +| 配置中 + 同步失败 | 是 | 是 | 是(可重试) | 是(需确认) | + +注: + +- “运行中 + 未连接”是否允许本地预编辑,需要在实现层明确选择。默认建议允许编辑草稿,但明确告诉用户尚未写入设备。 + +--- + +## 9. 与现有代码的映射 + +### 9.1 BLE 层 + +来源: + +- `AhaKeyBLEManager` + +关键字段: + +- `isScanning` +- `isConnected` +- `bleConnectionStatus` +- `batteryLevel` +- `workMode` + +### 9.2 控制权层 + +来源: + +- `AgentManager.bluetoothConnectionOwner` + +用户文案映射必须遵守 [00-glossary.md](../00-glossary.md): + +- `AhaKey Studio` 持有 -> `配置中` +- `agentDaemon` 持有 -> `运行中` + +### 9.3 草稿层 + +当前代码中的现实来源: + +- `studioDraft` +- `lastSyncedDraft` +- `isSyncing` + +重构后应上升为明确的页面级状态模型,而不是继续散落在一个超长 view 中。 + +--- + +## 10. 实现约束 + +### 10.1 不允许把状态只藏在按钮文案里 + +用户不能靠阅读按钮文字猜自己现在是什么状态。 + +### 10.2 不允许把控制权状态只写在技术页里 + +“运行中 / 配置中”必须在首页和工作区主路径上可见。 + +### 10.3 不允许把未同步改动做成一闪而过的 toast + +未同步改动是持续状态,不是一次性提示。 + +### 10.4 不允许用“Mode 0 / 1 / 2”替代平台状态 + +固件层模式只存在于内部实现,不进入主状态语言。 + +--- + +## 11. 验收标准 + +另一个工程师读完后,应能明确回答: + +- 当前 App 里到底有哪三层状态 +- 为什么 Logi 的工作区模型不能直接套用 +- 每一层状态应该显示在哪 +- 哪些操作在不同状态下可用 / 不可用 + +如果这些还需要靠会议口头补充,说明状态机 spec 仍不完整。 diff --git a/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/07-visual-system-spec.md b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/07-visual-system-spec.md new file mode 100644 index 0000000..7c22360 --- /dev/null +++ b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/07-visual-system-spec.md @@ -0,0 +1,474 @@ +# 视觉系统与组件语气 Spec + +更新时间:2026-05-03 +状态:草稿 + +--- + +## 1. 文档定位 + +本文档把“像 Logi Options+”从模糊感觉,收敛成可执行的视觉和组件规则。 + +目标不是复制 Logitech 品牌,而是建立一种适合 AhaKey 的桌面产品语言: + +- 克制 +- 稳定 +- 设备导向 +- 工作区导向 +- 对复杂状态友好 + +--- + +## 2. 整体视觉目标 + +### 2.1 视觉关键词 + +- 轻 +- 稳 +- 清楚 +- 设备中心 +- 以内容分层而不是以装饰取胜 + +### 2.2 参考的是“语气”,不是“品牌” + +允许高保真接近的维度: + +- 留白节奏 +- 表面层级 +- 分隔方式 +- 卡片与 panel 的克制感 +- 操作区的轻量密度 + +不复制: + +- Logitech 品牌色策略 +- Logitech 图标与品牌资产 +- 原始设备渲染素材 + +--- + +## 3. 视觉层级 + +建议把页面分为 4 层表面: + +### 3.1 App 背景层 + +用途: + +- 整个窗口底色 +- 大面积后退背景 + +特征: + +- 很轻的中性底 +- 不使用重渐变 +- 不制造强装饰 + +### 3.2 主内容层 + +用途: + +- 首页 hero 区 +- 中央工作区 +- 次级页面主体 + +特征: + +- 近白或轻微分层背景 +- 与窗口底有明确但温和的区分 + +### 3.3 辅助面板层 + +用途: + +- Inspector +- Settings 子面板 +- 状态卡 + +特征: + +- 比主内容层更“实体” +- 但不靠重阴影 + +### 3.4 浮层层 + +用途: + +- Popover +- Sheet 内重点区域 +- 关键确认框 + +特征: + +- 视觉上更聚焦 +- 不花哨 + +--- + +## 4. Token 建议 + +以下不是最终代码常量名,但应作为 Web / Electron 原型与后续 SwiftUI token 层的基线。 + +### 4.1 颜色角色 + +- `windowBackground` +- `pageSurface` +- `panelSurface` +- `panelSurfaceElevated` +- `dividerSubtle` +- `dividerStrong` +- `textPrimary` +- `textSecondary` +- `textTertiary` +- `accentPrimary` +- `accentSoft` +- `success` +- `warning` +- `danger` +- `info` + +要求: + +- 用“角色”命名,而不是直接写具体色值含义 +- 保证浅色 / 深色模式都能映射 + +### 4.1.1 Logi 主题 token 参考 + +Logi Options+ 的 `app.min.css` 已确认存在 `body.light` / `body.dark` 两套 CSS 变量。下一轮 Web 原型可以据此建立 AhaKey 自己的语义 token。 + +参考映射: + +| AhaKey token | Logi light 参考 | Logi dark 参考 | 用途 | +|--------------|-----------------|----------------|------| +| `--ak-bg-app` | `#fff` / `#fbfbfb` | `#000` | 应用大背景 | +| `--ak-bg-page` | `#fbfbfb` | `#191919` | 页面主体与 Settings 背景 | +| `--ak-bg-panel` | `#f5f5f5` | `#222425` / `#333` | 设置项、下拉框、局部 panel | +| `--ak-bg-panel-muted` | `#f0f0f0` | `#191919` | 次级控件底 | +| `--ak-text-primary` | `#222425` | `#fbfbfb` | 标题与主要正文 | +| `--ak-text-secondary` | `#888` | `#ccc` | 辅助说明 | +| `--ak-text-inverse` | `#000` | `#fff` | 反色文字 | +| `--ak-accent` | `#814efa` | `#00ead0` | 选中态、主操作、链接 | +| `--ak-accent-hover` | `#673ec8` | `#03dbc3` | hover / pressed | +| `--ak-accent-soft` | `rgba(129,78,250,.1)` | `rgba(0,234,208,.1)` | 轻量选中底 | +| `--ak-border` | `#d8d8d8` | `#666` | Settings 卡片、分隔、输入控件 | +| `--ak-success` | `#79e053` | `#79e053` | 电量、连接成功 | +| `--ak-warning` | `#ffa414` | `#ffa414` | 警告 | +| `--ak-danger` | `#ff2947` | `#ff2947` | 错误 | + +执行要求: + +- 原型必须支持 `light` / `dark` 两套 token。 +- 主题入口在 mock / review 面板里可切换,方便合作者对照。 +- AhaKey 默认不直接照搬 Logi 的紫色品牌感;可以保留紫色作为 light accent 参考,但最终 accent 应优先服从 AhaKey 品牌。 +- 深色模式的结构必须来自 token,不允许只给页面套 `filter` 或反色。 + +### 4.2 圆角 + +建议分三级: + +- 小:表单控件、pill、列表项 +- 中:panel、inspector、设置分组 +- 大:首页 hero、重要主卡片 + +要求: + +- 整体圆角克制 +- 不要到处使用过于圆润的玩具感卡片 + +### 4.3 阴影 + +阴影只承担: + +- 分层 +- 聚焦 + +不承担: + +- 装饰感 + +要求: + +- 常态阴影极轻 +- 选中态 / 浮层态稍强 +- 不出现厚重悬浮感 + +### 4.4 分隔线 + +优先使用: + +- 极浅实体线 +- 轻微透明度变化 + +不优先使用: + +- 深色重边框 +- 卡片套卡片式厚分隔 + +--- + +## 5. 排版系统 + +### 5.1 标题层级 + +- App / 页面标题 +- 分组标题 +- 面板标题 +- 字段标签 +- 辅助说明 + +要求: + +- 层级清楚 +- 字重变化克制 +- 不依赖超大字号制造“设计感” + +### 5.2 文本密度 + +桌面应用允许比营销页更高的信息密度,但必须: + +- 容易扫读 +- 大段说明前先给结论 +- 状态说明尽量简短直接 + +### 5.3 文案语气 + +延续 AhaKey 当前规范: + +- 优先用用户能理解的结果词 +- 少用工程术语 +- 使用 [00-glossary.md](../00-glossary.md) 里的术语 + +--- + +## 6. 关键组件语气 + +### 6.1 顶栏 + +语气: + +- 稳定 +- 稀疏 +- 品牌感轻 + +不做成: + +- 一排非常重的彩色按钮 +- 仪表盘式状态墙 + +### 6.2 平台切换器 + +语气: + +- 高层上下文切换器 +- 视觉上比 segmented control 更轻、更像“平台标签” + +要求: + +- 当前平台识别强 +- 未选中平台弱化但清晰可点 + +### 6.3 左侧导航 + +语气: + +- 工具式 +- 克制 +- 可连续扫读 + +要求: + +- 当前项高亮清楚 +- 分组分隔明确 +- 底部状态区与导航项视觉区别明显 + +### 6.4 Hero 卡片 + +语气: + +- 页面主角 +- 设备中心 +- 不像营销 banner + +要求: + +- 真实设备是主要注意力 +- 状态和入口围绕设备组织 + +### 6.5 Inspector + +语气: + +- 专业 +- 安静 +- 结构化 + +要求: + +- 标题、主配置、说明、辅助提示分区明确 +- 不出现大块花哨装饰 + +### 6.6 状态 pill + +状态 pill 用于: + +- 运行中 / 配置中 +- 已连接 / 未连接 +- 未同步改动 + +要求: + +- 轻量 +- 一眼可识别 +- 不做成抢眼大 badge + +### 6.7 提示条 / banner + +用于: + +- 当前不可写 +- 有未同步改动 +- 同步失败 +- 权限不完整 + +要求: + +- 永远先给结论 +- 再给建议动作 +- 色彩权重服从严重程度 + +--- + +## 7. 交互反馈 + +### 7.1 Hover + +桌面端必须用好 hover,但要克制。 + +适用: + +- 导航项 +- 热区 +- 次按钮 +- 卡片点击区 + +### 7.2 Selection + +选中态必须稳定可见。 + +适用: + +- 当前平台 +- 当前导航项 +- 当前画布部件 + +### 7.3 Disabled + +禁用态需要清楚表达“为什么不可用”,尤其是: + +- 当前处于运行中 +- 同步中 +- 权限缺失 + +不能只是灰掉。 + +### 7.4 Success / Failure + +同步成功 / 失败应有清楚反馈,但不需要重动画。 + +建议: + +- 成功:轻量短暂确认 +- 失败:稳定留存,直到用户处理 + +--- + +## 8. 页面密度与布局约束 + +### 8.1 首页 + +- 低到中密度 +- 重心在 hero +- 尽量不出现多列杂项卡片 + +### 8.2 工作区 + +- 中密度 +- 中央画布与右侧 inspector 权重平衡 +- 左侧导航始终轻于中央内容 + +### 8.3 次级页面 + +- 中密度 +- 先摘要卡,后详细内容 +- 高级诊断折叠在后 + +### 8.4 Settings + +- 中高密度但结构化 +- 与系统偏好设置语气一致 +- 深色模式下采用左侧固定导航 + 中央内容列,不使用卡片堆砌 +- 当前导航项用左侧青色竖条和文字强调表达 +- 通用设置、通知、反馈与支持等页面使用大标题 + 分组标题 + 行级控件结构 +- 开关使用青绿色轨道与黑色圆点,默认态保持轻量 + +### 8.5 Settings 深色参考 + +用户提供的深色 Settings 截图确认了以下规则: + +- 背景接近纯黑,但内容不是高对比白卡片,而是直接在同一平面上排布。 +- 左侧导航宽度稳定,当前项用 accent 竖条和 accent 文本,不依赖大块背景。 +- 中央内容列有明确左边界感,页面标题约在内容列顶部偏左。 +- 表单控件体量大但数量克制:下拉框、toggle、主题卡都保持可扫读。 +- 主题卡选中态使用 accent 边框 + 圆形 check,不需要额外说明文字。 +- 链接统一使用 accent,正文和标题使用白色 / 浅灰分层。 + +--- + +## 9. 动效原则 + +动效只用于: + +- 状态切换确认 +- 页面级上下文切换 +- Inspector 与 panel 的轻量展开 + +不用于: + +- 装饰性炫技 +- 大面积漂浮 / 弹跳 + +要求: + +- 节奏短 +- 不打断工作 +- 不制造多余拟物感 + +--- + +## 10. 实现要求 + +这份视觉 spec 必须落成一层共享样式系统,而不是散落在各页内联写样式。 + +最少需要抽出: + +- 颜色角色 +- 字体角色 +- 圆角等级 +- 面板样式 +- 导航项样式 +- 状态 pill 样式 +- banner 样式 +- 按钮等级样式 + +否则后续重构会继续回到“一个页面一个风格”的状态。 + +--- + +## 11. 验收标准 + +另一个工程师读完后,应能直接回答: + +- AhaKey 的前台表面应该分几层 +- 哪些颜色 / 圆角 / 阴影需要 token 化 +- 首页 hero、工作区、inspector、状态 pill 分别应该是什么语气 +- 为什么这套系统是“像 Logi 的成熟度”,而不是“做成 Logitech 皮肤” diff --git a/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/08-swiftui-implementation-spec.md b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/08-swiftui-implementation-spec.md new file mode 100644 index 0000000..5618037 --- /dev/null +++ b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/08-swiftui-implementation-spec.md @@ -0,0 +1,288 @@ +# SwiftUI 实现映射 Spec + +更新时间:2026-05-02 +状态:草稿,现作为后续原生迁移参考 + +--- + +## 1. 文档定位 + +本文档把前面的产品 spec 直接翻译成 SwiftUI 实现层的拆分约束。 + +2026-05-03 更新: + +下一轮优先执行路径已调整为 [Web / Electron 原型交付](./09-web-electron-prototype-spec.md)。本文档暂不作为下一轮直接实施计划,而是保留为页面边界稳定后迁移到 SwiftUI 原生客户端时的参考。 + +它回答的问题是: + +- 页面应该怎样拆 +- 共享样式层应该怎样落 +- 当前 `AhaKeyStudioView` 应怎样被拆解 +- 哪些状态模型要上升为页面级导航状态 +- 哪些底层服务保持不动 + +--- + +## 2. 实现目标 + +本轮实现不是“给现有视图补几个 panel”,而是做一次**前台壳层重构**。 + +目标: + +1. `ContentView` 不再直接承载当前 studio +2. 首页与设备工作区分层 +3. 工作区与次级页面分层 +4. Inspector 职责收敛 +5. 样式系统抽离 + +非目标: + +- 改 BLE 协议 +- 改 `AgentManager` / `VoiceRelayService` 的核心逻辑 +- 改固件命令结构 + +--- + +## 3. 建议的视图拆分 + +### 3.1 顶层 + +建议新增: + +- `AppRootView` +- `HomeView` +- `StudioView` +- `Settings` scene + +当前: + +- `ContentView` 直接包 `AhaKeyStudioView` + +目标: + +- `ContentView` 或 `AppRootView` 只负责顶层导航分发 + +### 3.2 设备工作区 + +建议把当前 `AhaKeyStudioView` 拆成至少以下几个部分: + +- `StudioToolbar` +- `StudioSidebar` +- `PlatformSwitcher` +- `StudioCanvasHost` +- `StudioInspectorHost` +- `StudioStatusBanner` +- `StudioBottomStatus` + +### 3.3 次级页面 + +建议新增: + +- `AgentPageView` +- `VoicePageView` +- `DeviceInfoPageView` + +这些页面作为 `StudioView` 中央区域的替代内容,而不是 sheet 拼凑物。 + +### 3.4 首页 + +建议新增: + +- `DeviceHeroCard` +- `QuickActionsPopover` +- `AddDeviceSheet` + +--- + +## 4. 建议的状态模型拆分 + +### 4.1 顶层导航状态 + +需要新增一个顶层导航状态模型,至少包含: + +- 当前顶层页面 +- 当前设备 id / 当前设备引用 +- 当前是否显示设置 + +### 4.2 Studio 页面状态 + +设备工作区需要独立页面状态模型,至少包含: + +- 当前平台 +- 当前页面级导航项 +- 当前选中部件 +- 当前是否显示 inspector + +### 4.3 运行状态模型 + +在不改服务层的前提下,需要增加一个**面向页面的聚合状态层**,把底层服务翻译成 UI 能直接消费的状态。 + +例如聚合出: + +- `connectionState` +- `controlState` +- `syncState` + +而不是让页面到处自己拼: + +- `bleManager.isConnected` +- `agentManager.bluetoothConnectionOwner` +- `isSyncing` +- `studioDraft != lastSyncedDraft` + +### 4.4 视图状态 vs 服务状态 + +必须明确区分: + +- 服务状态:来自 BLE / Agent / Voice 单例 +- 页面状态:当前用户正在看哪里、选中了什么 + +这两层不能继续混在同一个巨型 view 里。 + +--- + +## 5. 样式系统建议 + +### 5.1 新建共享 UI 样式层 + +建议新增独立样式文件或目录,承载: + +- 色彩 token +- 字体角色 +- 圆角等级 +- 面板样式 +- 状态 pill 样式 +- banner 样式 + +### 5.2 避免继续在页面内散落样式 + +当前 `AhaKeyStudioView` 已经包含大量局部渐变、描边、圆角、阴影逻辑。 + +重构时应把这些收口到共享样式层,避免: + +- 首页一套风格 +- 工作区一套风格 +- 次级页面再一套风格 + +--- + +## 6. 现有 `AhaKeyStudioView` 迁移策略 + +### 6.1 保留的部分 + +当前可直接复用或局部重包的部分: + +- 键盘画布逻辑 +- 热区选中逻辑 +- OLED 预览相关视图 +- 同步命令拼装逻辑 + +### 6.2 需要拆出的部分 + +必须从 `AhaKeyStudioView` 中拆出的部分: + +- 顶栏 +- 左侧导航 +- 页面级状态表达 +- 后台服务 / 语音 / 设备信息的入口与承载 +- 全局状态提示 + +### 6.3 需要降级职责的部分 + +Inspector 应降级为: + +- 只处理当前部件属性编辑 + +不再承载: + +- 全局语音页职责 +- 后台服务页职责 +- 设备信息整页职责 + +--- + +## 7. 数据流建议 + +### 7.1 自上而下的导航分发 + +顶层页面切换从 root state 下发。 + +### 7.2 服务状态聚合 + +建议增加一层 UI-facing adapter / store,把: + +- `AhaKeyBLEManager` +- `AgentManager` +- `VoiceRelayService` + +聚合成页面可直接消费的状态对象。 + +### 7.3 草稿编辑流 + +建议保留草稿在本地编辑、显式同步的模型,但把“脏状态判断”和“同步状态文案”统一封到页面状态层。 + +--- + +## 8. 页面级实现顺序 + +建议的实现顺序: + +1. 建立 root navigation 与 `HomeView` +2. 拆出 `StudioView` 框架(顶栏 / 左栏 / 中央 / 右栏) +3. 把现有 `AhaKeyStudioView` 内容迁入 `StudioCanvasHost + StudioInspectorHost` +4. 实现 `AgentPageView / VoicePageView / DeviceInfoPageView` +5. 新建共享样式层 +6. 再做视觉统一与交互精修 + +理由: + +- 先把信息架构站稳 +- 再把功能从单视图里搬出来 +- 最后做视觉收口 + +--- + +## 9. 回归边界 + +本轮重构必须确保不破坏以下能力: + +- BLE 自动连接与手动连接 +- BLE 抑制逻辑(交给后台守护进程时本 App 不抢连) +- 现有同步命令链路 +- OLED 上传链路 +- Voice Relay 路由更新 +- 后台守护进程安装与状态检测 + +如果某次页面重构导致上述能力异常,应视为阻断问题,而不是“后面再看”的视觉问题。 + +--- + +## 10. 验收标准 + +### 10.1 工程结构验收 + +另一个工程师应能根据本文,直接开始建立: + +- 顶层导航 +- 首页 +- Studio 页面壳 +- 次级页面 +- 样式系统 + +### 10.2 代码边界验收 + +应能明确判断: + +- 哪些逻辑还留在服务层 +- 哪些逻辑属于页面状态聚合层 +- 哪些视图只负责渲染 + +### 10.3 产品一致性验收 + +应能确保: + +- 页面结构符合前面的信息架构 spec +- 状态表达符合状态机 spec +- 视觉语气符合视觉系统 spec + +如果实现时仍要频繁重新决定“这个页面到底归谁管”,说明这份实现 spec 还不够完整。 diff --git a/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/09-web-electron-prototype-spec.md b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/09-web-electron-prototype-spec.md new file mode 100644 index 0000000..adbe95e --- /dev/null +++ b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/09-web-electron-prototype-spec.md @@ -0,0 +1,418 @@ +# Web / Electron 原型交付 Spec + +更新时间:2026-05-03 +状态:下一轮优先执行草稿 + +--- + +## 1. 文档定位 + +本文档定义下一轮更务实的交付路径: + +**优先做 Web 形态的高保真前端原型,必要时再用 Electron 壳包装给合作者体验;不在本轮完整构建桌面应用。** + +它替代“直接进入 SwiftUI 原生重构”作为下一轮执行入口。SwiftUI 拆分文档仍保留,但降级为后续原生迁移参考。 + +--- + +## 2. 为什么先做 Web / Electron 原型 + +Logi Options+ 本身是 Electron + React,说明它的前台体验可以用 Web 技术完整承载。 + +对 AhaKey 当前阶段来说,先做 Web 原型的收益更高: + +- 合作者可以直接打开网页或压缩包预览 +- 页面、动线、状态表达可以快速迭代 +- 不需要先处理 macOS 原生窗口、权限、BLE、后台服务打包 +- 可以高保真参考 Logi 的页面壳、布局节奏和组件语气 +- 后续如果要包 Electron,只需要加薄壳,不改变前端页面结构 + +本轮目标不是证明技术集成,而是先把“产品壳长什么样、用户怎么走、状态怎么表达”定下来。 + +--- + +## 3. 交付形态 + +### 3.1 首选交付 + +一个可运行的 Web 前端原型: + +- 本地开发时通过 dev server 预览 +- 对外交付时可导出静态构建目录或压缩包 +- 合作者不需要安装完整 macOS App + +### 3.2 可选包装 + +如果需要更像桌面应用,可以加一个极薄 Electron wrapper: + +- 只负责打开同一套 Web 前端 +- 不接入真实 BLE +- 不接入真实后台服务 +- 不处理系统级权限 +- 不引入自动更新、签名、公证、安装器 + +Electron 在本阶段只是“演示容器”,不是完整桌面产品。 + +### 3.3 非目标 + +本轮不做: + +- 完整 macOS 原生客户端 +- SwiftUI 页面落地 +- BLE 真实连接 +- Agent / Voice 后端协议接入 +- 系统权限真实申请 +- 设备固件写入 +- Logitech 资源或代码复制 + +--- + +## 4. 推荐技术边界 + +建议使用: + +- React +- TypeScript +- Vite +- CSS Modules 或普通 CSS token 层 +- 本地 mock state +- 可选 Electron wrapper + +不建议本轮引入: + +- 复杂后端 +- 数据库 +- 跨平台桌面构建流水线 +- 真实系统 API +- 大型 UI 组件库 + +理由:这轮最重要的是页面判断和交互节奏,不是工程平台完备度。 + +### 4.1 开工基线 + +截至 2026-05-03,远端状态如下: + +- 本地 `desktop/main` 当前仍在 `d1bdb4d`。 +- `upstream/main` 已推进到 `42a13be`,比本地多 24 个提交。 +- `upstream/main` 已合入 `upstream/dev` 的 VoiceAgent / Feishu / AhaKey 工作台相关改动。 +- `upstream/main` 新增了 `platforms/macos/client/docs/prototypes/ahakey-design-spec.md` 和旧 HTML 原型资料。 +- `upstream/main` 新增了 SwiftUI 侧的 `AhaKeyDesignSystem.swift`,其中已有浅色 / 深色 appearance mode 与基础 token。 + +下一轮原型应基于远端最新 `upstream/main` 开干净分支或 worktree,不建议直接在当前 dirty 工作区 `pull`。 + +推荐做法: + +- 先保留当前 spec 文档改动。 +- 从 `upstream/main` 开原型分支,例如 `prototype/logi-web-shell`。 +- 原型代码放在 macOS client 文档/原型范围内,优先避免碰现有 Swift 源文件。 +- 只有需要复用远端设计说明时,读取 `docs/prototypes/ahakey-design-spec.md` 和 `AhaKeyDesignSystem.swift`,不要把旧 HTML 原型当作最终架构。 + +### 4.2 远端新信息对原型的影响 + +远端新推送意味着下一轮不是从空白开始: + +- VoiceAgent 已成为产品主线之一,原型必须保留 `Agent` / `Voice` 页面入口。 +- Feishu 集成已经进入远端,原型的 Agent/Voice 页应预留第三方集成状态,但不要在首版做真实登录。 +- 远端已有 AhaKey 自己的设计 token 草案,Web 原型应吸收其角色命名和层级,不只参考 Logi。 +- 旧 HTML 原型可作为 AhaKey 自身风格历史参考,但本轮主目标仍是 Logi 式前台壳。 + +--- + +## 5. 页面范围 + +### 5.1 必做页面 + +#### Home + +参考 Logi 首页设备总览: + +- 顶部问候 / 品牌区 +- 右上角操作区 +- 无设备空态 +- 单设备已连接态 +- 多设备布局预留 +- 添加设备入口 +- Smart Actions / 快捷操作入口 +- Settings 入口 + +AhaKey 映射: + +- 首页是设备选择器 +- 主视觉从 Logi 的鼠标 / 键盘 hero 改为 AhaKey 设备 hero +- 不展示 Logitech 品牌、生态文案、原始插图 + +#### Add Device Flow + +参考已观察到的“选择连接类型”页面: + +- 返回按钮 +- 居中标题 +- 单个或多个连接方式卡片 +- 底部辅助说明 + +AhaKey 映射: + +- 首版可以只保留 `Bluetooth` +- 文案改为 AhaKey 语气 +- 权限和扫描结果用 mock 状态表达 + +#### Device Studio + +参考 Logi 设备详情 / 自定义工作区: + +- 返回首页 +- 平台 / 应用上下文切换器 +- 中央设备画布 +- 可点击热点 +- 右侧 inspector +- 状态 pill / 同步状态 + +AhaKey 映射: + +- 平台切换器固定为 `Claude Code / Cursor / Codex` +- 中央画布使用 AhaKey 键盘示意,不使用 Logi 设备图 +- inspector 编辑 AhaKey 的按键、OLED、灯条、拨杆 +- 明确显示草稿 / 同步 / 控制权状态 + +### 5.2 应做页面 + +#### Settings + +用于承载全局元操作: + +- 启动项 +- 后台服务 +- 权限 +- 诊断 +- 关于 + +#### Agent + +作为设备工作区内的软件功能页: + +- 后台服务状态 +- 当前运行模式 +- 控制权说明 +- mock 启停操作 + +#### Voice + +作为设备工作区内的软件功能页: + +- 麦克风权限态 +- 语音输入启用态 +- 当前语音目标或 provider mock + +--- + +## 6. 原型状态模型 + +Web 原型不接真实服务,但必须模拟 AhaKey 的核心状态复杂度。 + +### 6.1 设备状态 + +至少支持: + +- `noDevice` +- `scanning` +- `connected` +- `disconnected` +- `permissionRequired` + +### 6.2 控制权状态 + +至少支持: + +- `runtimeOwnerAgent`:运行中,后台持有连接 +- `configOwnerStudio`:配置中,Studio 持有连接 +- `handoffPending`:控制权切换中 +- `handoffFailed`:控制权切换失败 + +### 6.3 草稿同步状态 + +至少支持: + +- `clean` +- `dirty` +- `syncing` +- `synced` +- `syncFailed` + +这些状态要在页面里可切换,方便合作者评审所有状态,而不是只看一张静态默认态。 + +--- + +## 7. 组件拆分建议 + +建议第一版拆成以下组件边界: + +- `AppShell` +- `HomePage` +- `TopActionBar` +- `DeviceHero` +- `DeviceStatusPill` +- `AddDevicePage` +- `DeviceStudioPage` +- `PlatformSwitcher` +- `StudioCanvas` +- `HotspotCallout` +- `StudioInspector` +- `SyncStatusBanner` +- `SettingsPage` +- `AgentPage` +- `VoicePage` +- `MockStatePanel` + +`MockStatePanel` 只在原型评审版本里显示,用于切换状态矩阵;未来正式 UI 可移除。 + +--- + +## 8. 视觉执行原则 + +从当前截图与 React / CSS 逆向可以确定的方向: + +- 大面积浅背景 +- 极少边框 +- 顶部操作区右对齐 +- 主设备 hero 居中偏视觉重心 +- 文字层级克制 +- icon + text 组合用于主要动作 +- 右侧 inspector 使用独立浅表面 +- 状态 pill 小而明确 +- 紫色只作为选中 / 强调色,不作为整页主色 +- 明暗主题都必须是一等公民 +- 深色 Settings 使用近黑背景、白色文本层级和青绿色 accent + +需要 AhaKey 化的地方: + +- 不使用 Logi 插图和设备图 +- 不使用 Logitech 品牌色和品牌文案 +- 不照搬鼠标滚轮、Flow、Easy-Switch 等专属能力 +- AhaKey 的状态语言要比 Logi 更显式,因为它有控制权和草稿同步问题 + +### 8.1 原型主题 token + +已确认 Logi React/CSS 包提供 `body.light` / `body.dark` 两套主题变量。Web 原型必须建立自己的 `:root[data-theme="light"]` / `:root[data-theme="dark"]` token。 + +最低 token 集: + +```css +:root[data-theme="light"] { + --ak-bg-app: #fff; + --ak-bg-page: #fbfbfb; + --ak-bg-panel: #f5f5f5; + --ak-bg-control: #f0f0f0; + --ak-text-primary: #222425; + --ak-text-secondary: #888; + --ak-accent: #814efa; + --ak-accent-hover: #673ec8; + --ak-accent-soft: rgba(129, 78, 250, 0.1); + --ak-border: #d8d8d8; +} + +:root[data-theme="dark"] { + --ak-bg-app: #000; + --ak-bg-page: #191919; + --ak-bg-panel: #222425; + --ak-bg-control: #333; + --ak-text-primary: #fbfbfb; + --ak-text-secondary: #ccc; + --ak-accent: #00ead0; + --ak-accent-hover: #03dbc3; + --ak-accent-soft: rgba(0, 234, 208, 0.1); + --ak-border: #666; +} +``` + +这些值来自 Logi CSS token 的参考抽取,不作为 AhaKey 最终品牌色承诺。实现时应通过角色 token 使用,不允许在组件里散落硬编码色值。 + +### 8.2 深色 Settings 页面规则 + +根据新截图,Settings 原型至少覆盖: + +- `General` +- `Notifications` +- `Feedback & Support` + +页面规则: + +- 左侧固定导航,当前项用 accent 竖条 + accent 文本。 +- 内容列最大宽度控制在可读范围内,不铺满整屏。 +- 每页使用大标题、分组标题、正文 / 链接 / 控件的层级。 +- `General` 必须包含版本信息、检查更新、自动更新 toggle、语言下拉、主题卡片。 +- `Notifications` 必须包含通用通知 toggle 与叠加通知分组。 +- `Feedback & Support` 必须包含反馈链接、评分链接、故障排除链接、蓝牙问题 checkbox 组。 +- 深色截图只作为结构与语气参考,文案必须改为 AhaKey。 + +--- + +## 9. 当前证据来源 + +截至 2026-05-03,本专题的 UI 判断来自三类来源: + +| 来源 | 当前贡献 | 适合决定什么 | 不适合决定什么 | +|------|----------|--------------|----------------| +| React / CSS / assets 逆向 | 高 | 页面家族、组件名称、样式 token、文案、状态信号 | 最终运行时像素表现 | +| 用户提供截图 | 中 | 首页、添加设备、设备详情、inspector、深色 Settings 的真实视觉节奏 | 全状态覆盖、交互逻辑完整性 | +| AhaKey 产品约束 | 高 | BLE 控制权、草稿同步、平台语义 | Logi 原组件真实细节 | +| 远端 AhaKey 新推送 | 中 | VoiceAgent/Feishu 已进入产品主线、AhaKey 自有 token 草案、旧原型资料 | Logi 原组件真实细节 | + +粗略判断: + +- 信息架构:React / CSS 已足够覆盖约 80% +- 组件清单:React / CSS 加截图可覆盖约 75% +- 视觉方向:当前截图可覆盖约 60%,还需要 AhaKey 设备工作区细节补图 +- 明暗主题 token:React / CSS 已确认可覆盖约 80%,截图用于校验运行时观感 +- 交互状态:React / CSS 可辅助推断约 60%,但关键状态仍需 mock 验证 +- 像素级复刻:不追求法律意义上的逐像素复制,目标是 85% 左右的产品体验相似度 + +--- + +## 10. 还需要的截图资产 + +因为下一轮改为 Web 原型,截图不再追求穷尽采集,而是只补关键决策缺口。 + +优先需要: + +1. 设备详情页完整正视角截图 +2. 右侧 inspector 的默认态、选中态、编辑态 +3. 平台 / 应用切换器的 hover、selected、添加应用态 +4. Settings 首页与一个二级设置页 +5. 权限态或错误态页面 + +可选需要: + +- 首页设备 hover 态 +- 设备断开态 +- 同步中 / 成功 / 失败状态 +- popover 或 sheet 打开态 +- 短录屏,用于观察页面切换和 hover 动效 + +截图只进入 `captures/raw-local/`,由后续整理动作筛选为 `tracked/` 精选资产。 + +--- + +## 11. 验收标准 + +下一轮原型完成后,应满足: + +1. 合作者能在浏览器里完整走通 Home -> Add Device -> Device Studio -> Settings。 +2. 主要页面不依赖真实后端,也能展示关键状态。 +3. Device Studio 能表达平台切换、热点选中、右侧 inspector、草稿同步。 +4. 视觉上能明显看出参考了 Logi 的成熟桌面软件壳层。 +5. 内容、品牌、设备图、文案都已经 AhaKey 化。 +6. 代码结构允许后续升级为 Electron 包装或迁移到 SwiftUI。 + +--- + +## 12. 与 SwiftUI 文档的关系 + +[08-swiftui-implementation-spec.md](./08-swiftui-implementation-spec.md) 仍然有效,但它不再是下一轮的直接执行入口。 + +新的顺序是: + +1. 先用 Web 原型验证 UI/UX 和状态模型 +2. 必要时用 Electron 壳交付给合作者 +3. 等页面边界和状态表达稳定后,再决定是否迁移到 SwiftUI 原生客户端 + +这样可以避免在产品壳还没定型时,就提前承担完整桌面工程成本。 diff --git a/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/10-inspector-content-spec.md b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/10-inspector-content-spec.md new file mode 100644 index 0000000..acf042e --- /dev/null +++ b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/10-inspector-content-spec.md @@ -0,0 +1,459 @@ +# Inspector 内容 Spec + +更新时间:2026-05-06 +状态:草稿 + +--- + +## 1. 文档定位 + +本文档定义 AhaKey Studio 设备工作区右侧 Inspector 的**逐部件内容边界**。 + +它回答的问题是: + +- 每个硬件部件的 Inspector 里应该有什么 +- 哪些内容必须移出 Inspector,移到哪个独立页面 +- Inspector 的通用结构模板是什么 + +本文档是 [04-device-studio-spec.md](./04-device-studio-spec.md) 的内容层细化,与 [05-secondary-pages-spec.md](./05-secondary-pages-spec.md) 互为对照。 + +--- + +## 2. Inspector 总体原则 + +### 2.1 Inspector 只回答一个问题 + +> **"当前选中的这个硬件部件,在当前平台下应该做什么?"** + +Inspector 是属性编辑面板,不是功能配置中心。 + +### 2.2 Inspector 不承载的内容 + +以下内容不属于 Inspector 的职责范围: + +- 跨硬件的软件功能配置(语音预设选择、权限申请流程) +- 后台服务生命周期控制(安装、启动、停止) +- Hook 安装向导 +- BLE 诊断日志 +- 控制权切换操作 + +这些内容有各自的独立页面(语音页、后台服务页、设备信息页)。 + +### 2.3 Inspector 空态 + +未选中任何热区时,Inspector 区域**隐藏**,不显示占位内容。 + +点击画布热区后,Inspector 从右侧滑入。 + +这样中央画布在默认态可以占满宽度,用户的注意力集中在设备全貌上。 + +### 2.4 Inspector 头部固定结构 + +所有部件的 Inspector 共用同一个极简头部结构: + +``` +┌─────────────────────────────────┐ +│ 部件名 │ +└─────────────────────────────────┘ +``` + +- 平台切换器只保留在工作区右上角,不进入 Inspector 头部 +- 不显示平台名 +- 不显示 `部件名 · 副标题` 这类中点式标题 +- 如需提示脏状态,应作为极轻的局部 badge 出现,不制造第二层标题区 + +### 2.5 Inspector 底部固定操作栏 + +Inspector 底部操作栏按需出现,固定在底部不随内容滚动: + +``` +┌─────────────────────────────────┐ +│ [同步到键盘] │ +└─────────────────────────────────┘ +``` + +- 主按钮只在当前部件确实有待提交改动时出现 +- 不固定保留“次操作”按钮;次操作更适合并入内容区或移到次级页面 + +--- + +## 3. 各部件 Inspector 内容定义 + +### 3.1 Key 1(语音键) + +#### 留在 Inspector + +| 内容 | 类型 | 说明 | +|------|------|------| +| 当前语音预设名称 | 只读文本 | 如"macOS 原生"、"Typeless"、"微信" | +| 当前触发键绑定 | 只读文本 | 固定为 F18,不可在此修改 | +| 权限状态 badge | 只读状态 | 绿色"正常" / 红色"缺少权限" | +| 按键描述 | 可编辑文本 | 写入 OLED 的标签文字,如"Record" | +| 跳转链接 | 导航入口 | "→ 语音设置",导航到语音页 | + +#### 移出 Inspector(移到语音页) + +| 内容 | 原位置 | 目标位置 | +|------|--------|---------| +| VoicePresetPicker 下拉选择器 | Key 1 Inspector | 语音页 · 平台语音映射区 | +| VoiceRelayService 状态详情 | Key 1 Inspector | 语音页 · 当前路由摘要 | +| NativeSpeechTranscriptionService 状态 | Key 1 Inspector | 语音页 · 当前路由摘要 | +| 输入监控 / 辅助功能权限引导 | Key 1 Inspector | 语音页 · 权限总览卡 | +| 麦克风 / 语音识别权限引导 | Key 1 Inspector | 语音页 · 权限总览卡 | +| lastPermissionCheckSummary | Key 1 Inspector | 语音页 | +| lastInspectorSimulateHint | Key 1 Inspector | 语音页 | + +#### 设计理由 + +Key 1 的 Inspector 应该告诉用户"现在语音是什么状态",而不是"如何配置语音"。 + +语音预设的选择会影响所有平台下的 Key 1 行为,是跨平台的全局配置,不属于单个部件在单个平台下的属性编辑。把它放在 Inspector 里会让用户误以为这是"当前平台专属"的设置。 + +#### 示意 + +``` +Key 1 +───────────────────────────────── +语音预设:macOS 原生 +触发键:F18 +权限:● 正常 + +→ 语音设置 +───────────────────────────────── +按键描述:Record +───────────────────────────────── + [同步到键盘] +``` + +--- + +### 3.2 Key 2(批准键)/ Key 3(拒绝键)/ Key 4(提交键) + +#### 留在 Inspector + +| 内容 | 类型 | 说明 | +|------|------|------| +| 当前激活层 | radio 切换 | 快捷键 / 宏,二选一 | +| 快捷键绑定 | 可编辑 | HID keycode picker,当前平台下的绑定值 | +| 宏编辑器 | inline 展开 | 见下方说明 | +| 按键描述 | 可编辑文本 | 写入 OLED 的标签文字 | + +#### 平台差异 + +Inspector 内容结构在三个工作区下相同,但绑定值随平台切换而变化。 + +切换平台时,Inspector 内容刷新为对应工作区的值,不需要重新选中热区。 + +可见平台状态只在右上角切换器呈现,Inspector 正文不重复品牌名。 + +各工作区的默认绑定值: + +| 键位 | Workspace A | Workspace B | Workspace C | +|------|-------------|--------|-------| +| Key 2 | Yes(F19) | Accept | Approve | +| Key 3 | No(Escape) | Reject | Reject | +| Key 4 | Submit(Enter) | Submit | Submit | + +用户可以在任意平台下覆盖默认值,各平台独立存储。 + +#### 宏编辑器 + +宏编辑器作为 Inspector 内的**展开区域**(inline expand),不弹出独立 sheet 或页面。 + +展开后显示: + +- 步骤列表(最多 49 步) +- 每步支持:downKey / upKey / upAllKeys / delay / noOp +- delay 单位:3ms +- 步骤可拖拽排序、删除、插入 + +理由:宏编辑是当前键位在当前平台下的属性,上下文明确,不需要独立页面。inline 展开保持了"我在编辑这个键"的心智,不会让用户迷失在独立页面里。 + +#### 示意 + +``` +Key 2 +───────────────────────────────── +激活层:● 快捷键 ○ 宏 + +快捷键:[F19] + +按键描述:Yes +───────────────────────────────── + [同步到键盘] +``` + +--- + +### 3.3 OLED + +#### 留在 Inspector + +| 内容 | 类型 | 说明 | +|------|------|------| +| GIF 素材选择 | 缩略图列表 | 当前平台下的动图选择 | +| 帧率设置 | stepper | 1–30 FPS | +| 预览区 | 只读 | 当前帧静态预览 | +| 上传按钮 | 主操作 | 文案:"上传并保存" | +| 上传进度条 | 状态 | 上传中显示 | +| 上传结果 | 状态 | ✓ 已保存到设备 / ✗ 上传失败 [重试] | + +#### saveConfig 修复 + +当前代码 `uploadCurrentOLEDToDevice()` 在上传像素帧数据(`updatePicture(0x82)`)后没有追加 `saveConfig(0x04)`,导致像素数据写入了外部 Flash,但 `key_bund.pic[mode]` 引用只在 RAM 里,设备重启后 OLED 恢复为空。 + +修复方案: + +- `uploadCurrentOLEDToDevice()` 完成后自动追加 `saveConfig(0x04)` +- 不向用户暴露"像素数据"和"引用"的区别,这是固件实现细节 +- 按钮文案改为"上传并保存",明确表达这是一个持久化操作 +- 上传成功后,OLED 相关的 `dirtyCount` 清零 + +用户不需要知道有两步,只需要知道"上传并保存"是一个完整的操作。 + +#### 移出 Inspector + +无。OLED 配置相对自洽,不需要独立页面。 + +#### 示意 + +``` +OLED +───────────────────────────────── +[缩略图] [缩略图] [缩略图] [缩略图] +[缩略图] [缩略图] [缩略图] [+] + +帧率:[12] FPS + +预览:[████████] + +───────────────────────────────── + [上传并保存] +``` + +--- + +### 3.4 灯条 + +#### 留在 Inspector + +| 内容 | 类型 | 说明 | +|------|------|------| +| 版本说明 | 只读文本 | "灯条效果由固件根据键盘状态自动驱动" | +| IDEState → 灯效映射摘要 | 只读表格 | 9 个状态对应颜色/效果,不可编辑 | +| 预览到设备按钮 | 操作 | 发送 updateState 命令,临时预览某个状态的灯效 | +| 阶段限制说明 | 只读文本 | "自定义灯效将在后续版本支持" | + +#### 移出 Inspector + +无。灯条当前只读,内容量合适,不需要独立页面。 + +#### 注意 + +灯条 Inspector 不显示 IDEState 的完整编辑界面,只做摘要 + 预览。 + +IDEState 的 9 个状态: + +| 状态 | 含义 | +|------|------| +| notification | 通知 | +| permissionRequest | 权限请求 | +| postToolUse | 工具调用后 | +| preToolUse | 工具调用前 | +| sessionStart | 会话开始 | +| stop | 停止 | +| taskCompleted | 任务完成 | +| userPromptSubmit | 用户提交 | +| sessionEnd | 会话结束 | + +#### 示意 + +``` +灯条 · 状态映射 +───────────────────────────────── +灯条效果由固件根据键盘状态自动驱动 + +状态 灯效 +────────────────── +会话开始 蓝色呼吸 +工具调用前 黄色常亮 +工具调用后 绿色闪烁 +任务完成 绿色常亮 +停止 红色常亮 +… + +预览:[选择状态 ▼] [预览到设备] + +自定义灯效将在后续版本支持 +``` + +--- + +### 3.5 拨杆(批准模式) + +#### 留在 Inspector + +| 内容 | 类型 | 说明 | +|------|------|------| +| 当前档位 | 只读状态 | 来自硬件实时状态:自动批准 / 手动批准 | +| 档位语义说明 | 只读文本 | 见下方 | +| 当前平台下的行为说明 | 只读文本 | 与平台切换器联动 | +| 跳转链接 | 导航入口 | "→ 后台服务",导航到后台服务页 | + +档位语义说明: + +- **自动批准**:后台服务运行时,工具调用自动确认,无需物理按键 +- **手动批准**:每次工具调用需要物理按下 Key 2 确认 + +#### 移出 Inspector(移到后台服务页) + +| 内容 | 原位置 | 目标位置 | +|------|--------|---------| +| 后台服务安装状态(isInstalled) | 拨杆 Inspector | 后台服务页 · 状态总览卡 | +| 后台服务运行状态(isRunning) | 拨杆 Inspector | 后台服务页 · 状态总览卡 | +| 后台服务 BLE 连接状态(isAgentBLEConnected) | 拨杆 Inspector | 后台服务页 · 状态总览卡 | +| Hook 安装状态(claudeHooksInstalled 等) | 拨杆 Inspector | 后台服务页 · Hook 覆盖区 | +| inline 安装/启动按钮 | 拨杆 Inspector | 后台服务页 · 主要交互 | +| 控制权切换操作(bluetoothConnectionOwner) | 拨杆 Inspector | 后台服务页 · 控制权区 | + +#### 用词规范(重要) + +拨杆 Inspector 全文**禁止出现"Agent"一词**。 + +统一用词: + +| 禁止 | 使用 | +|------|------| +| Agent | 后台服务 | +| Agent 模式 | 运行中 | +| IDE 模式 | 配置中 | +| ahakeyconfig-agent | 后台服务 | + +理由:在 Inspector 这个上下文里,"Agent"极易与 AI Agent(Claude、Cursor 等)混淆,造成用户误解。"后台服务"是准确且无歧义的描述。 + +#### 示意 + +``` +拨杆 · 批准模式 +───────────────────────────────── +当前档位:● 自动批准 + +自动批准 +后台服务运行时,工具调用自动确认, +无需物理按键。 + +手动批准 +每次工具调用需要物理按下 Key 2 确认。 + +───────────────────────────────── +→ 后台服务 +``` + +--- + +## 4. Inspector 通用结构模板 + +``` +┌─────────────────────────────────┐ +│ [平台 logo] 平台名 │ ← 可点击切换平台 +│ ─────────────────────────────── │ +│ 部件名 · 副标题 [● 未同步] │ ← 脏状态 badge(有改动时显示) +│ ─────────────────────────────── │ +│ │ +│ 主属性区(可编辑) │ +│ │ +│ ─────────────────────────────── │ +│ 预览 / 说明区(只读) │ +│ │ +│ ─────────────────────────────── │ +│ 跳转链接(如有) │ +│ │ +│ ─────────────────────────────── │ +│ [次操作] [同步到键盘] │ ← 固定底部操作栏 +└─────────────────────────────────┘ +``` + +各区域说明: + +- **主属性区**:当前部件在当前平台下的可编辑属性 +- **预览 / 说明区**:只读内容,帮助用户理解当前配置的效果 +- **跳转链接**:当部件有关联的独立页面时,提供导航入口 +- **底部操作栏**:固定,不随内容滚动 + +--- + +## 5. 信息披露层次总表 + +| 信息类型 | Inspector | 语音页 | 后台服务页 | 设备信息页 | +|---------|-----------|--------|-----------|-----------| +| 语音预设名称(当前值) | ✓ 只读 | ✓ 可编辑 | — | — | +| 语音权限状态 badge | ✓ 摘要 | ✓ 详细 + 操作 | — | — | +| 语音路由详情 | — | ✓ | — | — | +| 语音预设选择器 | — | ✓ | — | — | +| 按键快捷键绑定 | ✓ 可编辑 | — | — | — | +| 宏编辑器 | ✓ inline 展开 | — | — | — | +| 按键描述 | ✓ 可编辑 | — | — | — | +| OLED 素材选择 | ✓ | — | — | — | +| OLED 帧率 | ✓ | — | — | — | +| 灯效映射摘要 | ✓ 只读 | — | — | — | +| 灯效预览操作 | ✓ | — | — | — | +| 拨杆当前档位 | ✓ 只读 | — | — | — | +| 拨杆语义说明 | ✓ | — | — | — | +| 后台服务安装/运行状态 | — | — | ✓ | — | +| Hook 安装状态 | — | — | ✓ | — | +| 控制权切换操作 | — | — | ✓ | — | +| BLE 连接状态 | — | — | — | ✓ | +| 固件版本 | — | — | — | ✓ | +| BLE 诊断日志 | — | — | — | ✓ | + +--- + +## 6. 与现有代码的映射 + +### 6.1 需要修改的行为 + +以下修改只涉及 `Views/` 层,不改 BLE / 后台服务层: + +**`oledInspector`(AhaKeyStudioView.swift)** +- 上传完成后追加 `saveConfig(0x04)` +- 按钮文案从"上传到设备"改为"上传并保存" +- 上传成功后清零 OLED 相关的 dirtyCount + +**`keyInspector`(Key 1 分支)** +- 移除 VoicePresetPicker +- 移除权限引导 badge 详情(保留一个汇总 badge) +- 移除 VoiceRelayService 状态展示 +- 移除 NativeSpeechTranscriptionService 状态展示 +- 添加"→ 语音设置"跳转链接 + +**`switchInspector`** +- 移除 isInstalled / isRunning / hooksInstalled badge +- 移除 inline 安装/启动按钮 +- 移除控制权切换操作 +- 保留当前档位只读显示 + 语义说明 +- 添加"→ 后台服务"跳转链接 +- 全文不出现"Agent" + +**Inspector 空态** +- `selectedPart` 为 nil 时,隐藏 Inspector 区域(不显示占位内容) +- 点击热区后 Inspector 从右侧滑入 + +### 6.2 不改的层 + +- `BLE/AhaKeyBLEManager.swift` +- `BLE/AhaKeyProtocol.swift` +- `Agent/` 目录下所有文件 +- `Utilities/AgentManager.swift` +- `Utilities/VoiceRelayService.swift` +- `Utilities/NativeSpeechTranscriptionService.swift` + +--- + +## 7. 验收标准 + +1. 另一个工程师读完后能直接知道每个 Inspector 里有什么、没有什么 +2. 每个"移出 Inspector"的内容都有明确的目标页面 +3. 拨杆 Inspector 全文不出现"Agent"一词 +4. OLED 上传流程的 saveConfig 修复方案有明确的实现指引 +5. 信息披露层次总表覆盖所有当前 Inspector 中存在的内容类型 +6. 语音预设选择器的归属(语音页)与 Key 1 Inspector 的只读摘要之间的关系清晰 From eb1d8e769afa9c7ffbb45e951d4cefa092a17294 Mon Sep 17 00:00:00 2001 From: ethan su Date: Wed, 6 May 2026 16:42:53 +0800 Subject: [PATCH 2/2] docs(captures): add tracked capture manifests notes and selected references --- .gitignore | 3 + .../captures/00-capture-index.md | 106 ++++++++++++++ .../captures/README.md | 133 ++++++++++++++++++ .../tracked/agent/00-page-manifest.yaml | 16 +++ .../agent/status-card/status-card-notes.md | 38 +++++ .../device-studio/00-page-manifest.yaml | 51 +++++++ .../canvas-hotspot/canvas-hotspot-notes.md | 39 +++++ .../inspector/inspector-notes.md | 42 ++++++ .../platform-switcher-notes.md | 40 ++++++ .../device-studio/sidebar/sidebar-notes.md | 37 +++++ .../status-pills/status-pills-notes.md | 39 +++++ .../sync-banner/sync-banner-notes.md | 37 +++++ .../tracked/home/00-page-manifest.yaml | 33 +++++ .../tracked/home/hero/hero-annotated.png | Bin 0 -> 117682 bytes .../tracked/home/hero/hero-default.png | Bin 0 -> 115791 bytes .../captures/tracked/home/hero/hero-notes.md | 50 +++++++ .../home/hero/hero-states-contact-sheet.png | Bin 0 -> 134414 bytes .../home/quick-actions/quick-actions-notes.md | 39 +++++ .../tracked/home/topbar/topbar-notes.md | 38 +++++ .../tracked/settings/00-page-manifest.yaml | 23 +++ .../settings/form-group/form-group-notes.md | 37 +++++ .../tracked/settings/nav/nav-notes.md | 36 +++++ .../tracked/voice/00-page-manifest.yaml | 16 +++ .../permission-card/permission-card-notes.md | 38 +++++ 24 files changed, 891 insertions(+) create mode 100644 platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/00-capture-index.md create mode 100644 platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/README.md create mode 100644 platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/agent/00-page-manifest.yaml create mode 100644 platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/agent/status-card/status-card-notes.md create mode 100644 platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/device-studio/00-page-manifest.yaml create mode 100644 platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/device-studio/canvas-hotspot/canvas-hotspot-notes.md create mode 100644 platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/device-studio/inspector/inspector-notes.md create mode 100644 platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/device-studio/platform-switcher/platform-switcher-notes.md create mode 100644 platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/device-studio/sidebar/sidebar-notes.md create mode 100644 platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/device-studio/status-pills/status-pills-notes.md create mode 100644 platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/device-studio/sync-banner/sync-banner-notes.md create mode 100644 platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/home/00-page-manifest.yaml create mode 100644 platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/home/hero/hero-annotated.png create mode 100644 platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/home/hero/hero-default.png create mode 100644 platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/home/hero/hero-notes.md create mode 100644 platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/home/hero/hero-states-contact-sheet.png create mode 100644 platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/home/quick-actions/quick-actions-notes.md create mode 100644 platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/home/topbar/topbar-notes.md create mode 100644 platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/settings/00-page-manifest.yaml create mode 100644 platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/settings/form-group/form-group-notes.md create mode 100644 platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/settings/nav/nav-notes.md create mode 100644 platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/voice/00-page-manifest.yaml create mode 100644 platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/voice/permission-card/permission-card-notes.md diff --git a/.gitignore b/.gitignore index d6677d4..b0de59e 100644 --- a/.gitignore +++ b/.gitignore @@ -72,3 +72,6 @@ logs/ # Local model / runtime payloads internal/ .gstack/ + +# Internal capture working set (do not commit raw screenshot batches) +platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/raw-local/ diff --git a/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/00-capture-index.md b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/00-capture-index.md new file mode 100644 index 0000000..e3a747c --- /dev/null +++ b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/00-capture-index.md @@ -0,0 +1,106 @@ +# Capture Index + +更新时间:2026-05-03 +状态:capture 落库方案已建结构,待填充实际素材 + +--- + +## 1. 文档目的 + +本文档是 `captures/` 目录的工作索引,用于回答: + +- capture 资产现在分为哪些页面 +- 哪些组件已经进入跟踪区 +- 哪些只是预留目录 +- 首批试运行样本有哪些 + +--- + +## 2. 目录角色 + +### `tracked/` + +进 git,保留: + +- 精选默认态图 +- 标注图 +- 状态矩阵拼图 +- 组件说明 +- 页面 manifest + +### `raw-local/` + +不进 git,保留: + +- 原始整页截图 +- 临时裁片 +- 重复版本 +- 实验图 + +--- + +## 3. 页面分组 + +| 页面 | tracked | raw-local | 说明 | +|------|---------|-----------|------| +| `home` | 已建 | 已建 | 首页设备总览相关 capture | +| `device-studio` | 已建 | 已建 | 设备工作区相关 capture | +| `settings` | 已建 | 已建 | Settings 相关 capture | +| `agent` | 已建 | 已建 | 后台服务页相关 capture | +| `voice` | 已建 | 已建 | 语音页相关 capture | + +--- + +## 4. 首批试运行组件 + +### home + +- `hero` +- `topbar` +- `quick-actions` + +### device-studio + +- `platform-switcher` +- `sidebar` +- `canvas-hotspot` +- `inspector` +- `sync-banner` +- `status-pills` + +### settings + +- `nav` +- `form-group` + +### agent + +- `status-card` + +### voice + +- `permission-card` + +--- + +## 5. 当前推荐工作顺序 + +1. `home/hero` +2. `device-studio/platform-switcher` +3. `device-studio/inspector` + +完成这三项后,再决定是否扩展到其余组件。 + +--- + +## 6. 单组件最低交付物 + +一个组件进入 `tracked/` 的最低标准是: + +1. `*-default.png` +2. `*-annotated.png` +3. `*-states-contact-sheet.png` +4. `*-notes.md` +5. 对应页面 `00-page-manifest.yaml` 已记录 + +若只存在原始图或临时裁片,则应停留在 `raw-local/`,不进入 git。 diff --git a/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/README.md b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/README.md new file mode 100644 index 0000000..7468752 --- /dev/null +++ b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/README.md @@ -0,0 +1,133 @@ +# Captures + +本目录用于存放 Logi Options+ 的内部参考 capture 资料。 + +它不是正式产品资源目录,而是专题 spec 的配套分析资产目录。 + +--- + +## 1. 目录目标 + +本目录承载两类内容: + +1. **可跟随源码保留的精选 capture** +2. **只保留在本地、不进入 git 的原始截图与临时素材** + +本目录只服务于以下用途: + +- 页面结构分析 +- 原组件视觉拆解 +- 状态矩阵对照 +- AhaKey 映射讨论 + +不服务于: + +- 正式产品资源打包 +- 营销素材管理 +- 运行时静态资源引用 + +--- + +## 2. 目录结构 + +```text +captures/ +├── README.md +├── 00-capture-index.md +├── tracked/ +│ ├── home/ +│ ├── device-studio/ +│ ├── settings/ +│ ├── agent/ +│ └── voice/ +└── raw-local/ + ├── home/ + ├── device-studio/ + ├── settings/ + ├── agent/ + └── voice/ +``` + +规则: + +- `tracked/`:进 git,只放精选导出图、标注图、状态矩阵拼图、说明与 manifest +- `raw-local/`:不进 git,放原始整页截图、临时裁片、重复版本、实验图 + +--- + +## 3. 组织方式 + +一级目录按页面: + +- `home` +- `device-studio` +- `settings` +- `agent` +- `voice` + +二级目录按组件。 + +每个组件目录只跟踪以下 4 类主文件: + +- `*-default.png` +- `*-annotated.png` +- `*-states-contact-sheet.png` +- `*-notes.md` + +如果某个组件状态非常多,允许额外拆多个 contact sheet,但文件名前缀必须一致。 + +--- + +## 4. 命名规则 + +### 4.1 tracked 精选文件 + +- 全小写 +- kebab-case +- 不带日期 + +示例: + +- `hero-default.png` +- `hero-annotated.png` +- `hero-states-contact-sheet.png` +- `hero-notes.md` + +### 4.2 raw-local 原始文件 + +- 文件名必须带日期 +- 可以带状态、倍率、批次等局部说明 + +示例: + +- `2026-05-03-home-hero-default@2x.png` +- `2026-05-03-platform-switcher-hover@2x.png` +- `2026-05-03-inspector-selected-pass-02.png` + +--- + +## 5. 使用规则 + +1. 仅作为内部分析素材使用。 +2. 不将 Logitech 原始品牌资源纳入正式产品资源链。 +3. 原始大图默认先进入 `raw-local/`,筛选后再生成 `tracked/` 内容。 +4. 每个页面必须有 `00-page-manifest.yaml` 记录覆盖情况。 +5. 每个已跟踪组件必须有 `*-notes.md` 说明职责、状态、映射建议和 capture 缺口。 + +--- + +## 6. 首批试运行样本 + +当前首批建议优先落这 3 个组件: + +- `home/hero` +- `device-studio/platform-switcher` +- `device-studio/inspector` + +这 3 个样本足以验证: + +- 页面 -> 组件 的组织方式 +- 完整状态矩阵是否可操作 +- manifest 是否足够表达覆盖率 + +具体索引见 [00-capture-index.md](./00-capture-index.md)。 diff --git a/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/agent/00-page-manifest.yaml b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/agent/00-page-manifest.yaml new file mode 100644 index 0000000..2c7ea03 --- /dev/null +++ b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/agent/00-page-manifest.yaml @@ -0,0 +1,16 @@ +page_id: agent +source_app: Logi Options+ +source_version: 2.3.879545 +capture_date: 2026-05-03 +owner: ethan +capture_policy: + tracked_assets_only: true + raw_local_ignored_by_git: true +components: + - component_id: status-card + source_screen: agent + states_expected: [default, active, disabled, success, error] + states_captured: [] + tracked_files: [] + raw_local_prefix: 2026-05-03-agent-status-card + notes_file: status-card/status-card-notes.md diff --git a/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/agent/status-card/status-card-notes.md b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/agent/status-card/status-card-notes.md new file mode 100644 index 0000000..19e7daa --- /dev/null +++ b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/agent/status-card/status-card-notes.md @@ -0,0 +1,38 @@ +# Status Card Notes + +## 组件职责 + +后台服务页的核心状态卡。 + +## 视觉结构拆解 + +- 状态标题 +- 当前结果 +- 主要动作 +- 辅助说明 + +## 状态变化规律 + +目标状态集合: + +- `default` +- `active` +- `disabled` +- `success` +- `error` + +已捕获状态: + +- 暂无,待采集 + +## 与 AhaKey 的映射建议 + +- 对应后台服务安装、运行、连接状态摘要 + +## 明确不照搬的内容 + +- Logitech 生态相关业务字段 + +## Capture 缺口 + +- 缺成功 / 错误对照样本 diff --git a/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/device-studio/00-page-manifest.yaml b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/device-studio/00-page-manifest.yaml new file mode 100644 index 0000000..c5a1e59 --- /dev/null +++ b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/device-studio/00-page-manifest.yaml @@ -0,0 +1,51 @@ +page_id: device-studio +source_app: Logi Options+ +source_version: 2.3.879545 +capture_date: 2026-05-03 +owner: ethan +capture_policy: + tracked_assets_only: true + raw_local_ignored_by_git: true +components: + - component_id: platform-switcher + source_screen: device-detail + states_expected: [default, hover, pressed, selected, disabled] + states_captured: [] + tracked_files: [] + raw_local_prefix: 2026-05-03-platform-switcher + notes_file: platform-switcher/platform-switcher-notes.md + - component_id: sidebar + source_screen: device-detail + states_expected: [default, hover, selected, disabled] + states_captured: [] + tracked_files: [] + raw_local_prefix: 2026-05-03-sidebar + notes_file: sidebar/sidebar-notes.md + - component_id: canvas-hotspot + source_screen: device-detail + states_expected: [default, hover, selected, focused, disabled] + states_captured: [] + tracked_files: [] + raw_local_prefix: 2026-05-03-canvas-hotspot + notes_file: canvas-hotspot/canvas-hotspot-notes.md + - component_id: inspector + source_screen: device-detail + states_expected: [default, active, selected, disabled, error] + states_captured: [] + tracked_files: [] + raw_local_prefix: 2026-05-03-inspector + notes_file: inspector/inspector-notes.md + - component_id: sync-banner + source_screen: device-detail + states_expected: [default, dirty, syncing, success, error] + states_captured: [] + tracked_files: [] + raw_local_prefix: 2026-05-03-sync-banner + notes_file: sync-banner/sync-banner-notes.md + - component_id: status-pills + source_screen: device-detail + states_expected: [default, active, selected, disabled, syncing, success, error] + states_captured: [] + tracked_files: [] + raw_local_prefix: 2026-05-03-status-pills + notes_file: status-pills/status-pills-notes.md diff --git a/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/device-studio/canvas-hotspot/canvas-hotspot-notes.md b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/device-studio/canvas-hotspot/canvas-hotspot-notes.md new file mode 100644 index 0000000..2e16e8c --- /dev/null +++ b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/device-studio/canvas-hotspot/canvas-hotspot-notes.md @@ -0,0 +1,39 @@ +# Canvas Hotspot Notes + +## 组件职责 + +工作区中央设备画布上的可交互热区。 + +## 视觉结构拆解 + +- 热区边界 +- 选中高亮 +- hover 反馈 +- 焦点与禁用表达 + +## 状态变化规律 + +目标状态集合: + +- `default` +- `hover` +- `selected` +- `focused` +- `disabled` + +已捕获状态: + +- 暂无,待采集 + +## 与 AhaKey 的映射建议 + +- 对应当前 `AhaKeyKeyboardCanvasView` 中的热区交互 + +## 明确不照搬的内容 + +- Logitech 设备外形 +- Logitech 功能标签 + +## Capture 缺口 + +- 缺热区 hover / selected / focused 样本 diff --git a/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/device-studio/inspector/inspector-notes.md b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/device-studio/inspector/inspector-notes.md new file mode 100644 index 0000000..911c1d0 --- /dev/null +++ b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/device-studio/inspector/inspector-notes.md @@ -0,0 +1,42 @@ +# Inspector Notes + +## 组件职责 + +设备工作区右侧属性面板。 + +## 视觉结构拆解 + +- 标题区 +- 主配置区 +- 辅助说明 +- 高级区 +- 状态提示区 + +## 状态变化规律 + +目标状态集合: + +- `default` +- `active` +- `selected` +- `disabled` +- `error` + +已捕获状态: + +- 暂无,待采集 + +## 与 AhaKey 的映射建议 + +- 对应工作区的 `StudioInspector` +- 重点借鉴结构化布局与密度,不继续把跨硬件功能塞进去 + +## 明确不照搬的内容 + +- Logitech 专有字段 +- Logitech 业务流程 + +## Capture 缺口 + +- 缺默认态、选中态、错误态样本 +- 缺字段组间距与状态提示样本 diff --git a/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/device-studio/platform-switcher/platform-switcher-notes.md b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/device-studio/platform-switcher/platform-switcher-notes.md new file mode 100644 index 0000000..9ce1bef --- /dev/null +++ b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/device-studio/platform-switcher/platform-switcher-notes.md @@ -0,0 +1,40 @@ +# Platform Switcher Notes + +## 组件职责 + +设备工作区高层上下文切换器,对应不同平台 / 应用上下文。 + +## 视觉结构拆解 + +- 图标 / 标签区 +- 当前选中指示 +- 未选中项弱化方式 + +## 状态变化规律 + +目标状态集合: + +- `default` +- `hover` +- `pressed` +- `selected` +- `disabled` + +已捕获状态: + +- 暂无,待采集 + +## 与 AhaKey 的映射建议 + +- 对应 `Claude Code / Cursor / Codex` 平台切换器 +- 重点参考它作为“上下文切换器”而非传统 segmented control 的语气 + +## 明确不照搬的内容 + +- Logitech 应用图标 +- Logitech 应用列表语义 + +## Capture 缺口 + +- 缺默认态、hover、selected 对照 +- 缺禁用 / 不可切换样本 diff --git a/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/device-studio/sidebar/sidebar-notes.md b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/device-studio/sidebar/sidebar-notes.md new file mode 100644 index 0000000..b90328b --- /dev/null +++ b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/device-studio/sidebar/sidebar-notes.md @@ -0,0 +1,37 @@ +# Sidebar Notes + +## 组件职责 + +设备工作区左侧导航区。 + +## 视觉结构拆解 + +- 导航分组 +- 当前项高亮 +- 分隔线与底部状态区 + +## 状态变化规律 + +目标状态集合: + +- `default` +- `hover` +- `selected` +- `disabled` + +已捕获状态: + +- 暂无,待采集 + +## 与 AhaKey 的映射建议 + +- 对应 `按键 / OLED / 灯条 / 拨杆 / 后台服务 / 语音 / 设备信息` + +## 明确不照搬的内容 + +- Logitech 专属导航文案 + +## Capture 缺口 + +- 缺整组默认态 +- 缺选中项与 hover 项差异样本 diff --git a/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/device-studio/status-pills/status-pills-notes.md b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/device-studio/status-pills/status-pills-notes.md new file mode 100644 index 0000000..984d2a3 --- /dev/null +++ b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/device-studio/status-pills/status-pills-notes.md @@ -0,0 +1,39 @@ +# Status Pills Notes + +## 组件职责 + +轻量状态 pill,用于连接、运行中、配置中、同步结果等简短状态。 + +## 视觉结构拆解 + +- 胶囊形容器 +- 图标 / 文案 +- 不同状态色与强调度 + +## 状态变化规律 + +目标状态集合: + +- `default` +- `active` +- `selected` +- `disabled` +- `syncing` +- `success` +- `error` + +已捕获状态: + +- 暂无,待采集 + +## 与 AhaKey 的映射建议 + +- 服务于首页和工作区的轻量状态表达 + +## 明确不照搬的内容 + +- Logitech 文案与图标 + +## Capture 缺口 + +- 缺多状态对照样本 diff --git a/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/device-studio/sync-banner/sync-banner-notes.md b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/device-studio/sync-banner/sync-banner-notes.md new file mode 100644 index 0000000..f7e6447 --- /dev/null +++ b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/device-studio/sync-banner/sync-banner-notes.md @@ -0,0 +1,37 @@ +# Sync Banner Notes + +## 组件职责 + +工作区内同步与脏状态提示条。 + +## 视觉结构拆解 + +- 提示文案 +- 状态色 +- 次动作 + +## 状态变化规律 + +目标状态集合: + +- `default` +- `dirty` +- `syncing` +- `success` +- `error` + +已捕获状态: + +- 暂无,待采集 + +## 与 AhaKey 的映射建议 + +- 直接服务于 AhaKey 特有的草稿 / 同步状态机 + +## 明确不照搬的内容 + +- Logitech 不具备的状态语义不强行套用 + +## Capture 缺口 + +- 缺完整状态样本 diff --git a/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/home/00-page-manifest.yaml b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/home/00-page-manifest.yaml new file mode 100644 index 0000000..6889b9b --- /dev/null +++ b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/home/00-page-manifest.yaml @@ -0,0 +1,33 @@ +page_id: home +source_app: Logi Options+ +source_version: 2.3.879545 +capture_date: 2026-05-03 +owner: ethan +capture_policy: + tracked_assets_only: true + raw_local_ignored_by_git: true +components: + - component_id: hero + source_screen: home-overview + states_expected: [default, hover, selected, disabled] + states_captured: [default] + tracked_files: + - hero/hero-default.png + - hero/hero-annotated.png + - hero/hero-states-contact-sheet.png + raw_local_prefix: 2026-05-03-home-hero + notes_file: hero/hero-notes.md + - component_id: topbar + source_screen: home-overview + states_expected: [default, hover, pressed] + states_captured: [] + tracked_files: [] + raw_local_prefix: 2026-05-03-home-topbar + notes_file: topbar/topbar-notes.md + - component_id: quick-actions + source_screen: home-overview + states_expected: [default, hover, pressed, active, disabled] + states_captured: [] + tracked_files: [] + raw_local_prefix: 2026-05-03-home-quick-actions + notes_file: quick-actions/quick-actions-notes.md diff --git a/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/home/hero/hero-annotated.png b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/home/hero/hero-annotated.png new file mode 100644 index 0000000000000000000000000000000000000000..eeab7b31cd2ce7e546bc7143f4e90ea92c57ece5 GIT binary patch literal 117682 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Ξ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 literal 0 HcmV?d00001 diff --git a/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/home/hero/hero-default.png b/platforms/macos/client/docs/redesign/logi-options-plus-reference-spec/captures/tracked/home/hero/hero-default.png new file mode 100644 index 0000000000000000000000000000000000000000..f69174f9a8ae4cbc79cb4a9b6dee8dc3bf605845 GIT binary patch literal 115791 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
    A@Q%34Tgz}=+T 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 z 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