VPNCHEAP · CEO BRIEF
执行简报 · 2026-08-01

关键故障
已定位。
先稳住用户。

统一问题中心已覆盖 12/12 个 VPNCheap 项目。Android 购买、手机与 TV 找回密码、Android 严格手动节点目录,以及 Windows、Apple TV、独立 macOS 的关键修复均已合并;本窗口 9 个关键代码 concern 已收口。其他平台 parity、真机、签名、生产与发布到达继续按返场清单推进。

边界:本轮只收口关键用户路径;非关键审查与重复全量 CI 已停止并写入返场计划。没有 tag、release、商店发布或用户到达证明;代码合并一律只标“已实现待设备/生产验证”。

12/12Issue Hub 自动覆盖原 issue 仍留原仓
9关键产品/安全修复已合并代码层;不等于已到用户
0Android 关键代码待合并真机 / 生产 / 发布仍为 △
0本轮生产发布无 tag / release / 商店到达
Executive verdict

六个关注点,两类故障链

Android 找回密码是明确缺功能;Android 购买是目录错误被伪装成“暂无套餐”。节点、续费与账户刷新共享跨端状态传播断链;额度则是六端合同漂移。Issue 统一查看不应破坏代码归属。

源码级根因判定

当前代码不支持把全部工单归为一个长期后端缓存故障。

后端源码会读取当前账户与节点状态,客户端源码则存在“只刷新账户、不更新订阅定位”“只刷新套餐、不拉节点”“支付成功只改 UI 状态”“恢复前台只查隧道”等断点。登录会绕开这些局部缓存,因此常能恢复;真实工单中各根因占比仍需设备版本、请求轨迹与生产指标证明。

状态传播机制 82/100
01

Android 找回密码

后端能力已存在。补原生 UI、验证码与重置 API 接入,不需要新后端。

02

Android 套餐购买

后端目录健康;客户端不能再把故障伪装成真实空目录。结算 mutation 必须单端点、不可自动重放;发起下单前先记未知态,任何不确定结果只允许对账,不能再次下单。

03

既有账户节点只手动刷新

不做前台、计时、缓存年龄、支付或权益变化强刷。首次登录、新账户或无可用缓存只初始化一次;之后用户不操作,节点永远不变。

04

缓存与上次成功刷新

完整成功才原子替换本地加密缓存并更新时间;失败保留旧节点与旧时间。节点页使用明确手动按钮;账户/设置在触屏端使用下拉刷新。

05

统一额度合同

零或负额度是权威不可用;缺失、空值或畸形字段是结果不确定;正额度未用尽才可用,达到或超过即耗尽。

06

统一问题中心

Issue 留在代码仓库。一个 GitHub Project 自动汇总,展示仓库、平台、原生类型、状态与负责人。

Fable 5 独立裁决:根因 AGREE 82;v1.3 合同 AGREE 91

同意主机制跨客户端状态传播断链与重登恢复解释成立,机制置信度 82。
限制绝对表述登录是所有平台都完整执行的链,不是字面上的唯一完整链;Apple App 内支付大多另有完整流程。
生产归因未证源码能证明缺口,不能证明真实工单中各原因占比。
补齐发布证据iOS V2 在 192 提交功能分支,已冻结安全整合列车;Android、Windows 与独立 macOS CI 已合并,但安装版本、签名交付与用户到达仍待受保护环境和真实发布证明。
节点策略:AGREEFable 同意状态传播根因;最终产品裁决进一步收紧为“既有账户严格手动”,不采用计时或权益变化自动刷新。
v1.3 源码复核Fable:根因 82、合同 91、完整 host 触发仅 25;吸收动态 host 与双向竞态修正后,独立 verifier PASS 94。

额度合同 Fable 5 裁决:AGREE,98 / 100

零或负数服务器结构完整时是权威无额度:隔离旧节点并禁止连接。
缺失或畸形missing、null、分数、越界或缺 usage 是 INDETERMINATE;暖缓存只可保留已验证状态,冷启动拒绝放行。
正数边界已用小于总额才可用;等于或超过均为耗尽。
真正不限量未来必须由后端显式字段表达;当前只能使用约定的大正数,绝不能让 0 兼任不限量。

P0 独立事件:Android TV 发布凭据安全事件

在受限事件流程内完成影响评估、轮换与现有安装升级连续性验证;闭环前停发该端。公开报告不记录载体、路径、材料或技术细节。

Stop-Ship 100
Android 接入现有找回密码能力98

后端已具备,缺口明确,风险与范围最小。

Android 套餐目录错误合同修复96

根因链已定位;保持独立 PR,先区分真实空目录与可恢复故障,再修支付入口。

七表面统一刷新行为契约96

方案评分 96;机制置信度 82。额度合同作为另一条独立安全链处理。

六端统一生产额度合同98

生产源码与 Fable 5 一致:0 不是不限量;不完整响应不能被误判为可用。

触屏下拉 + 桌面按钮 + TV 焦点按钮95

匹配各平台输入方式,入口一致且可发现。

原仓 issue + 统一 Projects V297

一张 CEO 视图,仍保留代码归属和零 LLM 主链。

保持当前 Apple 最低系统版本90

没有付费用户证据前,避免扩大兼容与测试面。

每仓建设受保护原生发布链92

