-
_try_submit 在 gateway_id 还是 NULL 的窗口里可能被 create_video/get_video/ reconciler_loop 并发调用,导致同一个任务被提交给 gateway 两次,两张卡各烧 一遍 GPU、其中一条变成没人追踪的孤儿任务。加进程内 _SUBMITTING 集合堵住这 个竞态窗口。 任务详情页只显示帧数不显示秒数,加一行按 24fps 折算的"时长"。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
-
HANDOFF.md 加了 2026-08-20 夜的最新状态一节(前置,不覆盖历史):记录当前各服务 实际运行状态、今天做的十项改动摘要、以及一个重要发现——qwen.wudaima.com 现在 实际上是 minimax-h3 的 gateway.py 在占用(llm38 容器当前未运行),不是 Qwen LLM。 代码改动(此前几轮已分别验证部署,这次一并入库): - h3-console/server.py、static/index.html:H3_CONSOLE_BASE_PATH 子路径支持, 用于挂到 qwen.wudaima.com/console - h3-console/README.md:同步子路径部署说明、gateway.wudaima.com 排查结论 - minimax-h3/api.py:ROWS_LIMIT 支持环境变量覆盖(边界探测用) - CLAUDE.md:当前负载表格更新 h3-console 的双实例/公网访问方式
-
API.md 加「任务记录会落盘」一节,讲清 jobs_gpu{N}.sqlite3 是什么、 in-flight 状态为什么没法恢复、只影响直连 api.py/gateway.py 的场景。 h3-console/README.md 补上用户反馈"播放/下载好像有问题"后排查出的三个坑 (download/poll 字段抄错 id、5 秒轮询冲掉播放中的 video、下载接口不支持 Range),以及回滚一节更新——这次的持久化改动碰了 api.py 本身,不再是 "kill console 就完事"。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> -
worker()/create() 每次状态变化都写一份到 sqlite(四张卡各一个独立文件), 进程启动时读回内存;in-flight 的 queued/running 记录重启后没法恢复,改判为 failed 并写清原因,不再卡成一条永远"运行中"但没人会再碰的死记录。 落地前用不依赖 torch/GPU 的独立单测验证了 done 保留/running→failed 改判/ upsert 覆盖不重复,再按"只重启空闲的那张卡"逐张滚动重启四个后端上线, 用真实任务验证过重启后 api.py 自己(不经过 console 那层兜底)能找回完整记录。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
-
任务行右侧「⋯」菜单可删除,左下角回收站入口可查看/恢复已删除任务。 server.py:jobs 表加 deleted_at 列,DELETE /v1/videos/{id} 软删除、 POST .../restore 恢复,GET /v1/videos?trash=true 切换视图。 不影响弹性调度器的 pending 计数(删除只隐藏,不取消底层任务)。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> -
- 从服务器同步 gateway.py、gateway-run.sh 等此前本地缺失的核心/调试脚本,修正与 服务器的漂移(此前 push 的本地副本一直缺 gateway.py 这个核心文件) - h3-console/server.py:_refresh_from_gateway 遇到 404 且任务未到终态时判 failed, 不再让后端进程重启丢失的任务永远显示"运行中" - h3-console/DESIGN.md、CHANGELOG.md 同步记录 fl2va/ref2va 默认基线改 2/2 分裂、 frames 上限改按 rows 动态判定的相关变更
-
包含 llama.cpp 部署脚本、MiniMax-H3 探查/运行脚本、h3-console Web 管理台源码, 以及运维文档(CLAUDE.md/HANDOFF.md/llm-setup.md/CHANGELOG.md)。 排除生成的图片/视频/音频产物、.venv、__pycache__ 等运行时/构建产物。