00cef71be7
暂停欠费生图线路并修正 98K 文生图尺寸传递
...
## Summary
生图线路确认欠费后立即停止新请求,跳过同一上游账户的其他模型,保留已生成结果和已提交任务。欠费状态须经管理员恢复,不再定时自动解封,也不会被旧任务的成功回执清除。旧模型选择仅使用明确配置且尺寸、比例和参考图数量兼容的备用模型;固定模型模式仍要求用户自行选择。
98K 文生图优先使用其公开声明的任务接口,原生传递分辨率和比例,清除文生图请求中的示例参考图片。
## Scope
- [x] API / backend logic
- [x] Settings / admin configuration
## Required Verification
验证普通 Pro、Banana 2、两个 Plus 和 GPT Image 2 共 10 个真实文生图及参考图编辑用例,均获得可下载的 2048×2048 图片。625 项 helper 回归通过,1 项跳过;TypeScript、日志/品牌/CI/环境/凭据/元数据/测试/产物检查通过。全仓 Biome 仍有历史格式和 lint 诊断(1005 项)。构建机执行生产构建及路由烟测;生产切换前核对任务与请求,保留旧构建和模型配置回滚记录。
## Release Readiness
仅修改本次生图运行逻辑与测试,凭据和验证产物保存在仓库外或忽略目录中。内部生成接口的权限与访问方式保持兼容。
2026-11-03 19:20:18 +08:00
5371ae2617
关联记录模型名称并处理预览下载超时
...
生成记录同时包含模型内部 ID 和上游模型 ID,名称显示和筛选统一关联模型目录。图片代理处理源响应体超时与传输中断,返回明确的 504/502;浏览器取消请求同步停止上游下载。小尺寸预览允许 45 秒读取窗口,前端保留 4 路并发和可见区域加载,失败提示展示接口原因。原图下载保持字节不变。
验证:模型 ID 筛选的生产只读查询返回正确记录,浏览器夹具验证内部 ID 名称和峰值并发 4;15 项相关测试覆盖取消、响应体超时、原图字节与 ICC 保留。TypeScript 与改动文件 lint 通过。
2026-11-03 18:04:14 +08:00
af8189908d
优化后台生成记录分页与模型管理
...
生成记录改为数据库分页,每页 40 条,默认最近 7 天;可见预览限制为 4 路并发并使用 192px 缩略图,翻页取消旧请求,视频在详情中按需播放。保留精选、分类和原图操作,新增画布任务失败记录,统一时间显示。
模型管理拆分模型、上游和运行健康视图,提供搜索、筛选、分页和完整故障详情;列表使用摘要,编辑按需获取完整配置。后台按当前设置页加载,模型 GET 不再自动修改健康状态,98K 同步先显示变更预览。
验证:600 项现有辅助测试和 3 项新增回归测试通过,TypeScript 和本次 API/组件 lint 通过;浏览器验证请求峰值 4、翻页、搜索、失败重试、详情、模型筛选与 390px 窄屏。只读生产查询:当天页约 29ms,历史视频页 122ms,第 7800 页 739ms。两个并发索引已在生产建成,SQL 随代码保留。
已知检查状态:全仓 lint 存量 1004 项诊断使 check:quality 停在 lint 阶段;日志、品牌、CI、环境、凭据、元数据、测试与制品检查单独通过。
2026-11-03 17:41:34 +08:00
6053271352
同步封面和标题更新后的画布版本
...
自动封面和标题更新会推进画布版本,但页面未同步,导致后续节点保存持续冲突。元数据写入返回前一版本,客户端仅在与本地版本衔接时推进版本,并与画布保存共用队列;处理结果在合并成功后才更新本地版本。视频画布导入也按节点保存、标题更新顺序执行。
验证:17 项画布能力与同步测试通过,包含封面更新后的保存、不覆盖未同步的远端改动、结果合并冲突和切换画布;TypeScript 检查通过。
2026-11-03 14:39:48 +08:00
6b7b24a86e
修复图片工具提交前的画布同步与结果合并
...
新导入或新生成的图片在自动保存前点击去水印,会因服务端缺少节点而失败。工具栏统一先保存当前画布,保存成功后再调用处理能力;处理与自动保存共用队列,结果合并保留等待期间的本地编辑并更新保存版本。适用于去水印、抠图、增强、扩图和图层拆分。
验证:14 项画布能力与提交同步测试通过,覆盖保存失败不提交、执行期间编辑保留、上游失败和切换画布;TypeScript 检查通过。
2026-11-03 14:23:59 +08:00
1daf08a964
停用旧图片存储并更新主题 Logo
...
s3.1080p.hk 已永久停用且文件不可恢复。首页查询排除旧源并统一分页统计,历史图册、聊天和画布保留记录并显示失效说明;下载和代理返回 410,停止旧源上传与归档。使用本地黑白 Logo 适配主题。
提供保存原配置后停用旧存储、取消失效精选、替换 Logo 的整理脚本。七牛 10 月 14 日上传核查记录见 docs/retired-storage.md。
验证:7 项旧存储检查、41 项下载和归档回归测试、TypeScript 检查通过。
2026-11-03 13:36:44 +08:00
6ba5d9606d
修复风格化多张生成和结束状态
...
风格化请求 6 张图片时,98K 接入仍提交 n=1 且仅保留第一张结果,页面继续等待剩余图片。现在传递实际张数、保留全部返回结果,请求结束数量不足时结束等待并提示;刷新后也能从历史结果恢复结束状态。阿里通道参考图改为并行准备。
验证:46 项针对性测试通过,包括实际 Provider 流程提交一次并交付 6 张;TypeScript 检查通过。
2026-11-03 13:08:33 +08:00
Codex
d9b06cf0b3
Keep streamed result file links intact
2026-11-02 19:10:16 +08:00
Codex
5a343b6392
Avoid partial image markup during streamed responses
2026-11-02 18:36:50 +08:00
Codex
db46983725
Fix original image downloads and SKU message rendering
2026-11-02 17:46:31 +08:00
Codex
36efdfae53
fix(deploy): replace only the target PM2 process definition
2026-10-30 19:15:56 +08:00
Codex
9da598967a
build: snapshot complete release runtime with copy-on-write files
2026-10-30 18:42:59 +08:00
Codex
7439792d40
build: add verified PM2 release workflow for production 48
2026-10-30 18:22:11 +08:00
Codex
9155682238
chore(repo): make the recovered production baseline portable
...
Record source and release ownership, keep source line endings consistent,
and exclude local build/config backups from version control.
Restore default Next type paths, normalize CI checks across line endings,
and use portable Playwright and postbuild entry points on Windows/Linux.
Align the stale timeout fixture with the existing production timeout policy.
Application runtime files remain identical to production-snapshot-48-20261030.
Production build and focused regressions passed; pre-existing full-repository
lint findings remain documented instead of relaxing lint rules.
2026-10-30 16:19:08 +08:00
Codex
03b8a0deb0
chore(repo): preserve production-48 source snapshot
...
Recover the existing 19 modified tracked files and 6 untracked source files
from the production working tree without changing their contents.
Production source HEAD: 439fd56fe120fdb9f855b50fa4df9ce2e71bb72a
Production build ID: QhoygcZ4-x42PwCgCEj1d
Captured: 2026-10-30; all 25 source file SHA256 values verified.
This is a source recovery checkpoint; no deployment was performed.
2026-10-30 15:37:23 +08:00
134
01485340b5
fix(agent): ask before replacing refused pinned image models and settle completed actions
2026-10-21 16:10:09 +08:00
134
8784bb783e
fix(agent): honor requests not to download during review
2026-10-21 14:06:35 +08:00
134
82c71b8cd8
fix(agent): finish verified edits after ancillary download actions
2026-10-21 13:59:32 +08:00
134
90c17a61fb
fix(agent): enforce structured JSON for vision inspection
2026-10-21 13:54:15 +08:00
134
404d783fa5
test(agent): give vision fixtures a provider identity
2026-10-21 13:42:03 +08:00
134
1705f0ba43
fix(agent): keep official DeepSeek available across task rounds
2026-10-21 13:39:54 +08:00
134
b689f8f770
fix(agent): support DeepSeek official multimodal tool conversations
2026-10-21 12:52:03 +08:00
134
59994062c9
fix(agent): retire multi-angle tools and use reference-image generation for viewpoint edits
2026-10-21 11:54:13 +08:00
134
fb10747828
fix(agent): recover unavailable automatic image choices and correct regression fixtures
2026-10-21 10:40:52 +08:00
134
d2d0a1725c
fix(agent): keep pinned image features from substituting missing models
2026-10-21 10:40:52 +08:00
134
f38488b546
fix(agent): recover image parameter compatibility errors without false model bans
2026-10-21 10:35:23 +08:00
134
36761e37a4
fix(agent): retain image fault records and show actionable recovery messages
2026-10-21 10:30:30 +08:00
134
32e8c9cbd6
fix(agent): handle legacy image service failure messages
2026-10-21 10:30:30 +08:00
134
2a2a32c3bd
fix(agent): recognize image provider HTTP and quota failures
2026-10-21 10:24:41 +08:00
134
d4a6b54078
fix(agent): preserve legacy automatic image model selection
2026-10-21 10:22:54 +08:00
134
d8aa51185e
feat(agent): recover automatic image generation without switching user-pinned models
2026-10-21 10:22:54 +08:00
134
73f9844022
fix(agent): consider the full fallback pool within the request deadline
2026-10-21 10:00:50 +08:00
134
1803727d4b
fix(agent): reject malformed model envelopes before tool execution
2026-10-21 09:54:37 +08:00
134
8848d00107
fix(agent): distinguish empty upstream answers from policy refusals
2026-10-21 09:49:41 +08:00
134
ad25b4e17f
feat(agent): add persistent 30-minute multimodal failover circuits
2026-10-21 09:43:12 +08:00
134
5dbdc3df46
fix(agent): restrict cutout completion to explicit single-action requests
2026-10-21 09:21:15 +08:00
134
cfb071d0df
fix(agent): finish verified cutouts without repeated visual review
2026-10-21 09:17:23 +08:00
134
a8c6a5a026
fix(canvas): restore inline Agent history from existing cache payloads
2026-10-21 00:27:14 +08:00
134
1965ee9cc0
fix(canvas): serialize pre-Agent saves with scheduled autosave
2026-10-21 00:12:25 +08:00
134
0d44ac12c8
fix(canvas): integrate Agent activity into chat messages without internal branding
2026-10-21 00:03:16 +08:00
134
62311d187f
feat(canvas): unify image composer with native Agent and honor generation controls
2026-10-20 23:30:49 +08:00
134
a4bf68734c
fix(canvas): defer expired archive cleanup after ZIP admission
2026-10-20 23:03:15 +08:00
134
145f699823
fix(canvas): release ZIP staging bytes and revalidate recovery files
2026-10-20 18:51:58 +08:00
134
8ee12a5b13
fix(canvas): prepare durable selection ZIPs before resumable download
2026-10-20 18:44:42 +08:00
134
0a3eef1f4d
feat(agent): complete non-video business grants with verified contracts
2026-10-20 18:19:10 +08:00
134
0fd14f18bb
fix(canvas-agent): block video-only controls in shared image menus
2026-10-20 17:53:50 +08:00
134
54ce53f263
fix(canvas-agent): cover legacy tools and recover confirmed request rejections
2026-10-20 17:33:12 +08:00
134
f0b6c2765f
feat(canvas-agent): grant audited project tools and pause video authorization
2026-10-20 17:29:03 +08:00
134
ac54ade6b7
fix(canvas-agent): avoid production migration numbering collision
2026-10-20 15:03:19 +08:00
134
1aa61570db
feat(canvas-agent): run native ZCode core in isolated task sandboxes
2026-10-20 15:02:01 +08:00