原生签名与商店不同,必须独立但采用同一发布闸门。

Apple V2 专用整合列车92

保留 192 提交历史与 21 条 main 修复;本集成 PR 唯一例外使用 merge commit。

Failure anatomy

为什么重登就恢复

登录是唯一在所有平台都稳定执行的完整强刷入口,并非各平台字面上的唯一完整链。Apple App 内支付大多另有完整流程;其余常用刷新路径仍只更新一段。

典型续费失败链

不同客户端断点不同,用户体验却一致。

1

受影响的续费路径

网页或部分客户端续费后,服务端状态改变,但该路径没有可靠完成事件。

2

局部账户刷新

到期与流量可能更新,但订阅定位仍旧。

!

节点仍用旧快照

命中缓存、拒绝后清空,或根本不拉节点。

4

页面继续空

前台恢复与设置页没有完整刷新入口。

5

重新登录

重建账户快照与节点目录,所以常能恢复;具体工单仍待版本与请求轨迹归因。

耐久修复:账户同步与节点目录分成两条链。首次登录、新账户或无可用缓存初始化一次;既有账户只接受用户手动刷新。成功原子替换并更新时间;失败保留旧节点与旧时间。

三类证据会推翻或显著降低当前归因

完整请求仍旧症状设备已强刷账户与节点,但后端仍返回陈旧或空状态。
会话差异同一账户旧会话持续陈旧,新登录会话立即变新,指向服务端会话缓存。
只影响旧版本工单几乎都来自旧版本,升级后无需重登即可恢复。
○ 已实现并验证△ 已实现,未真机或生产验证 ☐ 未闭环X 阻断或不适用 42 项:○ 0 · △ 16 · ☐ 24 · X 2
客户端表面找回密码账户/节点分离续费后账户同步手动刷新与成功时间前台账户检查受保护发布链闭环
Android 手机Kotlin / Compose△ PR #12△ PR #13△ 账户 only△ PR #13☐ resume△ CI 绿
Android TVKotlin / Compose TV△ 已合并☐ 按钮X 停发
iOSApple native shared☐ 含外部△ CI
macOSApple native shared☐ 含外部
Apple TVSwiftUI / tvOSX 网页☐ 按钮△ CI
独立 macOSSwiftUI / System Extension△ CI
WindowsWPF / .NET 4.8△ Core☐ UI

Android 套餐购买

NativeBilling
已证实断点

首个阻断:目录服务把鉴权、网络、解码与域名切换失败统一返回空列表,CTA 又把加载态和套餐名不匹配当真实空目录。生产源码复核还确认旧客户端误读免费 / 余额完成响应与订单状态,并可能跨镜像重放下单。

PR #11 已合并 · 远端 CI PASS

只有权威成功的空数组显示“暂无可用套餐”;错误保留类型与重试。下单和结算只走一个端点且禁止自动重放;发起前记录账户绑定未知态,任何不确定结果先对账、不能再次下单。

93根因置信度

Android 手机

NativeAndroid
历史断点

旧版在冷启动、登录、支付与账户路径混用账户/节点刷新;目录只在内存,部分响应可替换整表,标签和宽屏布局也违反产品安全合同。

PR #13 已合并 · verifier PASS

账户与节点双通道:首次空缓存只初始化一次;之后仅节点页 48dp 手动按钮可请求目录。完整成功原子提交按账户加密的 last-good 与成功时间;普通失败留旧;权威失效阻断旧连接。账户/设置下拉只更新账户,节点固定单列且标签去敏。

97源码断点

Android TV

NativeTV
断点

节点凭据拒绝直接清空并要求重登;非空旧定位不会刷新账户;无前台刷新。

最小耐久改动

认证拒绝后只确认账户并安全隔离;设置页加焦点按钮与上次成功刷新时间;缓存先显示,不做自动节点拉取。

98源码断点

iOS / 共享 macOS

NativeSwift
断点

核心刷新链已较完整,App 内支付大多也能走完;但登录仍是跨 iOS / macOS 一致稳定的全量触发。前台、外部网页支付、账户与设置没有接入。

最小耐久改动

scene active 只查账户,不拉节点。页面提供手动刷新、失败留旧与上次成功刷新时间。

95源码断点

Apple TV

NativetvOS
断点

已有 last-good 与并发保护,但非空缓存启动不联网,格式有效的旧定位绕过账户刷新。

最小耐久改动

Home active 只查账户;节点等待用户手动刷新。设置加入焦点按钮,失败保留原缓存与成功刷新时间。

94源码断点

独立 macOS

NativemacOS
断点

冷启动竞态在当前源码已修,但用户实际安装版本未知。现有 30 分钟任务只刷新订阅且可命中 1 小时缓存,支付后不保证重新拉节点。

最小耐久改动

active 与支付完成只查账户;节点只接受手动刷新。账户 / 设置加按钮,节点成功才原子换缓存并更新时间。

95源码断点

Windows

NativeWPF
两条独立风险

传播断点是支付成功只改 UI、Home 单例只初始化一次。额度路径另把 0、负数与不完整响应错误当成不限量,属于六端合同漂移,不是“无节点”的已证根因。

最小耐久改动

额度合同已修正;节点 Core 已合并。后续 UI 只加入手动按钮、上次成功刷新时间和账户下拉,不加入任何日常自动节点刷新。

98源码断点

Xboard 后端

BackendFresh state
源码已排查

账户与节点请求查询当前用户;轻量账户响应没有 catalog revision,实际 subscription 也没有 ETag / 304 合同。/user/info 提供 banned;版本化 typed diagnostic 可选择性观察有效 user_group_id,但 speed / device 仍不可见。

证据边界

这能排除一个源码层面的全局长期缓存设计,不能替代生产请求轨迹。仍需保留“真无套餐 / 到期 / 额度耗尽 / 禁用”等权威空状态。

93源码断点

跨端额度合同:四态,不再用 0 表示不限量

完整响应:总额 ≤ 0权威 NO_TRANSFER_ENABLE;隔离缓存、禁止连接
缺失 / null / 畸形 / usage 不完整INDETERMINATE;暖缓存只保留上次已验证状态,冷启动不放行,并记录去敏错误
正总额且已用 < 总额AVAILABLE;允许连接
正总额且已用 ≥ 总额TRANSFER_EXHAUSTED;隔离缓存、禁止连接
产品“不限量”当前使用约定的大正数;未来改为显式后端字段,不能复用 0
影响面Android、Apple V2、独立 macOS、Windows 已有错误语义;Android TV 与 Apple TV 缺完整本地门禁。
PR 边界每个代码仓库单独一个 QUOTA PR,绝不塞进节点刷新 CORE;共享父 issue 统一追踪。
后端边界发现 availability、reason 与节点同步语义不完全一致;在准确团队仓库与 Owner 明确前,不对未知上游写入。
Frozen behavior contract

用户不点,节点不变

账户数据与节点目录彻底分离。账户可以自动或下拉同步;既有账户的节点目录只能手动刷新。Fable 5 同意根因机制 82 / 100、合同方向 91 / 100;各端实现与设备验证分别记账。

只有两个入口

入口 A:首次登录、新账户或本地没有可用缓存时,初始化一次。入口 B:用户明确点击或下拉“刷新节点”。普通前台、计时器、支付完成、账户刷新、缓存年龄与后台状态变化都不能请求节点。

退
登出 / 切换账户立即提升 generation,旧账户节点不可见,晚到结果不得写回
隔离优先
用户手动刷新节点节点页始终可用;触屏下拉,桌面键盘按钮,TV 焦点按钮
永远强制
账户 / 设置下拉刷新只更新套餐、到期、额度与账户展示;绝不暗中请求节点
节点不变
登录 / 新账户 / 缓存不可用缓存缺失、损坏或无法解密时自动建立首份有效列表
自动初始化
认证或账户权威失效隔离旧账户数据并给出明确提示;不能用后台自动节点刷新掩盖问题
安全隔离
普通恢复前台只检查账户;三个语义指纹全不变时绝不请求节点
节点不变
1 · 登出 / 换号提升 generation,旧账户节点立即隔离
2 · 登录 / 新账户 / 缓存不可用缺失、损坏或无法解密时自动建立首份有效缓存
3 · 用户手动刷新始终 force,不依赖新鲜度
4 · 支付、续费、账户或权益变化只更新账户状态;等待用户手动刷新节点
5 · 凭据拒绝确认账户状态并安全隔离;不自动重拉节点
6 · 普通前台 / 页面出现不刷新节点,不改变上次成功刷新时间
账户检查并发晚到结果不得跨账号写回;账户检查不触发节点请求
纯目录批量轮换只在用户下次手动刷新时获得

成功才替换,暂时失败留旧

先显示当前账户的加密缓存。新节点必须完整验证后一次性发布;任何暂时故障都不能把可用列表变空,权威失效则准确隔离。

01

先显示当前账户的可用缓存

节点缓存按账户加密隔离;登出或换号后旧账户节点立即不可见,过期请求不得写回。缓存同时保存上次成功刷新时间。

02

既有账户只响应手动动作

前台、页面出现、计时器、缓存年龄、支付、续费和账户下拉全部为零次节点请求;只有用户明确操作才开始刷新。

03

完整校验后再提交

响应必须属于当前账户、结构完整、包含可用节点且没有过期请求竞态;任何异常都视为刷新失败。

04

成功才原子替换

完整有效的手动响应一次性替换节点并更新“上次成功刷新”;失败、超时、空响应或乱序结果都不改旧节点与旧时间。

05

按故障类型处理缓存

