Skip to content

fix(settings):设置页「路由」分类被 bc8e843 夹带的旧版文件整块覆盖删掉 —— 恢复路由策略、会话粘性与三个自愈开关 - #279

Closed
coulsontl wants to merge 1 commit into
aimod-cc:betafrom
coulsontl:fix/restore-routing-settings-pane
Closed

coulsontl wants to merge 1 commit into
aimod-cc:betafrom
coulsontl:fix/restore-routing-settings-pane

Conversation

@coulsontl

Copy link
Copy Markdown
Contributor

背景

上游 bc8e843(2026-10-15,提交信息写的是「网络代理页新增代理设置弹窗」)在开发那批代理功能时,夹带提交了一份本地的旧版 settings-page.tsx,把整个设置页覆盖成了硬编码中文、且不含路由分类的版本。

症状

官方镜像 v3.0.4 / v3.0.5 的设置页里:

  • 没有「路由策略」下拉
  • 没有「会话粘性」下拉
  • 三个自愈开关(失败退避 / 限流垫底 / 熔断)更无从谈起

即整个「路由」分类消失 —— 它是 v3.0.2 起就有的,PR #235 又在其中补了自愈开关与两条分组条。

根因

bc8e843 对这两个文件的改动:

文件 改动 性质
settings-page.tsx 2340 行 → 2012 行,t(' 230 → 5 整份旧版覆盖(它的新增行全是硬编码中文,且不含任何 export / import / 类型声明)
settings-model.ts t(' 168 → 23 「把桥类型搬到文件顶部」,搬迁时漏搬了 modelsDevStateText 函数、ROUTE_PROTECTION_SWITCHES 表,以及 STATES 里的一组 modelsDev* 文案

后者使前者恢复后有两处 import 悬空,所以必须一并恢复。

判据

  • 上游所有 .tsx 里都没有路由设置的渲染代码(唯一命中是 request-detail.tsx 的一句注释)
  • 但 settings-model.ts 里的 ROUTE_STRATEGIES / ROUTE_STICKY_OPTIONS / ROUTE_PROTECTION_SWITCHES 三张表都还在 —— 官方 ui.js 里 grep 得到「家内轮询」,界面上却什么都看不到

典型的「删了消费方、没删数据源」。

修复

把 settings-page.tsx 与 settings-model.ts 恢复成 bc8e843 之前(8bae439)的版本。

安全性:两者在 bc8e843 之后都没有再被任何提交改动过(git log -- <file> 的最近一条就是 bc8e843),且 bc8e843 对它们的改动分别是「整份旧版覆盖」与「等价搬迁(同名类型换位置)」,所以整份恢复不会丢掉任何有意为之的改动。

验证

t(' 使用量(i18n 被抹的直接指标):

文件 覆盖前 被覆盖后 恢复后
settings-page.tsx 230 5 230
settings-model.ts 168 23 168

前端产物重建后,ui/islands/ui.js 里的界面字符串:

字符串 恢复后 官方 v3.0.5
路由策略 4 0
会话粘性 4 1(那是请求详情里的一句文案)
自愈保护 2 0
限流垫底 1 0

tsc --noEmit 与 vite build 通过;i18n scan --check 通过。

⚠️ 顺带提醒(本 PR 未改动,请自行判断是否有意为之)

bc8e843 还回退了另外三个文件:

  • ui/index.html —— PWA 声明(apple-mobile-web-app-capable 等,PR 移动端适配:全站手机浏览器支持 + iOS PWA #228 的移动端适配)
  • ui/login.html —— i18n 语言引导的「只写域清单 manifest」新版
  • ui/units.js —— 多语言量级词(萬 / 億 / 만 / 억)退回中文版

这三处无法从提交信息判断是不是有意为之,所以留给维护者定夺。

上游 bc8e843(2026-10-15)在开发「网络代理页 · 代理设置弹窗」时,夹带提交了一份
本地的旧版 `settings-page.tsx`,把整个设置页覆盖成了**硬编码中文、且不含路由分类**
的版本;同一提交对 `settings-model.ts` 的改动是「把桥类型搬到文件顶部」,搬迁时漏掉了
`modelsDevStateText` 函数、`ROUTE_PROTECTION_SWITCHES` 表,以及 `STATES` 里的一组
`modelsDev*` 文案 —— 于是恢复 `settings-page.tsx` 所需的 import 有两处悬空。

症状(官方镜像 v3.0.4 / v3.0.5):设置页里**既没有「路由策略」,也没有「会话粘性」**,
三个自愈开关更无从谈起 —— 整个「路由」分类消失。

判据:上游**所有** `.tsx` 里都没有路由设置的渲染代码,而 `settings-model.ts` 里的
`ROUTE_STRATEGIES` / `ROUTE_STICKY_OPTIONS` / `ROUTE_PROTECTION_SWITCHES` 三张表还在
(官方 `ui.js` 里 grep 得到「家内轮询」,界面上却什么都看不到)—— 典型的「删了消费方、
没删数据源」。

修复:把 `settings-page.tsx` 与 `settings-model.ts` 恢复成 bc8e843 **之前**(`8bae439`)
的版本。两者在 bc8e843 之后都没有再被改动过,且 bc8e843 对它们的改动分别是「整份旧版
覆盖」与「等价搬迁(同名类型换位置)」,所以整份恢复不会丢掉任何有意为之的改动。
前端产物已重建。

`t('` 使用量(i18n 被抹的直接指标):

| 文件 | 覆盖前 | 被覆盖后 | 恢复后 |
|---|---|---|---|
| `settings-page.tsx` | 230 | **5** | 230 |
| `settings-model.ts` | 168 | **23** | 168 |

⚠️ **顺带提醒(本 PR 未改,请自行判断是否有意为之)**:bc8e843 还回退了

- `ui/index.html` —— PWA 声明(`apple-mobile-web-app-capable` 等,PR aimod-cc#228 的移动端适配)
- `ui/login.html` —— i18n 语言引导的「只写域清单 manifest」新版
- `ui/units.js` —— 多语言量级词(萬 / 億 / 만 / 억)退回中文版

这三处无法从提交信息判断是否有意,所以本 PR 不动它们,留给维护者定夺。
@aimod-cc

Copy link
Copy Markdown
Owner

感谢定位与修复!这个问题我们这边也确认了:bc8e843 夹带的旧版 settings-page.tsx 把设置页整块覆盖,连带「路由」分类一起丢失,你的排查完全正确。

同样的修复已经随 v3.0.6(2026-10-15 发布)进入仓库:settings-page.tsx 的多语言文案与「路由策略 / 会话粘性 / 自愈开关」均已恢复,且一并找回了「整库备份 / 恢复」「验证码令牌池」「models.dev 模型元数据」面板与 Cline 伪装头的折叠交互,与本 PR 的改动范围一致。为避免合并时产生回退风险,这个 PR 先关闭了。

再次感谢你花时间定位根因!如果升级 v3.0.6 后发现设置页仍有缺失的面板或文案,欢迎在这里或新开 issue 指出,我们会继续跟进。

🤖 本条回复由 AI Agent 生成

@aimod-cc aimod-cc closed this Oct 15, 2026
@coulsontl
coulsontl deleted the fix/restore-routing-settings-pane branch October 16, 2026 01:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants