test(panel-go): freeze Go golden behavior baseline (Node retired, difftest superseded)
Single-source Go from this round on: golden.mjs replays a fixed API script against a Go panel seeded from the difftest seed DB and diffs every response (learning-normalized) against golden.json. 25 sections: lists, credentials, all subscription formats, deploy job payloads, usage/presence, UI-style node PATCH, /api/system shape, backup, error cases.
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
# amo 下一版修改清单
|
||||
|
||||
用户 2026-10-21 上线当晚起陆续口述,攒齐后统一施工。
|
||||
|
||||
## 0. 施工口径变更(2026-10-21 04:36 用户拍板)
|
||||
|
||||
Node 实现(server.js / lib / agent.js)冻结退役:本版起 **Go 单一真源**,只改 panel-go + agent-go + 共用前端,不再双写、不再对 Node 做 difftest;验收金标准改为冻结 Go 现状行为作回归基线。Node 代码留仓作历史与回滚参考,不删。
|
||||
|
||||
## 1. 客户页顶部加统计条(2026-10-21 03:53,用户附 3x-ui 截图)
|
||||
|
||||
照 3x-ui 客户端页顶部那排,在 amo「客户与订阅」页上部加统计条,六个数:
|
||||
- 客户端(总数)
|
||||
- 在线(当前在线数,沿用现有 3 分钟 presence 窗口口径)
|
||||
- 耗尽(流量已用满的客户数)
|
||||
- 即将耗尽(接近用满的客户数,阈值口径施工时对齐 3x-ui)
|
||||
- 关闭(已停用客户数)
|
||||
- 启用(已启用客户数)
|
||||
|
||||
出处:用户在路由器 3x-ui(:55889/rogue)客户端页截图,顶栏现网数字为 26 / 6 / 0 / 0 / 0 / 26。
|
||||
|
||||
## 2. 客户凭据改为全节点共用一套(2026-10-21 03:56,用户附 amo 凭据页截图)
|
||||
|
||||
现状(amo):凭据长在每个节点绑定上——同一客户在 HWSG / ZouSG-V6 / ZouSG-V4 / LEGJP-V4 / LEGJP-V6 各有一套不同的 UUID、密码、Reality Short ID。
|
||||
|
||||
目标(照 3x-ui):凭据收归客户级——一个客户一套 UUID + 密码 + Short ID,名下所有节点共用;节点绑定不再各存一套。
|
||||
|
||||
实证(2026-10-21 查用户 2026-10-20 发的路由器 3x-ui 备份库,只读):clients 表 uuid/password/sub_id 只存一份(email 唯一);client_inbounds 是纯关联表,无任何凭据列。26 个客户中 19 个挂了多个入站,最多的 rogue 挂 20 个入站、共用同一套凭据。此模型与日后 3x-ui→amo 正式迁移正好 1:1 对齐。
|
||||
|
||||
施工前要定的点:
|
||||
- 节点侧 Reality 密钥对是服务器身份,不动,仍按节点托管(keyStore)。
|
||||
- 存量不是问题:用户 2026-10-21 确认现网 amo 里服务器/客户/节点全是测试数据(随便加的),切换凭据模型时测试数据直接按新模型重建,无需收敛迁移;真实用户仍在 3x-ui 侧(待正式迁移)。
|
||||
|
||||
## 3. 内容区左右间距调小到与 3x-ui 一致(2026-10-21 04:02,用户附 amo 节点页 + 3x-ui 主机页对照图)
|
||||
|
||||
amo 各页主内容区两侧留白偏大;把左右间距(padding/最大宽度约束)调小,调到与 3x-ui 一样的贴边宽度。所有页面统一,不是一页一调。
|
||||
|
||||
## 4. 服务器页「核心版本」加真实探测(2026-10-21 04:11 用户)
|
||||
|
||||
现状:服务器页核心版本恒显"—"(agent 心跳没报这个字段)。
|
||||
改法:agent 探测本机 sing-box 版本随心跳上报,面板落到核心版本列显示。
|
||||
实现口径(已与用户对过内存账):版本探测只在 agent 启动 / 引擎安装更新 / 二进制文件变化时跑一次 `sing-box version` 并缓存,心跳只多带一个短字符串字段;不许每轮心跳起子进程。老 agent 无此字段时继续显"—",向后兼容。
|
||||
|
||||
## 5. 删除「延迟」(2026-10-21 04:12 用户)
|
||||
|
||||
服务器页的延迟列删掉,统计条里的"平均延迟"一并去掉;系统状态页如有同名占位同删。
|
||||
理由(用户原话口径):延迟要不断探测上报、没什么用、还费内存——明确不做延迟探测功能,占位列也不要留。
|
||||
|
||||
## 6. 行操作小图标加悬停名称提示(2026-10-21 04:15,用户附客户行图标特写)
|
||||
|
||||
列表行内的功能小图标(二维码、详情、重置、编辑、删除等)鼠标悬停时显示对应功能名称(tooltip/title)。客户页先行,全站同类图标统一补齐。
|
||||
样式照 3x-ui(用户 2026-10-21 附特写):黑底白字圆角气泡带小尖角、出现在图标上方;被悬停的图标本身带浅灰背景高亮。名称与 3x-ui 对齐:二维码 / 详情(i 图标)/ 重置流量(⇄ 图标)/ 编辑 / 删除。
|
||||
|
||||
## 7. 节点端口「范围内随机」保存后反复重掷(2026-10-21 04:19,用户附编辑节点截图)
|
||||
|
||||
现状:新建节点时入口端口为"范围内随机",分配到随机端口;若不手工改成固定,之后每次编辑该节点(哪怕只改其他参数)点保存,端口都会被重新随机分配成另一个——端口静默漂移,客户端随之失效。
|
||||
|
||||
要求:随机只在新建时掷一次;已分配的端口在后续编辑中必须保持不变,除非用户显式改端口模式/数值。实现口径施工时定(如:编辑既有节点时端口模式默认按已分配端口固定呈现),验收要点:编辑既有节点任意字段保存后端口逐字不变。
|
||||
|
||||
## 8. 中转模型与 3x-ui 不对齐:缺"A 入站经内网 IP 中转到 B 节点"(2026-10-21 04:26,用户附中转节点编辑截图)
|
||||
|
||||
现状:amo 的中转是"入口 → 出口设备"模型(转发拓扑 + 出口 SOCKS5),与 3x-ui 的"出站 + 路由规则"完全不同。
|
||||
缺口:无法实现用户在 3x-ui 上的既有用法——A 服务器的入站节点通过内网 IP 直接中转到 B 服务器的节点(线路鸡 → 落地鸡内网中转)。
|
||||
要求:下一版补齐这种中转形态(这是用户现网在用的模式,迁移前置之一)。
|
||||
|
||||
设计方向(2026-10-21 04:28 已与用户对过):出口目标二选一——① 受管设备(现状,面板管两边);② 新增"手动落地端点":填地址(内网 IP/域名)+ 端口 + 协议 + 凭据(VLESS=UUID、SS2022=密码、SOCKS5=账密),面板只在 A 侧生成出站+路由(sing-box outbound + route),B 侧不要求装 agent、可以是 3x-ui 的现成节点。凭据只存主控、随部署下发。
|
||||
补充(用户 2026-10-21 确认的理解):第三方/别人提供的节点同样可作落地——只要有 IP+协议+ID+密码即可,来源不限(自家内网鸡、3x-ui 节点、别人给的节点都行);前提是 A 能直达该地址端口。一个 vless:// / ss:// 分享链接本身就含全这四样,施工时可顺带做"粘贴链接自动填表"。
|
||||
|
||||
## 9. 删除右上角头像圆图标(2026-10-21 04:34,用户附顶栏特写)
|
||||
|
||||
顶栏右侧的圆形头像(显用户名首字母"G")是纯装饰 span,无任何点击事件(退出登录在侧栏底部另有按钮)——删掉。已查证同排的「刷新」按钮有效(绑定 load() 重新拉数重渲染,与 45 秒自动刷新同一套),保留不动。
|
||||
|
||||
## 10. 删除顶栏全局搜索框(2026-10-21 04:39,用户附顶栏截图)
|
||||
|
||||
顶栏"搜索服务器、客户、节点…"输入框是写死 disabled 的摆设、无任何功能;且每页都有自己的可用搜索框,此框多余——删除(顶栏共用一处,删一处全站生效)。
|
||||
Reference in New Issue
Block a user