暂时失败旧节点与上次成功刷新时间完全不变,显示“刷新失败,继续使用上次成功列表”。
权威失效无套餐、过期、撤销、禁用、额度耗尽或会话失效才清除或隔离。
有效非空、目录有变化原子替换节点并更新上次成功刷新时间
有效非空、目录未变化保留节点与选择;本次手动检查成功,可更新时间
当前 ETag / 304subscription 没有该合同,etagEligible 固定 false;未来正式版本化 validator 才可按 exact origin / representation 启用
未来意外收到 304当前不更新时间;同一允许事件内只补一次无条件全量请求,仍失败则停止
diagnostic 暂时失败保留 last-verified group / authority,单独标 stale;不把 known→null 当变化,不触发节点,不冒充刚验证
401 / 403403 必须同时匹配请求角色、冻结端点、JSON content type 与标准 fail envelope,绝不匹配可变文案;业务 / WAF 403 不进入恢复
网络 / 超时 / 解析 / 5xx旧节点与原成功刷新时间不变,显示最近失败
账户有效但空响应无类型视为不完整结果,保留旧节点,不发布空列表
权威无套餐 / 到期 / 禁用 / 耗尽 / 撤销 / 会话失效按账户状态安全隔离,晚到节点响应不得复活列表
账户恢复有效恢复账户展示;节点仍等待用户手动刷新
登出 / 换号旧账户节点立即不可见,晚到结果不得覆盖
同账户请求乱序只有最新 epoch 且三个语义指纹匹配者可提交;其余丢弃
CEO 一句话:手动成功 → 原子替换节点并更新“上次成功刷新”;手动失败 → 旧节点和旧时间不变;不手动 → 节点永远不变。
统一刷新契约96

正确的治理修复,但不是充分条件;额度合同、设备验证和发布到达率必须分别闭环。

加密缓存 + 成功原子替换 + 失败留旧 + 成功刷新时间99

暂时失败不会把可用列表变空,用户始终知道当前列表最后一次成功更新时间。

严格手动;既有账户不自动换节点96

完全符合最新产品决策;首次初始化和换号隔离仍是必要边界。

权益变化或前台自动刷新节点18

违反最新合同,会让用户节点在未操作时变化。

15 分钟周期节点轮询55

当前明确拒绝。未来若改变,必须新建 decision record,并先证明 revision 与事件链无法修复。

实施前四项跨边界审计,未通过不得从 △ 升到 ○

生命周期清单逐端枚举 active / resume / pause / destroy 的既有消费者,确认新刷新窗口不会触发竞态。
错误契约新增或改名的 UI、服务、扩展错误码,所有消费者必须显式处理,不能落入静默兜底。
状态发射源同一状态通道只保留权威来源;合成探针在操作进行中必须抑制并记录原因。
终态等待瞬时状态不能直接结束进行中操作;优先使用与本次 operation / revision 对应的权威确认,仅在平台实测需要时采用有依据的停留窗口。
One view, original ownership

统一看问题,不移动问题

Issue 继续留在所属代码仓库,统一 Project 只做跨仓视图、优先级、负责人和进度。CEO 得到一张总看板,工程师仍在原仓处理。

推荐 97 / 100

一个 VPNCheap 产品问题中心

使用 GitHub Projects V2。12 个套件仓库各放一个事件工作流:创建、重开或转移时自动加入;标签、指派与关闭变化同步执行字段。没有定时 LLM,也不复制 issue。

12纳管套件仓库
1当前 Projects V2
12现存 open issues 已幂等回填
1Free 内建自动添加仓库上限
已核验的 12 仓纳管清单

vpncheap · vpncheap-android · vpncheap-android-tv · vpncheap-app · vpncheap-apple-native · vpncheap-apple-tv · vpncheap-download · vpncheap-ios · vpncheap-macos · vpncheap-maintained · vpncheap-web · vpncheap-windows

收件箱自动进入
ANDROID · BILLING购买显示暂无可用套餐
P0NativeAndroid
ANDROID · APP续费后节点目录未更新
P0NativeAndroid
APPLE · CLIENT恢复前台未执行完整刷新
P1NativeApple
已分诊按类型
WINDOWS · CLIENT冷启动额度判定不一致
P0NativeWindows
ANDROID TV · RELEASE发布凭据处置与升级连续性
P0SecurityTV
处理中按负责人
PER-PLATFORM DELIVERY各端独立实现手动节点合同与时间 UI
P1ReliabilityNative
待验证真机闸门
DEVICE MATRIX支付、前台、离线与账户切换
P0VerifyMatrix

当前 Project 已有 12 个 item、16 个字段和 5 个保存视图;上方卡片仍是版式示意,不冒充真实 issue 编号、优先级或负责人。

01 · SOURCE

原仓 issue 是唯一事实源

讨论、代码链接、PR、关闭状态都留在对应仓库。统一看板保存引用,不造副本,不改变团队工作习惯。

02 · EVENT

事件驱动自动收集

官方 Action 负责加入 Project;同一工作流再用确定性 Project API 更新自定义字段。两者固定到审核版本并可幂等重跑;一次性脚本回填历史 open issues。

03 · ZERO LLM

分类靠确定性规则

仓库映射平台与运行时;Priority 只在 Project 中分诊,不复制为标签。AI 只允许负责人按需总结,绝不参与同步正确性主链。

权限、负责人和漏同步恢复

