隐私政策
Hai 是一款用于商务沟通与供应商协作的 macOS 应用。它的设计前提很直接:你的业务数据属于你,不属于我们。我们没有你的账号,没有你的消息副本,也没有接收这些内容的服务器。
要点
- 不建立账号不需要手机号、邮箱或任何注册信息,首次启动即在本机生成身份。
- 不收集使用数据没有统计分析、没有广告 SDK、没有崩溃上报,也不做用户画像。
- 内容留在本机消息、文件、供应商档案与需求都保存在你的 Mac 上,卸载即离开。
- 只在你的操作下出网直连对方、你配置的中继、你配置的模型服务,仅此三种。
01这份政策管什么
本政策说明 Hai 商务协作(以下简称「本应用」)在你使用过程中如何处理信息,以及你可以做什么。本应用由 Wang Ting(以下简称「我们」)开发并发布。
本政策适用于 macOS 版应用及其随附的本地功能。它不适用于你自行配置的第三方服务——例如你填写的中继服务器、你接入的 AI 模型服务。那些服务由各自的运营方处理数据,适用它们自己的隐私政策,我们无权也无法代为承诺。
02我们不收集什么
这一节列的是「明确不做」的事,而不是「尚未做」的事。它们都是产品设计的取舍,不是待补的功能。
- 不需要注册。没有账号体系,不收集手机号、邮箱、姓名、公司信息。你的身份是一对在本机生成的密钥,见第 08 节。
- 不采集设备标识符。不读取 IDFA、MAC 地址、序列号,也不做跨应用追踪。
- 不读取系统里的其他数据。不访问通讯录、日历、照片图库、位置、剪贴板历史。
- 不记录使用行为。没有埋点,没有页面/功能统计,没有会话时长上报。
- 不集成第三方 SDK。没有统计分析、广告、推送代理或崩溃收集 SDK。
- 不投放广告,不做用户画像,不向第三方出售或共享任何数据。
这一点是可以验证的,不必只信这段话。本应用没有内置任何服务器地址,也没有「上报」通道。你可以用防火墙或抓包工具观察它的全部网络行为:只会看到与局域网内其他设备、你自己配置的中继、以及你自己配置的模型服务之间的连接。附录给了具体做法。
03应用在本机处理哪些数据
「处理」在这里指读写你 Mac 上的文件,全部发生在本机,不涉及上传。
| 类别 | 内容 | 存放位置 | 用途 |
|---|---|---|---|
| 身份密钥 | 32 字节 Ed25519 私钥与配套公钥 | 应用数据目录 accounts/<id>.key,权限 0600 |
给你的消息与名片签名,让对端能确认「确实是你」 |
| 消息与附件 | 你收发的文本、文件、图片 | 本地数据库与附件目录 | 显示会话;对方离线时暂存文件并在其上线后补发 |
| 业务数据 | 供应商档案、需求、应答、售后记录 | 本地数据库 | 供你查看、筛选与汇总 |
| 归纳结果 | 由 AI 归纳出的条目草稿 | 本地数据库 | 供你逐条核对后再决定是否入库 |
| 诊断日志 | 连接、握手、文件传输的过程记录 | 本机日志文件 | 排查「为什么连不上」「文件为什么没到」 |
以上数据都不经过我们。我们既没有副本,也没有读取它们的通道。
04数据存在哪里
本应用启用了 macOS 的 App Sandbox,所有数据都在系统分配给它的容器内:
~/Library/Containers/com.workbuddy.bizcollab/Data/Library/Application Support/Hai
这意味着三件事:
- 备份:把上面这个目录整体拷走即可,它是自包含的(数据库、附件、身份密钥都在里面)。
- 迁移到新 Mac:把该目录放到新机器的同一路径,再打开应用。
- 彻底删除:卸载应用并删除该容器目录。删除后无法恢复,我们这边没有备份可以还原。
从早期版本升级的用户请注意:启用沙盒之前的版本把数据放在 ~/Library/Application Support/Hai。新版看不到那个目录——数据没有丢,只是沙盒把可见范围收窄到了容器内。若要沿用旧数据,需要手动把它复制进上面的容器路径(可能需要在「系统设置 → 隐私与安全性 → 完全磁盘访问权限」中临时授权)。
05数据何时会离开这台 Mac
只有四种情况,全部由你的操作触发。没有一种是「发给我们」。
| 情形 | 触发条件 | 经过谁 | 对方能看到什么 |
|---|---|---|---|
| 点对点直连 | 你发送消息或文件,且两端网络可达 | 不经过任何服务器 | 你发出的内容(加密后传输) |
| 中继转发 | 无法直连,且你配置了中继 | 你填写的那个中继服务器 | 密文,以及转发所需的元数据(见第 06 节) |
| AI 归纳 | 你主动点击归纳,且配置了模型服务 | 你填写的模型服务 | 你选择送去归纳的那部分文本 |
| 局域网发现 | 应用运行中 | 同一局域网内的设备 | 本机服务名与身份标识,用于互相发现 |
此外,应用会向你本地网络的路由器请求端口映射(NAT-PMP、PCP 或 UPnP),以便外部设备能直接连到你。这一过程只与你的路由器通信,不经过我们,也不携带任何业务内容。
06关于中继
中继是「直连不通时的备用通道」。它不是默认开启的:地址、端口与凭据都由你自己填写;我们不提供、不运营、也无法访问你所使用的中继。
由于消息与文件字节在两端之间端到端加密(第 08 节),中继转发的是密文,无法读取你的会话内容、文件名或附件。它能看到的是完成转发所必需的少量元数据:
- 两端连接的标识(用于把数据投递到正确的连接上);
- 数据包的大小与时间;
- 连接的建立与断开时刻。
这些元数据足以推断「两个身份之间在某段时间有通信」,但不足以还原内容。如果中继由第三方运营,该运营方对元数据的处理适用其自身政策——选择中继之前,建议先确认对方的可信程度。
如果你不希望任何中转,不配置中继即可。此时应用只在能直连的网络环境下通信,直连失败会明确提示,而不是悄悄改走别的路径。
07关于 AI 归纳
归纳功能用于把长篇需求材料整理成结构化条目。它默认不启用,需要你在设置中填写模型服务的地址、模型名称与密钥。
- 待归纳的文本从你的 Mac 直接发往你填写的那个服务,不经过我们。
- 我们无法读取这些请求,不保存请求与结果,也不转售任何内容。
- 归纳结果不会自动写入供应商档案或需求台账,必须由你逐条确认后才入库。
- 该服务是否留存你的输入、留存多久,由它自己决定。送入之前,请先确认它的条款与数据用途。
不配置模型服务时,应用的其他功能完全可用,只是没有归纳。
08加密与身份
传输层使用下列标准算法,均为系统内置的 CryptoKit 实现,没有自研加密:
- 密钥协商:每次连接生成临时 X25519 密钥对,协商出共享密钥(具备前向保密)。
- 密钥派生:HKDF-SHA256。
- 内容加密:ChaCha20-Poly1305(认证加密,篡改会被发现)。
- 身份签名:Ed25519。握手过程由双方身份密钥签名,用于确认对端身份、防止中间人。
身份编号由公钥派生,名片上可以显示指纹供你与对方口头核对。核对指纹是识别中间人的唯一可靠办法——如果指纹对不上,应当中止通信。
加密保护的是「传输过程」,不保护「对方拿到之后」。对方可以把消息截图、把文件转发给第三人;这部分不在技术能保护的范围内,也不由我们控制。
09系统权限
| 权限 | 用途 | 拒绝的后果 |
|---|---|---|
| 本地网络 | 在局域网内发现同网设备、建立直连、接受入站连接 | 只能通过中继通信 |
| 通知 | 收到新消息时提醒你 | 不提醒,消息仍在应用内 |
| 文件与文件夹 | 读取你主动选择的附件与认证文件;导出时写入你选择的位置 | 无法发送或导出该文件 |
除上述之外,应用不申请「完全磁盘访问权限」「辅助功能」「屏幕录制」「输入监控」等高权限。沙盒限制了它只能访问自己的容器,以及你通过系统文件选择面板明确指定的文件。
10保留与删除
数据保留多久,由你决定。我们这边没有副本,所以也不存在「我们的保留期限」。
- 消息与业务数据:一直保留,直到你删除。
- 待发附件:对方离线时发起的文件会在本机排队,成功送达后立即清除记录;超过 7 天未送达的记录会被清理,附件副本交由常规文件清理处理。
- 诊断日志:保存在本机,可在应用内查看与清空。
删除的三条路径:删除单条消息;删除整个会话(连同其消息与附件);卸载应用并删除容器目录(全部数据)。
11你的权利
由于数据就在你的设备上,下面这些事你可以直接完成,不需要向我们申请:
- 查看与导出:数据目录是明文结构(SQLite 与普通文件),可直接备份或导出。
- 更正:在应用内修改供应商档案、需求与应答。
- 删除:见第 10 节。
- 撤回同意:清空中继地址即停止中转;清空模型服务配置即停止归纳。
如果你认为我们持有的某些信息需要处理,或对本政策有疑问,请通过第 14 节的方式联系我们。我们通常会在 7 个工作日内回复。
本政策不排除你所在国家或地区法律赋予你的任何权利。
12儿童
本应用面向企业采购、招投标与供应链协作场景,不面向儿童设计。我们不主动收集儿童的个人信息;由于应用本身不收集任何个人信息,这一点也不依赖年龄判断。若你认为未成年人正在不当使用本应用,请联系我们。
13政策变更
本政策如有更新,会修改页面顶部的生效日期与版本号,并在本页发布。涉及数据实践的重大变化会在页面显著位置说明。建议在安装新版本后回看一次本页。
我们不会用更新后的政策追溯性地缩小你已经享有的权利。
14联系我们
关于本政策、数据处理或应用行为的任何问题,都可以发邮件到:
如果能附上应用版本(设置 → 关于)与 macOS 版本,会更容易定位问题。
15附录:自行核对
隐私政策不该只能「相信」。以下三件事你可以在自己的机器上验证,不需要我们的配合。
-
数据确实只在本机
打开应用收发几条消息,然后查看容器目录的内容与文件时间:
ls -lh ~/Library/Containers/com.workbuddy.bizcollab/Data/Library/Application\ Support/Hai -
它监听了什么、连到了哪里
应用运行时的网络端点只有本机监听与直连对端;若配置了中继,会额外看到那条连接:
lsof -nP -iTCP -sTCP:LISTEN | grep -i hai -
它被授予了哪些权限
签名里的 entitlements 就是它实际能做的事,只有沙盒、网络与「用户选择的文件」三类:
codesign -d --entitlements :- /Applications/Hai.app
如果观察到的行为与本页描述不符,那属于缺陷。请通过第 14 节告诉我们,我们会修正实现或修正这份文档——两者都算问题。