Wingman 的面板与你的配置数据都在本机:本地服务只绑 127.0.0.1,面板在你自己的浏览器里打开。没有自动遥测;license 会按下述规则自动续期,其余远端流程的触发条件分别列明:
- 内容样本 —— 只在你逐次主动点「分享」并在预览里确认后才发送,没有任何持续授权。
- License 验证 —— 购买后的签发会接收 Stripe Checkout session ID。本机存在 license 时,启动后与每天会自动尝试续期;也可手动刷新。显式激活或续期时,服务端向 Stripe 查询并处理邮箱、订阅 ID、套餐/订阅状态与当前周期结束时间,以签发或续期本机凭证。
- 私密反馈 —— 点击打开表单时,Tally 会收到白名单复现提示并可能按其政策处理连接信息;问题正文和可选截图只有在用户提交时才发送。
- 支持邮件 —— 只有用户主动寄信时,Resend、隔离的 Cloudflare Worker 与 Gmail 才会处理邮件内容。
- 手机配对 —— 只有你主动配对并扫码后,Mac 才把下文列出的任务事实加密上传到设备中转。
Wingman 读取项目根 .wingman/plan.md 来显示项目计划树。该文件只读、只在本机;完整计划和项目路径不上传,也不进入样本分享、反馈表单或支持邮件。主动配对手机后,仅下文列出的事实经加密同步:目标、当前步骤,以及在手机 App 支持时的顶层里程碑摘要(最多 12 条里程碑的文字与状态、完成数);其余子步骤与验收行不同步——「当前步骤」可能正是某个子步骤的文字,会话标题也可能取自会话所在的步骤。
仅在用户主动运行 wingman protocol install 时,Wingman 才写入 Plan Protocol。项目级目标是 .claude/rules/wingman-plan-protocol.md(Claude Code)或项目根 AGENTS.md(Codex 与 dsh 共用);明确指定 --user 才写用户级 ~/.claude/CLAUDE.md(Claude Code)或 ~/.codex/AGENTS.md(Codex)。dsh 没有用户级指令文件,继续按项目安装。
用户级安装使用独立的 <!-- >>> wingman plan protocol user v1 >>> --> / <!-- <<< wingman plan protocol user <<< --> 受管块,保留块前后的内容。每次改写前将原文件备份到 ~/.wingman/backups/<ts>/,恢复状态只存本机 ~/.wingman/state/。运行对应的 wingman protocol uninstall(用户级加 --user)可撤销:安装后原文件未改时逐字节恢复安装前内容,原先不存在则恢复为不存在;块外后续用户改动会被保留。未知格式、残缺标记或被修改的受管块拒绝写入。
用户级协议一次安装供该 Harness 的所有项目会话读取,要求 Agent 只为多步任务维护 .wingman/plan.md,单轮问答不写。项目根取当前工作目录所在的最近 git 根,没有 git 时用当前目录;当前目录为用户家目录时不创建计划文件。Agent 是否遵守以实际计划文件为准,Wingman 自身仍只读该计划文件。
用户整理任务卡时,Wingman 会在本机写 ~/.wingman/state/task-overlay.json,只保存会话标识、用户自填标题与置顶/隐藏标记;不修改 Agent,不保存原始 prompt、输出或其他会话内容,也不外发。
Codex 钩子有候选实例但探测或投递失败时,会在本机追加 ~/.wingman/state/hook-forward.log,只含时刻、钩子事件名、目标端口与失败原因;不含载荷、工作目录、记录路径或指令文本,也不外发。没有候选实例时不写日志;单份上限 256 KB,超过后轮转为 hook-forward.log.1,仅保留一份旧日志;卸载 Codex hook 时两份均删除。
Wingman 记住曾有会话的项目时,会在本机写 ~/.wingman/state/projects.json,只保存项目根路径、最近见到时刻、出现过的工具与是否有计划文件;不保存计划内容或会话内容,也不外发。没有会话的项目,有计划文件或最近 14 天内有过会话才显示;你也可以选择「忘记这个项目」移除本机记忆,不删除项目或工具文件。写入前会保留备份;从 v1 首次迁移写入时另保留一次原文件备份。
你在「控制」中选择回跳应用时,Wingman 会在本机写 ~/.wingman/state/settings.json,只保存格式版本与用户选择的应用 bundlePath;覆盖前备份原文件,不保存会话内容,也不外发。
原始卡号与 CVC 只由 Stripe 托管的 Checkout 处理。Wingman Worker 会短暂收到 Stripe 返回的完整 Checkout Session / Subscription 对象,但代码只读取邮箱、订阅 ID、Price ID、订阅状态与当前周期结束时间;其他返回字段不使用,上述响应也不在 Wingman 服务端存储。License 服务不建立 Wingman 用户档案;Stripe 保留其自身的付款与订阅记录。站主可能用 Stripe 记录的邮箱联系你:试用或订阅相关的必要通知(到期、账单、安全),以及偶尔的产品更新与社群邀请;回信说一声即可退订,之后不再发送。签名后的 license.json 含邮箱、订阅 ID、plan、签发时间与到期时间,由你下载并保存在本机。配置文件内容、会话内容、路径永远不会被自动上传;0.4.2 起也没有任何自动统计(沿革见下节)。
为限制每条订阅最多 3 台设备,签发端在 Cloudflare KV 保存订阅号、设备指纹哈希、可选设备名、首次登记时刻与最近续期时刻,续期时确认订阅失效即删除;设备记录不含邮箱与 IP。每日自动续期和手动刷新发送设备指纹哈希,不发送设备名。设备名(主机短名)只在显式激活时发送,即导入 license 或点击「激活本机」时与指纹哈希一起发送。本机计算的指纹不在本机额外落盘;续期返回的签名 license 含设备绑定字段。带设备绑定的凭证每次有效期不超过 30 天,也不超过订阅周期结束。解绑后保留被吊销的设备指纹哈希,防止自动续期重新登记;只有在那台机器上重新导入 license 或点击「激活本机」,且仍有名额时,才移除吊销标记并恢复激活。
解绑请求会发送本机设备指纹哈希,用于核对当前 license 的设备绑定,不发送设备名。
现状
0.4.2 起,Wingman 不发送任何自动统计。曾经的「第一层」(2026-08-26 至 2026-08-29,随 0.3.0–0.4.0 发布)会自动发送一份白名单字段;如实记录:那些数据在服务端从未被存储(统计引擎一直未启用,收到即弃)。旧版本升级到 0.4.2 即彻底停发。
将来如果恢复统计,只会以默认关闭的 opt-in 形式出现,并在生效前把字段全量公示在本页。
未配对手机时,Wingman 产品不会自动附加
License 的设备指纹哈希用于上述自动续期与解绑鉴权;设备名只在显式激活时发送。这些授权字段不属于已拆除的使用统计。
- 任何配置文件内容、prompt、会话内容
- 任何文件路径、项目名、用户名
- 任何用于使用统计的用户 ID、设备 ID、指纹或随机安装标识
- IP 地址 —— Wingman 自有产品服务端不记录、不存储请求来源 IP;用户打开第三方表单或发送邮件时,Tally、Resend、Cloudflare 或 Gmail 可能按各自政策处理连接或邮件头信息
手机配对
点「配对手机」前不向中转发出任何请求。点击后 Mac 向中转登记一个随机配对标识与发布 token,并每 5 秒查询是否已扫码;二维码关闭后停止查询。扫码前不上传任何任务内容;取消或 24 小时未扫码自动删除。仅试用/订阅可配对;授权到期后暂停同步与查询,仍可查看和解除已有配对。不做账号。一部手机同一时间只配一台 Mac,一台 Mac 可配多部手机。二维码传递设备密钥,密钥不发给中转。
快照只含项目名与目标、当前步骤、会话标题、四态状态、等待事由与时刻、最近活动时刻,以及每个会话所属工具(Claude Code / Codex / dsh)、每个项目的工具集合、项目最近活动时刻、会话的工作树显示名(非完整路径)、不含路径的项目/会话标识、工具接线状态和快照时刻;手机 App 声明支持时,另含每个项目的计划摘要:未放弃的顶层里程碑的完成数与总数,以及最多 12 条里程碑的文字(不超过 80 个字符,本机路径照样替换)、状态与是否含当前步骤。不上传 prompt 正文、工具输出、license 或用量,快照里也没有完整路径字段;上述文字里出现的项目路径与主目录路径会替换为 [path],你自己写进目标、计划或标题里的其它路径文字会原样同步。等待、回合结束及等待满 60 秒提醒的标题为「项目名 · 工具名」,另含事由、会话标识和通知种类。
Mac 用 HKDF-SHA256 派生密钥、AES-256-GCM 加密快照与通知,中转只见密文;手机在本机解密。中转还处理随机配对标识、发布/订阅 token、版本号、通知种类,以及手机主动提供的设备名称和推送 token,不持有解密密钥。
~/.wingman/state/mobile.json 只保存格式版本、配对标识、中转地址、可选设备名称、配对、订阅确认与最近同步时刻;密钥与发布 token 只存 macOS 钥匙串。钥匙串读取失败时显示钥匙串不可用并暂停发送,保留配对状态,60 秒后重试。
中转只保留最新一份密文快照和未投递通知,24 小时无上传自动清除,通知在 24 小时内有限重试。解除配对立即停止上传并删除中转中的配对、快照与待投递通知,同时删除 Mac 配对记录与钥匙串项;手机解除也删除该配对的数据。
若中转删除失败,Mac 保持停止上传并提示重试;~/.wingman/state/mobile-revocations/ 保存不含密钥的撤销标记,配对记录与钥匙串保留到删除成功,重启不会恢复上传。
若钥匙串中的发布 token 已丢失,Mac 只能移除本地配对记录并停止发送;中转数据在 24 小时无上传后自动清除。
~/.wingman/state/mobile-deliveries/ 只保存已发送通知的去重 hash 与格式版本,避免重启后重复提醒,不含通知正文或密钥;解除配对时删除。
是什么
面板里有两个分享入口:CONTEXT 区的「分享配置样本」(当前 harness 的扫描结果 JSON)、实况区的「分享事件样本」(当前事件流)。分享样本帮助 Wingman 适配更多真实环境 —— 这是它唯一的用途。
流程(铁律)
- 点击入口 → 弹层展示将要发送的完整原文(等宽滚动区,一行不少)。
- 每一行都可以删除 —— 删掉的行绝不进入发送体;预览所见 = 发送原文。
- 只有明确按「发送」才会 POST;关闭弹层 = 什么都不发。
- 没有持续授权:每次分享都要重新走一遍预览。MOCK 演示数据不外发。
传输与存储
- 方式:
POST https://api.getwingman.dev/samples,单件上限 256 KB。 - 存储:Cloudflare Workers KV,90 天自动过期删除;存储键只含样本类型、时刻、随机 id —— 无任何用户标识。
- 服务端不记录、不存储 IP。
- 你删减后发出的内容我们无法再溯源补全 —— 删了就是删了。
当前状态
Tally Free 私密表单与 Resend Free 支持邮件路径已用合成内容完成外部配置验收。Tally 已启用 2FA,并关闭 integration、webhook、submission notification 与 partial submissions;支持邮箱已验证收件、通知、support 身份回复与失败恢复。产品入口只在对应代码部署后出现,且不会在页面加载、应用启动或后台事件中联系表单服务。
私密 Bug / Feature 反馈
- 点击打开 Tally 私密表单时,Tally 会接收最多五个白名单复现提示,并可能按其政策处理 IP 等连接信息;问题正文和可选截图只有用户明确提交时才发送。Wingman 不会自动截屏、读取剪贴板、上传或重试,也不会自动附加 prompt、session、项目名、文件路径、日志、license、凭证或当前窗口内容。
- Bug 字段:简短标题、发生了什么、预期行为、复现步骤;Feature 字段:要解决的问题、当前替代方式、期望结果。两者都可选填联系邮箱,只用于补充信息或通知已经 Shipped 的结果;不留邮箱时只确认“已收到”,不承诺回复或状态查询。
- 可选附件仅限至多一张、最大 10 MB 的 PNG、JPEG 或 WebP。用户必须主动选择,并在提交前确认已裁剪或遮挡 prompt、源码、路径、客户资料、账号信息与凭证;不上传截图也能提交。
- Wingman 只可预填五个未经验证的复现提示:
source、wingman_version、os、harness、harness_version;缺失就省略,不用于身份、授权、安全判断或优先级。 - 反馈流程不会读取或附加现有
/samples内容。原始反馈、邮箱、截图或 Tally 链接不会自动复制到 GitHub;维护者只在人工检查、脱敏和去重后,把最小必要摘要写入 private Wingman Issue。
支持邮件
根域 MX 让 Resend 在 SMTP 层接收发往任意 @getwingman.dev 地址的邮件,并非只在 SMTP 层接收 support。隔离的 Cloudflare support-mail Worker 验证 Resend 签名后只处理精确的 support@getwingman.dev。Worker 在内存中瞬时接收 Resend Receiving API 返回的完整邮件记录(包括地址、headers、HTML、纯文本、raw 下载地址元数据与附件元数据),代码只使用发件人、主题、纯文本正文与是否存在附件;不会请求 raw 或附件下载地址。随后 Worker 经 Resend 通知 Gmail;其他收件地址不通知、不建 Issue,但其接收记录仍受 Resend 留存政策约束。Resend 处理原始来信、Worker 发往 Gmail 的通知,以及站主通过 Resend SMTP 发出的 support 回复;Gmail 保存通知与回复副本。附件不会自动转发,Worker 不把邮件内容写入数据库、样本 KV 或敏感日志。请勿发送密钥、完整 license 或其他不必要的敏感内容。
提交之后:人工分诊、工作空间与 AI 辅助
反馈提交后由维护者人工分诊,没有自动管线:没有程序会自动读取反馈库、自动调用 AI 或自动发送用户内容。分诊时维护者可能使用两种工具,它们是不同的环节,分别说明:
- 第三方工作空间(存储与整理) —— 维护者把每条反馈整理成一行记录:一句话概括、用户原话摘录、类型与优先级、决定说明、对应的开发条目,以及来源渠道或用户自称的昵称。原话摘录来自用户主动提交的反馈内容;不包含表单里的联系邮箱、截图、Tally 链接,也不包含客户端自动预填的复现提示。工作空间只有维护者账号可访问,记录保留到维护者删除,服务商的备份与留存按其自身政策处理。
- AI 辅助处理 —— 维护者可能把上述摘录交给 AI 助手,用于整理、分类、摘要,以及辅助定位可能相关的代码位置。交给 AI 的是维护者挑选的反馈内容,不是客户端自动采集的数据;AI 只给出建议,分类、优先级与是否实现的最终判断由维护者复核。AI 服务商按其自身政策处理这些内容,本页不替服务商承诺「不用于训练」。
最小化原则:优先使用经人工检查的必要摘要,能用摘要就不用全文;反馈内容只用于理解和修复问题,不作为营销引用;本次修订也不构成对历史反馈的追溯授权。
隐私或删除请求
想知道自己的反馈是否被记录、要求更正或删除,写信到 support@getwingman.dev,注明提交的大致时间与反馈标题。维护者会在表单、邮件、工作空间与开发条目里查找并处理;各服务商的备份与留存周期见下表,本页不承诺即时的物理删除。
处理者、留存与删除
- Cloudflare(中转 Worker + Durable Object)只存密文快照与待投递通知、token 的 SHA-256、可选设备名、推送 token 与手机声明的能力标签(例如是否支持计划摘要),24 小时无上传清除,解除即删;未启用日志/observability,代码不记录 IP 或正文,平台仍可能按其政策处理连接元数据。
- Apple APNs处理推送 token 与含密文载荷的通知,占位标题为 Wingman,内容在设备上解密。
- Tally Free处理表单字段与可选截图,active submission 在站主删除前持续保存;删除会先进入 Trash,Tally 默认可在 Trash 再保留 90 天。站主在分诊后删除原始提交、至少每月清理 active submissions 并立即 Empty trash。合成截图删除并清空 Trash 后已验证文件链接返回不可访问。Tally 的公开 GDPR 口径是站主删除的表单数据会在 90 天内从备份中永久删除,法律要求保留的例外除外;对单条提交不承诺更早或瞬时的物理删除。
- Resend Free处理来信/接收记录、发往 Gmail 的通知与通过 Resend SMTP 发出的 support 回复;其公开口径为邮件与日志保留 30 天、备份保留 7 天,终止账号后剩余客户数据在 90 天内删除。Cloudflare 的隔离 Worker 在内存中瞬时处理已验签事件与通知所需正文,不使用 KV/数据库;wrangler 未启用 observability/Workers Logs,代码也不记录邮件内容到 console,但 Cloudflare 平台仍可能按政策处理 webhook 连接与安全元数据。Gmail处理并保存通知与回复副本;回复还会经过收件方邮箱服务商。邮件在站主删除前持续保存,删除后进入 Gmail Trash 并在 30 天后自动清除。Google 说明从 active systems 完成删除通常约需两个月,加密备份最长可保留六个月,因此 Wingman 不承诺瞬时物理删除。附件只留在 Resend 供必要时人工查看,不自动进入 Gmail。
- private GitHub Issue 只保存人工脱敏的工程摘要;公开 GitHub 只接收用户主动提交的无敏感信息 Feature Request 或维护者人工脱敏的 Known Issue。摘要作为工程或公开历史保留到维护者编辑或删除;用户主动提交的公开 Feature Request 会关联其公开 GitHub 账号。删除 Tally 原始提交不会自动删除已单独创建的摘要;原始 Bug、支持邮件、邮箱、截图、Tally 链接与 private Issue 链接不进入公开仓库。
- 维护者工作空间(第三方协作服务)处理人工整理的反馈条目:一句话概括、原话摘录、类型与优先级、决定说明、开发条目、来源渠道或昵称;不含邮箱、截图、Tally 链接与预填提示。仅维护者账号可访问;保留到维护者删除,服务商备份与留存按其自身政策处理。具体服务可能更换,更换前先更新本页与运营手册。
- AI 助手(第三方模型服务)处理维护者挑选并交给它的反馈摘录,用于整理、分类、摘要与辅助定位;不接入反馈库,不自动运行;内容按该服务商自身政策处理,本页不替其承诺训练或留存方式。具体服务可能更换,更换前先更新本页与运营手册。
2026-08-31 已完成 Tally 合成提交、单图限制、删除并立即 Empty trash、文件不可再访问,以及 Resend 域名、签名 webhook、外部邮箱收信/回信、失败恢复和附件不自动转发验收。每次发布仍须按实际账号套餐和服务商政策复核本页;处理者、字段或留存变化必须先更新数据声明。
只记对用户数据有影响的变化;文案整理不记。
变更记录(7 条)
- 2026-09-19 —— 手机快照将可包含项目计划摘要(顶层里程碑的文字与状态,最多 12 条,以及完成数),仅发给声明支持的手机 App;中转另保存手机声明的能力标签。完整计划与验收行仍不上传;子步骤里只有作为「当前步骤」显示的那一条会同步(此前已是如此)。本说明先于功能上线。
- 2026-09-12 —— 手机快照增加项目工具集合、项目最近活动时刻与工作树显示名;均在主动扫码配对后端到端加密同步,不上传完整路径。新增 Codex 钩子投递本机元数据日志,只含时刻、事件名、端口与原因,256 KB 轮转,卸载 hook 时删除。
- 2026-09-09 —— 新增手机配对:主动登记、端到端加密同步与推送;仅试用/订阅可配对,披露上传字段、中转与 APNs 处理者、24 小时保留和解除删除边界。
- 2026-09-09 —— 新增一条邮箱用途:站主可能用 Stripe 记录的邮箱联系试用/订阅用户(必要通知,以及偶尔的产品更新与社群邀请),回信即可退订。客户端采集、样本、表单与邮件配置均未变。
- 2026-09-07 —— 页面改名为「数据与隐私」;补充反馈提交后的人工分诊、维护者工作空间与 AI 辅助处理的边界、最小化原则与隐私/删除请求方式。客户端采集、样本、表单与邮件配置均未变。
- 2026-08-29 —— 拆除匿名统计:0.4.2 起客户端停止发送自动统计(此前那些数据在服务端本就未被存储);产品数据口径改为「仅主动分享样本」,license 激活/刷新时必要的账单验证字段(邮箱与订阅 ID)单独列明。
- 2026-08-26 —— 原「零遥测」承诺调整为双层模型(仓库 FREEZE.md 同步记录了这次解冻);在此之前的版本不发送任何数据。
本页是数据口径的单一事实源:任何字段增减、时机变化,都会先更新本页再发版。