opened / reopened / transferred查找或加入 item,再按统一状态优先级求值
labeled / unlabeled校验平台、运行时、表面与类型;冲突时标记 taxonomy-conflict 并进入待补充
assigned / unassigned使用内建 Assignees 作为 Owner,并校验 Project item 可见
closed幂等查找 Project item 并设置 Status = 完成
Status 优先级closed → 完成;否则 taxonomy-conflict → 待补充;否则新建 / 重开 / 转移 → 收件箱
状态测试覆盖 close → 完成、reopen → 收件箱、冲突 reopen → 待补充
任何失败告警 Owner,保留运行日志;按需 GraphQL 对账并幂等补回
Owner平台 / Dev Productivity 负责人拥有 Project、凭据轮换与失败处置,不挂在个人开发者账号。
现在的授权用户级 Project 使用公司控制、只允许 Project 写入与必要 issue 读取的专用 PAT;禁止代码写入,每 90 天复核轮换,人员变动立即轮换。
未来的授权迁到组织 Project 时改用组织安装的 GitHub App,减少单账号依赖。
告警与恢复负责人订阅失败运行;保留日志。按需一键对比全部 open issues 与 Project,幂等补回缺项并可安全重跑。
失效边界同步失败只影响视图,不改变原 issue。凭据恢复后重跑审计,原仓讨论、状态与链接不丢失。
定时策略无 cron、无 LLM。漏事件先修工作流;审计只由负责人按需一键运行,不潜藏周期任务。

统一标签,描述问题本身

仓库已说明代码归属。Platform / Runtime / Surface / Type 固定为可视 badge,不复制成 Project 字段;以下就是完整字典,不允许临时造同义标签。

platform:androidplatform:iosplatform:macosplatform:tvosplatform:windowsplatform:webplatform:backend runtime:nativeruntime:flutterruntime:webruntime:service surface:phonesurface:tabletsurface:desktopsurface:tvsurface:websurface:backend type:authtype:account-billingtype:node-datatype:connectiontype:releasetype:uitype:servertype:support-noisetype:security taxonomy-conflict
默认仓库映射 Platform / Runtime / Surface;无法确定 Type 时加 taxonomy-conflict,不猜
基数Runtime、Type 各一个;共享或跨端 issue 可有多个 Platform / Surface
冲突保留 taxonomy-conflict,并把 Project Status 设为待补充,禁止自动计划
执行字段Status 与 Priority 只在 Project 中维护,不复制为 labels

Project 执行数据,只管进度

自定义字段与标签不重复职责;Repository 和 Assignees 直接使用 GitHub 内建数据。

Status收件箱 / 待补充 / 已分诊 / 已计划 / 处理中 / 待验证 / 完成
PriorityP0 / P1 / P2 / P3,在 Project 收件箱中分诊
Owner / Assignees使用 GitHub 内建 Assignees,避免复制负责人字段
RepositoryGitHub 内建字段,直接显示归属
Customer reports默认空白 / 0,仅在有可核验用户反馈时递增
Last report date最后一次用户反馈日期
Saved viewsCEO 看板 / Native 矩阵 / Hot issues / 待补充 / Release blockers(Type=Release + 高 Priority + 未完成)
统一 Projects V2 + 每仓事件架构97

自动、保留原仓事实源、零定时 token;评分针对控制面架构。

当前用户 Project + 公司专用 PAT78

可立即落地,但存在单账号与多仓 secret 扩散风险,必须明确 Owner、轮换和漏项恢复。

未来迁到组织 Project + GitHub App92

长期权限模型更稳,但当前组织形态与迁移成本需先确认。

单独建“总问题仓库”复制 issue27

双份状态、链接漂移、责任归属更模糊。

定时 AI 汇总器作为主链21

不必要的 token、延迟与失败面,且不能替代原仓事实源。

Native release reality

“一键发布”不是一个链接

没有统一“一键发布”仓库或链接。每个原生仓必须独立完成构建、签名、安装与渠道验证;本轮没有 tag、release、商店发布或用户到达证明。

Android 手机

Native Kotlin

△ CI 已合并PR #9 · 2 个 workflow远端 CI run 30609802183 成功;测试、APK/AAB 与受保护交付闸门已落地,签名发布 / 商店到达未执行打开 CI

Android TV

Native Kotlin + Compose TV

X 停发repo 安全整改已合并本地/Ubuntu 门禁已通过,但 signer 与商店升级连续性缺外部证据;闭环前继续 STOP-SHIP打开 Actions

iOS

Shared Apple native

△ CI 已合并PR #54 · merge 609825c6exact tag、秒级 retention、真实 branch-policy schema 已修;CodexLoop CLEAN、独立复核 96 / 100,合并前后 CI 全绿且 publish skipped。签名归档、真机与受保护生产发布仍未执行打开 CI

共享 Apple macOS

同仓独立 target

☐ 未建设0 个 macOS workflow不可把 iOS TestFlight 链当作 macOS 发布链打开 Actions

Apple TV

Native tvOS

△ CI 已合并PR #6 · 2 个 workflow包测试 160/160;私有 core、签名与 TestFlight 在团队 secret / 受保护环境配置前 fail-closed,尚未发布打开 Actions

独立 macOS

Developer ID distribution

△ CI 已合并PR #5322/322、host+sysext build、9 个 universal Mach-O 与 provenance 闸门通过;签名/公证候选未执行,无 tag、release 或部署打开工作流

Windows

Native WPF

△ CI 已合并PR #12构建与测试链已落地;签名交付在受保护环境与团队凭据配置前 fail-closed,不冒充可发布打开 Actions

Apple Native 分支整合:已按 Fable 方案完成

PR #56真实 merge `a9070a2d`,保留 V2 与 main 双父历史。
Build LoopKit 251/251、UI 163、unsigned Release 与最终 focused 5/5 PASS。
独立验收Verifier PASS;非 required CI 按时间盒记 △,未伪称发布。
外部闸门签名、Network Extension 真机与生产连接仍待执行。

