makecindy / makecindy/cindy

PR #4360 维护者确认:AI Passport 配件(产品 / 安全 / 架构)

Open
#4,363 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
2.7k
Forks
401
Avg merge
21h 48m
Merged PRs (30d)
776

Description

## 需要确认什么

PR https://github.com/makecindy/cindy/pull/4360(head `608f8b5f4f8e783962113eb1d301ce860b4f02c2`)为 Cindy Desktop 增加 AI Passport 配件:macOS 蓝牙连接、任务目录与状态同步、回复分页阅读、录音转写预览后确认发送。作者 lengjingxu 不是维护者,当前 head 尚无维护者 Approve。

## 本次改动

- 设置里新增 AI Passport 配件卡片与开关(`PassportSettings`),快捷键配件列表也挂上该项。
- 会话输入框接入配件口述投递(`passportDictationDelivery`),用户在设备上确认后才把转写发到原任务。
- Desktop main 新增 `passport` 模块、macOS CoreBluetooth Swift helper、preload IPC、打包进 Electron forge。
- 录音走现有语音服务;新增第三方依赖 `ogg-opus-decoder@1.7.5` 解码 Opus。
- 申请 `NSBluetoothAlwaysUsageDescription`。

## 为何需要维护者确认

1. **产品 / UI**:用户看得见的新配件、新交互流向(设备上 OK 阅读 / 录音 / 确认发送),不是纯内部逻辑。
2. **安全**:新第三方依赖 `ogg-opus-decoder`;本机蓝牙权限与录音数据经配件协议进出。安全类不按 bugfix / 小改动豁免。
3. **架构**:新增 native helper、main 模块、preload 契约与跨进程协议,改变模块边界,不是同结构内实现替换。

`docs/design-rules/design-inventory.md` 被规则门扫到,但是生成的设置 surface 清单日期与 PassportSettings 登记,不改变审查规则含义;不单独作为确认理由。

危险写法软命中 `shell: true` 在 `scripts/__tests__/restart-desktop-remote.test.mjs` 测试里,不是生产执行路径。

## 请求

请维护者直接在 PR 上 **Approve**。若需要作者修改,请 **Request Changes** 并写明要求。不要只留言或只摘标签。

---
关联 PR:#4360(作者 @lengjingxu);本 issue 由 review-pr 流程自动创建,用于先讨论该 PR 涉及的产品 / UI 变更,维护者确认后 PR 会恢复推进。

Contributor guide

Open the contributing guide

Research direction

Review PR #4360, starting with PassportSettings, passportDictationDelivery, the new passport desktop/main and preload IPC paths, and the macOS CoreBluetooth helper. Check the product flow, permission and dependency implications, and cross-process contract; done means a maintainer either approves the PR or requests explicit changes.

Written by the indexing model from the issue text.

Assessment

Tech stack
electron, macos, swift, typescript
Domain
audio-video-rtc, backend-api-design, desktop, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.