11 KiB
当前控制台操作与维护
核对日期:2026-10-13。当前源代码入口为本项目 console/;部署根为 /adamwen-work-space/xas-test-library。历史 Rundeck 文档不再是日常维护入口。
日常使用
内网入口 http://10.88.118.188:14440/,不设置账号。允许 10.88.0.0/17 和 10.20.0.0/21。所有访问者共享管理与执行权限,运行记录保存来源 IP,不区分个人身份。
- 在测试项目中按用途、套件/单项、来源和状态筛选。一项对应一个测试行为,详情的“执行入口”和“相关文件”均只读。
- 上传
.py或.sh创建托管脚本;修改时上传新版本,旧版本保留。只接受 UTF-8,单文件最大 1 MiB。素材、模型、第三方包不会随脚本自动取得。 - 在详情修改名称、说明、已开放的参数和超时,再保存并运行。22 项已登记原入口使用原环境方案,工作目录、解释器、命令模板和输出规则只读。普通测试预检通过后提交;涉及资源占用或服务启停的测试须逐次确认影响。
- 运行页查看持续刷新的标准输出/错误与文件日志,结束后预览/下载 JSON、文本或其他报告。历史保留本次配置、版本和摘要。
托管脚本工作目录为本次独立 /work,通过 XAS_RUN_DIR 环境变量取得它;将输出写到此目录即可归档,其中 .log 的新增内容会进入实时日志。原环境测试直接使用原文件、目录、依赖和已登记配置,不修改原代码。原输出照常产生,平台仅归档本次观察到的新增/变更内容;多人同时写同一原文件时无法证明内容只来自本次测试。容量和成本链路会覆盖固定文件名,启动前把已存在的相关输出备份到本次 previous-outputs/;其他方案优先采用原入口支持的运行编号参数。
现有 307 个 .py/.sh 文件包括入口和辅助模块,按已核对的用途整理为 23 个测试项目,不再全部平铺。22 个原环境入口和已有复制版轻量检查已配置;两个控制台样例在“项目用途 → 验收示例”查看。相关文件不能单独启用或运行。原环境复用宿主环境,上传脚本继续使用 Python 标准库、Bash、curl 的受限容器,无 GPU;不自动安装依赖或启动缺失模型服务。
“已配置”表示有启动方案,不表示服务已在线或测试已通过。运行前只读预检核对入口摘要、原配置、工具、素材及所需 TCP 端口,不发模型推理、不预留 GPU。2026-10-13 23:27 有 6 项因原模型端口未监听被拦截。整机/服务测试的影响确认只对本次源码、参数和方案有效。长稳测试最高 72 小时;原菜单支持数字选项/列表、y/n/q、空行回车,输入不回显、不保存。不能通过菜单发送 shell 命令、控制键、密码或令牌。
“DeepSeek V4.1 轻量功能检查(已复制)”使用原始 smoke.sh,源码摘要固定,兼容环境不可在网页修改。一次最多 1 个 models GET 和 3 个 completion POST,固定模型、最多 512 token/问答;禁止重定向和重试。新代码不能直接沿用这个认证环境,应新建脚本后接入。
数据与配额
| 内容 | 服务器位置 |
|---|---|
| 数据库 | runtime/console-data/console.sqlite3 |
| 上传脚本版本 | runtime/library/<脚本ID>/versions/<版本>/<文件名> |
| 运行日志 | runtime/runs/<运行ID>/console.log |
| 运行结果/源码快照 | runtime/runs/<运行ID>/artifacts/,下载名称由数据库映射 |
| 容器临时文件 | runtime/runs/<运行ID>/work,128 MiB tmpfs,归档后卸载 |
| 原环境运行与输出保护 | runtime/runs/<运行ID>/,原输出仍在原目录,固定名称旧结果另存 previous-outputs/ |
| 原环境私有控制通道 | runtime/native-ipc/control.sock,0600,仅本机网页/worker 使用 |
| 切换前快照 | runtime/backups/before-dedicated-20261013/ |
数据库没有保存完整脚本、完整日志或完整报告正文。容器任务有单文件源码快照;原环境任务保留源文件摘要、实际命令与方案快照,源文件留在原处。外部结果原文件保留,同时归档本次变化内容用于历史查询。历史归档不会因原文件下次覆盖而变化。
共享队列单并发、最多排队 20 项。容器任务限制 1 CPU、512 MiB、64 进程,时限 5–7200 秒;原环境任务不套用这些 CPU/内存限额,时限 5 秒至 72 小时,真实资源占用遵循原项目。平台日志最大 16 MiB;结果单文件最大 32 MiB、总归档约 64 MiB、最多 63 个文件另加摘要。原环境登记输出最多 4096 文件,超过时明确失败,不静默遍历整个磁盘。
超过归档限制的原位置文件保留;容器未归档临时结果随 tmpfs 释放,原环境工作目录保留。容器运行检查磁盘 10 GiB 下限及原输出增长 128 MiB 软限制;原环境不施加该增长限制,以免改变长稳行为。固定旧输出备份上限 64 GiB,且要求备份后仍有 10 GiB 余量。原环境对原目录没有硬配额,操作者需按原测试规模安排磁盘与 GPU。
容器任务取消/超时只管理本项目容器,worker 重启时旧容器任务标为中断、不补跑。原环境任务由独立 systemd 服务承载,worker 重启后继续跟踪同一任务;状态查询异常时保留占位,不误判结束。取消/超时终止本次本机进程,最多留 120 秒收尾,然后确认 cgroup 已结束再释放队列。
原脚本通过 Docker daemon 或 tmux 启动的分离任务可能继续运行,取消不等于恢复原模型,也不保证远端推理已停止。日志和结果保留前后资源变化供核对;控制台不据此自动删除容器或他人会话。正常菜单退出后如观察到新增 tmux 会话,继续跟踪其结束。退出码零仅表示入口进程正常退出,业务结论以报告为准。
部署与恢复
网页容器 adamwen-script-console;私有执行器 adamwen-script-worker.service;容器任务前缀 adamwen-test-run-;原环境服务前缀 adamwen-native-。初次部署使用 deploy/dedicated.py。deploy/cutover_console.py 是历史 Rundeck 切换工具,不适用于本次原环境升级。原环境方案由 catalog/native-profiles.json 管理,配置迁移使用 deploy/native_profiles.py;禁止在网页上传内容中定义宿主方案。
当前没有设置开机自启、定时任务或自动清理。整机重启后,按 00088 操作手册连接,核对共享资源,再启动本项目网页容器与 worker。日常可读检查 docker logs --tail 100 adamwen-script-console、systemctl status adamwen-script-worker.service 和运行摘要;不要输出模型认证文件。worker 配置只记录认证文件位置,秘密仅在内存中读取。
本次应用回退:先停止网页接单,确认无排队/运行任务及活动 native unit,再停止 worker。用 deploy/native_profiles.py --restore --backup runtime/backups/before-native-20261013/native-config-migration.json 恢复 22 项旧配置;有后续修改则工具拒绝覆盖,先核对。恢复匹配的旧 worker 源码以及保留的 adamwen-script-console-before-native-20261013 网页容器,再启动 worker。保留新运行记录与结果,不覆盖 SQLite;旧代码不能处理活动 native 任务。具体版本、备份与验证见原环境验收记录。回到更早 Rundeck/H2 是另一种迁移,不作为本轮普通回退路径。
数据恢复须另行明确:停止新网页/worker,保留故障数据副本,检查 SQLite 快照 PRAGMA integrity_check,将匹配时点的数据库、library、runs 作为一组恢复,验证文件摘要与引用。不能只覆盖数据库,不能自动丢弃快照后的运行。当前仅初始 schema v1,未来结构变更需新增可审查迁移,不改已执行历史迁移。
本地验证与源码管理
Python 3.12 隔离环境安装 console/requirements-test.txt,执行 python -m unittest discover -s tests -v。Linux 检查涵盖进程组、符号链接和 worker 收尾,Windows 会明确跳过不适用项。依赖已固定版本,网页无外部 CDN。
Git 远程为公司仓库 https://code.it.aisuan.cn/wenhuadian/xas-test-library,主分支 main。用户于 2026-10-14 明确授权首次提交和推送,后续 Git 历史操作仍需当前对话中的明确指令。.local/、runtime/、认证材料和服务器私有 worker 配置不进 Git;Git 不会自动拉取上传脚本或发布应用。原位置脚本按服务器路径引用,本仓库不是其他工作区的完整备份。
历史阶段:2026-10-13 20:25 导航与点击区域优化
项目详情顶部提供“返回测试项目”,运行详情提供“返回运行记录”;加载和错误页面同样可返回,长页面滚动时返回按钮保持可见。项目整张卡片和运行记录整行均为可点击入口;详情按钮至少 46px 高,返回按钮至少 44px 高,保留原生链接和键盘 Enter 操作。
修改限定于 console/static/scripts.js、runs.js、styles.css 及部署镜像引用。正式镜像为 adamwen/script-console:20261013-3,摘要 sha256:62424bf4b9c34c986cc6831b8fc083e821fa78bbd5da8fbf89a1d9e897acd7fe。1440px 和 390px 真实浏览器验证整卡/整行点击、返回、滚动、键盘及错误状态通过,没有页面横向溢出或 JavaScript 错误。
本轮未执行测试脚本或调用模型。历史记录仍为 10 条;scripts/versions/runs 数据摘要与更新前一致,worker PID 与原模型容器启动状态未改变。备份在 runtime/backups/before-ui-navigation-20261013/,旧网页容器 adamwen-script-console-before-navigation-20261013 停止保留。回退只需替换网页,不覆盖数据库或重启 worker;未实际触发回退。证据位于本地 .local/evidence/navigation-browser.json 和服务器 runtime/navigation-acceptance.json。
2026-10-14 10:17 搜索图标对齐修复
搜索图标原先使用字体字符及固定顶部偏移,字形基线导致图标偏下。改为 16px 内嵌 SVG,按输入框高度垂直居中,并让鼠标点击穿透到输入框。仅修改 console/static/styles.css 和部署镜像引用,搜索逻辑不变。
1440px、2790px、390px 真实浏览器预览及正式页面均验证居中、图标区域点击聚焦、搜索命中/空结果/清空恢复正常,无 JavaScript 错误。仅替换网页容器,未重启 worker 或模型;scripts/versions/runs 摘要不变,仍为 10 条历史记录、0 活动任务。没有运行 GPU 测试。
正式镜像 adamwen/script-console:20261014-1,摘要 sha256:ddbf3622b4e468ae9368864965ed2830d067a021596a6981aeca68bb5109880c。备份为 runtime/backups/before-search-alignment-20261014/;旧网页容器 adamwen-script-console-before-search-alignment-20261014 停止保留,可仅切换网页回退,不覆盖数据库或重启 worker。故障回退未触发。
证据:服务器 runtime/search-alignment-acceptance.json;本地 .local/evidence/search-deployed.json 和 .local/screenshots/search-*.png。用户随后于 2026-10-14 明确授权将本次 UI 修复提交并同步到公司 Git 仓库。