每条原生发布链的最低顺序

01 · 静态检查与单元测试任何失败立即停止,结果绑定提交。
02 · 确定性构建 / Archive版本、构建号、依赖与来源分支可追溯。
03 · 签名受保护环境读取发布凭据,不允许降级为未签名产物。
04 · 安装与冒烟真实目标系统安装,完成启动、登录与基础连接检查。
05 · 平台验证macOS 公证与票据、Apple 商店处理、Android / Windows 包验证。
06 · 受保护分批发布人工批准、版本防重、灰度监控与上一已知良好产物回滚。

当前整体现状:仍不可统一发布

关键代码持续合并,但签名设备、商店、生产回放与用户到达证据不足;Android TV 仍受 signer/store continuity 阻断。

NO-GO
Deployment targets

最低系统版本,先保持

最低可安装版本与商店提交 target 是两件事。Apple 基线先保持;Android 手机必须在 2026-08-31 前把 target 35 升到 36,Android TV target 34 仍符合 TV 例外。

源码中的真实基线

Android 手机

min 23 · compile 35

target 35 → 36
Android TV

min 24 · compile 34

target 34
iPhone / iPad

共享 Apple 原生项目

iOS 17
macOS

共享 Apple 原生项目

macOS 14
Apple TV

独立 tvOS 项目

tvOS 17.4
macOS

独立系统扩展项目

macOS 14
Windows

.NET Framework 4.8 · x64

Win 7 SP1+
Decision

Apple 保持;Android 手机按期升级

Apple 基线与当前源码、系统扩展和设计实现一致。Android 手机 target 36 是明确提交期限,必须独立升级,不混入本轮故障修复。

  • 2026-08-31 前完成 Android 手机 target 36 与行为回归。
  • Android TV target 34 仍合规,不做无依据的紧急升级。
  • Apple 是否下调最低版本,先看真实安装、付费、退款与客服分布。
90保持当前基线
证据不足时的最稳决定
保持 iOS 17 / macOS 14 / tvOS 17.490

代码与能力基线一致,测试面可控;残余风险是尚未拿到用户版本分布。

Android 手机独立升级 target 3696

明确商店期限;独立 PR 可避免把 SDK 行为变化混进当前购买、认证或刷新修复。

现在直接下调到更旧系统43

覆盖面可能增加,但没有收入数据支撑,且会扩大设计、API 与设备测试成本。

Execution roadmap

先止血,再统一,再发布

本次 4–5 小时窗口只收口最关键 Android 用户路径;其余高价值事项明确延期,不再用无限审查或重复 CI 消耗时间。

○ 已实现且实测△ 已实现待实测☐ 未开始X 阻断或停止原则:代码合并最多到 △;设备/生产通过才到 ○
PHASE 0 · SAFETY

冻结真相与发布风险

在改刷新前锁定状态语义、版本和安全边界。

  • Android TV 仓库侧安全整改已合并
  • signer / store continuity 保持 X / STOP-SHIP
  • 凭据轮换由账号管理员在低中断窗口完成
  • 记录 7 个客户端线上版本、来源分支、渠道与安装 cohort
  • 生产额度四态与严格手动节点合同已冻结
依赖:无 Owner:Security + Release
并行:共同版本 / 状态基线冻结后,其余平台可进 Phase 1;TV 事件只阻断 TV 发布
验收:每条生产现象可关联安装版本与刷新链结果;TV 保持独立 Stop-Ship 直至受限事件闭环
停止:版本来源或升级连续性不明即保持 TV 停发 回滚:不发布 TV,不改变线上凭据状态
PHASE 1 · ROOT FIX

修上游状态断链

每个平台先解决自己的确定性根因,再接统一触发。

  • Android 购买 PR #11 已合并
  • Android 手机 PR #12 与 TV PR #8 找回密码均已合并
  • Android 手机严格手动节点目录 PR #13 已合并
  • Windows、Apple TV、独立 macOS 额度修复已合并
  • Windows 节点 Core 与 Apple Native V2 整合已合并
  • 其他平台刷新与剩余额度端口进入返场清单
依赖:共同版本 / 状态基线,不依赖 TV 事件闭环 Owner:Android / Apple / Windows leads
并行:三平台线独立实现;TV 可改代码但不可发布 验收:竞态、缓存与错误语义测试通过
停止:后端证据推翻根因或出现会话误清 回滚:功能开关或聚焦 revert 返回旧刷新链
PHASE 2 · TRIGGERS

统一用户触发与问题中心

把产品体验与团队观察面接到同一契约。

  • 账户自动同步与节点严格手动刷新拆成双通道
  • 节点成功才替换;失败留旧并显示原成功刷新时间
  • Android 手机账户 / 设置下拉只更新账户数据
  • 其他触屏端、桌面端与 TV 控件按平台独立返场
  • 统一 Project、标签、字段、5 个 CEO 视图与 12 条历史 issue 已完成
  • 12/12 仓事件 caller 已分别合并,不需要定时 AI
依赖:Phase 1 状态链 Owner:Client UX + Dev Productivity
并行:刷新入口与 Project 可分开 验收:零 LLM 自动收集;普通前台不改节点;成功原子替换、暂时失败留旧、权威失效隔离均可观测
停止:授权、告警、缓存隔离或漏项恢复未闭环 回滚:禁用新触发 / Action,原 issue 与旧入口保留
PHASE 3 · VERIFY

