支持 GitHub、GitLab、Gitee,支持批量、历史、进度和多节点。
| # | 资源 | 原始链接 / 加速链接 | 操作 |
|---|---|---|---|
| 暂无结果,生成后显示 | |||
共 304 条
本文件记录项目的重要更新与已知问题,便于快速排查。
最后整理时间:2026-03-24 12:47:46
| 阶段 | 版本范围 | 核心主题 |
| --- | --- | --- |
| 当前迭代阶段 | v1.0.301 ~ v1.0.53 | 灵动岛能力扩展、全局时间格式治理、异常状态码体系、认证与全站页面统一视觉治理、用户组功能中心、后台侧边栏菜单重构、全页面防溢出与性能收敛 |
| 运营与日志阶段 | v1.0.52 ~ v1.0.45 | 公告中心、更新日志管理中心、识别与导入增强 |
| 体验与下载阶段 | v1.0.44 ~ v1.0.29 | 结果区体验、下载状态机、移动端与布局稳定性 |
| 审计增强阶段 | v1.0.28 ~ v1.0.25 | 审计筛选、审阅状态、前后对比与风控能力 |
| 评论系统阶段 | v1.0.24 ~ v1.0.17 | 评论交互、身份展示、IP 定位、编辑与举报流程 |
| 基础能力阶段 | v1.0.16 ~ v1.0.1 | 后台可视化、工单、安全修复、品牌与缓存基础建设 |
<details>
<summary>点击展开完整版本索引(v1.0.301 ~ v1.0.1)</summary>
| 版本 | 发布时间 | 主题 |
| --- | --- | --- |
| v1.0.301 | 2026-03-24 05:44:15 | 后台顶栏恢复右侧内容区布局:assets/admin-dashboard.js 关闭后台壳子自动改成 split-header 通栏顶栏的运行时重排逻辑,恢复成顶栏留在右侧内容区顶部;admin/*.php 统一升级后台公共资源版本到 20260324-admin-polish-v48,确保浏览器及时刷新;README / CHANGELOG 同步更新 |
| v1.0.300 | 2026-03-24 05:28:59 | 后台移动端侧栏恢复直出布局:assets/admin-dashboard.css + assets/admin-dashboard.js 将后台手机端侧栏改成默认隐藏、初始化完成后再允许展开,避免首屏直接出现覆盖式抽屉;admin/*.php 统一升级后台公共资源版本到 20260324-admin-polish-v47,确保浏览器及时刷新;README / CHANGELOG 同步更新 |
| v1.0.299 | 2026-03-23 21:18:30 | 评论区统计面板可视化与设备信息左对齐:index.php / assets/quick-page.js 将评论筛选统计详情面板升级为可视化分布条,展示各维度条目数、占比和热度;assets/main.css / assets/quick-page.css 把评论设备信息块和移动端折叠态改成更紧凑的左对齐信息流;index.php / quick.php / about.php 升级到 main.css?v=20260323-site-polish-v108、quick-page.css?v=20260323-quick-page-v39、quick-page.js?v=20260323-quick-page-v49;README / CHANGELOG 同步更新 |
| v1.0.298 | 2026-03-23 21:05:00 | 评论区 IP 协议筛选与快捷标签扩展:lib/comments.php / lib/db.php / sql/gh-proxy-app.sql 新增 comments_show_ip_version_filter 与 quick_filter_include_ip_version 默认值、读取和保存;admin/comments.php 后台评论策略面板新增 IP 协议筛选开关,评论样式面板新增“快捷筛选包含 IP 协议”;lib/templates/comments_panel.php / index.php / assets/quick-page.js 新增“全部协议 / IPv4 / IPv6”筛选、协议统计和快捷标签联动;quick.php 提升评论脚本资源版本到 quick-page.js?v=20260323-quick-page-v48;README / CHANGELOG 同步更新 |
| v1.0.297 | 2026-03-23 20:46:20 | 评论区终端类型筛选与快捷标签扩展:lib/comments.php / lib/db.php / sql/gh-proxy-app.sql 新增 comments_show_device_type_filter 与 quick_filter_include_device_type 默认值、读取和保存;admin/comments.php 后台评论策略面板新增终端类型筛选开关,评论样式面板新增“快捷筛选包含终端类型”;lib/templates/comments_panel.php / index.php / assets/quick-page.js 新增“全部终端 / 移动端 / 桌面端”筛选、终端类型统计和快捷标签联动;quick.php 提升评论脚本资源版本到 quick-page.js?v=20260323-quick-page-v47;README / CHANGELOG 同步更新 |
| v1.0.296 | 2026-03-23 20:24:18 | 评论区快捷筛选标签与后台维度控制:lib/comments.php / lib/db.php / sql/gh-proxy-app.sql 为 comments_ui_settings 新增 show_quick_filter_chips / quick_filter_chip_limit / quick_filter_include_city / author / geo_source / browser / system;admin/comments.php 后台评论样式面板新增快捷筛选条总开关、数量上限和维度控制;lib/templates/comments_panel.php / index.php / assets/quick-page.js 新增热门快捷筛选标签并接入同一套筛选状态联动;assets/main.css / assets/quick-page.css 补齐快捷标签亮暗主题与移动端样式;index.php / quick.php / about.php 提升前台资源版本;README / CHANGELOG 同步更新 |
| v1.0.295 | 2026-03-23 19:55:07 | 评论区视图工具条与本地记忆增强:lib/comments.php / lib/db.php / sql/gh-proxy-app.sql 为 comments_ui_settings 新增 show_view_toolbar / remember_filter_state / remember_preview_state;admin/comments.php 后台评论样式面板新增对应开关;lib/templates/comments_panel.php / index.php / assets/quick-page.js 新增评论区视图工具条、本地筛选记忆、预览开关记忆以及长评论一键展开/收起;assets/main.css / assets/quick-page.css 补齐新工具条样式;index.php / quick.php / about.php 提升前台资源版本;README / CHANGELOG 同步更新 |
| v1.0.294 | 2026-03-23 19:32:40 | 评论区全端美化与交互增强:lib/comments.php / lib/db.php / api/comments.php / api/admin-comments.php 新增统一 comments_ui_settings 配置与后台保存接口;admin/comments.php 新增“评论区样式 / 交互增强”面板;lib/templates/comments_panel.php / index.php / assets/quick-page.js / assets/comments-renderer.js 接入实时预览、字数统计、拖拽上传态、移动端筛选折叠、已选标签移除与长评论折叠;assets/main.css / assets/quick-page.css 收口首页与简洁页评论区样式;sql/gh-proxy-app.sql 补齐 comments_ui_settings 默认值;index.php / quick.php / about.php 提升前台资源版本;README / CHANGELOG 同步更新 |
| v1.0.293 | 2026-03-23 08:18:28 | 评论前台设备详情与 IP 协议图标优化:lib/comments.php 修复系统版本格式化丢失斜杠、补充设备详细摘要;api/comments.php 新增公开 ip_version 字段;assets/comments-renderer.js / assets/main.css / assets/quick-page.css 重做设备折叠摘要与居中样式,并新增前台 IPv4/IPv6 协议图标;index.php / quick.php / about.php 提升前台资源版本;README / CHANGELOG 同步更新 |
| v1.0.292 | 2026-03-23 08:01:17 | 评论 IPv6 自动切换 UAPI 数据源:lib/comments.php 新增 UAPI ipinfo 查询、IPv6 provider 自动切换与 comments_ip_geo_uapi_* 配置读取/保存;admin/comments.php 的评论定位面板升级为“IP 数据源设置”,新增 UAPI IPv6 数据源 / API Key / source 后台项与 IPv4/IPv6 链路摘要;lib/db.php / sql/gh-proxy-app.sql 补齐新的数据库默认配置键;README / CHANGELOG 同步更新 |
| v1.0.291 | 2026-03-23 07:32:46 | 评论 IPv6 定位与通知邮件渲染修复:lib/comments.php 新增 IPv4 / IPv6 识别、IPv6 provider 动态回退与评论邮件内容渲染 helper;admin/comments.php 后台定位测试补充 IP 类型提示;lib/mail.php 统一把 logo / 链接 / 图片转成绝对 URL,并为评论通知邮件补充 Markdown 内容容器样式;lib/auth.php 的模板回退链路也改为继续走统一邮件包装;README / CHANGELOG 同步更新 |
| v1.0.290 | 2026-03-23 07:18:10 | 评论区移动端显示重做:assets/comments-renderer.js 将评论副信息改成分组结构,移除单行文本串联;assets/main.css / assets/quick-page.css 重做手机端筛选栏、验证码区、定位块、设备块和评论卡片间距;移动端设备折叠态重新显示摘要文本,不再只剩图标;index.php / quick.php / about.php 升级到 main.css?v=20260323-site-polish-v103、quick-page.css?v=20260323-quick-page-v34、comments-renderer.js?v=20260323-comments-renderer-v3;README / CHANGELOG 同步更新 |
| v1.0.289 | 2026-03-23 07:12:00 | 评论筛选维度继续扩展:admin/comments.php 新增前台 身份筛选 / 定位方式筛选 开关;lib/comments.php / lib/db.php / sql/gh-proxy-app.sql 补齐 comments_show_author_filter / comments_show_geo_source_filter 配置读取与默认种子;lib/templates/comments_panel.php 将顶部筛选锚点修正到评论列表前,并新增身份 / 定位方式下拉;index.php / assets/quick-page.js 接入五维组合筛选与完整重置;quick.php 升级到 quick-page.js?v=20260323-quick-page-v43;README / CHANGELOG 同步更新 |
| v1.0.288 | 2026-03-23 06:55:00 | 评论区后台前台控制增强:admin/comments.php 新增排序栏 / 筛选栏 / 验证码策略及定位、设备发布控件的后台控制项;lib/comments.php 扩展评论控制、定位前台控制、设备前台控制并加入服务端强制兜底;index.php / assets/quick-page.js / lib/templates/comments_panel.php 新增城市 / 浏览器 / 系统筛选、筛选栏位置切换与前台强制模式处理;api/comments.php / api/captcha.php / lib/captcha_runtime.php 接入评论验证码“始终显示”强制校验;lib/db.php / sql/gh-proxy-app.sql 补齐新配置键;README / CHANGELOG 同步更新 |
| v1.0.287 | 2026-03-23 06:08:08 | 评论设备信息前台缓存刷新修复:index.php / quick.php / about.php 提升前台资源版本号,强制刷新新的 main.css、comments-renderer.js、quick-page.js、quick-page.css,修复后台已开启设备信息但前台仍沿用旧单行文案的问题;index.php / assets/quick-page.js 同步把设备提示改为“自动识别浏览器与系统”;README / CHANGELOG 同步更新 |
| v1.0.286 | 2026-03-23 05:58:33 | 评论设备信息两行展示与后台配置:lib/comments.php 新增评论设备显示模式、UA 解析、公开/后台 payload 与真实后台配置透传;api/comments.php / api/admin-comments.php 下发前后台设备设置;admin/comments.php 新增设备设置面板与设备详情展示;index.php / assets/quick-page.js / assets/comments-renderer.js 完成前台设备开关、模式记忆、两行展示与移动端折叠;lib/db.php / sql/gh-proxy-app.sql 补齐评论设备字段与 comments_device_* 配置种子;README / CHANGELOG 同步更新 |
| v1.0.285 | 2026-03-23 05:26:42 | 后台评论定位异常筛选与诊断:lib/comments.php 新增后台定位异常诊断 helper 与异常统计,支持识别精确定位与 IP 不一致、坐标不完整、服务缺失、地址层级缺失等问题;api/admin-comments.php 新增 geo_anomaly 后台筛选参数;admin/comments.php 增加异常状态筛选、异常统计卡、行级高亮和详情诊断说明;本轮无新增 SQL 结构;README / CHANGELOG 同步更新 |
| v1.0.284 | 2026-03-23 05:12:41 | 后台评论定位筛选与详情增强:admin/comments.php 为评论列表新增 定位来源 / 可见范围 / 定位精度 / 地区关键词 / 定位服务关键词 筛选,并为评论详情弹窗新增独立“定位详情”区块、地图外链和回复/历史评论定位摘要;api/admin-comments.php / lib/comments.php 同步接入 geo_source / geo_visibility / geo_accuracy / geo_city_keyword / geo_provider_keyword 后台过滤参数;本轮无新增 SQL 结构;README / CHANGELOG 同步更新 |
| v1.0.283 | 2026-03-23 05:10:00 | 评论定位敏感配置改为数据库直读:lib/comments.php 为 app_settings 文件级预取缓存新增敏感键排除,comments_ip_geo_amap_key / comments_ip_geo_amap_secret 等值不再写入 cache/app-settings-prefetch-cache.php;敏感键读取会自动回退数据库查询,确保高德定位 Key / 安全密钥继续以数据库为主;README / CHANGELOG 同步更新 |
| v1.0.282 | 2026-03-23 04:18:00 | 评论定位接入高德地图后台配置与测试:admin/comments.php 新增“评论定位 / 高德地图设置”面板与顶部直达入口,支持评论 IP 定位开关、定位链路切换(自动回退 / 仅高德 / 旧版回退)、高德 Key / 安全密钥 / sig、超时、缓存 TTL、在线测试与缓存清理;api/admin-comments.php 新增 geo_settings 下发、保存、测试、清缓存动作;lib/comments.php 接入高德 v3/ip provider 与调试/测试 helper;lib/db.php / sql/gh-proxy-app.sql 补齐默认配置键;README / CHANGELOG 同步更新 |
| v1.0.281 | 2026-03-23 03:41:44 | 首页在线下载关闭态切到下载优先高亮:index.php 把“已关闭网页在线下载”场景改为下载优先布局,极速直链 会在保留元信息面板时也直接升级成亮色主按钮,并按下载优先顺序重排动作区;assets/main.css 新增下载优先态样式;index.php / quick.php / about.php 同步升级 main.css?v=20260323-site-polish-v100;README / CHANGELOG 同步更新 |
| v1.0.280 | 2026-03-23 03:24:37 | 首页在线下载开关增强:admin/global_manage.php 新增“关闭首页网页在线下载 / 首页在线下载失败后自动切极速直链”两个后台开关;index.php 关闭在线下载后不再显示站内在线下载状态机,并把无直链场景的 缓存后下载 升级成 打开下载+缓存;在线下载失败时可自动弹出极速直链;lib/db.php / sql/gh-proxy-app.sql 补齐新配置键;README / CHANGELOG 同步更新 |
| v1.0.279 | 2026-03-22 22:25:11 | 后台顶栏锁定真正生效:api/admin-toolbar.php 新增后台顶栏锁定配置下发;assets/admin-dashboard.js 读取 顶栏默认锁定 / 允许自定义 / 锁定按钮显隐,并在后台 Mega Toolbar 上新增 L 锁定按钮;assets/admin-dashboard.css 将桌面端后台顶栏改为默认流式、锁定后再 sticky;后台公共资源版本统一升级到 20260322-admin-polish-v46;README / CHANGELOG 同步更新 |
| v1.0.278 | 2026-03-22 22:07:36 | 后台左栏固定跟随顶栏:assets/admin-dashboard.css 将桌面端 split-header 左侧栏改为固定视口定位,不再随右侧内容滚动一起上滑;assets/admin-dashboard.js 新增左栏顶部偏移与高度实时同步,顶栏显示/隐藏时左栏会自动跟随到正确位置;后台公共资源版本统一升级到 20260322-admin-polish-v45;README / CHANGELOG 同步更新 |
| v1.0.277 | 2026-03-22 22:05:06 | 前后台顶栏入口拆分:lib/admin_sidebar_menu.php 将 /admin/topbar_manage.php 左侧菜单改名为“前台顶栏功能管理”,并新增“后台顶栏管理”二级菜单直达 /admin/global_manage.php#adminTopbarConfig;admin/global_manage.php 把后台顶栏相关开关拆成独立区块;admin/topbar_manage.php / admin/dynamic_island.php 同步更新标题与跳转文案;README / CHANGELOG 同步更新 |
| v1.0.276 | 2026-03-22 22:31:06 | 后台顶栏改为通栏锁定布局:assets/admin-dashboard.js 新增共享后台壳层重排,会自动把顶栏提升到第一行并同步顶栏高度;assets/admin-dashboard.css 将桌面端后台改成“顶栏通栏 + 下方侧栏/内容”两行结构,左侧栏会自动贴在顶栏下方,锁定后的顶部 Mega Toolbar 不再被左栏截断;移动端继续保留抽屉侧栏回退;后台公共资源版本统一升级到 20260322-admin-polish-v44;README / CHANGELOG 同步更新 |
| v1.0.275 | 2026-03-22 22:19:18 | 后台共享批量范围联动:assets/admin-dashboard.js 在共享工具条上继续新增 当前可见 / 整个表单 批量范围切换,批量勾选与批量排序会直接跟随当前分组筛选、视图筛选和关键词过滤命中项生效;复选框表单与纯排序表单都会记住上次范围,摘要也会实时显示本次批量动作将作用多少项;assets/admin-dashboard.css 补齐范围下拉样式;后台公共资源版本统一升级到 20260322-admin-polish-v43;README / CHANGELOG 同步更新 |
| v1.0.274 | 2026-03-22 22:08:36 | 后台共享分组直达与空分组隐藏:assets/admin-dashboard.js 在共享工具条上继续新增分组下拉、分组状态记忆、空分组自动隐藏与标题区块识别,长表单现在可以按 section.panel / fieldset / 标题分组 直接切换;定位改动 若被当前分组挡住也会自动切到目标分组;assets/admin-dashboard.css 补齐分组下拉与空分组隐藏样式;后台公共资源版本统一升级到 20260322-admin-polish-v42;README / CHANGELOG 同步更新 |
| v1.0.273 | 2026-03-22 21:48:52 | 后台共享筛选状态记忆与已填写视图:assets/admin-dashboard.js 在共享工具条上继续新增 只看已填写、重置筛选 和每表单筛选状态记忆,刷新后台后会自动恢复视图模式、关键词和批量排序起始值 / 步长;定位改动 也会在需要时自动清空关键词并切到改动视图;后台公共资源版本统一升级到 20260322-admin-polish-v41;README / CHANGELOG 同步更新 |
| v1.0.272 | 2026-03-22 21:39:25 | 后台通用关键词过滤与未配置项聚焦:assets/admin-dashboard.js 在共享工具条上继续新增关键词过滤与 只看未配置,支持按字段名 / 说明 / 当前值过滤当前表单,并快速揪出空文本、空下拉、空文本域和整组未勾选项;assets/admin-dashboard.css 补齐搜索输入框与过滤态样式;后台公共资源版本统一升级到 20260322-admin-polish-v40;README / CHANGELOG 同步更新 |
| v1.0.271 | 2026-03-22 21:26:21 | 后台通用批量表单筛选与定位增强:assets/admin-dashboard.js 在共享工具条上继续新增 显示全部 / 只看已勾选 / 只看未勾选 / 只看已改动 / 只看排序改动 视图筛选,以及 定位改动;assets/admin-dashboard.css 补齐筛选激活态、隐藏态和定位高亮态;后台公共资源版本统一升级到 20260322-admin-polish-v39;README / CHANGELOG 同步更新 |
| v1.0.270 | 2026-03-22 21:18:36 | 后台通用批量表单工具条扩展:assets/admin-dashboard.js 新增共享后台表单增强,自动为后台配置页注入 全选 / 全不选 / 反选 / 恢复初始、顺排 / +步长 / -步长 / 恢复初始、实时摘要与 跳到保存;同时补齐已有专属批量页和表格行勾选列表的跳过规则,后台公共资源版本统一升级到 20260322-admin-polish-v38;README / CHANGELOG 同步更新 |
| v1.0.269 | 2026-03-22 20:24:55 | 网站全局管理批量排序与布局 JSON 导入导出:admin/global_manage.php 新增当前可见排序项一键顺排、步长增减、恢复默认排序,以及布局配置 JSON 导入导出区;同名排序字段会自动联动,避免共享排序项改漏;同时修复页面内联脚本里的 elseif 语法错误,恢复批量工具交互;README / CHANGELOG 同步更新 |
| v1.0.268 | 2026-03-22 20:15:10 | 网站全局管理批量表单控制增强:admin/global_manage.php 新增全局批量工具条和分组级快捷操作,支持 全选 / 全不选 / 反选 / 恢复默认,并新增 只看已勾选 / 只看未勾选 / 只看已改动 / 显示全部 状态筛选与实时统计摘要;后台布局配置不再需要逐项勾选;README / CHANGELOG 同步更新 |
| v1.0.267 | 2026-03-22 18:13:05 | 网站全局管理保存互不串档:admin/global_manage.php 将“保存全局配置”和“保存菜单布局”拆成独立动作,侧栏菜单区新增单独保存按钮;提交时按动作临时禁用无关字段,避免超大表单超过 max_input_vars 后截断,导致取消一个勾选时其他配置也被误清空;README / CHANGELOG 同步更新 |
| v1.0.266 | 2026-03-22 18:05:38 | 首页关闭结果面板后的整页滚动修复:index.php 在无面板模式下为 body 增加 home-result-meta-hidden 状态类;assets/main.css 关闭右侧“最近生成记录”的内部滚动并恢复整页自然滚动,解决“页面像动不了了”的体感;index.php / quick.php / about.php 同步升级 main.css?v=20260322-site-polish-v99;README / CHANGELOG 同步更新 |
| v1.0.265 | 2026-03-22 17:50:16 | 首页结果面板后台可关闭:admin/global_manage.php 新增 layout.home.show_result_meta_panel 开关;index.php 关闭面板后不再渲染结果详情行,
assets/admin-dashboard.jsadmin/*.phpREADME.mdCHANGELOG.mdadmin-dashboard.css/js 的页面统一升级到 20260324-admin-polish-v48,确保浏览器及时刷新到这轮顶栏布局回退。v1.0.301。assets/admin-dashboard.cssassets/admin-dashboard.jsadmin/*.phpREADME.mdCHANGELOG.mdadmin-dashboard.css/js 的页面统一升级到 20260324-admin-polish-v47,确保浏览器及时刷新到这轮移动端后台恢复修复。v1.0.300。index.phpassets/quick-page.jsassets/main.cssassets/quick-page.cssquick.phpabout.phpREADME.mdCHANGELOG.mdmain.css?v=20260323-site-polish-v108,简洁页额外提升到 quick-page.css?v=20260323-quick-page-v39、quick-page.js?v=20260323-quick-page-v49,确保浏览器及时刷新新样式与统计面板。v1.0.299。lib/comments.phplib/db.phpsql/gh-proxy-app.sqladmin/comments.phplib/templates/comments_panel.phpindex.phpassets/quick-page.jsquick.phpREADME.mdCHANGELOG.mdcomments_show_ip_version_filter,评论区 UI 新增 quick_filter_include_ip_version,默认值、读取、保存、运行时补种和 SQL 初始化脚本全部对齐。IPv4 / IPv6 这个维度都可以单独开关。quick-page.js?v=20260323-quick-page-v48,避免浏览器继续命中旧评论筛选逻辑。v1.0.298。lib/comments.phplib/db.phpsql/gh-proxy-app.sqladmin/comments.phplib/templates/comments_panel.phpindex.phpassets/quick-page.jsquick.phpREADME.mdCHANGELOG.mdcomments_show_device_type_filter,评论区 UI 新增 quick_filter_include_device_type,默认值、读取、保存、运行时补种和 SQL 初始化脚本全部对齐。quick-page.js?v=20260323-quick-page-v47,避免浏览器继续命中旧评论筛选逻辑。v1.0.297。lib/comments.phplib/db.phpsql/gh-proxy-app.sqladmin/comments.phplib/templates/comments_panel.phpindex.phpassets/quick-page.jsassets/main.cssassets/quick-page.cssquick.phpabout.phpREADME.mdCHANGELOG.mdcomments_ui_settings 新增 show_quick_filter_chips / quick_filter_chip_limit / quick_filter_include_city / quick_filter_include_author / quick_filter_include_geo_source / quick_filter_include_browser / quick_filter_include_system,默认值、读取补种、后台保存与 SQL 初始化脚本全部对齐。commentQuickFilterChips 容器,首页与极速页会根据当前评论统计自动生成热门快捷筛选标签,点击即可切换筛选,再次点击可直接取消。main.css?v=20260323-site-polish-v107、quick-page.css?v=20260323-quick-page-v38、quick-page.js?v=20260323-quick-page-v46,强制浏览器刷新到这轮评论筛选增强。v1.0.296。lib/comments.php + lib/db.php + sql/gh-proxy-app.sqlshow_view_toolbar、remember_filter_state、remember_preview_state 三个后台可控项。admin/comments.phplib/templates/comments_panel.php + index.php + assets/quick-page.jsassets/main.css + assets/quick-page.css + index.php + quick.php + about.phpmain.css?v=20260323-site-polish-v106、quick-page.css?v=20260323-quick-page-v37、quick-page.js?v=20260323-quick-page-v45,确保浏览器及时刷新到这轮评论区视图增强。README.md + CHANGELOG.mdv1.0.295。lib/comments.php + lib/db.php + api/comments.php + api/admin-comments.phpcomments_ui_settings JSON 配置,公共评论接口会把 UI 设置下发到前台,后台评论接口也会返回当前配置并支持独立保存。admin/comments.phplib/templates/comments_panel.php + index.php + assets/quick-page.js + assets/comments-renderer.jsassets/main.css + assets/quick-page.css#commentsSection 专属覆盖层,避免旧 quick 评论样式把新的评论布局、预览区、筛选栏与折叠样式压回旧观感。sql/gh-proxy-app.sql + index.php + quick.php + about.phpapp_settings 初始化区段都补齐 comments_ui_settings,与 lib/db.php 当前默认值保持一致。main.css?v=20260323-site-polish-v105、quick-page.css?v=20260323-quick-page-v36、comments-renderer.js?v=20260323-comments-renderer-v5、quick-page.js?v=20260323-quick-page-v44,确保浏览器能及时拿到这轮评论区增强。README.md + CHANGELOG.mdv1.0.294。lib/comments.php + api/comments.phpsummary_detailed,移动端折叠态会优先显示详细浏览器行与系统行,不再只剩 浏览器 · 系统 简写。Windows 10/11 压成 Windows 1011 的问题,前台会继续保留 10/11 斜杠写法,并正确展示 Windows 10/11 x64。ip_version 字段,前台可以区分 IPv4 / IPv6,但不会把真实 IP 暴露到页面。assets/comments-renderer.js + assets/main.css + assets/quick-page.cssIPv4 / IPv6 协议图标,只显示协议类型小圆标,不显示具体地址。index.php + quick.php + about.phpmain.css?v=20260323-site-polish-v104、quick-page.css?v=20260323-quick-page-v35、comments-renderer.js?v=20260323-comments-renderer-v4,确保浏览器刷新到本轮修复。README.md + CHANGELOG.mdv1.0.293。lib/db.php / sql/gh-proxy-app.sql 不需要改动。lib/comments.phpGET https://uapis.cn/api/v1/network/ipinfo 查询支持,IPv4 继续优先走高德,IPv6 会自动优先切到 UAPI,再回退兼容兜底服务。uapi_enabled / uapi_api_key / uapi_source(default/commercial) 读取、保存与摘要输出;UAPI 走 Authorization: Bearer 请求头,不会把 API Key 写死进代码。UAPI API Key 检查项,避免 IPv6 问题仍只提示高德配置。admin/comments.php启用 UAPI IPv6 数据源、UAPI API Key、UAPI source(default/commercial) 配置项。IPv4 尝试顺序 与 IPv6 尝试顺序,后台在线测试也会显示 UAPI 配置状态,便于确认“高德只跑 IPv4、UAPI 处理 IPv6”是否生效。lib/db.php + sql/gh-proxy-app.sqlcomments_ip_geo_uapi_enabled、comments_ip_geo_uapi_api_key、comments_ip_geo_uapi_source 默认配置种子,确保新装库、升级库与运行时补种一致。README.md + CHANGELOG.mdv1.0.292。lib/comments.phpcomment_geo_ip_version() 与按 IP 版本动态调整 provider 的逻辑,评论定位现在会明确区分 IPv4 / IPv6。ipwhois 链路,降低空结果概率。ip_version,便于排查缓存命中、在线测试与真实请求链路。admin/comments.phpIPv4 / IPv6 类型,方便核对当前 provider 顺序是否符合预期。lib/comments.php + lib/mail.php + lib/auth.php<pre>。README.md + CHANGELOG.mdv1.0.291。lib/db.php / sql/gh-proxy-app.sql 不需要改动。assets/comments-renderer.jsassets/main.css + assets/quick-page.cssindex.php + quick.php + about.phpmain.css?v=20260323-site-polish-v103、quick-page.css?v=20260323-quick-page-v34、comments-renderer.js?v=20260323-comments-renderer-v3,确保浏览器刷新到本轮移动端修复。README.md + CHANGELOG.mdv1.0.290。admin/comments.php身份筛选、定位方式筛选 两个前台开关,和 城市 / 浏览器 / 系统 / 统计摘要 / 重置按钮 / 筛选栏位置 / 验证码策略 一起统一受后台控制。lib/comments.phpshow_author_filter、show_geo_source_filter,前后台配置链路保持一致。lib/db.php + sql/gh-proxy-app.sqlcomments_show_author_filter、comments_show_geo_source_filter 默认种子,保证新装库、升级库和运行时补种一致。lib/templates/comments_panel.php列表上方 / 列表下方 现在真正围绕评论列表生效;同时新增 身份 / 定位方式 两个筛选下拉。index.php + assets/quick-page.js城市 / 身份 / 定位方式 / 浏览器 / 系统 五维组合筛选,统计摘要同步补齐五类维度;重置筛选 会一次清空所有前台筛选项。quick.phpquick-page.js?v=20260323-quick-page-v43,避免浏览器继续命中旧筛选逻辑缓存。api/comments.php + api/captcha.php + lib/captcha_runtime.php智能触发 / 始终显示 逻辑继续保持不变,这轮筛选增强不会影响验证码展示和服务端强制校验。README.md + CHANGELOG.mdv1.0.289。admin/comments.php排序栏显隐、筛选栏显隐、筛选统计摘要、城市 / 浏览器 / 系统筛选、筛选栏位置 与 评论验证码策略(智能触发 / 始终显示)。是否显示控件、是否允许用户切换、默认勾选、强制开启、是否允许切换模式。lib/comments.phpapi/comments.php + api/captcha.php + lib/captcha_runtime.phpalways 模式,评论区首屏会直接拿到 challenge,提交时也会按强制模式校验,不再只是前端显示题目。lib/templates/comments_panel.php浏览器 / 系统 两个筛选下拉与 重置筛选 按钮。index.php + assets/quick-page.js城市 / 浏览器 / 系统 三维筛选、筛选栏位置切换、排序栏显隐、验证码策略透传,以及定位 / 设备控件的“用户可切换 / 默认勾选 / 强制开启 / 固定模式”联动。assets/main.css + assets/quick-page.csslib/db.php + sql/gh-proxy-app.sqlcomments_show_*、comments_filter_bar_position、comments_captcha_mode、comments_geo_composer_*、comments_device_composer_* 默认配置键,保证新装库、升级库和运行时补种一致。index.php + quick.php + about.phpmain.css?v=20260323-site-polish-v102,简洁页资源提升到 quick-page.css?v=20260323-quick-page-v33、quick-page.js?v=20260323-quick-page-v42,确保浏览器及时刷新到本轮评论区新交互。README.md + CHANGELOG.mdv1.0.288。index.php + quick.php + about.phpmain.css、comments-renderer.js、quick-page.js、quick-page.css。device_label 文案的问题。index.php + assets/quick-page.jsUser-Agent 自动解析,而不是用户手动填写。README.mdv1.0.287。CHANGELOG.mdv1.0.287。index.php显示设备信息 开关与 完整 / 简化 / 隐藏 模式选择,并接通本地偏好记忆、列表加载、提交透传与渲染参数下发。assets/quick-page.js + assets/comments-renderer.jsadmin/comments.php + api/admin-comments.php设备设置 面板与保存动作,支持前台开关、游客展示策略、完整版本显示、Tooltip、状态标签、移动端折叠,以及图标/颜色/阈值/文案 JSON 自定义。lib/comments.php + api/comments.phpdevice_visibility / device_meta_json、结构化 device payload 与 设备信息虚假 举报类型;后台详情、回复链、历史评论统一显示设备摘要与 UA 解析结果。lib/db.php + sql/gh-proxy-app.sqldevice_visibility、device_meta_json 和整套 comments_device_* 配置键,新装库 / 升级库可直接启用。README.mdv1.0.286。CHANGELOG.mdv1.0.286。lib/comments.php精确定位与 IP 归属地不一致、精确定位坐标不完整、定位数据缺少服务标识、精确定位缺少有效地址层级。定位异常 数量,评论列表结果会附带每条评论的异常摘要。comment_fetch_admin_page() 新增 geo_anomaly 条件过滤,支持后台直接只看异常评论或只看正常评论。admin/comments.php全部异常状态 / 仅定位异常 / 仅正常定位 筛选,可与 定位来源 / 可见范围 / 定位精度 / 地区关键词 / 定位服务关键词 叠加使用。定位异常 指标,评论列表中的异常定位会做行级高亮,并在 IP / 区域列追加异常提示。定位详情 区块新增异常诊断说明,回复链与历史评论也会显示异常摘要,方便处理“定位虚假”举报。api/admin-comments.phpdashboard 查询新增 geo_anomaly 参数透传。sql/gh-proxy-app.sql 不需要改动。README.mdv1.0.285。CHANGELOG.mdv1.0.285。admin/comments.php定位来源 / 可见范围 / 定位精度 / 地区关键词 / 定位服务关键词 五组定位筛选项,支持直接筛出高精度定位、IP 定位、隐藏位置、仅城市展示和特定地区评论。定位详情 区块,集中展示地址层级、完整地址、经纬度、定位方式、提交模式、客户端精度、IP 对比、附近地标,以及标准地图 / 卫星图外链。api/admin-comments.phpdashboard 查询新增 geo_source、geo_visibility、geo_accuracy、geo_city_keyword、geo_provider_keyword 五个后台定位筛选参数透传。lib/comments.phpcomment_fetch_admin_page() 同步接入上述定位筛选条件,支持按定位来源、展示范围、定位精度、地区关键词和定位服务关键词联动过滤评论列表。sql/gh-proxy-app.sql 不需要改动。README.mdv1.0.284。CHANGELOG.mdv1.0.284。lib/comments.phpapp_settings 敏感键识别规则,password / secret / api_key / amap_key / amap_secret 等键不再进入文件级预取缓存。comments_ip_geo_amap_key、comments_ip_geo_amap_secret 继续通过 app_settings 持久化,真实值不会写死到代码里。cache/app-settings-prefetch-cache.php 留下高德定位密钥副本。README.mdv1.0.283。CHANGELOG.mdv1.0.283。admin/comments.php评论定位 / 高德地图设置 面板,并在顶部工具条新增 定位设置 直达入口。自动回退(高德优先)/ 仅高德 / 旧版回退链路)、高德 Key、高德 安全密钥、sig 签名、请求超时、缓存 TTL 配置项。测试定位、清空当前 IP 缓存、清空全部定位缓存,测试结果会回显命中来源、尝试顺序、缓存状态和原始返回摘要。lib/comments.phpv3/ip provider,支持 Key + 安全密钥(sig) 模式。自动回退(高德 -> ip-api -> ipwhois)、仅高德、旧版回退链路。api/admin-comments.phpdashboard 设置下发新增 geo_settings。set_geo_settings、test_geo_lookup、clear_geo_cache 三个动作,供评论后台页直接保存、测试和清缓存。lib/db.phpdb_seed_app_settings_if_missing() 新增评论定位默认配置键:comments_ip_geo_lookup、comments_ip_geo_provider、comments_ip_geo_timeout_ms、comments_ip_geo_cache_ttl_hours、comments_ip_geo_amap_enabled、comments_ip_geo_amap_key、comments_ip_geo_amap_secret、comments_ip_geo_amap_use_sig。sql/gh-proxy-app.sqlREADME.mdv1.0.282。CHANGELOG.mdv1.0.282。index.phpdownloadPriorityMode 判断:只要元信息面板被关闭,或后台已经关闭网页在线下载,动作区都会切到下载优先布局。极速直链 现在也会直接套用主按钮高亮,不再维持普通浅色按钮。极速直链 / 直链下载+缓存 / 下载命令 / 复制 / 分享 / 加入队列 / 立即缓存,刷新元信息 / 哈希校验 暂时收起,避免按钮区继续分散注意力。assets/main.cssis-download-priority 结果动作区样式,复用无面板模式那套主 CTA / 次 CTA / 亮色直链按钮布局。index.php + quick.php + about.phpmain.css?v=20260323-site-polish-v100,确保浏览器及时拿到这次高亮样式调整。README.mdv1.0.281。CHANGELOG.mdv1.0.281。admin/global_manage.php关闭首页网页在线下载。首页在线下载失败后自动切极速直链。index.phplayout.home.disable_web_online_download / layout.home.auto_fallback_to_direct_on_online_fail 配置读取。缓存后下载 会自动升级成 打开下载+缓存,直接走浏览器原生下载并在后台补缓存。node_direct_url,页面会自动弹出极速直链,不再停留在失败状态。lib/db.phpdb_seed_app_settings_if_missing() 新增 layout.home.disable_web_online_download 默认值 0。db_seed_app_settings_if_missing() 新增 layout.home.auto_fallback_to_direct_on_online_fail 默认值 0。sql/gh-proxy-app.sqlREADME.mdv1.0.280。CHANGELOG.mdv1.0.280。api/admin-toolbar.phpdefault_fixed / allow_custom / show_fixed_toggle。assets/admin-dashboard.jsL 锁定按钮。assets/admin-dashboard.cssadmin/*.php20260322-admin-polish-v46,确保浏览器及时刷新这次后台锁定修复。README.mdv1.0.279。CHANGELOG.mdv1.0.279。sql/gh-proxy-app.sql 不需要改动。assets/admin-dashboard.csssplit-header 布局下的左侧栏改为固定视口定位,不再跟着右侧长内容一起上滑。assets/admin-dashboard.jssyncShellMetrics() 现在会同时同步顶栏高度和左栏当前顶部偏移。admin/*.php20260322-admin-polish-v45,确保浏览器及时刷新这次左栏固定修复。README.mdv1.0.278。CHANGELOG.mdv1.0.278。sql/gh-proxy-app.sql 不需要改动。lib/admin_sidebar_menu.php顶栏功能管理 更名为 前台顶栏功能管理。后台顶栏管理 菜单项,直接跳到 /admin/global_manage.php#adminTopbarConfig。admin/topbar_manage.phpadmin/global_manage.php后台顶栏管理,把后台顶栏滚动隐藏与移动端按钮文案开关单独收口。admin/dynamic_island.phpREADME.mdv1.0.277。CHANGELOG.mdv1.0.277。sql/gh-proxy-app.sql 不需要改动。assets/admin-dashboard.jsassets/admin-dashboard.cssadmin/*.php20260322-admin-polish-v44,确保通栏顶栏和左栏下移布局及时刷新到浏览器缓存。README.mdv1.0.276。CHANGELOG.mdv1.0.276。node --check assets/admin-dashboard.js:通过。assets/admin-dashboard.js当前可见 / 整个表单 批量范围切换,批量勾选与批量排序不再只能整表单生效。全选 / 反选 / 顺排 / 恢复初始 都可以只作用当前命中的那批项。assets/admin-dashboard.cssadmin/*.php20260322-admin-polish-v43,确保“当前可见批量”逻辑及时刷新到浏览器缓存。README.mdv1.0.275。CHANGELOG.mdv1.0.275。node --check assets/admin-dashboard.js:通过。assets/admin-dashboard.jssection.panel / fieldset / 常见标题区块 的通用识别;像 admin/backup_center.php 这类依赖 h4 标题拆段的大表单,也会自动按标题分组。定位改动 如果被当前分组挡住,会自动切到目标分组再定位;每个后台页面、每个表单会继续记住上次选中的分组。assets/admin-dashboard.cssadmin/*.php20260322-admin-polish-v42,确保分组直达和空分组隐藏及时刷新到浏览器缓存。README.mdv1.0.274。CHANGELOG.mdv1.0.274。node --check assets/admin-dashboard.js:通过。assets/admin-dashboard.js只看已填写,现在可以和 只看未配置 配合使用,快速在后台长表单里切换“已经补过的”和“还没补的”配置项。重置筛选,会一次性清空当前视图模式和关键词过滤,不用再分别点按钮回退。定位改动 在命中关键词过滤时也会自动清空关键词并切到改动视图,避免目标项被当前过滤条件挡住。admin/*.php20260322-admin-polish-v41,确保共享筛选状态记忆和已填写视图及时刷新到浏览器缓存。README.mdv1.0.273。CHANGELOG.mdv1.0.273。node --check assets/admin-dashboard.js:通过。assets/admin-dashboard.js只看未配置,会优先聚焦空文本、空下拉、空文本域以及整组未勾选的布尔项,便于后台快速补漏。只看已勾选 / 只看已改动 / 只看排序改动 叠加生效,筛选摘要会同步显示当前关键词与可见项数量。assets/admin-dashboard.cssadmin/*.php20260322-admin-polish-v40,确保共享关键词过滤和未配置聚焦能力及时刷新到浏览器缓存。README.mdv1.0.272。CHANGELOG.mdv1.0.272。node --check assets/admin-dashboard.js:通过。assets/admin-dashboard.js显示全部 / 只看已勾选 / 只看未勾选 / 只看已改动 / 只看排序改动。定位改动,会直接跳到当前表单里第一个已改动项;如果当前正处在别的筛选视图里,会先自动切到“只看已改动”再定位。assets/admin-dashboard.cssadmin/global_manage.php、admin/user_groups.php 等已有专属批量页逻辑,不重复叠加共享工具条。admin/*.php20260322-admin-polish-v39,确保共享筛选与定位能力及时刷新到浏览器缓存。README.mdv1.0.271。CHANGELOG.mdv1.0.271。node --check assets/admin-dashboard.js:通过。assets/admin-dashboard.jsPOST 表单,对 2 个以上候选复选框或 3 个以上排序输入框自动注入共享工具条。全选 / 全不选 / 反选 / 恢复初始,排序批量统一支持 起始值 / 步长 / 顺排 / +步长 / -步长 / 恢复初始,并实时显示勾选数、已改动数和排序改动数。跳到保存,长表单可以直接定位主要提交按钮,减少后台配置时来回滚动。admin/global_manage.php、admin/user_groups.php 等已有定制批量页不会重复注入。queue_ids[]、selected_paths[]、monitor_export_ids[] 这类专用批量表格不再误叠两套工具条。assets/admin-dashboard.css跳到保存 高亮态,亮色 / 暗色和移动端布局保持一致。admin/backup_center.phpadmin/topbar_manage.phpadmin/quick_manage.phpadmin/seo.phpadmin/status_pages.phpadmin/captcha_center.phpadmin/site.phpadmin/nodes.phpadmin/mail.phpadmin/*.php20260322-admin-polish-v38,确保浏览器及时刷新到这次共享工具条扩展与排除规则修正。README.mdv1.0.270。CHANGELOG.mdv1.0.270。node --check assets/admin-dashboard.js:通过。php -l admin/backup_center.php:通过。php -l admin/topbar_manage.php:通过。php -l admin/quick_manage.php:通过。php -l admin/seo.php:通过。php -l admin/status_pages.php:通过。php -l admin/captcha_center.php:通过。php -l admin/site.php:通过。php -l admin/nodes.php:通过。php -l admin/global_manage.php:通过。admin/global_manage.php顺排当前可见 / 当前可见 +步长 / 当前可见 -步长 / 恢复默认排序。本组顺排 / 本组 +步长 / 本组 -步长 / 本组默认排序,首页、简洁页、关于页和顶部导航不再需要逐项改顺序。layout_home_order_grid 双输入位现在会自动同步,避免共享排序值出现“上面改了、下面没跟”的漂移。elseif 语法错误,避免整页批量工具和配置联动直接失效。README.mdv1.0.269。CHANGELOG.mdv1.0.269。php -l admin/global_manage.php:通过。admin/global_manage.php全选当前可见 / 全不选当前可见 / 反选当前可见 / 恢复默认。显示全部 / 只看已勾选 / 只看未勾选 / 只看已改动,配合搜索框可以快速缩小配置范围。本组全选 / 本组全不选 / 本组反选 / 本组默认,避免逐条点击。README.mdv1.0.268。CHANGELOG.mdv1.0.268。php -l admin/global_manage.php:通过。admin/global_manage.phpsave_sidebar_menu 分支,将侧栏菜单顺序 / 显隐 / 分组与页面布局配置拆成独立保存动作。保存菜单布局 按钮,后续改菜单不需要再依赖底部“保存全局配置”。admin/global_manage.phpsave_global_layout 时会临时禁用侧栏菜单区的大量字段;提交 save_sidebar_menu 时则临时禁用布局区字段。max_input_vars,导致 POST 被截断、后端把未收到的复选框误当成取消,从而出现“只改一个勾选,其他配置也被自动清空”的问题。README.mdv1.0.267。CHANGELOG.mdv1.0.267。php -l admin/global_manage.php:通过。index.phplayout.home.show_result_meta_panel 被关闭时,首页 body 会自动挂上 home-result-meta-hidden 类,供无面板模式切换独立滚动策略。assets/main.csshistory-table-wrap 不再强制 max-height + overflow-y:auto 的卡片内滚动,而是恢复整页自然滚动,避免滚轮一直停留在右侧列表里,造成“页面像不动了”的体感。index.php + quick.php + about.phpmain.css?v=20260322-site-polish-v99,确保浏览器立即拿到这次滚动修复。README.mdv1.0.266。CHANGELOG.mdv1.0.266。php -l index.php:通过。php -l quick.php:通过。php -l about.php:通过。admin/global_manage.php首页结果区显示元信息面板,对应配置键 layout.home.show_result_meta_panel,管理员现在可以直接关闭首页结果下方的元信息详情面板。index.phplayout.home.show_result_meta_panel 布尔配置;关闭后首页结果区不再追加详情行,也不再主动预取结果元信息,避免页面继续加载原本看不到的面板内容。极速直链 放到最前,并在存在 node_direct_url 时自动切换为亮色主按钮;刷新元信息 / 哈希校验 这类依赖面板的动作则自动收起。assets/main.cssindex.php + quick.php + about.phpmain.css?v=20260322-site-polish-v98,减少浏览器缓存导致的样式不生效。lib/db.phpdb_seed_app_settings_if_missing() 补入 layout.home.show_result_meta_panel 默认键,保证老站升级后也能自动拿到新开关。sql/gh-proxy-app.sqllayout.home.show_result_meta_panel,保持新装库与运行时补种逻辑一致。README.mdv1.0.265。CHANGELOG.mdv1.0.265。php -l index.php:通过。php -l admin/global_manage.php:通过。php -l lib/db.php:通过。php -l quick.php:通过。php -l about.php:通过。index.php403 / 451 拦截识别;当站内代理下载命中上游拒绝、且当前结果存在可用 node_direct_url 时,不再直接停在“下载失败”。已切直链,同时在任务面板明确提示“代理下载被上游拒绝,已自动切到节点直链下载”。打开直链 / 重试代理 两个动作,管理员和用户可以直接继续直链下载,也可以保留重试站内代理的能力。dl_fail 控制失败事件,避免后台最近日志里把同一次拦截看成“真实 403 + 本地 500”双重失败。assets/main.cssstate-external 状态颜色和提示样式,和普通失败态分开显示,避免“其实已经给你切直链了”却还保持大红报错观感。README.mdv1.0.264。CHANGELOG.mdv1.0.264。php -l index.php:通过。lib/download_log_view.phpdl_pause / dl_stop / dl_retry / dl_delete / dl_cache 这类过程控制动作,避免它们继续混入“成功下载”统计。admin/downloads.php结果成功 / 结果失败 / 超时 / 被拦截 不再把 202 控制事件算进去,并新增 控制事件 独立筛选项。有效结果数 / 控制事件数 / 结果失败数,原“成功率 / 缓存命中率”同步切换为结果口径,dl_stop / dl_retry / dl_pause 不再把成功率抬高。有效结果数 / 控制事件数 / 结果失败率 指标,热力图和部分表头文案改为“记录量 / 记录数”,避免把所有日志都误称为请求。结果成功 / 超时 / 被拦截 / 其他失败 / 控制事件,图表数字可以直接对上。0.0%。README.mdv1.0.263。CHANGELOG.mdv1.0.263。php -l lib/download_log_view.php:通过。php -l admin/downloads.php:通过。php -l lib/bootstrap.php:通过。lib/download_log_view.phpdl_start / dl_resume / dl_pause / dl_stop / dl_restart / dl_retry / dl_done / dl_fail / dl_delete / dl_cache 现在都会输出更贴近业务语义的状态,不再直接把 202 / 200 / 500 当成用户可读主文案。lib/bootstrap.phpdownload_log_view.php 加载,保证后台相关页面可直接复用同一套下载日志展示规则。admin/index.phpdl_stop / dl_retry / dl_done 代码。已停止 + 控制事件 202、已完成 + 完成事件 200、失败 + 失败事件 500,避免把控制事件误认成真实下载成功响应。admin/downloads.phpREADME.mdv1.0.262。CHANGELOG.mdv1.0.262。php -l lib/download_log_view.php:通过。php -l lib/bootstrap.php:通过。php -l admin/index.php:通过。php -l admin/downloads.php:通过。assets/admin-dashboard.cssassets/admin-dashboard.csstopbar-mobile-dock 的搜索 / 设置 / 说明 / 账号按钮区。dashboard-body 的移动端底部留白同步增加,页面底部按钮和表单区不会再被右下角悬浮控件压住。admin/*.phpadmin-dashboard.css 资源版本统一升级到 20260322-admin-polish-v36,确保手机浏览器能及时刷新到新样式。README.mdv1.0.261。CHANGELOG.mdv1.0.261。php -l admin/topbar_manage.php:通过。php -l admin/index.php:通过。rg -n "20260322-admin-polish-v36" admin/*.php:已确认后台公共样式版本已统一更新。index.phpapi/offline-prefetch.php 补缓存;如果当前结果没有可用直链,则继续保留原来的“先缓存、再走站内下载状态机”的流程。index.phpopenAcceleratedFile() 现在会按 node_direct_url -> download_url -> proxy_url -> 原始链接 的顺序回退,评论附件等入口也会优先直连。assets/quick-page.jsopenAcceleratedFile() 同步改为优先 node_direct_url,评论附件和其它快捷打开场景不再默认走代理下载地址。download_url 时被前端误判成失败。quick.php20260322-quick-page-v40,确保浏览器及时命中新逻辑。README.mdv1.0.260。CHANGELOG.mdv1.0.260。php -l index.php:通过。node --check assets/quick-page.js:通过。php -l quick.php:通过。lib/admin_quota_widget.php缓存占用 / 磁盘占用 / 自定义指标 三种模式。{used_value}、{quota_value}、{remaining_value}、{source_label}、{source_type}、{unit}、{context_admin_role}、{context_user_group}、{context_theme_mode}、{context_resolved_theme},可以直接拼出更细的上下文文案。admin/topbar_manage.php管理员角色 / 用户组 / 主题模式 覆写数据源、标题、阈值、顶部条样式与侧栏卡样式,规则按 priority 从小到大叠加,后命中的规则覆盖前面的配置。api/admin-toolbar.phpassets/admin-dashboard.jstheme_mode 与 resolved_theme,切换浅色 / 深色 / 自动时立即强制刷新 payload,让按主题命中的样式实时生效。lib/bootstrap.phpapi/admin-toolbar.php 统一预加载 lib/admin_quota_widget.php,确保后台首屏和接口层共用同一套摘要逻辑。lib/proxy_service.phpsidebar_quota_summary() 在后台上下文中优先走新的配额组件摘要,后台侧栏卡片和首页概览不再固定锁死缓存配额。admin/index.phpsql/gh-proxy-app.sqllib/db.php 当前 db_seed_app_settings_if_missing() 使用的默认键再做一次安装期对齐,确保新装库最终状态和运行时自动补种逻辑一致。README.mdv1.0.259。CHANGELOG.mdv1.0.259。php -l lib/admin_quota_widget.php:通过。php -l admin/topbar_manage.php:通过。php -l api/admin-toolbar.php:通过。php -l lib/bootstrap.php:通过。php -l lib/proxy_service.php:通过。node --check assets/admin-dashboard.js:通过。php -r ...admin_quota_widget_payload(...):已验证数据源切换与主题 / 角色规则命中正常。lib/admin_quota_widget.php{used_text}、{quota_text}、{remaining_text}、{percent}、{percent_text}、{used_bytes}、{quota_bytes}、{remaining_bytes}。admin/topbar_manage.phpapi/admin-toolbar.phpquota_widget 负载,并按当前后台路径返回已经解析好的顶部/侧栏配额组件配置。assets/admin-dashboard.jsassets/admin-dashboard.csslib/proxy_service.phpsidebar_quota_summary() 现补齐 remaining_bytes、remaining_text、percent_text,供模板文案和页面展示复用。lib/db.phplayout.admin.quota_widget_config_json,老库升级后也会自动补齐。sql/gh-proxy-app.sqllayout.admin.quota_widget_config_json,新装环境开箱即用。README.mdv1.0.258。CHANGELOG.mdv1.0.258。php -l lib/admin_quota_widget.php:通过。php -l admin/topbar_manage.php:通过。php -l api/admin-toolbar.php:通过。php -l lib/proxy_service.php:通过。php -l lib/db.php:通过。node --check assets/admin-dashboard.js:通过。php -r ...admin_quota_widget_payload(...):已验证模板变量替换与页面可见性规则正常。lib/proxy_service.phpproxy_detect_unexpected_download_payload() 及相关辅助函数,对小体积响应读取首段内容并结合 Content-Type、Content-Disposition、常见二进制文件头一起判断真实载荷类型。release / archive 这类预期为二进制的大包,若返回内容实际是 HTML、JSON 或明显错误文本,会直接判为异常载荷,避免把错误页当成成功下载。proxy.php200 后新增内容嗅探校验;命中异常页时会丢弃临时文件并继续尝试后续候选节点,而不是把页面内容直接回传给用户。api/offline-prefetch.phpindex.phpContent-Type 做“下载地址返回了页面内容”的判定。text/plain 的正常二进制时,会优先依据真实字节特征放行;只有样本内容确实像 HTML / JSON / 错误文本时才提示失败,降低误判率。README.mdv1.0.257。CHANGELOG.mdv1.0.257。php -l lib/proxy_service.php:通过。php -l proxy.php:通过。php -l api/offline-prefetch.php:通过。php -l index.php:通过。php -r ...proxy_detect_unexpected_download_payload(...):已验证 HTML 错误页会被拦截,MZ 头二进制样本不会误判。assets/quick-page.jscommentsState.loading 仍停留为 true,导致渲染逻辑持续命中“正在加载评论...”占位的问题。quick.phpquick-page-v39,确保浏览器立即获取这次热修后的 JS。README.mdv1.0.256。CHANGELOG.mdv1.0.256。node --check assets/quick-page.js:通过。php -l quick.php:通过。assets/comments-runtime.jsassets/quick-page.jswindow.GitProxyCommentRuntime。index.phpextractMarkdownImageUrls() 遗留函数。quick.php / index.phpcomments-runtime-v2,简洁页评论脚本缓存版本升级为 quick-page-v38。lib/pagination.phpfrontend.comments 描述更新为“首页与简洁下载页共用评论区列表”。frontend.quick_comments 改为隐藏兼容占位并标记别名到 frontend.comments,不再作为前台实际分页模块使用。admin/pagination.phpREADME.mdv1.0.255。CHANGELOG.mdv1.0.255。node --check assets/comments-runtime.js:通过。node --check assets/quick-page.js:通过。php -l index.php:通过。php -l quick.php:通过。php -l lib/pagination.php:通过。php -l admin/pagination.php:通过。assets/comments-runtime.jsassets/quick-page.jswindow.GitProxyCommentRuntime,共享标题 / 举报原因 / 登录态 / 自动加载规则。data-load-mode 对应的 dataset.loadMode,不再保留 quick 专用模式标记。index.phpquick.php / index.phpcomments-runtime.js 引入,简洁页评论脚本缓存版本同步升级到 quick-page-v37。README.mdv1.0.254。CHANGELOG.mdv1.0.254。node --check assets/comments-runtime.js:通过。node --check assets/quick-page.js:通过。php -l quick.php:通过。php -l index.php:通过。assets/quick-page.jsquickCommentsSection、quickCommentInput、quickCommentList、quickCommentUploadBtn 等旧 quick 专用评论节点 ID 的兼容探测。commentsSection、commentInput、commentList、loadMoreCommentsBtn、replyHint 等主页同款节点。data-sort 与 data-emoji,不再保留 data-quick-comment-* 过渡分支。assets/quick-page.css#quickCommentUploadBtn 选择器同步替换为共享模板实际输出的 #commentUploadBtn。README.mdv1.0.253。CHANGELOG.mdv1.0.253。rg -n "quickCommentsSection|quickCommentsTitleText|quickCommentNickname|quickCommentAnonymous|quickCommentInput|quickCommentCaptchaBox|quickCommentCaptchaQuestion|quickCommentCaptchaAnswer|quickCommentCaptchaHelp|quickCommentCaptchaRefreshBtn|quickCommentImageInput|quickCommentUploadBtn|quickCommentUploadState|quickCommentUploadPreview|quickCommentSubmitBtn|quickCommentReplyHint|quickCommentList|quickCommentLoadMoreBtn|data-quick-comment-sort|data-quick-comment-emoji|dataset\\.quickCommentSort|dataset\\.quickCommentEmoji" assets/quick-page.js assets/quick-page.css quick.php lib/templates/comments_panel.php lib/templates/comments_modals.php:无结果,确认旧评论 DOM 兼容层已清空。assets/quick-page.cssquick-comment-* 遗留选择器,统一替换为 .comments-panel .comment-* 共享类名。.quick-comment-like-btn,避免简洁页继续维护一套不存在的旧类。assets/quick-page.jsassets/comments-renderer.js 输出的共享 DOM 结构工作,不再依赖旧的 quick 专用评论样式命名。README.mdv1.0.252。CHANGELOG.mdv1.0.252。rg -n "quick-comment-like-btn|quick-comment-item|quick-comment-content|quick-comment-replies|quick-comment-empty|quick-reply-collapsed-hidden|quick-comment-replies-group|quick-comment-replies-toggle" assets/quick-page.css:无结果,确认遗留样式已清空。lib/comments_view.phpcomment_render_public_modals(),把评论编辑弹窗、举报弹窗、确认框统一纳入评论区共享视图层。lib/templates/comments_modals.phpcommentEditModal、commentReportModal、uiDialogModal 模板,评论弹窗不再各页各写一份。index.php / quick.phpassets/quick-page.js编辑 / 举报 / 管理员改状态 / 删除,管理员在简洁下载页也能直接处理评论。/api/build-link.php 生成加速下载链接,不再只打开原始地址。viewer / allow_report / report_requires_login / report_reasons 等控制项,简洁页动作按钮可见性与主页保持一致。README.mdv1.0.251。CHANGELOG.mdv1.0.251。php -l index.php:通过。php -l quick.php:通过。php -l lib/comments_view.php:通过。php -l lib/templates/comments_panel.php:通过。php -l lib/templates/comments_modals.php:通过。node --check assets/comments-renderer.js:通过。node --check assets/quick-page.js:通过。lib/comments_view.phpdata-* 属性输出。lib/templates/comments_panel.phplib/bootstrap.phpindex.php 与 quick.php 统一按需加载评论区视图 helper。index.phpassets/comments-renderer.js 公共渲染器,评论卡片 / 回复折叠逻辑不再在首页脚本里单独维护。quick.phpfrontend.comments,保证两页默认加载批次一致。assets/comments-renderer.jsassets/quick-page.jsquickComment* 专用节点。parent_id。README.mdv1.0.250。CHANGELOG.mdv1.0.250。php -l index.php:通过。php -l quick.php:通过。php -l lib/comments_view.php:通过。node --check assets/comments-renderer.js:通过。node --check assets/quick-page.js:通过。lib/db.phpuser_settings 新装建表缺少 topbar_fixed 的问题,避免新环境首次写入顶部栏固定偏好时直接失败;旧环境会通过迁移自动补列。db_index_exists()、db_try_add_index()、db_seed_app_settings_if_missing(),把索引补齐与配置基线补齐统一收口,减少后续新增独立配置块时散落写迁移代码的成本。db-init-cache-v2,确保本轮迁移和默认键补齐能稳定触发重新校验。lib/db.phpemail_queue 新增 updated_at 与 (status, updated_at) 索引,收口后台“最近邮件 / 失败列表 / 队列状态”按时间倒序查询的性能。user_email_verifications、user_password_resets、admin_password_resets 新增 (user_id|admin_id, used_at) 组合索引,优化验证码 / 密码重置链路中“作废旧 token、清理未使用记录”的高频更新。sql/gh-proxy-app.sqlsql/gh-proxy-app.sqlmail.block_*_json、mail.template_versions_json、mail.template_beauty_json、mail.runtime_counters_jsoncaptcha.center.config_json / versions_json / snapshots_jsonlayout.topbar.*quick.runtime.*site.doc_sync_*、site.readme_*backup_center.notification_emails / notify_tolib/db.phpREADME.mdv1.0.249。CHANGELOG.mdv1.0.249。php -l lib/db.php:通过。rg -n "mail\\.block_|captcha\\.center\\.|layout\\.topbar\\.|quick\\.runtime\\.|site\\.doc_sync_|site\\.readme_|backup_center\\.(notification_emails|notify_to)" sql/gh-proxy-app.sql:通过。lib/db.php 与 sql/gh-proxy-app.sql 的建表列集合对比通过,当前无列级偏差。admin/captcha_center.phpapi_version、api_doc_mode、domestic_stack_mode、external_log_sink、trend_granularity、report_delivery、data_share_mode、compliance_mode、privacy_mask_level、channel_failover_mode、auto_claim_mode、inspection_schedule、diff_status 等显示映射,后台文本输入不再直接露出 v1 / auto / compat / elk+clickhouse / hour / mail+workbench / signed-link / enhanced / manual-claim / 0 * * * * / changed 这类原始 code。added / removed / changed。admin/mail.php135 度、600 像素、系统默认,保存时自动回写成样式层所需的原始值。基础邮件通道配置、邮件通道校验、接口容灾、第三方接口地址 / 密钥、富文本正文、代码高亮主题、语言标签、节点分组收件示例、场景邮箱示例 等剩余英文和半英文提示同步中文化。admin/announcements.phpREADME.md安全中心 / 验证码体系、邮件设置中心 升级到 v1.0.248,并新增“后台中文化收口”说明。CHANGELOG.mdv1.0.248。php -l admin/captcha_center.php:通过。php -l admin/mail.php:通过。php -l admin/announcements.php:通过。CHANGELOG.mdv1.0.246、v1.0.245、v1.0.244、v1.0.243、v1.0.242、v1.0.241、v1.0.240、v1.0.239 的正文详细版本小节。v1.0.247,避免后续出现“上面有、下面没有”的断层。README.md安全中心 / 验证码体系、邮件设置中心 两个主说明区同步升级到 v1.0.247。CHANGELOG.md 采用“速查索引 + 正文版本小节”双轨同步维护。rg -n "^## v1\\.0\\.(247|246|245|244|243|242|241|240|239)" CHANGELOG.md:通过。rg -n "v1\\.0\\.247" README.md CHANGELOG.md:通过。admin/captcha_center.phpimage / math / fixed / conditional / gray / vip / whitelist_ip / trusted_device 等内部 code。admin/mail.phprunning / stopped / pending / sent / failed / cancelled / daily / weekly / monthly 等运行状态与周期项不再直接出现在后台界面。README.mdv1.0.246,补充后台显示中文化收口说明。CHANGELOG.mdphp -l admin/captcha_center.php:通过。php -l admin/mail.php:通过。lib/mail.phpmail_template_send_test() 改为后台专用测试发送模式,测试模板和页头“发送测试邮件”不再受 recipient_daily_limit、sender_ip_daily_limit、system_daily_limit 等正式发送限额影响。admin/mail.phprecipient-daily-limit、smtp-auth-failed、smtp-rcpt-failed 等内部错误码会直接显示为可读中文。README.mdv1.0.245,补充模板测试发送修复与中文错误提示说明。CHANGELOG.mdphp -l lib/mail.php:通过。php -l admin/mail.php:通过。admin/mail.php基础配置 / 开关策略 / 测试与校验 / 邮件美化 / 模板管理 / 队列运维 / 统计分析 / 联动配置 / 高级能力 / 审计同步 挂载所有独立卡片锚点。分层通知建议、配置导入还原、常见问题、模板目录、版本与预览、队列配置、队列进程控制、发送趋势、失败分析、高频收件人、场景占比、报表订阅、配置备份 等卡片补齐真实 ID。admin/captcha_center.php配置总控、在线演练 等独立区块直达入口。README.mdv1.0.244,补充卡片级直达与锚点收口说明。CHANGELOG.mdphp -l admin/mail.php:通过。php -l admin/captcha_center.php:通过。admin/captcha_center.php验证码安全中心 保留为二级项。总控 / 场景 / 方式 / 限流 / 名单 / 告警审批 / 风控体验 / 审计集成 / 分析增值 等入口下沉为三级子项,并统一右移显示,层级关系更明确。README.mdv1.0.243,补充“二级父项 + 三级快捷入口”层级说明。CHANGELOG.mdphp -l admin/captcha_center.php:通过。admin/mail.php邮件设置 作为二级父项保留。基础配置 / 开关策略 / 测试与校验 / 邮件美化 / 模板管理 / 队列运维 / 统计分析 / 联动配置 / 高级能力 / 审计同步 统一作为三级入口右移展示。README.mdv1.0.242,补充左侧三级入口与快捷导航说明。CHANGELOG.mdphp -l admin/mail.php:通过。lib/captcha_center.phpadmin_scene_enabled 默认值。admin/captcha_center.phplib/captcha_runtime.phpREADME.mdv1.0.241,补充后台场景邮箱验证码独立开关说明。CHANGELOG.mdphp -l lib/captcha_center.php:通过。php -l lib/captcha_runtime.php:通过。php -l admin/captcha_center.php:通过。lib/captcha_runtime.phpadmin_login / admin_forgot_password / admin_reset_password / admin_action / export_* 不再因 double / triple 自动把邮箱验证码提前到前面。lib/captcha_runtime.phppreview_only 预览标记。admin/captcha_center.phplogin 场景。api/captcha.php/api/captcha.php?preview=1 走本地预览,不再真实发送后台登录验证码邮件。README.mdv1.0.240,补充后台演练预览化与后台场景候选顺序收口说明。CHANGELOG.mdphp -l lib/captcha_runtime.php:通过。php -l admin/captcha_center.php:通过。php -l api/captcha.php:通过。lib/captcha_runtime.phpIP / 账号 / 设备 / 地域名单、风险阈值、终端画像、邮箱发送限额 真正参与运行时判定,不再只是后台静态配置。user/register.php、user/login.php、user/forgot-password.php、user/reset-password.phpadmin/login.php、admin/forgot-password.php、admin/reset-password.phpuser/tickets.php、api/comments.php、lib/admin_captcha_gate.phpREADME.mdv1.0.239,补充运行时名单、计数、成功动作与统一免验证窗口说明。CHANGELOG.mdphp -l lib/captcha_runtime.php:通过。php -l lib/captcha_center.php:通过。php -l api/captcha.php:通过。lib/db.phpuser_password_reset_lookup()、admin_password_reset_lookup(),可在不消费 token 的前提下查询有效重置记录。lib/captcha_runtime.phpcaptcha_runtime_normalize_context() 新增 reset_token 上下文。captcha_runtime_email_recipient() 已支持 reset_password、admin_reset_password 通过 reset_token 反查收件邮箱,重置页启用邮件验证码后可真实发信。assets/captcha-widget.jsdata-captcha-auto-context-refresh 自动联动能力,账号 / 用户名 / 邮箱字段变化后会自动刷新 challenge。context_refresh=1 场景刷新参数,允许“上下文变更导致的刷新”绕过邮件验证码重发冷却,避免切换账号后还卡在旧邮箱验证码。api/captcha.phpreset_token 和 context_refresh 参数。user/login.php、user/forgot-password.php、user/register.php、admin/login.php、admin/forgot-password.phpuser/reset-password.php、admin/reset-password.phptoken:reset_token,支持根据重置 token 自动解析邮箱验证码接收地址。lib/captcha_runtime.phpREADME.mdv1.0.238,补充自动刷新、自动填充感知与重置 token 反查邮箱说明。CHANGELOG.mdphp -l lib/db.php:通过。php -l lib/captcha_runtime.php:通过。php -l api/captcha.php:通过。php -l user/login.php:通过。php -l user/forgot-password.php:通过。php -l user/register.php:通过。php -l user/reset-password.php:通过。php -l admin/login.php:通过。php -l admin/forgot-password.php:通过。php -l admin/reset-password.php:通过。node --check assets/captcha-widget.js:通过。lib/captcha_runtime.phpcaptcha_runtime_email_settings() 新增读取 resend_cooldown,运行时会把邮件验证码重发冷却真正带入 challenge。captcha_runtime_challenge_input_meta()、captcha_runtime_email_refresh_remaining(),统一输出 placeholder、inputmode、maxlength 与邮箱验证码剩余冷却时间。captcha_runtime_public_challenge() 现会返回 refresh_available_at、resend_in、recipient_mask 等前端体验字段。captcha_runtime_force_refresh() 在邮箱验证码冷却期内不再重复发信,而是直接返回当前 challenge。assets/captcha-widget.js重新发送(Xs) 倒计时文案、按钮禁用态、aria-disabled 与帮助文案动态切换。字段名:参数名 / 字段名=参数名 形式的上下文字段映射,便于把表单字段按需透传到验证码接口。placeholder、inputmode 和 maxlength,不再把邮件验证码错误地按数学题处理。assets/auth-pages.css、assets/tickets.css、admin/captcha_center.phpuser/register.phpusername,email:recipient_email 上下文透传,注册页可以直接根据输入邮箱切到邮件验证码。user/login.php、user/forgot-password.php、user/reset-password.phpadmin/login.php、admin/forgot-password.php、admin/reset-password.phpuser/tickets.php、lib/admin_captcha_gate.php、admin/captcha_center.phpREADME.mdv1.0.237,补充邮件验证码倒计时、字段映射透传与注册场景接入说明。CHANGELOG.mdphp -l lib/captcha_runtime.php:通过。php -l user/login.php:通过。php -l user/forgot-password.php:通过。php -l user/register.php:通过。php -l user/reset-password.php:通过。php -l admin/login.php:通过。php -l admin/forgot-password.php:通过。php -l admin/reset-password.php:通过。php -l lib/admin_captcha_gate.php:通过。php -l user/tickets.php:通过。php -l admin/captcha_center.php:通过。node --check assets/captcha-widget.js:通过。lib/mail.phpmail_basic_sender_pool()、mail_pick_from_address(),支持主发件邮箱 + 备用发件邮箱池轮询,并按收件人 / 场景稳定选择发件地址。mail_provider_runtime_settings()、mail_provider_api_send()、mail_send_via_runtime_transport(),把 SMTP 与第三方 API 发信接入同一运行时出口。send_or_queue_email() 与 process_email_queue_once() 已统一走运行时传输选择,支持 SMTP -> API 自动容灾切换。user_captcha_code_email 邮件验证码模板。lib/captcha_runtime.phpcaptcha_runtime_email_fallback_enabled()、captcha_runtime_build_email_challenge() 等 helper,运行时可为指定场景下发 email 挑战。captcha_runtime_method_candidates()、captcha_runtime_public_challenge()、captcha_runtime_store_new_challenge()、captcha_runtime_normalize_answer() 已补齐 email 分支。api/captcha.phpaccount、username、recipient_email 上下文字段,便于根据账号解析邮件接收地址。assets/captcha-widget.jsdata-captcha-context-fields 自动透传、captcha-method-email 样式态与“请输入邮件验证码”占位文案。user/login.php、user/forgot-password.php、admin/login.php、admin/forgot-password.phplib/admin_sidebar_menu.php邮件 · 开关策略、邮件 · 系统联动、邮件 · 高级能力、邮件 · 审计同步 二 / 三级快捷入口。README.mdv1.0.236,补充邮箱验证码 fallback、SMTP / API 容灾、27 个模板与后台直达入口说明。CHANGELOG.mdphp -l lib/mail.php:通过。php -l lib/captcha_runtime.php:通过。php -l api/captcha.php:通过。php -l user/login.php:通过。php -l user/forgot-password.php:通过。php -l admin/login.php:通过。php -l admin/forgot-password.php:通过。php -l lib/auth.php:通过。php -l lib/node_monitor.php:通过。php -l lib/tickets.php:通过。php -l lib/backup_center.php:通过。php -l admin/users.php:通过。php -l admin/backup_center.php:通过。php -l admin/mail.php:通过。php -l lib/admin_sidebar_menu.php:通过。php -r "require 'lib/mail.php'; echo 'templates=' . count(mail_template_builtin_definitions()) . PHP_EOL;":输出 templates=27。lib/mail.php场景邮箱分配、收件人白名单、收件人黑名单、内容黑名单、单收件人单日上限、单 IP 单日上限、系统单日总发送上限、配额降级 已全部接入 send_or_queue_email() / enqueue_email()。user_account_change_notice,内置模板数扩展到 26 个。lib/node_monitor.php节点分组接收人 配置。lib/auth.php用户通知 / 找回密码 开关,禁用后不再进入发送链路。admin/users.phplib/tickets.phplib/backup_center.phpREADME.mdv1.0.235,补充运行时治理、节点告警和用户管理联动说明。CHANGELOG.mdphp -l lib/mail.php:通过。php -l lib/auth.php:通过。php -l lib/node_monitor.php:通过。php -l lib/tickets.php:通过。php -l lib/backup_center.php:通过。php -l admin/users.php:通过。php -l admin/backup_center.php:通过。php -r "require 'lib/mail.php'; echo 'templates=' . count(mail_template_builtin_definitions()) . PHP_EOL;":输出 templates=26。lib/tickets.phpadmin_ticket_activity、user_ticket_activity 两套通用模板。lib/backup_center.phpbackup_center_notification_emails()、backup_center_mail_channel_enabled()、backup_center_notify_email() 等 helper,补齐备份邮件收件人解析、邮件开关联动、模板渲染与成功 / 失败发送能力。mail.notify_to / site.contact_email 回退收件人策略。admin/backup_center.phplib/mail.phpuser_ticket_activity、admin_ticket_activity,继续增强邮件中心的场景覆盖。README.mdv1.0.234,补充工单模板化通知和备份中心邮件联动说明。CHANGELOG.mdphp -l lib/mail.php:通过。php -l lib/tickets.php:通过。php -l lib/backup_center.php:通过。php -l admin/backup_center.php:通过。admin/mail.php基础配置、开关策略、测试与校验、邮件美化、模板管理、队列运维、发送统计、系统联动、高级能力、审计同步 10 大独立区块。lib/mail.phpsecurity 配置块改为安全保存 SMTP 密码:后台输入留空即可保留原值,导出配置时保留加密后的存储值。mail_validate_smtp_settings()。mail_queue_status_summary()、mail_queue_recent()、mail_queue_list()、mail_queue_bulk_action()、mail_queue_cleanup()、mail_queue_failure_buckets()、mail_queue_daily_stats()、mail_queue_top_recipients()、mail_queue_subject_stats()。lib/admin_sidebar_menu.php邮件 · 基础配置、邮件 · 美化配置、邮件 · 模板管理、邮件 · 队列运维、邮件 · 发送统计、邮件 · 测试校验 快捷入口,便于后台其它页面与设置检索中心直达。README.mdCHANGELOG.mdphp -l admin/mail.php:通过。php -l lib/mail.php:通过。php -l lib/admin_sidebar_menu.php:通过。admin/captcha_center.phppageShortcutGroups 继续扩展,补齐“场景细分”“方式细分”“限流细分”“名单细分”“运行与版本”等分组,支持更多独立卡片一键直达。lib/admin_sidebar_menu.phpREADME.mdv1.0.232,补充滚动高亮联动与共享后台菜单快捷入口说明。CHANGELOG.mdphp -l admin/captcha_center.php:通过。php -l lib/admin_sidebar_menu.php:通过。php -l lib/captcha_center.php:通过。php -l lib/captcha_runtime.php:通过。admin/captcha_center.php#captchaQuickNav,支持二/三级方式直达各独立卡片与对应总览区块。README.mdv1.0.231,补充左侧导航锚点分组与页面二/三级快捷入口说明。CHANGELOG.mdphp -l admin/captcha_center.php:通过。php -l lib/captcha_center.php:通过。php -l lib/captcha_runtime.php:通过。admin/captcha_center.phpupdate_alert_segment、update_approval_segment、update_risk_engine_segment、update_content_experience_segment、update_audit_governance_segment、update_integration_open_segment、update_analytics_dashboard_segment、update_extra_guard_segment 8 组细分保存动作,所有细分区块均采用增量合并写入,不再要求回到整块 JSON 修改。README.mdv1.0.230,补充告警、审批、风控、体验、审计、集成、分析、增值模块的彻底块状化说明。CHANGELOG.mdphp -l admin/captcha_center.php:通过。php -l lib/captcha_center.php:通过。php -l lib/captcha_runtime.php:通过。admin/captcha_center.phpREADME.mdv1.0.229,补充限流细分区块说明。CHANGELOG.mdphp -l admin/captcha_center.php:通过。php -l lib/captcha_center.php:通过。php -l lib/captcha_runtime.php:通过。admin/captcha_center.phpREADME.mdv1.0.228,补充黑白名单细分区块说明。CHANGELOG.mdphp -l admin/captcha_center.php:通过。php -l lib/captcha_center.php:通过。php -l lib/captcha_runtime.php:通过。admin/captcha_center.phpREADME.mdv1.0.227,补充模板、通道、第三方路由和高级因子独立区块说明。CHANGELOG.mdphp -l admin/captcha_center.php:通过。php -l lib/captcha_center.php:通过。php -l lib/captcha_runtime.php:通过。admin/captcha_center.phplogin / register / forgot_password / reset_password 的默认验证方式、层级、触发模式、豁免、回退、复用时长与终端配置。admin_login / admin_forgot_password / admin_reset_password 的安全策略。comment / ticket_create / ticket_reply 的交互与风控参数。payment / data_export / export_logs / export_comments 的高危策略。api_call / admin_action / batch_action / permission_change / device_binding 的场景参数。README.mdv1.0.226,补充关键场景专题区块说明。CHANGELOG.mdphp -l admin/captcha_center.php:通过。php -l lib/captcha_center.php:通过。php -l lib/captcha_runtime.php:通过。admin/captcha_center.phpcaptchaAudit、captchaIntegrations、captchaAnalytics、captchaExtras 主锚点已优先落到独立后台表单,能力清单块下沉为 Catalog 次级锚点。README.mdv1.0.225,补充日志审计、集成开放、数据分析、应急合规自动化的独立区块说明。CHANGELOG.mdphp -l admin/captcha_center.php:通过。php -l lib/captcha_center.php:通过。php -l lib/captcha_runtime.php:通过。admin/captcha_center.phpcaptchaMethods 锚点落点,并让 captchaRisk / captchaContent 主锚点优先落到真正可操作的独立区块。README.mdv1.0.224,补充场景高级策略、验证方式细项、风控引擎与体验定制区块。CHANGELOG.mdphp -l admin/captcha_center.php:通过。php -l lib/captcha_center.php:通过。php -l lib/captcha_runtime.php:通过。admin/captcha_center.php智能风控规则 / 验证内容定制 / 日志与审计 / 集成与开放 / 数据与分析 / 额外增值功能 改成按子模块逐块编辑、逐块保存。README.mdv1.0.223,补充新的后台独立区块与“高级 JSON 兜底”说明。CHANGELOG.mdphp -l admin/captcha_center.php:通过。php -l lib/captcha_center.php:通过。php -l lib/captcha_runtime.php:通过。admin/captcha_center.phplib/captcha_center.phpREADME.mdv1.0.222,强调“独立区块管理”与更多后台可视化操作能力。CHANGELOG.mdphp -l admin/captcha_center.php:通过。php -l lib/captcha_center.php:通过。php -l lib/captcha_runtime.php:通过。admin/captcha_center.php平衡模式 / 高强度模式 / 体验优先 / 活动护航 四类策略模板,并自动写入版本历史。lib/captcha_center.phpadmin_forgot_password、admin_reset_password、export_logs、export_comments。batch_action、api_call、payment、data_export、permission_change、device_binding 等高危场景补齐默认 preferred_method。lib/captcha_runtime.phpcaptcha_runtime_issue_preview_challenge(),用于后台管理台在线演练。captcha_runtime_clear_pass(),避免管理台演练影响真实业务复用态。methods.math.max_operand 配置项,运算范围可被后台调节。lib/admin_captcha_gate.phpadmin/forgot-password.phpadmin_forgot_password 场景验证码。admin/reset-password.phpadmin_reset_password 场景验证码。admin/export_logs.phpexport_logs 场景验证码。admin/export_comments.phpexport_comments 场景验证码。README.mdv1.0.221,补充管理台运行日志、预设模板、在线演练、后台密码链路与导出闸门说明。CHANGELOG.mdphp -l lib/captcha_runtime.php:通过。php -l lib/captcha_center.php:通过。php -l lib/admin_captcha_gate.php:通过。php -l admin/captcha_center.php:通过。php -l admin/forgot-password.php:通过。php -l admin/reset-password.php:通过。php -l admin/export_logs.php:通过。php -l admin/export_comments.php:通过。php -l admin/login.php:通过。php -l user/tickets.php:通过。php -l api/captcha.php:通过。node --check assets/captcha-widget.js:通过。lib/captcha_runtime.phpmath + image 双模式,新增内建 SVG 图形验证码输出、场景默认验证方式选择和 ticket_create / ticket_reply / admin_login 新场景。cache/captcha-runtime.log,记录场景、动作、结果、脱敏 IP 与附加元信息,便于后续审计与风控联调。lib/captcha_center.phpticket_create、ticket_reply、admin_login 场景默认模板,并为 image / math 验证方式增加长度、字符集、大小写敏感、尺寸与最大操作数等配置项。api/captcha.phpassets/captcha-widget.jsassets/auth-pages.cssassets/tickets.css20260306-ticket-v9。admin/login.phpadmin_login 场景验证码,登录失败后保留用户名并刷新 challenge。user/tickets.phpticket_create 场景验证码,回复工单接入 ticket_reply 场景验证码。README.mdv1.0.220,补充后台登录、工单链路、双模式验证码、运行日志与通用组件说明。CHANGELOG.mdphp -l lib/captcha_runtime.php:通过。php -l lib/captcha_center.php:通过。php -l admin/login.php:通过。php -l user/tickets.php:通过。php -l user/login.php:通过。php -l user/register.php:通过。php -l user/forgot-password.php:通过。php -l user/reset-password.php:通过。php -l api/captcha.php:通过。php -l api/comments.php:通过。node --check assets/captcha-widget.js:通过。node --check assets/quick-page.js:通过。lib/captcha_runtime.phpcaptcha_center 中的总控与场景模板。api/captcha.phpuser/login.phpuser/register.phpuser/forgot-password.phpuser/reset-password.phpapi/comments.phpcaptcha-required、captcha-invalid、captcha-expired 细分错误以及新挑战题。index.phpquick.phpassets/quick-page.jsassets/auth-pages.cssassets/main.cssassets/quick-page.cssauth-pages.css → 20260306-auth-ui-v7main.css → 20260306-site-polish-v97quick-page.css → 20260306-quick-page-v30quick-page.js → 20260306-quick-page-v34php -l user/login.php:通过。php -l user/register.php:通过。php -l user/forgot-password.php:通过。php -l user/reset-password.php:通过。php -l api/comments.php:通过。php -l api/captcha.php:通过。php -l lib/captcha_runtime.php:通过。admin/captcha_center.phplib/captcha_center.phpapp_settings。lib/admin_sidebar_menu.phpREADME.md 新增“安全中心 / 验证码体系(v1.0.218)”说明,并把 /admin/captcha_center.php 纳入后台能力总览与路由矩阵。php -l admin/captcha_center.php:通过。php -l lib/captcha_center.php:通过。php -l lib/admin_sidebar_menu.php:通过。admin/site.php 的“渲染预览 / 更新日志预览 / README 快照预览”会在页面打开时直接渲染整份 Markdown,内容一长就会让后台首屏和滚动明显变卡。admin/site.phpmax-height、overflow、content-visibility、contain-intrinsic-size、scrollbar-gutter 与状态栏,降低大文档加载与滚动开销。api/markdown-preview.phpphp -l admin/site.php:通过。php -l api/markdown-preview.php:通过。./scripts/admin_smoke_check.sh:通过。assets/main.css.modal-overlay、.version-modal 改为从 --topbar-fixed-offset 下方直接开始布局,不再用“全屏 + 大顶部内边距”模式,节点选择器和版本说明弹窗会整体落在长条顶栏下方。.node-list-wrap、.node-modal-side-panel、.version-modal-card、.announcement-center-list/detail、.changelog-center-list/detail 补齐 scrollbar-gutter、overscroll-behavior 与移动滚动稳定项,降低弹窗滚动时的抖动和宽度跳变。backdrop-filter,减少滚动中的重绘闪动。main.css?v=20260306-site-polish-v96php -l index.php:通过。php -l quick.php:通过。php -l about.php:通过。./scripts/admin_smoke_check.sh:通过。assets/main.css.modal-overlay、.version-modal 补充 body.topbar-lock-active 安全区规则,锁定后自动按 --topbar-fixed-offset 下移容器顶部内边距。.version-modal-card、.changelog-modal-card、.announcement-center-card、.node-modal-content 重新计算锁定态最大高度,避免模态内容顶到固定顶栏。#changelogModal、#announcementCenterModal 这类自定义 padding 的大弹窗,并补齐移动端高度规则,保证首页、简洁页和关于页视觉一致。index.phpaccel_node_selector_layout_v3,旧的浮窗位置会自动失效一次,避免旧坐标与新安全区混用。main.css?v=20260306-site-polish-v95php -l index.php:通过。php -l quick.php:通过。php -l about.php:通过。./scripts/admin_smoke_check.sh:通过。assets/main.css.topbar--fixed 从居中限宽改为左右撑开的长条 fixed 顶栏。topbar-fixed-spacer 占位链路,所以仍不会遮挡正文内容。global-button-tip.js?v=20260306-global-tip-v23main.css?v=20260306-site-polish-v92node --check assets/global-button-tip.js:通过。node --check assets/dynamic-island.js:通过。php -l index.php:通过。php -l quick.php:通过。php -l about.php:通过。php -l admin/topbar_manage.php:通过。php -l api/topbar-config.php:通过。assets/global-button-tip.jstopbar-fixed-spacer,锁定态按实际顶栏高度同步占位,正文不再被固定顶栏压住。ResizeObserver、visualViewport 和窗口 resize 同步,顶栏在移动端展开/收起、尺寸变化后会重新计算偏移。data-topbar-fixed、body.topbar-lock-active 和按钮状态类,保证点击后立即有视觉反馈。assets/main.cssscroll-margin-top、暗色阴影和移动端间距收口,避免锁定顶栏场景下内容贴顶观感异常。global-button-tip.js?v=20260306-global-tip-v24main.css?v=20260306-site-polish-v93node --check assets/global-button-tip.js:通过。node --check assets/dynamic-island.js:通过。php -l index.php:通过。php -l quick.php:通过。php -l about.php:通过。php -l admin/topbar_manage.php:通过。php -l api/topbar-config.php:通过。active 状态被平台风格样式覆盖,视觉上像“没有反应”。lib/topbar_manage_config.phpdesktop / mobile_collapsed / mobile_expanded 三套区域新增 anchor 字段。inherit 继承模式:按钮既可以跟随全局位置,也可以单独指定锚点。admin/topbar_manage.phpPC 位置未展开位置展开位置语言前 / 语言后 / 组最前 / 组最后品牌前 / 品牌后 / 公告前 / 菜单前跟随全局assets/global-button-tip.jsassets/main.cssactive 样式,修复“点击没反应”的视觉假象。soft 风格下展开区按钮样式。topbar-collapsed-slot 样式,适配移动端多插槽布局。global-button-tip.js?v=20260306-global-tip-v22main.css?v=20260306-site-polish-v91php -l lib/topbar_manage_config.php:通过。php -l admin/topbar_manage.php:通过。php -l api/topbar-config.php:通过。node --check assets/global-button-tip.js:通过。node --check assets/dynamic-island.js:通过。dynamic_island_load_config(),保存配置直接报错。lib/topbar_manage_config.phplib/bootstrap.php/admin/topbar_manage.php 补充灵动岛模块加载,修复后台保存时报 Call to undefined function dynamic_island_load_config()。admin/topbar_manage.phpPC / 移动未展开 / 移动展开 三套独立控制:api/topbar-config.phpsettings + buttons + order。assets/global-button-tip.jsdesktop / mobile_collapsed / mobile_expanded 三套规则。localStorage,修复锁定状态不持久的问题。assets/main.csssoft / solid / outline 三种风格。global-button-tip.js?v=20260306-global-tip-v21main.css?v=20260306-site-polish-v90php -l lib/topbar_manage_config.php:通过。php -l lib/bootstrap.php:通过。php -l admin/topbar_manage.php:通过。php -l api/topbar-config.php:通过。node --check assets/global-button-tip.js:通过。/api/topbar-config.php 请求异常时,assets/global-button-tip.js 会把锁定按钮误判为隐藏/不可点击,导致“点击后没有锁定”。admin/global_manage.php 仍残留“前台固定顶栏按钮开关”,与“全部迁移到顶栏功能管理”目标冲突。assets/global-button-tip.jsshow_fixed_toggle 仅在接口显式返回关闭时才隐藏锁定按钮;接口异常或字段缺失时保持默认可用。global_default_fixed / allow_custom / group_control_enabled / user.logged_in 改为容错布尔解析,避免因返回值类型差异导致锁定逻辑误判。admin/global_manage.phplayout.topbar.show_fixed_toggle,顶栏按钮相关设置统一由 admin/topbar_manage.php 管理。global-button-tip.js?v=20260306-global-tip-v20(所有 PHP 页面引用同步更新,强制刷新缓存)。node --check assets/global-button-tip.js:通过。php -l admin/global_manage.php:通过。php -l index.php:通过。php -l quick.php:通过。php -l about.php:通过。admin/topbar_manage.php锁定/深色模式/设置/灵动岛 按钮:layout.topbar.show_fixed_toggle。quick_actions.show_topbar_proxy_toggle。lib/admin_sidebar_menu.php顶栏功能管理(/admin/topbar_manage.php)。api/topbar-config.phpbutton_manage 输出(按钮顺序与完整按钮配置)。assets/global-button-tip.jsmobile-topbar-tools 外置迁移逻辑。.topbar-collapsed-actions(移动端菜单未展开时使用)。.topbar--fixed sticky 固定,避免遮挡正文与宽度拉伸。assets/main.csstopbar--fixed 改为 sticky 方案。.topbar-collapsed-actions 与 .topbar-managed-btn 样式。data-topbar-display 图标/文字显示模式样式。admin/global_manage.phplayout.topbar.*,避免被旧页面覆盖。admin/dynamic_island.phplib/dynamic_island.phpdi_quick_show_topbar_proxy_toggle 改为“仅在字段存在时更新”,兼容迁移后页面。assets/dynamic-island.jsdata-topbar-label。node --check assets/global-button-tip.js:通过。node --check assets/dynamic-island.js:通过。php -l admin/topbar_manage.php:通过。php -l api/topbar-config.php:通过。php -l admin/global_manage.php:通过。php -l admin/dynamic_island.php:通过。php -l lib/dynamic_island.php:通过。php -l lib/admin_sidebar_menu.php:通过。assets/global-button-tip.js.mobile-topbar-tools 插入位置改为 topbar-fixed-spacer 之后。topbar -> spacer -> mobileTools,确保锁定时视觉层级稳定。global-button-tip.js?v=20260306-global-tip-v18(全页面统一更新)。node --check assets/global-button-tip.js:通过。php -l index.php:通过。php -l quick.php:通过。php -l about.php:通过。assets/global-button-tip.jsmax-width: 768px 时,将 .topbar-settings(包含锁定、语言切换、深色模式、设置)从 topbarLinks 移到顶栏下方独立容器 .mobile-topbar-tools。.topbar-settings 放回原位(topbarLinks)。assets/main.css.mobile-topbar-tools 容器样式(独立面板、圆角、阴影、磨砂)。.mobile-topbar-tools:empty 自动隐藏,避免空容器占位。global-button-tip.js?v=20260306-global-tip-v17(全页面统一更新)。main.css?v=20260306-site-polish-v88(index.php、quick.php、about.php)。node --check assets/global-button-tip.js:通过。php -l index.php:通过。php -l quick.php:通过。php -l about.php:通过。assets/global-button-tip.js.topbar-settings .lang-switch 左侧。topbar-fixed-spacer 占位机制并接入高度同步,锁定后正文不被顶栏遮挡。topbar--fixed 与按钮 active 状态,并保持持久化写入。assets/main.css.topbar--fixed 恢复为长条 fixed 形态(top/left/right/width 全屏宽度)。.topbar-fixed-spacer 恢复显示占位,配合脚本计算高度。order:0,避免干扰语言切换所在组。global-button-tip.js?v=20260306-global-tip-v16(全页面统一更新)。main.css?v=20260306-site-polish-v87(index.php、quick.php、about.php)。node --check assets/global-button-tip.js:通过。php -l index.php:通过。php -l quick.php:通过。php -l about.php:通过。assets/main.css.topbar 默认态从 sticky 改为普通流(position: relative),避免默认即固定。.topbar--fixed 继续使用 sticky,仅在锁定态生效,实现“点击后才固定”。.topbar-lock-btn 增加 margin-left:auto,按钮自动靠近顶部右侧按钮区。.topbar-lock-btn 重置 margin-left:0,避免小屏布局挤压。global-button-tip.js?v=20260306-global-tip-v15(全页面统一更新)。main.css?v=20260306-site-polish-v86(index.php、quick.php、about.php)。node --check assets/global-button-tip.js:通过。php -l index.php:通过。php -l quick.php:通过。php -l about.php:通过。assets/global-button-tip.jsposition: fixed 脱流方案调整为容器内 sticky 固定,保持与图4一致的原始宽度和位置。topbar-fixed-spacer 残留节点,消除旧版本遗留影响。assets/main.css.topbar--fixed 改为 sticky 锁定态(不再脱离文档流)。.topbar-lock-btn 调整为与顶部按钮体系一致的圆角图标尺寸(非扁平细长)。min-height:44px 约束:.topbar-lock-btn.topbar-menu-toggle.version-modal-close.announcement-close.sponsor-lightbox-close.about-close-btnglobal-button-tip.js?v=20260306-global-tip-v14(全页面统一更新)。main.css?v=20260306-site-polish-v85(index.php、quick.php、about.php)。node --check assets/global-button-tip.js:通过。php -l index.php:通过。php -l quick.php:通过。php -l about.php:通过。assets/global-button-tip.jsleft/width 回填,修复 PC 锁定后全宽异常。顶栏高度 + 原流式 margin-bottom + top 偏移,修复锁定后回顶遮挡正文。.wrap 容器,避免窗口变化时尺寸漂移。assets/main.css.topbar-lock-btn 收口为接近原始的小尺寸图标按钮(PC/移动端统一)。.topbar--fixed top 回调为 0,配合脚本占位高度避免叠压。global-button-tip.js?v=20260306-global-tip-v13(全页面统一更新)。main.css?v=20260306-site-polish-v84(index.php、quick.php、about.php)。node --check assets/global-button-tip.js:通过。php -l index.php:通过。php -l quick.php:通过。php -l about.php:通过。assets/global-button-tip.jstopbar-fixed-spacer 占位并同步高度,避免固定顶栏覆盖正文。left/width)与 ResizeObserver + visualViewport 监听,修复滚动与视口变化引起的顶栏尺寸错位。aria-label 与状态同步。assets/main.css.topbar-lock-btn 样式(胶囊化、亮暗主题一致、交互反馈增强)。.topbar--fixed 与移动端 order,确保顶栏与按钮在手机端布局稳定。.topbar-fixed-spacer 样式定义,配合脚本占位。global-button-tip.js?v=20260306-global-tip-v12(全页面统一更新)。main.css?v=20260306-site-polish-v83(index.php、quick.php、about.php)。node --check assets/global-button-tip.js:通过。php -l index.php:通过。php -l quick.php:通过。php -l about.php:通过。assets/global-button-tip.js 要求页面必须存在 .topbar-settings 或 .topbar-links 才会初始化固定逻辑。assets/global-button-tip.js/api/topbar-config.php 并应用固定状态。global-button-tip.js?v=20260228-global-tip-v11node --check assets/global-button-tip.js:通过。<body> 开头内联注入“强制回顶”脚本:user/account.phpuser/settings.phpuser/tickets.phphistory.scrollRestoration = 'manual'scrollTo(0, 0)pageshow/load 事件再次执行 scrollTo(0, 0)user-center.js?v=20260228-user-center-ui5php -l user/account.php:通过。php -l user/settings.php:通过。php -l user/tickets.php:通过。user/tickets.php$h() 的致命问题。htmlspecialchars(..., ENT_QUOTES, 'UTF-8') 输出。<select> 自动闭合)。uncaught-exception 触发 /user/tickets.php 返回 500。assets/user-center.jshistory.scrollRestoration = 'manual',禁用浏览器自动滚动恢复。pageshow/load 双时机回顶,确保进入用户中心页面时内容从顶部开始,不再落在中下部。user/account.php、user/settings.php、user/tickets.phpuser-center.js?v=20260228-user-center-ui4php -l user/tickets.php:通过。php -l assets/user-center.js:通过。php -l user/account.php:通过。php -l user/settings.php:通过。assets/user-center.cssbody.user-shell .topbar 强制为 position: sticky !important,并固定 left/right/width 的非 fixed 布局值。body.user-shell .topbar--fixed 显式重写为 sticky 语义,彻底屏蔽误加类名引发的 fixed 错位。assets/user-center.jstopbar--fixed 与内联 position/top。user/account.phpuser/settings.phpuser/tickets.phpuser-center.css?v=20260228-user-center-ui9user-center.js?v=20260228-user-center-ui3php -l user/account.php:通过。php -l user/settings.php:通过。php -l user/tickets.php:通过。php -l assets/user-center.css:通过。php -l assets/user-center.js:通过。assets/global-button-tip.js 在用户中心页面也执行了“顶栏锁定按钮”注入与固定顶栏逻辑。assets/global-button-tip.jsbody.user-shell 直接跳过顶栏锁定逻辑。.topbar-settings 或 .topbar-links 插槽时才初始化。assets/user-center.jstopbar--fixed、style.position、style.top,恢复用户页标准布局。user/login.phpuser/register.phpuser/account.phpuser/settings.phpuser/tickets.phpuser/reset-password.phpuser/forgot-password.phpuser/verify.phpglobal-button-tip.js?v=20260228-global-tip-v10php -l assets/global-button-tip.js:通过。php -l assets/user-center.js:通过。lib/auth.php):admin_name():仅在 $_SESSION['admin_username'] 为标量时做字符串转换,异常类型回退空字符串。user_id():增加整型/数字字符串校验,异常类型不再强制 (int) 转换,回退 null。username():仅在 $_SESSION['username'] 为标量时读取,避免异常 session 结构触发类型转换问题。user/settings.php):userGroupProfile 增加默认字段合并(id/name/badge/icon/color),避免异常返回值导致模板访问异常。settings 增加完整默认值兜底(语言、主题、默认节点、缓存策略、通知开关、顶栏固定偏好)。id,统一为 {id,name}。used/quota/cache_count/percent),避免配额读取异常时页面块渲染中断。/user/settings.php 仍能完整渲染主内容,不再出现右侧空白页。php -l lib/auth.php:通过。php -l user/settings.php:通过。quick.php + assets/quick-page.js):data-* 注入前端。immediate,并支持配置 idle;修复“评论初始化被推迟 + 自动测速抢占”的优先级冲突。Accept: application/json 请求头。assets/quick-page.js):title 提示),收敛“测速 x/y”与“不可用”混合状态造成的误读。assets/quick-page.js + assets/quick-page.css):aria-expanded 与折叠态视觉反馈。fast/stable/slow/pending/down 组合)。.quick-node-cards[hidden] { display:none !important; },避免被网格样式覆盖导致“看起来无法折叠”。admin/quick_manage.php):quick.runtime.* 与 layout.quick.show_*。lib/admin_sidebar_menu.php)新增“简洁页专属”一级菜单分组及子入口(总览/测速/评论/模块显隐)。admin/quick_manage.php。quick.php):quick-page.css 升级到 v29。quick-page.js 升级到 v33。README.md):lib/pagination.php)新增统一哨兵值与标签能力:pagination_page_size_all_value()pagination_is_show_all_page_size()pagination_append_show_all_option()pagination_page_size_label()pagination_resolve_public_page_size() 与 pagination_resolve_admin_page_size() 统一为所有分页模块自动追加“全部显示”选项。LIMIT/OFFSET 或按全量切片):lib/db.php(历史记录/最近日志/用户管理/审计日志)lib/comments.php(前台评论/后台评论/举报列表)lib/tickets.php(用户工单/后台工单)lib/announcement.php(公告管理)lib/proxy_service.php(缓存文件管理)lib/status_page.php(异常状态页日志)api/comments.phpapi/admin-comments.phpindex.php、quick.php、user/tickets.phpadmin/index.php、admin/users.php、admin/downloads.php、admin/cache.php、admin/audit.php、admin/comments.php、admin/tickets.php、admin/announcements.php、admin/site.php、admin/settings_search.php、admin/dynamic_island.php、admin/nodes.php、admin/node_selector.php、admin/upload_policy.phpadmin/backup_center.php、admin/status_pages.php、admin/pagination.php(导出历史)node --check assets/quick-page.js 通过。php -l quick.php 通过。php -l admin/quick_manage.php 通过。php -l lib/admin_sidebar_menu.php 通过。php -l(分页改造涉及页面)通过。README.md 下载,影响更新日志查看流程。quick.php):quick-page.css 升级到 v27。quick-page.js 升级到 v28。assets/quick-page.js):12000ms)与 AbortController 终止逻辑。评论加载超时,请稍后重试。评论接口响应异常,请稍后重试。评论加载失败,请稍后重试。node --check assets/quick-page.js 通过。php -l quick.php 通过。v1.0.193 摘要,便于与后续 v1.0.194 专项修复形成连续追踪链路。quick.php 调用了 announcement_fetch_front_payload()。lib/bootstrap.php 的公告模块按页面按需加载列表未包含 /quick.php,导致未定义函数触发 500 / uncaught-exception。lib/bootstrap.php 在公告模块加载条件中补充 /quick.php,确保简洁页可正常调用公告函数。php -l lib/bootstrap.php 通过。php -l quick.php 通过。README.md 推荐版本更新到 v1.0.192。CHANGELOG.md 索引与速查范围同步到 v1.0.192。quick.php):#announcementCenterBtn。site-signature-version),支持打开版本说明弹窗。versionInfoModal、changelogModal、announcementPortal、announcementCenterModal 相关 DOM。announcementBootstrap、changelogEntriesData 数据脚本,并加载 assets/announcement.js。assets/quick-page.js):ESC 关闭与焦点回退逻辑。quick.php):php -l quick.php 通过。node --check assets/quick-page.js 通过。README.md 推荐版本更新到 v1.0.191。CHANGELOG.md 索引与速查范围同步到 v1.0.191。admin/、lib/、api/ 全部 PHP 文件执行语法巡检(php -l),结果全部通过。lib/node_monitor.php):announcement_title_prefix 的空字符串,不再被 if ($raw === '') continue 跳过并回填默认。alert_email_to、alert_webhook_url 空字符串同样保留,避免后续读取与提交表现不一致。announcement_title_prefix 改为可显式清空;仍保留 40 字符长度约束。README.md 推荐版本更新到 v1.0.190。CHANGELOG.md 索引与速查范围同步到 v1.0.190。seo、status_page、datetime_format、dynamic_island、node_monitor。lib/seo.php:global.title_template、global.default_description、global.default_keywords 改为支持“显式清空后保持为空”。lib/status_page.php:array_key_exists 判定缺失键,不再把空字符串当作缺失键回填默认文案。php -l lib/seo.php 通过。php -l lib/status_page.php 通过。README.md 推荐版本更新到 v1.0.189,补充本次“保存一致性排查与修复”说明。CHANGELOG.md 顶部索引与速查范围同步到 v1.0.189。lib/seo.php):seo_normalize_optional_text(),用于可空文本字段的规范化(保留空值,不回填默认值)。i18n 区段改为“键存在时尊重提交值(含空字符串)”,仅在键缺失时回退到默认配置。中文/英文 Title 后缀、关键词、地域关键词、描述覆盖 在后台清空后保存仍被还原为默认值的问题。php -l lib/seo.php 通过。i18n.zh-CN.title_suffix 提交空字符串后可稳定保存为空;未提交该键时仍保持默认值回退逻辑。README.md 推荐版本更新到 v1.0.188,补充本次 SEO 可空字段修复说明。CHANGELOG.md 顶部索引与版本速查同步更新到 v1.0.188。sql/gh-proxy-app.sql):layout.*、site.*、about.*、mail.*、proxy.*、system_status.*、ticket.* 等模块默认键,首次部署即可获得与当前代码一致的配置基线。ON DUPLICATE KEY UPDATE,确保增量执行安全,不覆盖既有业务配置值。README.md:更新推荐版本并补充本次 SQL 初始化基线同步说明。CHANGELOG.md:更新顶部“最后整理时间”、阶段范围、速查计数与索引范围到 v1.0.187。README.md):admin/status_pages.php、admin/user_groups.php。status-pages/ 独立状态页目录说明。status_page.direct_entry_base 与环境变量 STATUS_PAGE_DIRECT_ENTRY_BASE 文档。error.php?code=xxx 与 status-pages/*.php 示例入口。CHANGELOG.md):v1.0.186。v1.0.186 摘要,确保 README 与 CHANGELOG 的版本指向一致。status-pages/):403.php、404.php、408.php、429.php、500.php、502.php、503.php 统一迁移到 status-pages/ 目录。require dirname(__DIR__) . '/lib/bootstrap.php';,确保目录层级变化后仍可正常引导运行时。config.php + lib/status_page.php):status_page.direct_entry_base 配置项,支持环境变量 STATUS_PAGE_DIRECT_ENTRY_BASE,默认值 /status-pages。status_page_entry_base_path() 与 status_page_entry_url(),统一生成状态码独立入口地址,避免页面路径硬编码分散在各处。admin/status_pages.php):error.php?code=xxx 统一并行,便于前台直链验证与部署排查。v1.0.140 中独立页面路径描述,由项目根目录路径统一改为 status-pages/*.php。index.php):x/yindex.php + assets/announcement.js + 内联脚本):x/y 徽标,避免与关闭按钮/筛选区争抢空间。x/y 改为渲染在每个列表卡片右上角(示例 22/184),公告中心与更新日志统一样式。assets/main.css):x/y 重叠。main.css 升级到 20260228-site-polish-v82。announcement.js 升级到 20260228-announcement-v15。x/y 徽标index.php + assets/main.css):changelog-center-meta-row 与 changelog-center-entry-time 专用结构依赖。index.php + assets/announcement.js + 内联脚本):当前/总数 徽标(示例:11/123),统一放在右上角关闭按钮左侧。x/y。x/y。main.css 升级到 20260228-site-polish-v81。announcement.js 升级到 20260228-announcement-v14。assets/admin-dashboard.css):assets/admin-dashboard.css):site / about / sponsor 页面前缀覆盖,修复站点标识页、关于页、赞助页等内联浅色残留。assets/admin-page-polish.css):admin-page-polish.css 后加载导致公共暗色规则被覆盖、局部回退为浅色的问题。admin-polish-v35。admin-page-polish-v2。<style> 写死浅色背景(如 #fff/#f8fafc),由于加载顺序晚于公共样式,导致公共暗色规则被覆盖。!important”暗色兜底层,直接覆盖页面内联浅色规则,确保所有后台页面一致进入暗色视觉。assets/admin-dashboard.css):seo / ug / ann / dl / nodes / audit / cache / mail / account / dtf / sp / di / upload / comments / pager / bc / ss / selector / changelog / users。admin-polish-v34(CSS + JS 引用),确保所有后台页面立即生效。assets/admin-dashboard.css):topbar-user-toggle 与 topbar-popover 的暗色文字与背景。topbar-status-pill、topbar-status-quota)。admin/global_manage.php):gm-group、gm-card、gm-table、gm-* 输入控件新增暗色覆盖,修复截图中浅灰统计卡与表格在暗色模式下不协调的问题。sql/gh-proxy-app.sql):app_settings 默认种子,覆盖当前代码已使用的功能键:下载队列、灵动岛、用户组、节点选择器、上传管理、分页监控、后台布局与侧栏菜单、备份中心、系统状态阈值等。comments_review_bypass_user_ids 默认值,避免新库初始化后出现配置缺项。admin-dashboard.css/js 资源版本为 admin-polish-v33,确保修复可立即生效。assets/admin-dashboard.js):=== true”改为兼容布尔/字符串/数字(true/1/"1"/"true"/"on"/"yes"),避免数据类型差异导致开关被误判为关闭。window 扩展为监听 window + .main-content + .dashboard-body,兼容后台不同页面滚动容器,实现 PC/移动端一致生效。api/admin-toolbar.php):fetch_dashboard_stats / sidebar_quota_summary 改为独立容错,统计异常时仍返回 preferences,确保顶栏开关不被统计报错连带失效。admin-dashboard.js?v=20260227-admin-polish-v31 升级到 v32,确保浏览器立即加载修复脚本。admin/users.php):username,email,password,role,is_active,group_id,avatar_url,并兼容首行表头自动识别、空行自动忽略。role 支持 user/admin;is_active 支持 1/0/启用/禁用 等常见表达。admin/users.php):admin/users.php):admin/users.php):admin/users.php):enqueue_email),结果反馈包含入队数量、邮箱无效数量、失败数量。admin/users.php):target_user_id 过滤参数。admin/users.php):admin/users.php):admin/user_groups.php。admin/users.php):admin/users.php):admin/users.php):count、ids 与目标动作参数。lib/user_groups.php):user_groups_config() 新增可选强制刷新参数,用户管理页写入分组绑定后可立即读取新配置,避免同请求内展示旧分组。admin/users.php 内联样式):admin/comments.php):body.sidebar-collapsed),与顶栏菜单按钮保持统一行为。admin_sidebar_collapsed。aria-expanded,避免多入口切换时状态错乱。lib/comments.php + admin/comments.php):section_title(前台评论区标题)allow_report(举报开关)report_requires_login(举报是否要求登录)report_reasons(举报原因列表,支持后台维护)lib/comments.php):comment_report() 增加举报策略校验:report-disabledlogin-requiredsection_title、allow_report、report_requires_login、report_reasons,前台可直接读取生效。index.php + quick.php + assets/quick-page.js):sql/gh-proxy-app.sql):comments_section_titlecomments_allow_reportcomments_report_requires_logincomments_report_reasonsquick-page.js:20260227-quick-page-v25 -> v26lib/comments.php + admin/comments.php):daily_limit_vip(VIP 用户组每日发言上限,0 表示不限制)reply_collapse_threshold(单条评论回复折叠阈值)load_mode(load_more 按钮加载 / scroll 滚动自动加载)lib/comments.php):vip 时走 daily_limit_vip)。reply_collapse_threshold 与 load_mode,前台可直接读取并生效。index.php + assets/quick-page.js):load_more:保持按钮手动加载scroll:滚动到加载按钮附近时自动请求下一页assets/main.css + assets/quick-page.css):sql/gh-proxy-app.sql):comments_daily_limit_vipcomments_reply_collapse_thresholdcomments_load_modemain.css:20260227-site-polish-v79 -> v80quick-page.css:20260227-quick-page-v25 -> v26quick-page.js:20260227-quick-page-v24 -> v25admin/comments.php + api/admin-comments.php + lib/comments.php):dashboard 返回 settings.controls,并新增 set_controls 写入动作。lib/comments.php):oldest(最早)排序支持。index.php + quick.php + assets/quick-page.js + api/comments.php):settings.controls,前台根据策略动态调整:sql/gh-proxy-app.sql):app_settings 键值,首次部署即具备可控策略基线。quick-page.js:20260221-quick-page-v23 -> 20260227-quick-page-v24assets/main.css)assets/admin-dashboard.css)assets/auth-pages.css)assets/user-center.css)assets/tickets.css)assets/quick-page.css)assets/status-pages.css)accent-color 与交互指针反馈。main.css:20260227-site-polish-v78 -> v79admin-dashboard.css:20260227-admin-polish-v30 -> v31auth-pages.css:20260227-auth-ui-v5 -> v6user-center.css:20260227-user-center-ui6 -> ui7tickets.css:20260227-ticket-v7 -> v8quick-page.css:20260227-quick-page-v24 -> v25status-pages.css:20260227-status-v4 -> v5assets/main.css):history-check-all 升级为稳定胶囊样式(圆角、边框、背景、阴影、hover 反馈),并强制 white-space: nowrap 避免“全选”被挤成换行。comment-anonymous 升级为一致化开关胶囊(圆角、边框、背景、字重、hover 反馈),与评论编辑区按钮视觉统一。align-self/min-height/font-size,避免错位与拥挤。main.css:20260227-site-polish-v77 -> v78index.php、about.php、quick.phpassets/main.css):.comment-editor-top input[type="text"] 从 flex: 1 1 240px 改为固定单行输入流(flex: 0 0 auto + height/min-height: 46px),避免列布局下 flex-basis 把输入框拉高。取消回复/上传图片/发布评论)统一移动端样式:圆角、阴影、字号、最小点击高度与换行布局。main.css:20260227-site-polish-v76 -> v77index.php、about.php、quick.phpassets/main.css):grid 改为稳定 flex-column,避免网格行高计算导致的长文案外溢。flex: 0 0 auto + height:auto + max-height:none,长内容按实际行数自动拉长卡片。main.css:20260227-site-polish-v75 -> v76index.php、about.php、quick.phpassets/main.css + index.php):changelog-center-entry-time,并强制时间始终可见(固定 display/opacity/visibility/position)。overflow-wrap:anywhere + word-break:break-word),长文本不再被截断。height:auto + 自适应宽度规则,移动端卡片宽度改为可自适应容器。main.css:20260227-site-polish-v74 -> v75index.php、about.php、quick.phpassets/main.css):main.css:20260227-site-polish-v73 -> v74index.php、about.php、quick.phpindex.php):button 内嵌 div 的无效结构,浏览器会自动重排 DOM。index.php):title-row 与 meta-row 由 div 全部改为 span(与公告中心一致的合法嵌套)。--,避免空白条目。php -l index.php,语法通过。button > div 的无效嵌套。assets/main.css + index.php):changelog-center-meta-row 专用纵向结构,时间固定独立一行展示。display/opacity/visibility/position,不再受任何悬停态影响。--,避免条目出现“空白时间行”。main.css:20260227-site-polish-v71 -> v72index.php、about.php、quick.phpassets/announcement.js + assets/main.css):已读(或红点) + 状态,第二行单独显示时间。announcement-center-meta-top/meta-bottom 结构,避免元信息挤压与错位。assets/main.css):display/opacity/visibility,移除对悬停态的显示依赖。position: static 与 float: none,避免旧规则残留导致的悬浮显示。--),避免出现“未显示被误判为悬停显示”的情况。main.css:20260227-site-polish-v70 -> v71announcement.js:20260227-announcement-v12 -> v13index.php、about.php、quick.phpassets/announcement.js + assets/main.css):已读/红点 从标题行移动到元信息行。已读(或红点) + 状态 + 时间,并加强单行防裁切策略。assets/main.css):display/opacity/visibility 固定可见),取消任何悬停态依赖。main.css:20260227-site-polish-v69 -> v70announcement.js:20260227-announcement-v11 -> v12index.php、about.php、quick.phpassets/main.css):height: auto、overflow: visible,并提升最小高度与间距,保证元信息行完整可见。margin-top/gap),避免底部标签挤压。index.php、about.php、quick.php):main.css:20260227-site-polish-v68 -> v69assets/main.css):@media (min-width: 769px)),统一两类弹窗左栏条目规则。display:flex + flex-direction:column,并统一最小高度、内边距与间距。min-width: 0 兜底,避免内容被挤压或越界。overflow: hidden,消除跨条目视觉串行。index.php、about.php、quick.php):main.css:20260227-site-polish-v67 -> v68assets/main.css):12px,阴影统一 0 4px 16px rgba(0,0,0,0.08)。20px 深灰、统计文案 12px 浅灰、底部分隔线统一。90deg。assets/main.css + index.php):8px 圆角,悬浮轻上浮。14px / 1.6。4px 小圆角,提升内容层次。assets/main.css):index.php + assets/announcement.js):main.css:20260227-site-polish-v65 -> v66announcement.js:20260227-announcement-v10 -> v11index.php、about.php、quick.phpphp -l index.php about.php quick.phpnode --check assets/announcement.jsapi/announcement.php 页面上下文,导致页面规则匹配偏差。lib/bootstrap.php、lib/announcement.php、api/announcement.php):lib/datetime_format.php 加载范围(首页、简洁页、关于页、公告接口)。display_time_text(后端按时间格式配置渲染,前端优先使用)。page/source_page 上下文参数,时间模板可按真实来源页面命中规则。announcement_fetch_front_payload() 新增运行时上下文参数,兼容旧调用不受影响。index.php、assets/announcement.js):updated_at_formatted 字段,并在前端展示逻辑中优先使用。display_time_text,仅在缺失时回退本地格式化。announcement.js:20260221-announcement-v9 -> 20260227-announcement-v10find . -name '*.php' -print0 | xargs -0 -n 1 php -lassets/main.css):appearance/font/line-height 归位),避免被全局按钮系统污染。320~400px),降低长标题截断概率。main.css:20260227-site-polish-v64 -> v65index.php、about.php、quick.phpindex.php):版本 · 标题 显示方式(有版本时自动拼接)。v1.0.155)2026-02-27 17:09:36)assets/main.css):main.css:20260227-site-polish-v63 -> v64index.php、about.php、quick.phpindex.php):标题行 + 元信息行(版本号、更新时间)。版本 --更新时间 --版本:... 与 更新时间:... 双信息,避免仅标题展示导致信息感知不足。assets/main.css):flex 双端布局(标题左、置顶标右),恢复视觉秩序。position: static,防止外部样式污染。padding: 14px 12px 15px),增强可读性并降低内容挤压。main.css:20260227-site-polish-v62 -> v63index.php、about.php、quick.phpassets/main.css):flex-column),不再依赖网格自动行推断,避免文本叠层。position: static !important 和浮动清理,消除外部样式干扰导致的错位。overflow: hidden 与更稳健的间距策略,确保小屏幕下内容不串行。assets/main.css):main.css:20260227-site-polish-v61 -> v62index.php(更新日志中心列表渲染模板):changelog-center-pin-row)。changelog-center-entry-meta)并置于标题下方。assets/main.css:main.css:20260227-site-polish-v60 -> v61assets/main.css,仅针对 .changelog-center-list):.changelog-center-list .announcement-center-item 统一加大为 padding: 14px 12px 15px。.changelog-center-list 的网格间距由 8px 进一步提升为 12px。.announcement-center-meta-row 增加上边距与行间距(margin-top: 8px; gap: 6px)。main.css:20260227-site-polish-v59 -> v60assets/main.css):.changelog-center-list:overflow-wrap:anywhere + word-break:break-word + white-space:normalmin-width:0; max-width:100%,避免 flex 默认最小宽度导致的撑出。main.css:20260227-site-polish-v58 -> v59assets/main.css:overflow-y:auto; overflow-x:hidden;,修复手机端横向撑出。pre/table 增加宽度与滚动兜底,避免详情区域被横向挤压。assets/admin-dashboard.css:min-width:0; max-width:100%。max-width:100%,收敛跨页面图像/图表溢出风险。assets/status-pages.css:max-width:100%。admin/status_pages.php:admin-dashboard.js 改为 defer,减少解析阻塞。admin/downloads.php:advanced-chart-kit.js 改为 defer。DOMContentLoaded 触发,保证图表库就绪且不阻塞主文档解析。lib/bootstrap.php:app_setting_prefetch(),降低配置密集页面的重复读取开销。lib/auth.php:180s,最小 15s),降低高频 DB 查询。assets/global-button-tip.js:sessionStorage 缓存(TTL 180s),网络失败可回退过期缓存。main.css:20260227-site-polish-v57 -> v58admin-dashboard.css:20260227-admin-polish-v29 -> v30admin-dashboard.js:20260223-admin-polish-v26 -> 20260227-admin-polish-v30status-pages.css:20260227-status-v3 -> v4find . -name '*.php' -print0 | xargs -0 -n 1 php -lnode --check assets/global-button-tip.jsnode --check assets/admin-dashboard.jsadmin/user_groups.php):全部全选、全部清空、全部反选。本组全选、本组清空、本组反选。php -l admin/user_groups.php。assets/auth-pages.css 在 @media (max-width: 900px) 下将 .auth-wrap 设置为 align-items: flex-start,导致手机端登录/注册等页面整体贴顶显示。.auth-wrap 在 max-width: 900px 下恢复 align-items: center; justify-content: center;。@media (max-width: 900px) and (max-height: 760px) 回退为贴顶,避免横屏或小高度设备内容被挤压不可见。setup/index.php(统一升级认证样式版本,保持行为一致)。auth-pages.css 引用统一升级:20260227-auth-ui-v4 -> 20260227-auth-ui-v5。find . -name '*.php' -print0 | xargs -0 -n 1 php -l,无语法错误。about.php 顶栏登录态文案补齐用户组标识,和首页 index.php、简洁页 quick.php 统一为 用户名/用户组徽章。user/account.php、user/settings.php、user/tickets.php 顶栏与资料卡片用户组展示持续生效。api/build-link.php、api/history.php、api/comments.php、user/tickets.php 按组能力开关进行拦截与 UI 禁用。admin/users.php 继续展示用户组列与导出字段(group_id/group_name)。assets/admin-dashboard.css 追加 v29 按钮系统,统一 .topbar-btn、.topbar-mega-btn、.btn 在亮/暗主题下的渐变、边框、阴影、hover/active 反馈。assets/main.css 追加 v56 按钮系统,覆盖首页/关于/公告入口/通用按钮并适配 data-theme="dark"。assets/user-center.css(ui6)、assets/tickets.css(v7)统一主次按钮、顶栏按钮与暗色主题表现。assets/quick-page.css(v24)、assets/auth-pages.css(v4)、assets/status-pages.css(v3)统一按钮语言与触控尺寸。assets/global-button-tip.js(v8)统一浅色/深色视觉,修复后台深色主题下悬浮按钮“发灰/发硬”的观感问题。admin-dashboard.css:v28 -> v29main.css:v55 -> v56quick-page.css:v23 -> v24user-center.css:ui5 -> ui6tickets.css:v6 -> v7auth-pages.css:v3 -> v4status-pages.css:v2 -> v3global-button-tip.js:v7 -> v8find . -name '*.php' -print0 | xargs -0 -n 1 php -l(104 个 PHP 文件),结果无语法错误。assets/admin-dashboard.css):admin-dashboard.css 引用统一从 20260227-admin-polish-v27 升级到 20260227-admin-polish-v28。admin/user_groups.phplib/admin_sidebar_menu.php):user_groups用户组功能/admin/user_groups.php运营 / 用户与反馈lib/admin_sidebar_menu.php):user_groups 默认最小角色设为 admin,避免低权限账号看到该入口。user_groups 必保留列表,防止替换后入口丢失。php -l admin/user_groups.php。assets/admin-dashboard.css):assets/main.css):assets/quick-page.css):assets/user-center.css + assets/tickets.css):assets/status-pages.css):admin-dashboard.css:20260227-admin-polish-v27main.css:20260227-site-polish-v55quick-page.css:20260227-quick-page-v23user-center.css:20260227-user-center-ui5tickets.css:20260227-ticket-v6status-pages.css:20260227-status-v2find . -name '*.php' | xargs php -l,无语法错误。assets/admin-page-polish.css):prefers-reduced-motion 做兼容降级。admin/index.php):admin-page-polish.css,并设置页面作用域 body.admin-dashboard-page。admin/nodes.php):admin-page-polish.css(nodes-page 作用域),保留现有业务结构与权限逻辑不变。admin/datetime_format.php):admin-page-polish.css,设置页面作用域 body.admin-dtf-page。admin/status_pages.php):admin-page-polish.css,设置页面作用域 body.admin-status-page。/assets/admin-page-polish.css?v=20260227-admin-page-polish-v1。assets/auth-pages.css):prefers-reduced-motion 兼容,提升可读性与交互反馈。user/login.php、user/register.php、user/forgot-password.php、user/reset-password.php、user/verify.php 全量接入新样式与统一品牌头。admin/login.php 重构为统一认证布局;admin/forgot-password.php、admin/reset-password.php 与用户端保持一致交互结构。setup/index.php 同步接入新版认证/部署视觉体系,表单与按钮样式统一。auth-pages.css?v=20260227-auth-ui-v3,确保线上缓存环境即时拿到新 UI。admin-dashboard.css 的依赖,避免后台全局按钮样式影响认证页布局。user/* 认证页、admin/login.php、admin/forgot-password.php、admin/reset-password.php、setup/index.php(php -l)。lib/status_page.php + lib/templates/status_page.php + assets/status-pages.css + error.php):403/404/408/429/500/502/503 专属页面模板,支持中英双语、明暗主题、响应式布局、自动跳转、二维码、技术信息。error.php?code=xxx 与独立页面 status-pages/403.php、status-pages/404.php、status-pages/408.php、status-pages/429.php、status-pages/500.php、status-pages/502.php、status-pages/503.php,支持直接访问与系统内调用。admin/status_pages.php + 菜单接入):lib/bootstrap.php 接入维护模式拦截与异常处理器注册,运行时异常可落入 500 体系页面。lib/security.php、lib/auth.php 的 403 场景改为状态页渲染(API 请求保持 JSON 返回)。proxy.php 在浏览器场景支持渲染 502/503 及上游状态码专属页面,下载链路保持直通行为。lib/db.php 新增 status_page_event_logs、status_page_alerts、status_page_subscriptions 表与兼容迁移字段,形成日志/告警/订阅闭环。php -l)。lib/bootstrap.php):lib/tickets.php:仅 admin/user 工单页面加载。lib/backup_center.php:仅备份中心与系统状态页加载。lib/admin_sidebar_menu.php:仅菜单管理/检索与对应 API 加载。lib/datetime_format.php:仅时间格式管理页加载。proxy.php 请求跳过 SEO 运行时模块加载与头部计算,降低代理主链路初始化开销。SCRIPT_NAME / PHP_SELF / SCRIPT_FILENAME 差异。app_settings 跨请求缓存落地(lib/comments.php + config.php):app_setting_runtime_state)基础上新增文件缓存层:cache/app-settings-prefetch-cache.phpapp_setting_set)后自动失效文件缓存,并在已预取场景回写最新值,降低陈旧读风险。app_settings_file_cache_enabledapp_settings_file_cache_ttl_secondsAPP_SETTINGS_FILE_CACHE_ENABLED、APP_SETTINGS_FILE_CACHE_TTL_SECONDSlib/db.php + lib/tickets.php):SQL_CALC_FOUND_ROWS + SELECT FOUND_ROWS()。COUNT(*) + LIMIT 双查询模式,减少优化器负担并提升 MySQL 8 场景稳定性。fetch_users()ticket_fetch_user_list()ticket_fetch_admin_list()lib/node_selector.php):node_selector_build_front_payload() 复用同一份已解析 settings,避免单请求内重复 node_selector_load_settings()。find . -name '*.php' | xargs php -l。admin/global_manage.php):layout.admin.fab_theme_mode_defaultlayout.admin.fab_back_to_top_mode_defaultlayout.admin.fab_theme_mode_overrideslayout.admin.fab_back_to_top_mode_overridesauto / always / scrolling / idle / hidden/admin/system_status.php=scrolling),保存时自动归一化并去重。api/layout-enhancement-config.php):show_theme_toggleshow_back_to_toptheme_button_modeback_to_top_button_modehidden。assets/global-button-tip.js):auto:兼容旧行为(主题常显,返回顶部按滚动深度显示)scrolling:仅滚动中显示idle:仅停止滚动显示always / hidden:固定显隐assets/admin-dashboard.js + assets/admin-dashboard.css):data-force-visible 样式兜底,规避隐藏类残留导致的顶栏误消失。sticky 固定显示策略。20260223-admin-polish-v25 -> 20260223-admin-polish-v2620260221-global-tip-v6 -> 20260223-global-tip-v7/admin/global_manage.php):layout.admin.topbar_hide_on_scrolllayout.admin.mobile_toolbar_show_textM/R/B/N...)搜索/设置/说明/账号)api/admin-toolbar.php + assets/admin-dashboard.js):admin-toolbar API 新增 preferences 返回:topbar_hide_on_scrollmobile_toolbar_show_textadmin/nodes.php):<?xml 字面量在 short_open_tag=On 服务器被误解析为 PHP 短标签的问题。\u003C?xml ... 输出,保持导出结果一致并兼容不同 PHP 环境。20260223-admin-polish-v24 -> 20260223-admin-polish-v25admin/*.php 全部引用,确保线上立刻命中新版本 JS/CSS。assets/admin-dashboard.jssetOverlayVisible(),显式同步:hidden 属性aria-hidden 状态display(none/flex)closeAllOverlays(),强制收口所有弹层初始状态,避免旧样式缓存干扰。openOverlay() 增加可信事件保护:仅允许 isTrusted=true 的真实用户事件触发打开,规避脚本/插件误触发。Esc 一次性收口全部弹层。assets/admin-dashboard.jsmegaHelpBtn(?)megaDockHelpmegaHelpModal,内置 M/R/B/N/D/S/G/U 全部按钮含义说明,支持关闭按钮/遮罩/“我知道了”一键关闭。assets/admin-dashboard.csstopbar-help-list 样式,保证移动端与桌面端均可读。admin-dashboard.css/js 资源版本统一升级:20260223-admin-polish-v23 -> 20260223-admin-polish-v24admin/*.php 全部引用,降低桌面端旧缓存命中概率。#admin-overlay-hidden-fallback,即使旧版 CSS 缓存命中也能保证 [hidden] 弹层默认隐藏。assets/admin-dashboard.csstopbar 弹层类 .topbar-overlay-modal 使用了 display:flex,覆盖浏览器 hidden 默认隐藏行为,导致弹层初始可见。.topbar-overlay-modal[hidden] { display: none !important; },恢复 hidden 语义,页面初始不再自动显示弹层。assets/admin-dashboard.jsopenOverlay 改为“互斥打开”:打开当前弹层前会隐藏其它弹层,避免出现“全部设置 + 节点选择器”叠层。closeOverlay 改为按“是否仍有打开弹层”决定是否移除 body.topbar-overlay-open,避免遮罩状态残留。admin-dashboard.css/js 资源版本统一升级:20260223-admin-polish-v22 -> 20260223-admin-polish-v23admin/*.php 引用,确保线上浏览器立即加载修复版本。scripts/admin_dynamic_smoke.shadmin-dashboard.js 的 defer 性能约束GET /api/admin-toolbar.php(ok=true)GET /api/seo-status.php(ok=true 且 phase2 完整)scripts/dom_assert.php--xpath 与 --contains 两类检查。ADMIN_SMOKE_* 环境变量覆盖(端口、账号、启动模式、超时等)。README.mdbash -n scripts/admin_dynamic_smoke.sh 通过php -l scripts/dom_assert.php 通过scripts/admin_smoke_check.sh:admin/*.php 页面结构与关键加载项。viewport、后台壳层资源、顶栏、侧栏遮罩、脚本加载模式。docs/admin-smoke-checklist.md:FAIL=0,导出与登出类页面按 SKIP 标注。docs/admin-smoke-round-20260223.md:assets/admin-dashboard.csstopbar-mobile-dock 新增 safe-area 右下偏移,避免刘海/手势区遮挡。dashboard-body 增加底部预留,规避浮动工具条遮挡底部操作区/分页区。overscroll-behavior 与触控滚动优化,减少移动端滚动穿透和抖动。admin/audit.phpadmin/nodes.phpadmin/dynamic_island.phpadmin/downloads.phpadmin/site.phpadmin-dashboard.js 全部改为 defer。index.php 的 announcement.js、dynamic-island.js 改为 defer,降低 HTML 解析阻断。assets/admin-dashboard.jslib/proxy_service.phpsidebar_quota_summary 新增内存 + 文件双层短 TTL 缓存(默认 15 秒)。cache/sidebar-quota-summary.json。admin/*.php 中 admin-dashboard.css/js 查询参数统一升级为 20260223-admin-polish-v22。php -l 通过:lib/proxy_service.phpadmin/audit.phpadmin/nodes.phpadmin/dynamic_island.phpadmin/downloads.phpadmin/site.phpindex.phpnode --check 通过:assets/admin-dashboard.jslib/db.phpseo_redirect_rules:重定向规则、状态码、启用开关、命中次数、最后命中时间。seo_404_logs:404 聚合日志(路径+方法维度)、命中累计、首末时间、处理状态。seo_crawl_anomalies:爬虫异常聚合(爬虫、路径、状态码、异常原因)与处理状态。seo_keyword_rankings:关键词排名快照(引擎、关键词、排名、日期、结果链接、备注)。lib/seo.phpredirects 与 monitoring 两组配置,并接入保存/归一化链路:redirects.enabled / redirects.strict_pathmonitoring.log_404_enabled / monitoring.crawl_anomaly_enabled / monitoring.keyword_tracking_enabledmonitoring.keyword_targets / monitoring.max_dashboard_rows/from => /to、/legacy/* => /docs/{tail}、/a => /b |302seo_apply_runtime_redirects(...):请求进入时按规则即时跳转。seo_register_runtime_monitoring(...):请求结束时自动聚合 404 与爬虫异常。seo_apply_runtime_headers(...) 统一接入重定向 + 监控注册,确保“保存 SEO 配置后即时生效”。admin/seo.phpsave_seo 动作接入第二阶段配置保存与 301 规则同步,并记录审计。api/seo-status.phpphase2:redirects、not_found、crawl_anomalies、keywords 四类汇总。admin/seo.phpphp -l lib/seo.php 通过php -l admin/seo.php 通过php -l api/seo-status.php 通过php -l lib/db.php 通过assets/admin-dashboard.jssetupMegaToolbar(...),基于现有 .topbar 动态注入四大分区:菜单、刷新数据、一键备份、节点选择、下载记录GET /api/admin-toolbar.php 实时状态,接入 POST /api/admin-switch-role.php 角色切换。api/admin-node-monitor.php)、全局设置弹窗、角色切换弹层。topbar-right 结构兜底,脚本异常时仍可操作。assets/admin-dashboard.cssadmin/*.phpadmin-dashboard.css/js 资源版本提升为 20260223-admin-polish-v21,确保浏览器缓存环境可立即加载新顶栏能力。admin/datetime_format.php(管理员页):YYYY/YY/MM/... 等 token)。lib/bootstrap.phprequire_once __DIR__ . '/datetime_format.php';,全系统可直接调用格式化库。lib/admin_sidebar_menu.phpdatetime_manage(/admin/datetime_format.php,标签“时间日期格式”)。datetime_manage。datetime_manage,避免重建布局后丢失。admin/global_manage.phpcoreMenuIds、隐藏扩展保留列表同步加入 datetime_manage。admin/*.php/admin/datetime_format.php 侧栏兜底入口,避免动态菜单接口异常时遗漏。assets/advanced-chart-kit.jsvisibleIdx.indexOf(idx) 的高频 O(n) 查询改为 Map 定位。visibleIdx.includes(...) 改为 Set 判定。api/admin-toolbar.phpapi/admin-switch-role.phpphp -l:lib/bootstrap.php、lib/admin_sidebar_menu.php、lib/datetime_format.php、admin/global_manage.php、admin/datetime_format.php、api/admin-toolbar.php、api/admin-switch-role.php 通过。node --check:assets/admin-dashboard.js、assets/advanced-chart-kit.js 通过。lib/bootstrap.phprequire_once __DIR__ . '/seo.php',并在运行时统一执行 seo_apply_runtime_headers($config)。X-Robots-Tag,避免误抓取敏感页面。admin/seo.php:index.php / quick.php / about.php)robots.txt / sitemap.xml 预览 + 一键重建robots.txt / sitemap.xml,并记录审计日志。api/seo-status.php:index.php / quick.php / about.phpseo_render_head_tags(...):title/description/keywordslib/seo.phpseo_sitemap_entries() 改为“存在性过滤”:仅将实际存在的页面写入 sitemap,避免提交不存在路由。lib/admin_sidebar_menu.phpseo_manage(/admin/seo.php,标签“SEO 设置”)。seo_manage 设为管理员可见。admin/global_manage.phpseo_manage,确保批量整理/隐藏时不遗漏。admin/*.php)统一补上 /admin/seo.php:assets/advanced-chart-kit.js(通用高级趋势图引擎):localStorage)admin/index.php + assets/admin-dashboard.jsadmin/downloads.phploss_rates、节点快照与 granularity 透传,支持高级图表完整功能。assets/admin-dashboard.cssREADME.mdCHANGELOG.mdv1.0.130 完整变更说明与全版本索引更新。php -l:admin/*.php 全量通过。php -l:lib/bootstrap.php、lib/seo.php、index.php、quick.php、about.php 通过。node --check:assets/advanced-chart-kit.js、assets/admin-dashboard.js 通过。assets/admin-dashboard.cssadmin-dashboard.css 资源版本为 20260223-admin-polish-v19,避免浏览器缓存导致修复不生效。admin/nodes.php1h/6h/24h/7d/30ddatetime-local 起止)10s/30s/60s/关闭localStorage)admin/nodes.php 前端脚本内完成,后端仅继续提供基础时序数据接口(/api/admin-node-monitor.php)。php -l admin/nodes.php 通过。node --check(提取 admin/nodes.php 内嵌脚本)通过。lib/comments.phpapp_setting_get():新增请求内运行时缓存(app_setting_runtime_state),优先内存命中,避免同一请求内重复查询 app_settings。app_setting_prefetch():首次读取时批量加载全部配置键值,首页/简洁页/关于页与后台配置密集页面显著减少 SQL 次数。app_setting_set() 写入后同步更新运行时缓存,保证“读写同请求一致性”,并避免写后重复回库读取。lib/db.phpdb_init_should_run() + db_init_mark_done() + init_database_cached()。lib/bootstrap.php 从每请求 init_database() 改为 init_database_cached(),把高成本建表/补列/索引校验从“每次请求”降为“按 DB 指纹 + 文件指纹 + TTL(6 小时)”触发。enrich_history_rows_with_metrics():由 target_url IN (...) 改为 url_hash IN (...) 聚合,优先命中 idx_access_logs_hash,降低历史记录加载时的大表扫描风险;保留旧库兼容回退逻辑。lib/proxy_service.phpproxy_runtime_cache(),减少同请求内重复解析/重复查库。load_accel_nodes_from_settings()、load_node_templates_from_settings() 优先复用 app_setting_get 缓存通道。save_accel_nodes()、save_node_templates_to_settings() 写入后清理对应运行时缓存,避免脏读。index.php、quick.php、about.php 增加主样式 preload,加快首屏样式可用时间。about.php 增加 qnyoss.rjasj.com 的 preconnect + dns-prefetch,优化外链图片建连时间。global-button-tip.js 改为 defer 加载(覆盖前台/后台/用户中心/认证页)。admin-dashboard.js / user-center.js / tickets.js 改为 defer,降低 HTML 解析阻塞。quick.php 的 quick-page.js 改为 defer,确保页面结构先完成解析再执行交互脚本。assets/global-button-tip.js 首段提示条初始化改为 onReady + requestIdleCallback(含降级 setTimeout),降低首屏主线程争用。assets/quick-page.js 将评论模块初始化延后至空闲时段执行,优先保障节点列表与核心下载流程可交互。index.php 首屏初始化中,将 refreshHistory()、loadComments(true) 调整为空闲调度,减少首次渲染期任务拥挤。index.php、quick.php、about.php 顶部品牌 Logo 增加 decoding="async"(并设首屏优先级),降低图片解码阻塞。about.php 大图预览位增加 loading="lazy" 与 decoding="async"。db.php 文件指纹”双重校验;代码或连接配置变化后会自动触发重新校验,无需手工清理缓存文件。README.md 增加按目录校对的完整路由矩阵(admin/user/api)与完整脚本清单,修复“后台治理”条目不完整问题,减少后续维护遗漏。php -l lib/comments.php 通过。php -l lib/db.php 通过。php -l lib/proxy_service.php 通过。php -l lib/bootstrap.php 通过。php -l index.php 通过。php -l quick.php 通过。php -l about.php 通过。node --check assets/global-button-tip.js 通过。node --check assets/admin-dashboard.js 通过。node --check assets/quick-page.js 通过。admin/system_status.php 分页能力补齐:system_status_build_pager_meta() 与 system_status_paginate_rows(),统一生成页码、范围、跳转状态与分页 token。exception_page、keyops_page、alerts_page、offline_page,支持独立分页切换。COUNT + LIMIT/OFFSET),并保留异常级别/关键词筛选能力。unified-pagination,在系统运行状态页新增 ss-pager 容器,保持样式一致并兼容小屏布局。php -l admin/system_status.php 通过。admin/system_status.php 兼容性修复:system_status_path_allowed(),先按 open_basedir 白名单判断目标路径是否允许读取。/proc/cpuinfo 与 /proc/meminfo 前增加“路径允许 + 文件可读”双重守卫,避免在受限环境触发 is_readable() 警告。/proc 不可访问时自动回退到已有兜底逻辑(命令探测/运行时内存统计),页面保持可用。php -l admin/system_status.php 通过。admin/system_status.php 新增“备份功能自检”能力:run_backup_health_check,支持一键检查备份中心关键链路。system_status.backup_health_last_json,页面可展示最近执行时间、通过/失败统计与逐项明细。运行中 / 待检查 / 异常。admin/audit.php 的动作映射补齐系统运行状态相关动作(告警规则保存、重启、强制刷新、日志清理、资源释放、备份自检、失败记录)。php -l admin/system_status.php 通过。php -l admin/audit.php 通过。admin/system_status.php:lib/admin_sidebar_menu.php 新增 system_status 默认菜单项(/admin/system_status.php),并设置最小角色为 operator。lib/admin_sidebar_menu.php 导入替换核心项列表新增 system_status,避免菜单重置/导入时被误删。admin/global_manage.php 菜单核心项集合与“保留可见项”集合同步加入 system_status。assets/admin-dashboard.css 新增“系统备份与导入”二级分组强化样式(分组头/计数胶囊/子项 hover/active)。assets/admin-dashboard.css 新增 href*=\"/admin/backup_center.php\" 的统一入口样式,保证备份入口在其他后台页也保持一致视觉。php -l admin/system_status.php 通过。php -l lib/admin_sidebar_menu.php 通过。php -l admin/global_manage.php 通过。index.php):skipGroupedVisibleEnsureOnce:仅对用户主动收起动作跳过一次自动展开,避免视觉上“点了没收起”。php -l index.php 通过。node --check 通过。assets/main.css):top/right 负偏移),避免压住节点名称与下拉箭头。z-index 与 pointer-events: none,确保视觉层级稳定且不影响点击。assets/main.css 升级到 20260222-site-polish-v54,index.php、quick.php、about.php 同步更新引用。php -l index.php、php -l quick.php、php -l about.php 通过。index.php):分组展开全部、分组收起全部 两个按钮,交互不再依赖底部或分组头逐个点击。assets/main.css):admin/node_selector.php + lib/node_selector.php):show_group_toggle_actions(显示分组展开/收起顶部按钮),默认开启。assets/main.css 升级到 20260222-site-polish-v53,index.php、quick.php、about.php 同步更新引用。php -l index.php、php -l quick.php、php -l about.php、php -l lib/node_selector.php、php -l admin/node_selector.php 通过。node --check 通过。index.php):index.php + assets/main.css):assets/main.css):list + action panel 双区布局,列表区最小高度兜底,避免展开后被底部操作区挤没。一键测速 / 刷新状态 / 收藏当前列表 / 取消收藏)改为粘性显示,长列表滚动时仍可操作。assets/main.css):assets/main.css 升级到 20260222-site-polish-v52,index.php、quick.php、about.php 同步更新引用。php -l index.php、php -l quick.php、php -l about.php、php -l lib/node_selector.php、php -l admin/node_selector.php 通过。node --check 通过。index.php):latency/status,并按进度触发列表重绘。更新于 ...),测速后摘要时间戳同步刷新。assets/main.css):auto/auto/1fr 三段式布局,测速报告区独立滚动,解决“报告显示不完整”。min-height: 0,避免 grid 子项高度挤压造成裁切。assets/main.css 升级到 20260222-site-polish-v51,index.php、quick.php、about.php 同步更新引用。php -l index.php、php -l quick.php、php -l about.php 通过。node --check 通过。index.php):680px 再下调至 641px。20260222-site-polish-v50(index.php、quick.php、about.php 同步),强制刷新 main.css,避免旧样式缓存导致布局规则未生效。php -l index.php 通过。node --check 通过。index.php):1180px 下调为 980px,兼容浏览器缩放场景,PC 端更容易进入左右分栏布局。php -l index.php 通过。node --check 通过。index.php):title 同步显示状态与延迟。admin/node_selector.php + lib/node_selector.php):红点绿档阈值、红点黄档阈值、红点橙档阈值。红点颜色(优/中/高/异常)。php -l lib/node_selector.php、php -l admin/node_selector.php、php -l index.php 均通过。node --check 通过。index.php):php -l index.php 通过。node --check 通过。index.php + assets/main.css):admin/node_selector.php + lib/node_selector.php):PC 端右侧信息栏布局(right_panel_on_desktop)。assets/main.css 升级到 20260222-site-polish-v49,index.php、quick.php、about.php 同步更新引用。php -l lib/node_selector.php、php -l admin/node_selector.php、php -l index.php、php -l quick.php、php -l about.php 均通过。node --check 通过。assets/main.css):node-list-wrap 改为可收缩(min-height: 0),避免底部区域被挤压导致滚动失效。node-speed-report 在内容过长时内部滚动,不再把弹窗底部顶出可视区。assets/main.css 升级到 20260222-site-polish-v48,index.php、quick.php、about.php 同步更新引用。php -l index.php、php -l quick.php、php -l about.php 通过。node --check 通过。index.php):accel_node_selector_group_collapse_v1。version + groups 格式,兼容旧结构并为后续升级预留。php -l index.php 通过。node --check 通过。index.php + assets/main.css):admin/node_selector.php + lib/node_selector.php):按状态分组显示节点 开关。离线分组默认折叠 开关。assets/main.css 升级到 20260222-site-polish-v47,index.php、quick.php、about.php 同步更新引用。php -l lib/node_selector.php、php -l admin/node_selector.php、php -l index.php 均通过。node --check 通过。admin/node_selector.php + lib/node_selector.php):快捷筛选按钮、状态统计条、在线优先排序(离线置底)。一键测速、单节点测速按钮、测速报告面板、测速报告导出。index.php):php -l lib/node_selector.php、php -l admin/node_selector.php、php -l index.php 均通过。node --check 通过。index.php + assets/main.css):node-speed-report-*.json 文件用于运维留档。admin/node_selector.php + lib/pagination.php):在线/高可用/离线/维护中/全部,其中“在线”自动覆盖“高可用”。meta_q + meta_status),减少反复定位成本。admin.node_selector_meta 继续纳入统一分页治理体系。assets/main.css 升级到 20260222-site-polish-v46,index.php、quick.php、about.php 同步更新引用。php -l index.php、php -l admin/node_selector.php、php -l lib/pagination.php、php -l quick.php、php -l about.php 均通过。node --check 通过。index.php + assets/main.css):全部节点 / 仅在线 / 仅离线,并与原状态下拉联动。admin/node_selector.php):assets/main.css 升级到 20260222-site-polish-v45,index.php、quick.php、about.php 同步更新引用。php -l index.php、php -l admin/node_selector.php、php -l lib/pagination.php、php -l quick.php、php -l about.php 均通过。node --check 通过。index.php + assets/main.css):high/online 优先,maintenance 次之,offline 永远靠后,修复“离线节点排到前面”问题。batch_probe_concurrency)。admin/node_selector.php + lib/pagination.php):admin.node_selector_meta,支持统一后台分页配置治理。assets/main.css 升级到 20260222-site-polish-v44,index.php、quick.php、about.php 同步更新引用。php -l index.php、php -l admin/node_selector.php、php -l lib/pagination.php、php -l quick.php、php -l about.php 均通过。node --check 通过。lib/node_selector.php):visibility_scope(公开/登录/VIP)、sensitive(敏感节点)、access_note(访问说明)。admin/node_selector.php):index.php + assets/main.css):assets/main.css 升级到 20260222-site-polish-v43,index.php、quick.php、about.php 同步更新引用。php -l index.php 通过。php -l admin/node_selector.php 通过。php -l lib/node_selector.php 通过。php -l api/node-selector-status.php 通过。php -l quick.php 与 php -l about.php 通过。node --check 通过(提取后校验)。index.php:#nodeModal 从当前容器移动到 document.body。panel 的 overflow/backdrop-filter)裁切。php -l index.php 通过。node --check 通过。admin/node_selector.php:admin-shell + main-content + dashboard-body,修复主内容未跟随侧栏宽度偏移导致的覆盖错位。sidebar-brand / sidebar-brand-logo / sidebar-brand-text),修复 logo 按原始尺寸渲染导致的左侧异常放大。topbar-btn 结构并保留侧栏切换按钮,兼容现有后台脚本交互。msg show ok/err,避免局部样式不一致。php -l admin/node_selector.php 通过。index.php:admin/node_selector.php:enable_drag=1 隐藏字段,确保历史配置不会把 PC 拖拽能力意外关闭。php -l index.php 通过。php -l admin/node_selector.php 通过。node --check 通过。index.php:820px,最大高度收敛到 760px,默认居中显示。< 960px 自动禁用浮动拖拽/缩放布局,回退到响应式居中弹窗。layout version=2),自动忽略旧版缓存布局,避免历史缓存导致界面错位。php -l index.php 通过。node --check 通过。index.php + assets/main.css):触发按钮 -> 弹窗 -> 选中 -> 关闭 -> 同步隐藏 select 全链路。admin/node_selector.php):lib/node_selector.php + api/node-selector-status.php):frontend.node_selector.settings、frontend.node_selector.meta)。/api/node-selector-status.php,前端按缓存策略读取节点状态与设置。lib/bootstrap.php 接入节点选择器库,后台侧栏默认菜单接入 节点选择器(lib/admin_sidebar_menu.php、admin/nodes.php)。assets/main.css 版本号升级为 20260222-site-polish-v42(index.php、quick.php、about.php 同步更新引用)。php -l index.php 通过。php -l admin/node_selector.php 通过。php -l api/node-selector-status.php 通过。admin/backup_center.php:首页/上一页/数字页码/.../下一页/末页/页码跳转/统计摘要。admin/dynamic_island.php:index.php:historyPaginationPages 容器和前端 token 计算逻辑,支持点击数字页直接跳转。quick.php + assets/quick-page.js:admin/comments.php:php -l admin/backup_center.php 通过。php -l admin/dynamic_island.php 通过。php -l admin/comments.php 通过。php -l index.php 通过。php -l quick.php 通过。node --check assets/quick-page.js 通过。admin/backup_center.php:content-visibility、首屏渲染负担优化。500ms 防抖自动提交;关键必填字段新增实时校验提示。assets/admin-dashboard.css:📦 图标视觉标识。200ms linear,菜单展开/收起节奏更一致。admin/backup_center.php 中 admin-dashboard.css 引用升级为 20260222-admin-polish-v18。php -l admin/backup_center.php 通过。node --check assets/admin-dashboard.js 通过。admin/global_manage.php:overflow-x 裁剪兜底,避免容器外扩引发整页横向滚动。.gm-table 自动包裹 .gm-table-wrap 横向滚动容器,统一把宽表限制在局部滚动区域。.gm-table-wrap > .gm-table 重写显示策略,避免旧的表格块化规则在部分浏览器触发异常撑宽。JSON 编辑框与长文本提示补充断行规则,防止长串内容撑出右边界。admin/about.php:min-width:0/max-width:100% 约束。php -l admin/global_manage.php 通过。php -l admin/about.php 通过。assets/admin-dashboard.css):min-width: 0 / max-width: 100%,修复极端情况下文本挤压导致的横向溢出。overflow-x: hidden 与文本断行兜底,避免移动端右侧出现超出空白。max-width: calc(100vw - 6px) 保护,降低不同浏览器下的越界概率。admin/global_manage.php):max-width/min-width 约束与断行规则。word-break 兜底,避免长文本撑破容器。admin/dynamic_island.php:新增 <=680/<=560 响应式规则,内联工具条/操作条/模板工具栏统一改为单列全宽,覆盖内联 min-width 与固定宽输入导致的溢出。admin/users.php:用户头部与批量操作区改为可响应布局,小屏下自动分行,分页跳转输入支持自适应宽度。admin/site.php:更新日志管理区域补充窄屏规则(分页区、跳页区、条目头、导入行),避免右侧超出。admin-dashboard.css 版本升级为 20260222-admin-polish-v17,确保移动端立即加载新样式。php -l:admin/*.php 全量通过。node --check:assets/admin-dashboard.js 通过。admin/index.php、lib/db.php、lib/pagination.php):fetch_recent_logs_paginated(),支持按资源类型筛选 + 总量统计 + 页码与偏移计算。log_page / log_page_size,并保留现有筛选参数联动分页。admin.dashboard_logs,可在分页管理中心统一调整默认条数和角色上限。assets/admin-dashboard.js):admin-dashboard.js 版本到 20260222-admin-polish-v13,避免旧脚本缓存干扰。admin/global_manage.php:工具栏/动作区/导入区在窄屏下改为单列,全宽输入,避免操作区挤压。admin/settings_search.php:搜索条、批量操作条、分页区移动端单列化,筛选 chip 横向滚动,提升可点按性。admin/pagination.php:多工具条与监控导出区域在小屏改为全宽堆叠,分组标签与窗口标签支持横向滚动。admin/about.php:赞助筛选、图片工具与动作按钮在手机端全宽展示,表格最小宽度下调并保留横向滚动。admin/backup_center.php:标签栏改为可横向滚动,工具栏/内联表单单列化,小屏下表格阅读更稳定。README.md 完整重写,补齐当前架构、全局治理能力、排障与运维说明。v1.0.95 时间从未来时间回调到当前时间之前。php -l:admin/index.php、admin/global_manage.php、admin/settings_search.php、admin/pagination.php、admin/about.php、admin/backup_center.php、lib/db.php、lib/pagination.php 通过。node --check:assets/admin-dashboard.js 通过。admin/global_manage.php):深色模式切换按钮 + 返回顶部按钮。api/layout-enhancement-config.php):show_back_to_top 与 show_theme_toggle 开关,前端按配置动态启用。assets/global-button-tip.js):admin-theme-dark),提升表格、侧栏、面板在暗色下可读性。index.php、quick.php、about.php):global-button-tip.js 引用版本统一升级为 global-tip-v6,避免浏览器缓存导致新能力不生效。php -l 语法检查通过(含新增 api/layout-enhancement-config.php)。assets/global-button-tip.js 执行 node --check 语法检查通过。lib/admin_sidebar_menu.php、admin/global_manage.php、assets/admin-dashboard.js):配置中心 -> 系统备份与导入,并兼容历史配置(旧 数据安全 分组与旧链接自动归一)。admin/backup_center.php):admin/settings_search.php):admin/*.php):admin-dashboard.js 版本到 20260222-admin-polish-v12,确保侧栏新激活/展开逻辑立即生效。lib/admin_sidebar_menu.php、admin/backup_center.php、admin/settings_search.php、admin/global_manage.php 已完成 PHP 语法校验。admin/*.php 全量语法校验通过。assets/admin-dashboard.js 已完成 node --check 校验。admin/backup_center.php):lib/backup_center.php 现有能力:策略保存、手动备份、上传备份、批量文件治理、导入/恢复任务、审计链路、回收站清理。admin/global_manage.php、lib/admin_sidebar_menu.php、api/admin-sidebar-menu.php、assets/admin-dashboard.js、assets/admin-dashboard.css):lib/admin_sidebar_menu.php、admin/settings_search.php):admin/*.php):admin-dashboard.css/js 版本号,确保侧栏新交互与样式可立即生效。lib/admin_sidebar_menu.php、api/admin-sidebar-menu.php、admin/global_manage.php、admin/settings_search.php、admin/backup_center.php 已完成 PHP 语法校验。assets/admin-dashboard.js 已完成脚本语法校验(node --check)。admin/pagination.php):lib/pagination.php):admin/pagination.php、lib/pagination.php 已完成 PHP 语法校验。admin/pagination.php 内联脚本已完成语法检查。admin/pagination.php):lib/pagination.php):admin/pagination.php 与 lib/pagination.php 已完成 PHP 语法校验。admin/pagination.php 内联脚本已完成语法检查。admin/pagination.php):overall / module / actor,便于运营与运维做定向排查。admin/pagination.php):admin/pagination.php、lib/pagination.php、admin/settings_search.php 已完成 PHP 语法校验。admin/pagination.php 内联脚本已完成语法检查。admin/settings_search.php):sync_selected_keys,将当前勾选集写入服务端存储,支持跨页/跨端保持一致。fetch + sendBeacon 双通道,降低跳页时勾选丢失概率。admin.settings_search.selection.admin_*),避免批量删除误清空勾选状态。lib/pagination.php、admin/pagination.php):admin/settings_search.php、admin/pagination.php、lib/pagination.php 已完成 PHP 语法校验。admin/settings_search.php 与 admin/pagination.php 内联脚本已完成语法检查。admin/settings_search.php):prefix*),并内置关键系统配置保护。admin/pagination.php、lib/pagination.php、admin/*、user/tickets.php):lib/pagination.php):app_settings 中扫描 pagination.* 配置并自动纳入分页管理。group / label / description,用于大规模模块管理时保持可读性。admin/pagination.php):group / label / description,避免跨环境迁移后语义丢失。admin/global_manage.php、lib/admin_sidebar_menu.php、assets/admin-dashboard.js):menu_manage / settings_search / pagination,避免批量操作误隐藏关键治理入口。id 兜底)并与服务端排序一致。admin/settings_search.php):Ctrl+K、Alt+Home/End、左右键翻页、Ctrl+G)。lib/pagination.php、admin/pagination.php):admin.settings_search 与 admin.dynamic_versions 两个分页模块,纳入“分页管理”统一配置。admin/dynamic_island.php、lib/dynamic_island.php):lib/admin_sidebar_menu.php、assets/admin-dashboard.js、admin/global_manage.php、admin/pagination.php、admin/dynamic_island.php):id 兜底比较,进一步降低同序项前端渲染乱序概率。admin/global_manage.php):admin/global_manage.php、lib/admin_sidebar_menu.php):download_sidebar_snapshot 与 download_sidebar_snapshots 下载动作。admin/global_manage.php 内联脚本):lib/admin_sidebar_menu.php、admin/global_manage.php):user/tickets.php、assets/tickets.js、assets/tickets.css):page_size 时自动恢复上次设置)。←/→ 上下页、Alt+Home 首页、Alt+End 末页、Ctrl+G 聚焦跳页输入框。id 与状态容器,支持快捷键与无障碍状态同步。tickets.css?v=20260221-ticket-v5。tickets.js?v=20260221-ticket-v5。admin/global_manage.php、lib/admin_sidebar_menu.php):lib/admin_sidebar_menu.php):id 兜底比较,避免同序同名项在不同请求中出现不稳定顺序。/admin/global_manage.php#globalManageSearchInput),便于快速进入后台设置搜索。lib/pagination.php、user/tickets.php、admin/pagination.php):user.tickets 分页模块,纳入后台“分页管理”统一治理。page_size,避免操作后分页上下文丢失。lib/admin_sidebar_menu.php、admin/global_manage.php、api/admin-sidebar-menu.php):admin/global_manage.php):assets/admin-dashboard.js、assets/admin-dashboard.css):hashchange 联动,菜单切换到锚点时高亮即时更新。admin-dashboard.css?v=20260221-admin-polish-v15。admin-dashboard.js?v=20260221-admin-polish-v10。admin/pagination.php):admin/global_manage.php + lib/admin_sidebar_menu.php):assets/admin-dashboard.js + api/admin-sidebar-menu.php + assets/admin-dashboard.css):admin-dashboard.css?v=20260221-admin-polish-v14。admin-dashboard.js?v=20260221-admin-polish-v9。quick.php、assets/quick-page.js、assets/quick-page.css):frontend.quick_nodes),并新增本地分页记忆(页码/每页条数)。quick-page.css 升级为 v=20260221-quick-page-v22,quick-page.js 升级为 v=20260221-quick-page-v23。admin/pagination.php):index.php、api/history.php、lib/db.php、quick.php、assets/quick-page.js):/api/history.php 升级为分页接口,返回 page/page_size/total/pages/range_start/range_end/has_more。export_scope=all 导出全部筛选结果,不再受隐式分页上限限制。index.php):index.php):assets/main.css):main.css 资源版本升级为 v=20260221-site-polish-v40,前台页面同步更新引用以避免缓存影响显示。admin/global_manage.php):index.php + assets/announcement.js):#announcementPortal 新增一组布局数据属性,把后台子模块开关与顺序传入运行时脚本。announcement.js 在渲染公告弹窗时按配置动态控制头部/正文/底部和动作按钮显隐与顺序。v=20260221-announcement-v9,避免缓存导致旧逻辑未刷新。admin/global_manage.php):index.php):assets/main.css、index.php、quick.php、about.php):main.css 资源版本升级为 v=20260221-site-polish-v39,三大前台页面同步更新引用,避免缓存导致样式不生效。admin/global_manage.php):index.php):admin/global_manage.php):index.php):admin/global_manage.php):index.php):uiDialogModal 与 shareDialogModal 全部新增子项接入后台显隐与顺序配置。flex column),确保后台“位置排序”在前端真实生效。admin/global_manage.php):index.php):assets/main.css、index.php、quick.php、about.php):version-info-card 栈式布局,确保版本弹窗子模块“排序”在前端真实生效。main.css 资源版本升级为 v=20260221-site-polish-v38,三大前台页面同步更新引用,避免缓存导致样式不生效。admin/global_manage.php):quick.php):about.php):admin/global_manage.php):announcementPortal)开关。index.php):admin/global_manage.php):index.php):admin/global_manage.php):index.php:接入顶部栏全量控制、页面链接动态排序、设置面板排序、灵动岛后台强制隐藏、公告按钮显隐。quick.php:接入顶部栏全量控制、页面链接动态排序、设置面板显隐与排序。about.php:接入顶部栏全量控制、页面链接动态排序、设置面板显隐与排序、Hero/锚点显隐与排序。assets/quick-page.css 新增 quick-page-stack 结构,支持简洁页设置面板和主内容区顺序调节。assets/main.css 新增 about-module-stack,支持关于页设置面板、Hero、锚点顺序联动。assets/dynamic-island.js 增加 data-layout-visible 强制隐藏逻辑,后台关闭灵动岛后前端不会再次自动拉起。main.css 升级为 v=20260221-site-polish-v37(index.php、quick.php、about.php)。quick-page.css 升级为 v=20260221-quick-page-v21(quick.php)。dynamic-island.js 升级为 v=20260221-dynamic-island-v5(index.php)。admin/global_manage.php):/admin/global_manage.php,用于集中管理前台页面布局策略。global_layout_save)。index.php:接入导航显示控制与首页模块顺序控制,新增模块堆叠容器并支持样式级隐藏/排序。quick.php:接入导航与模块控制,评论区/声明区正式迁移到全局管理,同时兼容历史字段读取。about.php:接入导航与模块控制,锚点导航按可见模块自动显示,卡片支持统一排序与隐藏。admin/global_manage.php、quick.php、admin/site.php):quick.layout_show_comments 与 quick.layout_show_signature 与新字段双向同步,避免历史部署配置失效。admin/site.php 中“简洁页评论/声明开关”迁移为指引入口,避免旧页面覆盖新配置。admin/*.php):assets/main.css、admin/global_manage.php):.home-module-stack 支持主页面模块纵向排序。assets/quick-page.js、assets/quick-page.css):quick.php、assets/quick-page.js、assets/quick-page.css):/api/comments.php:支持最新/最热排序、发布评论、点赞、分页加载更多。admin/site.php):quick.layout_show_comments 与 quick.layout_show_signature 两个配置项,可独立控制 /quick.php 的评论区与声明区显示。quick.php):quick-page.css 升级为 v=20260221-quick-page-v20。quick-page.js 升级为 v=20260221-quick-page-v21。lib/upload_policy.php、admin/upload_policy.php):uploads 目录,自动识别评论、工单、赞助、灵动岛图标等来源,并支持“其他上传”兜底分类。app_settings):支持别名、来源覆盖、标签、备注、隐藏标记、软删除标记与更新时间。admin/upload_policy.php):admin/*.php):lib/dynamic_island.php、admin/dynamic_island.php、assets/global-button-tip.js):lib/dynamic_island.php、admin/dynamic_island.php):lib/dynamic_island.php、admin/dynamic_island.php、assets/global-button-tip.js):{label} 占位符)与模板图标类型。api/global-tip-config.php、lib/dynamic_island.php):global-button-tip.js 升级为 v=20260221-global-tip-v5,确保图标与模板能力立即生效。assets/global-button-tip.js):admin/dynamic_island.php、lib/dynamic_island.php、assets/global-button-tip.js):灵动岛玻璃 / 极简紧凑 / 描边高对比。admin/dynamic_island.php、lib/dynamic_island.php、api/global-tip-config.php、assets/global-button-tip.js):global-button-tip.js 升级为 v=20260221-global-tip-v4,确保新滚动与样式能力立即生效。assets/main.css):body[data-theme="dark"] 增加深色专用背景渐变,移除浅色顶部底色在暗色主题下造成的“发白/雾化”观感。background-attachment: fixed,避免滚动时出现明暗断层。assets/main.css):.panel::before 在深色主题下的白色高光强度,修复卡片顶部“白色横带”问题。index.php、about.php、quick.php):main.css 升级为 v=20260221-site-polish-v36,确保深色背景修复即时生效。assets/global-button-tip.js):lib/dynamic_island.php、admin/dynamic_island.php、api/global-tip-config.php):/api/global-tip-config.php,前台按后台参数实时生效,失败时自动回退默认值。index.php、assets/main.css):themeToggle 回归顶部导航,与语言/设置按钮同层级,减少设置面板拥挤。index.php、assets/main.css):index.php):main.css 升级为 v=20260221-site-polish-v35,确保布局与顶部按钮调整立即生效。assets/main.css):flex: 1 改为自适应宽度,按钮回归到品牌区旁侧,整体对齐更自然。topbar-links 增加 flex: 1),减少中间空洞。assets/main.css):assets/main.css):assets/main.css):index.php):main.css 升级为 v=20260221-site-polish-v33,确保新视觉样式即时生效。index.php):assets/main.css):ui-settings-grid、ui-settings-section、ui-settings-actions。index.php):main.css 升级为 v=20260221-site-polish-v32,确保设置面板新布局与移动端适配立即生效。lib/dynamic_island.php、assets/dynamic-island.js):can_toggle_proxy 仅按按钮配置返回导致未登录用户也显示按钮的问题,改为按“按钮配置 + 登录/管理员/免登录启停策略”综合判定真实可操作权限。lib/dynamic_island.php、admin/dynamic_island.php):quick_actions.show_topbar_proxy_toggle(默认开启)。显示首页顶部“灵动岛开关”按钮。quick_actions.show_topbar_proxy_toggle 实时控制按钮显示。assets/main.css、index.php、assets/dynamic-island.js):灵动岛 开/关,降低视觉噪音。aria-label,提升可访问性。assets/main.css):index.php):main.css 升级为 v=20260221-site-polish-v31。dynamic-island.js 升级为 v=20260221-dynamic-island-v4。index.php):topbar-settings 区域新增 #dynamicIslandProxyToggle,位置与“设置”按钮同排。assets/dynamic-island.js):runtime.proxy_enabled 自动展示“灵动岛:开/关”并同步 aria-pressed。toggle_proxy 动作(携带显式 enabled 值),成功后即时刷新快照并提示结果。assets/main.css):.dynamic-island-proxy-toggle 样式与开/关态颜色区分(开=绿色、关=红色)。index.php):main.css 升级为 v=20260221-site-polish-v30。dynamic-island.js 升级为 v=20260221-dynamic-island-v3,确保按钮逻辑与样式立即生效。assets/global-button-tip.js):prefers-reduced-motion 降级。assets/global-button-tip.js):click 捕获,移除 pointerdown + click 双触发导致的重复刷新。global-button-tip.js 统一升级为 v=20260221-global-tip-v2,强制浏览器刷新最新样式与动画。assets/global-button-tip.js):button / input[type=button|submit|reset] / [role=button] / a[href])。aria-label、按钮文本等自动提取提示文案,避免出现空提示。<script src="/assets/global-button-tip.js?v=20260221-global-tip-v1" defer></script>,确保所有界面按钮点击都能收到提示反馈。lib/dynamic_island.php、api/dynamic-island-action.php):toggle_proxy / switch_node / copy_template / speed_test / diagnose / clear_cache 会严格受后台“快捷按钮配置”约束。toggle-proxy-disabled 权限错误码,并在动作 API 中映射为 403,避免按钮关闭后仍可绕过调用。assets/dynamic-island.js、assets/main.css):show_queue_badge 配置,并优化文案为“还有 N 个任务等待”。index.php、about.php、quick.php):main.css 升级为 v=20260221-site-polish-v29。dynamic-island.js 升级为 v=20260221-dynamic-island-v2,确保权限修复与角标/LFS 显示变更即时生效。index.php、assets/dynamic-island.js、assets/main.css):api/dynamic-island.php 获取实时状态,通过 api/dynamic-island-action.php 执行快捷动作并同步快照。admin/dynamic_island.php、assets/admin-dashboard.js):lib/dynamic_island.php、lib/bootstrap.php、api/dynamic-island.php、api/dynamic-island-action.php):proxy.php、api/build-link.php、api/offline-prefetch.php):proxy-disabled/503。lib/announcement.php):mark_all_read 仅处理前 50 条公告导致“弹窗一键忽略全部”漏标记的问题。popup-ignore-all”时,改为按弹窗候选范围扩大处理(最多 240 条),并按用户/设备/区域/来源受众规则匹配后统一标记为已忽略。admin/site.php、lib/announcement.php、api/announcement.php、assets/announcement.js、assets/main.css):site.announcement_ignore_all_enabled,可控制前台是否展示“一键忽略全部”。global_show_ignore_all 字段;mark_all_read 接口新增 source 标记,便于区分“公告中心一键已读”与“弹窗一键忽略全部”事件来源。admin/site.php):open_basedir 允许路径检查,并对 realpath() 使用安全调用,避免限制目录触发 Warning 刷屏。open_basedir 限制会立即停止上探,不再继续探测 /www、/ 等受限目录。index.php):announcement.js 升级为 v=20260221-announcement-v8,确保新按钮与行为修复立即生效。admin/site.php):CHANGELOG.md/README.md 时会使用当前配置并写入审计。assets/main.css):color-mix 兼容不足时出现透明穿透。index.php、about.php、quick.php):main.css 升级为 v=20260221-site-polish-v27,确保前台弹窗显示修复即时生效。assets/announcement.js、lib/announcement.php):aria-label 同步本地化,避免混合语种体验。admin/site.php、lib/announcement.php):site.announcement_no_remind_enabled 配置项并下发到前台 bootstrap。admin/site.php):index.php):announcement.js 升级为 v=20260221-announcement-v7,确保弹窗汉化与开关逻辑立即生效。assets/main.css):88vh、移动端 90vh)并保持 overflow: hidden,避免整卡滚动导致头部区域滑出可视区。overflow: hidden,仅允许列表区/详情区内部滚动,交互与公告中心模板保持一致。index.php、assets/announcement.js):index.php、about.php、quick.php):main.css 升级为 v=20260221-site-polish-v26。announcement.js 升级为 v=20260221-announcement-v6,确保公告中心详情滚动修复及时生效。admin/site.php):index.php、assets/main.css):index.php、assets/main.css):lib/comments.php):app_setting_set() 新增 UTF-8 归一化处理。Incorrect string value 时自动检查并修复 app_settings 为 utf8mb4 后重试,避免中文内容写入触发致命错误。admin/site.php):CHANGELOG.md、README.md、或“两个文件联合识别(优先 CHANGELOG)”。.md/.markdown/.txt 后自动识别并导入更新日志条目。admin/site.php):site.changelog_entries、site.changelog_markdown、site.changelog_title 与 site.app_version。admin/site.php):site.changelog_entries)。site.app_version,减少手工维护版本号。admin/site.php):assets/main.css):#resultTable 固定列宽(第 1/2/4 列),避免详情行继承窄列宽导致布局塌陷。result-detail-cell 在移动端改为 width: 100%,元信息面板可完整占宽显示。assets/main.css):result-meta-row 在移动端改为“标签 + 值”同一行栅格(90px + 自适应),避免逐项纵向拉长造成空白过大。index.php、about.php、quick.php):main.css 升级为 v=20260221-site-polish-v22,确保移动端修复即时生效。assets/main.css、index.php):index.php):renderHistoryRows() 输出与首屏 PHP 渲染保持一致的卡片结构与字段标签,筛选/刷新后样式一致。index.php、about.php、quick.php):main.css 升级为 v=20260221-site-polish-v21。assets/admin-dashboard.css):fixed + 100dvh),避免右侧内容滚动到底时左侧菜单“上移”。assets/admin-dashboard.js):localStorage),桌面刷新后保持用户选择。aria-expanded/aria-label/title,交互语义更清晰。title,收缩态下可悬停查看名称。admin/account.php):admin/*.php):admin-dashboard.css 升级为 v=20260221-admin-polish-v13。admin-dashboard.js 升级为 v=20260221-admin-polish-v7,减少旧缓存导致的样式/行为不一致。index.php):download-progress + progressBar/progressText 容器)。admin/downloads.php):CSS.escape 的硬依赖,改为 form.elements.namedItem() 取字段。index.php):admin/downloads.php):CSV / JSON / Excel(.xls) / PDF(打印页)。lib/db.php):download_log_marks 表,用于下载记录处理标记(已处理/忽略)、备注、操作人、更新时间。index.php):metadataExpectedSize(),下载任务可优先使用元信息中的文件大小(如 1.71 GB)作为预估总大小。reset 后总大小被清空的问题,下载开始/重试后会重新注入元信息总大小,避免再次出现 ?。release/archive 或元信息 > 5MB)但响应类型为文本且体积很小,直接判定失败并提示链接异常,不再误显示“下载完成”。index.php):resolveDownloadUrl(),下载任务改为强制优先使用站内代理下载地址(proxy_url + download=1)。download_url 字段或回退场景误用节点直连 URL,降低“下载到页面文件/提示页”的概率。index.php):? 且 100% 的误导信息。text/html/text/plain/json 且体积很小,判定为无效下载并提示错误,不再标记为成功。index.php、assets/main.css):uiDialogModal),支持确认/输入/提示模式。confirm/prompt/alert 全部替换为站内弹层。shareDialogModal):展示分享链接、二维码、微博/X 快捷入口、一键复制。modal-open 滚动锁定逻辑。index.php):复制 按钮增加失败兜底:复制失败时自动打开分享弹层,不再静默失败。分享 按钮改为站内分享弹层,不再依赖浏览器原生弹出窗口。a 标签方式,替代 window.open 异步调用,减少移动端拦截导致的“无反应”。index.php、about.php、quick.php):main.css -> v=20260221-site-polish-v19api/download-task-event.php):开始/继续/暂停/停止/重新下载/重试/完成/失败/删除/缓存后下载。admin:用户名,普通用户写入用户昵称,未登录写入 guest。access_logs,直接纳入现有审计与导出链路。index.php):缓存后下载 改为走同一下载状态机(不再走旧 streamDownload 逻辑)。admin/downloads.php):下载控制动作,可单独查看前端状态机事件。全部筛选范围扩展为 下载 + 离线缓存 + 下载控制动作。index.php、assets/main.css):未开始 -> 下载中 -> 暂停中 -> 下载完成 / 下载失败。开始下载暂停 + 停止继续 + 停止重新下载重试 + 删除任务dl-...),并在面板中显示当前状态。Range,服务端不支持时自动回退全量下载)。index.php):下载命令(复制 curl/wget)与 缓存后下载 流程。admin/downloads.php + 多个 admin/*.php):下载管理(全后台侧边栏可见)。index.php、about.php、quick.php):main.css -> v=20260221-site-polish-v18index.php、assets/main.css):result-table-wrap,单独关闭横向滚动。index.php):下载命令 按钮:一键复制 curl/wget 命令。缓存后下载 按钮:先离线缓存再执行下载。api/file-metadata.php、index.php):probe_upstream 源站探测(HEAD)能力:无缓存时自动尝试获取 文件大小/最后修改。index.php、about.php、quick.php):main.css -> v=20260221-site-polish-v17index.php):colspan=4)”,元信息改为整行展示,不再受链接列宽挤压。result-main-row,详情行添加 result-detail-row,便于精细化样式控制。assets/main.css):.url 换行与溢出策略,减少长链接导致的布局塌陷。index.php、about.php、quick.php):main.css -> v=20260221-site-polish-v16api/file-metadata.php):MD5/SHA1/SHA256(默认不计算,避免大文件阻塞)。api/offline-prefetch.php):already-cached,未命中时执行上游拉取并写入缓存。action_type=prefetch),便于后续审计与统计。index.php):刷新元信息、哈希校验、加入队列、立即缓存。localStorage 持久化)。assets/main.css):index.php、about.php、quick.php):main.css -> v=20260221-site-polish-v15assets/admin-dashboard.css):main-content 横向可见溢出导致的整页左右滚动,改为容器内裁剪(保留表格局部滚动)。min-width: 0 + max-width: 100%),避免网格/卡片最小宽度把页面撑宽。admin/audit.php):assets/user-center.css、assets/tickets.css、assets/quick-page.css、assets/auth-pages.css):overflow-x 约束 + 关键容器 min-width:0)。*.php):admin-dashboard.css -> v=20260221-admin-polish-v12user-center.css -> v=20260221-user-center-ui4tickets.css -> v=20260221-ticket-v4quick-page.css -> v=20260221-quick-page-v18auth-pages.css -> v=20260221-auth-ui-v2assets/auth-pages.css):100dvh、小屏按钮全宽、输入控件触控尺寸优化、窄屏间距收敛。user/login.php、user/register.php、user/forgot-password.php、user/reset-password.php、user/verify.php、admin/forgot-password.php、admin/reset-password.php):auth-pages.css。setup/index.php):lib/db.php):admin_audit 新增环境与安全字段:request_ip、user_agent、session_id、result_state、prev_hash、record_hash。write_admin_audit() 升级为自动记录操作 IP / 客户端 / 会话,并写入哈希链(前序哈希 + 当前记录哈希)。admin_audit_calculate_row_hash()、admin_audit_verify_row_hash()。admin_audit_backfill_security_columns()(每次初始化最多回填 120 条),兼容旧环境升级。admin/audit.php、lib/db.php):操作 IP、会话 ID 检索。哈希状态 筛选(全部/已签名/未签名),便于排查历史未签名数据。Excel(.xls),并保留 CSV。audit_export_csv / audit_export_excel)。admin/audit.php):node_id / user_id 支持直接跳转到对应管理页面。admin/audit.php):old/new 差异解析:支持从审计详情 JSON 自动识别 old_value/new_value(含同义键)并提取变更。admin/audit.php):admin/audit.php):lib/db.php):admin_audit 新增审阅字段:reviewed_by_admin_id、reviewed_at,并增加 reviewed_at 索引。fetch_admin_audit() 新增 reviewed 筛选(全部/已审阅/未审阅),并联表返回审阅人用户名。admin_audit_mark_reviewed()、admin_audit_mark_unreviewed()。admin/audit.php):audit_mark_reviewed / audit_mark_unreviewed)。admin/audit.php):admin/audit.php):reviewed 状态字段,保证模板复用完整。admin/audit.php):admin/audit.php、lib/db.php):admin/audit.php):lib/db.php):fetch_admin_audit() 扩展支持 actions[]/target_keyword/created_from/created_to/detail_keyword/detail_regex/result 等过滤参数。action/admin_id/target_user_id),避免历史调用中断。lib/comments.php):comment_normalize_report_reason(),统一清洗举报原因(去控制字符、限长 200)。涓嶅綋鍐呭)为正常中文“不当内容”。index.php、assets/main.css):prompt 改为页面内举报弹窗。Ctrl/Cmd + Enter 提交举报、Esc 关闭弹窗,并统一接入页面滚动锁。Ctrl/Cmd + Enter 时不再误触发“批量生成链接”。index.php、about.php、quick.php):main.css 升级到 v=20260221-site-polish-v14,确保举报弹窗和样式修复立即生效。index.php、assets/main.css):prompt 编辑方式,改为页面内自定义弹窗(双栏编辑 + 预览)。Ctrl/Cmd + Enter 在编辑弹窗内直接保存;支持 Esc 关闭弹窗。lib/comments.php、api/comments.php、index.php):upload_image,上传文件写入 uploads/comments/YYYYMM/。api/comments.php、index.php、assets/main.css):content_html,后端按安全 Markdown 解析后返回。index.php、about.php、quick.php):main.css 升级到 v=20260221-site-polish-v13,确保评论弹窗与 Markdown 样式立即生效。lib/security.php):request_ip() 从仅使用 REMOTE_ADDR 改为“可信代理头优先 + 远端地址兜底”。CF-Connecting-IP、True-Client-IP、X-Forwarded-For、X-Real-IP、X-Client-IP、Client-IP。X-Forwarded-For 支持多 IP 链路解析,优先选择公网 IP,避免内网地址污染定位结果。lib/comments.php、api/comments.php、index.php):actor_type,后端按所选身份写入评论归属(admin_id/user_id)。lib/comments.php、api/comments.php、index.php、assets/main.css):lib/comments.php、api/admin-comments.php、admin/comments.php):lib/comments.php):ip-api -> ipwho.is,优先返回中文地域结果。index.php、about.php、quick.php):main.css 升级到 v=20260221-site-polish-v12,确保评论区新增控件与维度样式立即生效。lib/comments.php):ipwho.is / ip-api)”,提升城市级命中率。comments.ip_geo_lookup、comments.ip_geo_timeout_ms、comments.ip_geo_cache_ttl_hours。lib/db.php):comment_ip_geo_cache,按 IP 缓存地域结果与来源,减少重复请求并提升响应稳定性。lib/comments.php):ip_region 改为调用新版定位流程,后续前台/后台展示地域信息更精细。index.php、api/comments.php、lib/comments.php):api/comments.php、lib/comments.php、lib/db.php):author_type/author_name/author_avatar_url/author_badge)与 viewer 当前查看者信息。comments.admin_id(兼容旧库自动补列),用于精确识别管理员评论身份。admin_set_status(隐藏/显示/审核通过)与 admin_delete(删除评论及子回复)。index.php、assets/main.css):index.php、about.php、quick.php):main.css 升级到 v=20260221-site-polish-v11,确保头像与身份新样式即时生效。admin/comments.php):admin/comments.php、api/admin-comments.php、lib/comments.php):admin/comments.php、api/admin-comments.php、lib/comments.php):admin/export_comments.php、lib/comments.php):export_comments.php 支持按 ids 导出选中评论。index.php、assets/main.css):assets/main.css):is-selected 选中态浅蓝底。assets/main.css、index.php):aria-pressed 与前端选中态同步逻辑,交互语义更完整。index.php、about.php、quick.php):main.css 升级到 v=20260221-site-polish-v10,确保评论区新样式立即生效。assets/main.css、assets/admin-dashboard.css、assets/user-center.css、assets/quick-page.css、assets/tickets.css):*.php):main.css -> v=20260221-site-polish-v9admin-dashboard.css -> v=20260221-admin-polish-v11user-center.css -> v=20260221-user-center-ui3quick-page.css -> v=20260221-quick-page-v17tickets.css -> v=20260221-ticket-v2admin/index.php):Enter/Space)。admin/index.php):admin/index.php、assets/admin-dashboard.js):dashboardDetailData 新增 summary_rows、quota_rows、log_rows。summary/quota/logs 三类数据集渲染,避免新增卡片点击后无明细。admin-dashboard.js 升级到 v=20260221-admin-polish-v6。admin/index.php):data-stat-* 元信息与键盘可访问支持(Enter/Space 打开明细)。admin/index.php、assets/admin-dashboard.css、assets/admin-dashboard.js):Esc、点击遮罩、点击关闭按钮关闭弹窗,并在关闭后恢复焦点。admin/index.php、assets/admin-dashboard.js):dashboardDetailData JSON,包含趋势、节点、平台、资源类型、热门资源等明细行。admin-dashboard.css 升级到 v=20260220-admin-polish-v10。admin-dashboard.js 升级到 v=20260220-admin-polish-v5。assets/announcement.js、index.php):button 改为 div,避免触发全局 button:hover 的位移与亮度滤镜动画。v=20260220-announcement-v5,确保浏览器加载最新修复。assets/main.css):announcement-backdrop 下沉层级,announcement-card 提升层级,确保卡片在遮罩之上。assets/main.css、assets/announcement.js、index.php):body 扩展到 html + body。modal-open 状态,避免多弹窗并存时状态互相覆盖。about.php、assets/main.css):sponsor-lightbox-open 到 html + body。index.php、about.php、quick.php):main.css 引用升级到 v=20260220-site-polish-v8,减少旧缓存导致的“修复未生效”。assets/main.css):CHANGELOG.md):admin/mail.php):{{变量名}})。lib/mail.php):user/register.php)user/verify.php)lib/comments.php)lib/node_monitor.php)user/forgot-password.php(申请重置链接)user/reset-password.php(通过 token 重置密码)user/login.php)admin/forgot-password.php(申请重置链接)admin/reset-password.php(通过 token 重置密码)admin/login.php)lib/auth.php、lib/db.php)。user_password_resetsadmin_password_resetssql/gh-proxy-app.sql)。index.php、assets/announcement.js、api/announcement.php、lib/announcement.php):action=mark_all_read,服务端持久化用户公告阅读状态。index.php、assets/main.css、assets/announcement.js、lib/announcement.php):published -> 已发布、offline -> 已下线)。ArrowUp/ArrowDown/Home/End)与更完整的焦点回退。mark_read)并持久化,减少重复未读提醒。admin/nodes.php、lib/node_monitor.php):access_logs 聚合):admin/index.php):fetch_dashboard_stats() 提供,支持节点配置与监控状态联动(lib/db.php)。admin/nodes.php):lib/node_monitor.php):lib/mail.php):admin/mail.php):mail.notify_enabled 全局开关与“一键关闭通知”按钮。lib/comments.php、lib/node_monitor.php)。lib/security.php + lib/bootstrap.php):GET/HEAD/OPTIONS 请求校验 Origin/Referer 是否同源。403(API 返回 csrf-origin-mismatch)。admin/site.phpadmin/upload_policy.phpindex.php)新增“复制本次成功链接”:quick.php + assets/quick-page.js)新增“复制最佳链接”:assets/announcement.js):setInterval。index.php):textContent 输出错误信息。assets/admin-dashboard.js):aria-expanded,移动端开合状态更准确。assets/main.cssassets/admin-dashboard.cssuser/tickets.phpadmin/tickets.phpindex.php、user/account.php、user/settings.php)。assets/admin-dashboard.js 兜底注入)。lib/tickets.phppending_admin / pending_user / closed。low / normal / high / urgent。send_or_queue_email)。support_ticketssupport_ticket_messageslib/db.php、sql/gh-proxy-app.sql)。/uploads/tickets/YYYYMM/lib/tickets.php)。lib/markdown.php)。fetch_dashboard_stats() 提供(lib/db.php、admin/index.php)。index.php、quick.php、about.php)。admin/*.php、user/*.php)。admin/login.php)。assets/user-center.css)。user/settings.php、user/account.php、user/tickets.php)。lib/upload_policy.php):jpg,jpeg,png,webp,gif)。admin/site.php):app_settings(upload.image_*)。admin/upload_policy.php):站点标识 页面移除上传限制表单,改为跳转提示,避免功能混杂。lib/tickets.php、user/tickets.php、admin/tickets.php)。admin/about.php,含前端批量导入时的数量/大小预校验)。admin/about.php)user/settings.php、user/account.php、assets/user-center.css、assets/user-center.js)assets/user-center.css,重构背景层、顶部栏、卡片、表单、按钮与深色模式对比。Ctrl/Cmd + S 快捷保存、未保存变更提示、恢复默认并保存。user-mobile-mode 侧栏收起策略、用户页 Logo 尺寸兜底、已登录菜单项统一、真实缓存统计值展示。quick.php)复制(左)+ 打开下载(右)。direct(本站主节点)前缀相同,前台节点卡片自动去重,优先保留主节点。direct 节点改为实时探测本站资源,不再固定复用旧延迟值。quick-page.css:20260214-quick-page-v14quick-page.js:20260214-quick-page-v18quick.php、assets/quick-page.css、assets/quick-page.js)关于本项目联系我赞助我index.php 对齐(同一套布局与分组),仅保留页面跳转行为差异。quick-page.css:20260214-quick-page-v14quick-page.js:20260214-quick-page-v18admin/mail.php、admin/cache.php、admin/nodes.php 切换为统一后台布局(侧栏/顶部/移动端侧栏交互)。256,支持更大节点池。clear_cache_files() / clear_expired_cache_files() 仅清理代理缓存产物(*.bin、*.json、up_*)。cache/install.lock 与 cache/runtime-config.php,修复“清空缓存后误回到安装向导”的问题。site.brand_namesite.browser_titlesite.logo_urlsite.admin_logo_urlsite.favicon_urllib/site_branding.php。/assets/logo.png、/assets/favicon.ico)。README.md,补齐部署、维护、配置与 API 文档。lib/install.php 增强 runtime-config.php 可读性检查。cache/runtime-config.php 与 cache/install.lock 默认权限从 0600 调整为 0640。scripts/process_maintenance.php(邮件队列 + 节点巡检)建议每分钟执行。SQLSTATE[HY000] [1045] ... using password: NO)。db.password。cache/runtime-config.php 中 db.password,并确保 cron 与站点使用同一运行用户。Permission denied)。cache/runtime-config.php 权限为 0600 且执行用户不一致。cache/ 目录 owner/group 与权限(目录建议 750,文件建议 640)。config.php 的数据库配置不一定即时生效。cache/runtime-config.php。setup/index.php 重新写入运行时配置,或手动更新 cache/runtime-config.php。如需提交问题,请附带以下信息:
cache/runtime-config.php 权限与属主共 0 条,未读 0 条
评论区