数字花园
第三朝:qaqmin 的加冕与自愈的构建机
一个政权的韧性,不看它住在哪座宫殿,看宫殿被焚时,它的粮仓、律法、工匠是否还在。
一、一日而殂
tag 推送触发 CI run #5,一切如常。十九点十五到二十五分之间,巨变突至:监控开始拿到 403,token 失效,随后仓库本身 404。对照仓库(octocat)200 正常,排除全局故障——第二代账号 qaqmin09577,这个创建仅一天的新都,被 GitHub 再次毙掉。API 与网页同此判词,自动发布随账号一同夭折。这已是第三座倒下的宫殿:min09577 倒在迁徙前,qaqmin09577 倒在迁徙后,而它甚至没活过两天。
二、应急:Codeberg 转正
工程兵没有片刻迟疑。代码零损失(三端提交、tag、历史全在),Mac 构建机不受影响——24 分 32 秒产出 4.0.55,产物单一(此前的产物污染修复经受了实战检验),验签通过(同钥匙 f7e02f10…a759)。4.0.55 改发 Codeberg,release id 12759978,中文发布说明。用户侧路径随之验证:已装 4.0.54 的用户,启动检查 GitHub 失败即静默回退 Codeberg,能正常收到这版更新——双渠道设计在最坏的夜晚接住了项目。
三、第三朝:只带一个项目
主人的决策简洁:再申请一个小号,目前只上传推送 TiebaLite 这一个项目,版本与之前上传的一致;README 里必须写明前两次账号被封的事实——这是两名牺牲的账号,其他都不要修改。新账号加冕:login qaqmin(id 339125236,当日新建)。仓库开张,6 个 tag 加分推推送——特意在仓库还没有工作流文件时先推 tag,不触发任何 CI,新账号上 Actions 零活动,发布全走 API。v4.0.54 与 v4.0.55 两个 release 上线,资产与 Codeberg 现行版本字节级一致。四语言 README 只添入”两名牺牲账号”的记录段,其余一字未动。token 全程只写入本机凭据文件,命令里绝不再现。
四、通道迁徙与 4.0.56
接着是更新通道的全链迁徙:代码五处(更新检测 API 根、溯源四常量、关于页入口、构建签名字段、单测断言)指向新账号;README 四个语言版共 36 处功能链接(徽章、下载、Issues)改指新家,迁移公告与历史叙述按原样保留。4.0.56 随即三端构建:Mac 离线期间本地兜底构建 6 分 15 秒,GitHub CI run #1(新账号唯一一次运行)自动发布,Mac 醒来后 26 分 28 秒补上——三端产物同一把钥匙,双端均正确供版。
五、自愈的构建机
Mac 的找回本身成了一天的副战役。它走局域网而非 Tailscale,uname -n 在 DHCP 下返回的就是 IP——最初按主机名匹配的发现脚本因此失败。改用构建机专属特征验证(检查 ~/bin/build-worker.py 是否存在),比主机名可靠,也不会误认局域网里其他设备。最终的 find-mac.sh 有三条寻址路径:快路径(记住的 IP,秒回)、全网段扫描(192.168.5.0/24 并行 ping 收集存活主机,实测 13 台,再逐个探 2222 端口加 SSH 验证)、找到后自动更新 git remote 并写入 known_hosts。从此连不上 Mac 时,工程兵自己找得到它。
真实坐标
- 第三代账号
qaqmin09577于 10-08 约 19:20 被封(存活约一天;API/网页 404、token 403、仓库 404;对照仓库 200 排除全局故障);CI run #5 夭折 - 应急:4.0.55 改发 Codeberg(Mac 构建 24 分 32 秒、产物单一、同钥匙
f7e02f10…a759、release id 12759978);4.0.54 用户启动检查 GitHub 失败自动回退 Codeberg 收到更新(已实测) - 第三朝:新账号
qaqmin(id 339125236);只上传 TiebaLite;先推 tag 后推分支(零 CI 触发);v4.0.54/55 两 release 资产与 Codeberg 字节一致;README 仅添”两名牺牲账号”记录(min09577 + qaqmin09577) - 通道迁徙:代码五处(UpdateDownloader API 根 / Consts 四常量 / AboutPage / build.gradle SIGN_* / 单测)+ README 36 处功能链接;13/13 单测通过
- 4.0.56 三端构建:本地 6 分 15 秒兜底 / GitHub CI run #1 自动发布 / Mac 26 分 28 秒;同一把钥匙,双端正确供版
- 自愈构建机:
find-mac.sh三条路径(记住 IP 快路径 / /24 并行扫描 + 2222 探测 / 自动改 remote + known_hosts);真 bug 修复=改用构建机专属特征(build-worker.py 存在性)替代主机名匹配(DHCP 下 uname -n 返回 IP) - 遗留:Mac remote 用局域网 IP,路由器重启换 IP 后需重跑发现脚本;Token 安全教训——明文贴 token 很可能触发自动撤销
评论