真机矩阵与分批发布

代码审查只能到 △,真实设备与发布链通过后才到 ○。

  • 内购、网页续费、到账延迟、支付取消与 CAPTCHA
  • 冷启动、普通前台节点零请求、离线、换号与晚到请求
  • 手动成功原子替换;失败保留旧节点与旧成功时间
  • 权威无套餐、到期、禁用、耗尽、撤销与会话失效隔离
  • 连接状态往返、出口变化、真实签名与设备安装
  • 按版本 cohort 灰度并验证用户实际到达
依赖:对应平台 Phase 1 至 2;TV 发布另需安全事件闭环 Owner:独立 QA + Release
并行:按平台设备矩阵,非 TV 平台不等待 TV 验收:7 表面各自通过,产物可追溯、已到达目标 cohort 且可回滚
停止:任一平台 P0、会话误清、仍需重登或新版本指标不改善 回滚:仅停止该平台灰度并恢复上一已知良好版本

本窗口未完成;必须返场

P1 · 其他端刷新Apple Native、Android TV、Apple TV、独立 macOS、Windows 的严格手动 UI 与成功时间。
P1 · 账户与额度其他端账户下拉;Android、Android TV、Apple Native 的额度四态移植。
P1 · Android target 362026-08-31 前独立 SDK 升级与行为回归。
P2 · 购买安全取舍下单已开始后若崩溃且无法证明请求未发出,客户端会安全锁住并要求人工解锁;套餐重命名还可能使名称绑定降级。以防重复扣款为先,独立返场。
△ · 设备 / 生产支付、CAPTCHA/TalkBack、VPN、签名、商店、用户到达与 cohort 指标。
X · 外部安全凭据轮换、Android TV signer/store continuity、Apple TV 私有 core 授权。
P3 · 工程债PWD 未来多 owner journal、TV 既存 12 项 lint、非关键发布增强与平台噪声,均独立返场。
Paste-ready response

给 CEO 的逐项回复

去掉术语争论,直接回答问题归属、原因、处理方式、发布入口与版本边界。

可直接发送

内容只承诺已合并的代码与已完成的核验;真机、生产和发布仍单列,不写成已上线。

已把原生客户端、后端、GitHub issue 和发布流程统一排查。逐项回复如下:

  1. 安卓找回密码:Android 手机 PR #12 与 Android TV PR #8 均已合并;定向测试、release 编译与独立窄复核通过。真实 CAPTCHA、遥控器与手机设备回放仍待做。
  2. 安卓购买:根因是客户端把鉴权、网络与解析失败伪装成“空套餐”,旧结算还存在状态误判和重复下单风险。PR #11 已合并;目录错误分型、单端点 mutation、未知态对账与账户隔离均已加入,真实支付尚未验证。
  3. 节点不刷新:跨端共同根因是账户、订阅定位与节点目录分开缓存,局部状态没有完整传播。Fable 5 同意该根因(82 / 100)与合同方向(91 / 100)。Android 手机 PR #13 已合并:8 组 62 个 focused 测试、Release 编译、静态合同与独立窄复核通过;有界等待到点时 CI 尚在运行,随后 PR 与 main CI 均已成功。
  4. 最终刷新规则:Android 账户与设置下拉只更新账户数据;首次登录、新账户或无可用缓存只初始化一次,之后节点只接受用户手动按钮。成功才原子替换按账户加密缓存并更新“上次成功刷新”,普通失败保留旧节点与旧时间;权威失效安全隔离。不手动则节点永远不变。其他平台按返场清单独立实现。
  5. 流量额度:0 / 负数表示无额度,缺失或畸形表示不确定。Windows、Apple TV、独立 macOS 修复已分别合并;Android、Android TV 与 Apple Native 仍在返场清单。
  6. 统一看 issue:原 issue 仍留原仓;统一 Project 已覆盖 12/12 仓、12 个现存 item、16 个字段、5 个视图。事件驱动自动同步,无定时 AI、定时任务或 token 消耗。
  7. 一键发布:原生客户端没有共用链接;各仓流水线分别负责。当前没有 tag、release、商店发布或用户到达证明,Android TV 在 signer/store continuity 证据闭环前继续停发。
  8. 系统兼容与剩余工作:Apple 保持 iOS 17 / macOS 14 / tvOS 17.4;Android TV target 34 仍合规;Android 手机必须在 2026-08-31 前由 target 35 升到 36。其余平台刷新 UI、真机/签名/生产验证与凭据轮换已列入明确返场清单,不冒充完成。
Evidence & method

结论从哪里来

源码、GitHub 实时状态与官方文档交叉核验。本简报自身是只读静态页面;代码合并与设备/生产验证分开记账。所有统计是 2026-08-01 的时点快照。

官方与实时来源

源码证据摘要

后端与 Android
  • 后端已提供密码重置、当前账户、套餐与节点目录接口;无需为本轮新增服务端接口。
  • 公开套餐目录与生产源码证明后端目录可用;Android 曾把多种目录失败压成空列表,入口再误报“暂无可用套餐”。
  • 生产结算响应与旧客户端状态解释不一致,跨镜像 mutation 还会放大重复订单风险;PR #11 已修正客户端状态机。
  • Android PR #13 已移除冷启动/登录/支付/账户路径的日常节点替换,加入单次 bootstrap、严格手动、按账户加密 last-good、失败保旧、成功时间、generation/连接 barrier、单列和标签去敏;仍待真机与生产回放。
  • Android TV 的账户/节点严格分离与手动刷新 UI 仍在返场计划,不能用自动重试代替。
Apple 系列
  • 共享项目已具备可复用的强制刷新与版本围栏,但 iOS / macOS 恢复 active 没有调用完整链。
  • Apple TV 与独立 macOS 都有缓存或旧订阅定位短路,导致外部续费后状态继续陈旧。
  • 当前项目配置核验为 iOS 17、macOS 14、tvOS 17.4。
额度与 Windows
  • 生产合同确认 0 / 负数不是不限量;missing、null 或畸形响应也不能 fail-open。Windows、Apple TV 与独立 macOS 修复已合并;真实设备验证仍待完成。
  • WIN-CORE PR #14 已合并:38 个行为向量、focused 252/252 与 Release 编译通过;按钮与成功时间 UI 仍是独立返场项。
GitHub 时点快照
  • PR、合并与默认分支结果均由已核验的团队身份完成;少数早期临时分支曾出现身份偏差,已从最终祖先链隔离,相关凭据轮换列为外部待办。本页不记录敏感实现细节。
  • “VPNCheap 产品问题中心”Project #1:12 个 item、16 个字段、5 个视图;12/12 仓 caller 均已合并,原 issue 仍是唯一事实源。
  • CI 或 workflow 存在不等于用户已安装;本轮没有 tag、release、商店发布或生产部署。

研究与独立意见

Grok 实时第二意见:推荐“各仓事件驱动 Actions + 跨仓 Project”,不需要 LLM 或定时循环;同时区分最新上传 SDK 与最低用户系统版本。
三条并行源码侦察

Android / Android TV、Apple 全家桶、Windows / 独立 macOS 各由独立子代理读取源码、工作流和版本配置;主代理逐项抽查关键证据并做跨端归因。

Recall 与 Automation Hub

Recall 索引尝试没有产生可用输出,因此本轮没有结论依赖它;跨项目总览只参考 Automation Hub 的组织方式,事实仍以源码与实时 GitHub 核验为准。

Fable 5 独立裁决

Fable 对刷新主根因返回 AGREE:根因机制 82 / 100、v1.3 安全合同 91 / 100;CEO 后续把产品策略进一步收紧为“既有账户严格手动”,该约束优先。额度合同 AGREE 98 / 100。Android 购买结论为 PARTIAL:根因 90 / 100、行为合同 86 / 100;除设备与真实支付回放外,还保留“无法证明 POST 未发出时人工解锁”的防重复扣款取舍,以及套餐重命名导致名称绑定降级的返场项。

质量边界

已确认
  • 客户端状态传播断点的源码路径与后端当前代码行为。
  • Android 套餐购买首个失败发生在目录错误合同与 CTA 状态判定;生产结算源码还证实完成响应、订单状态与 mutation 幂等缺口,后端目录并非真实全空。
  • Android 手机严格手动目录 PR #13 已合并为 69dfe2b8;8 组 62 个 focused 测试、Release Kotlin 编译、10 项静态合同与独立窄 verifier 通过。有界等待到点时 CI 尚在运行,随后 PR 与 main CI 均成功;未执行真实设备、VPN 往返、生产续费或商店发布。
  • 当前后端没有可供轻量前台检查比较的 catalog revision,subscription 也没有 ETag / 304;locator host 会随机变化/展开动态模式,用户级 speed/device 覆盖未暴露。v1.2 独立复核为 FAIL 64 / 100;v1.3 已改用 data.id canonical 稳定账户、availability 边界、版本化受信 origin exact/template 成员、typed diagnostic last-verified 语义与 A/N authority epoch。Fable5 对 v1.3 为 AGREE 91 / 100。
  • 六端额度语义与生产合同存在漂移;0 不是不限量。Windows 修复已合并并通过远端 CI。
  • GitHub 仓库、issue、Project 与 workflow 的实时快照。
  • Apple 项目中声明的最低系统版本和官方当前提交要求。
仍需实施阶段确认
  • 用户当前安装版本、来源分支、渠道和 rollout cohort。
  • 真实支付、CAPTCHA、续费、离线、换号与手动刷新回放。
  • 其他平台的严格手动节点 UI、成功时间与账户下拉。
  • 签名设备、商店连续性、生产指标与凭据轮换。
证伪条件
  • 完整强刷请求仍收到后端陈旧或空状态。
  • 同一账户仅旧会话陈旧,新登录会话立即变新。
  • 问题几乎只来自旧版本,升级后无需重登即可恢复。
交付质量闸门

关键修复保留 focused 回归、必要编译/静态门禁和窄独立 verifier;CodexLoop 在只剩非关键项时停止,required CI 最多等待 5 分钟。跳过或延期的门禁单列,绝不包装成 CLEAN 或上线完成。HTML 仍需覆盖 320、390、768 与 1440 px、无脚本、减弱动效、打印、溢出、交互与控制台。