k88936
|
73fb89a8f4
|
阻止本地素材登记结果错位回填
资源导入返回数量与请求路径不一致时立即中止位置映射。
|
2026-09-11 18:58:35 +08:00 |
|
k88936
|
bf2ffd2bf9
|
拒绝保存无可见像素的切分区域
透明裁切区域直接返回可恢复错误,避免登记空素材。
|
2026-09-11 18:58:13 +08:00 |
|
k88936
|
3f55f043a1
|
拒绝切分产物路径中的非法节点标识
在写入 cut 图片前限制节点 ID 字符并确认路径仍位于 sidecar 内。
|
2026-09-11 18:57:19 +08:00 |
|
k88936
|
26677b193c
|
复用界面树组件计数值
在同一行中复用组件数量,避免重复计算。
|
2026-09-11 18:56:13 +08:00 |
|
k88936
|
b8691add3a
|
移除区域归一化日志路径中的恐慌
直接记录归一化结果,避免诊断日志调用 expect。
|
2026-09-11 18:55:28 +08:00 |
|
k88936
|
bfe010a192
|
让视觉绑定调试预览写入失败可降级
调试 PNG 写入失败时记录警告并继续绑定流程。
|
2026-09-11 18:55:06 +08:00 |
|
k88936
|
6db6de5b99
|
同步检查器组件面板展开状态
切换节点或组件时重置展开状态,避免复用旧节点的折叠状态。
|
2026-09-11 18:54:39 +08:00 |
|
k88936
|
87a7294a04
|
细化组件绑定载荷形状校验
在反序列化前拒绝空值和无效的节点组件外部枚举。
|
2026-09-11 18:54:21 +08:00 |
|
k88936
|
3774d7c1e1
|
移除修复重试流程中的隐式恐慌
在循环意外结束时返回可恢复错误而不是触发 unreachable。
|
2026-09-11 18:53:34 +08:00 |
|
k88936
|
8d15125f12
|
限制切分提示词中的节点备注
对用户备注清理控制字符和围栏符号并限制长度。
|
2026-09-11 18:52:59 +08:00 |
|
k88936
|
cf68b8212d
|
让提取提示词序列化错误可恢复
将提取提示词生成改为返回带上下文的错误。
|
2026-09-11 18:52:10 +08:00 |
|
k88936
|
8d7ccc0d75
|
简化工作流操作卡状态映射
使用步骤映射替代嵌套三元表达式。
|
2026-09-11 18:51:30 +08:00 |
|
k88936
|
2af3d9a965
|
修正结构识别步骤的前置校验
将结构识别活动步骤改为校验素材切分前置条件。
|
2026-09-11 18:50:59 +08:00 |
|
kdletters
|
fafe6b63cd
|
修复AGC模型请求与对话登录态自动续期 (#329)
Project CI / Repository checks (push) Successful in 2m40s
Project CI / Frontend tests (push) Successful in 3m23s
Project CI / Backend tests (push) Successful in 5m46s
Project CI / Native shell tests (push) Successful in 18m30s
## 变更说明
- AGC 客户端配套后端 API 在 401 时自动刷新登录态并重试一次,覆盖模型目录请求。
- DirectProject 对话鉴权失效时刷新平台会话、同步 Rust/Runner 凭据并重试同一 clientTurnId。
- 403 权限拒绝不触发续期;账号切换后不重发旧请求。
- 补充并发续期、失败保留原错误、权限边界和 Direct 对话重试测试。
## 验证
- npm run test -- apps/ai-game-creator-shell/tests/appSurface.test.ts apps/ai-game-creator-shell/tests/clientApi.test.ts apps/ai-game-creator-shell/tests/clientHttp.test.ts apps/ai-game-creator-shell/tests/conversationModelSelect.test.tsx
- npm run agc:typecheck
- npm run check:encoding
- git diff --check
Reviewed-on: #329
Co-authored-by: kdletters <kdletters@qq.com>
Co-committed-by: kdletters <kdletters@qq.com>
|
2026-09-11 18:09:48 +08:00 |
|
k88936
|
4749339bad
|
补齐图片字节类型导出与转换
Project CI / Repository checks (pull_request) Failing after 31s
Project CI / Backend tests (pull_request) Failing after 13s
Project CI / Frontend tests (pull_request) Successful in 3m56s
Project CI / Native shell tests (pull_request) Failing after 3m33s
导出共享 GPT 图片尺寸阈值常量。
修复编辑器参考图 Bytes 与 Vec 边界转换。
|
2026-09-11 18:02:04 +08:00 |
|
k88936
|
3e85c71060
|
整理图片代理代码格式
按 Rust 格式化规范整理 multipart 与响应解析代码。
|
2026-09-11 17:55:50 +08:00 |
|
k88936
|
da19bde99a
|
同步八位 PNG 与 b64 契约
记录八位 PNG 校验规则与稳定错误文案。
说明 GPT-Image-2 原生 b64_json,不发送 response_format。
|
2026-09-11 17:52:26 +08:00 |
|
k88936
|
4a32ee37c4
|
修复 Bytes 迁移后的图片类型边界
统一使用 Bytes 的只读引用并在旧 Vec 接口处显式转换。
修复编辑器参考图对齐与 Raw PNG 解码编译错误。
|
2026-09-11 17:52:00 +08:00 |
|
k88936
|
31fd1da495
|
修正 GPT 图片响应契约说明
仅保留 GPT-Image-2 原生 b64_json 行为的行内注释。
不发送 response_format 参数,也不引入 URL 兼容下载。
|
2026-09-11 17:48:55 +08:00 |
|
k88936
|
4c88e5e924
|
限制 Raw 图片仅接收八位 PNG
使用 png 解码器读取位深并在 image 解码前拒绝非八位输入。
统一返回稳定的 8-bit PNG 客户端错误并补充十六位 PNG 测试。
|
2026-09-11 17:48:01 +08:00 |
|
k88936
|
99f4961c5f
|
统一 GPT 图片尺寸计费阈值
提取共享的 1536 长边 tier 常量并复用到 raw 与编辑器计费。
同步 Raw 图片代理技术合同中的阈值来源。
|
2026-09-11 17:47:31 +08:00 |
|
k88936
|
0cebc39b6a
|
同步 Raw 图片代理契约
记录文本字段 16KiB 流式限制。
记录 GPT-Image-2 固定 b64_json 响应格式。
|
2026-09-11 17:37:58 +08:00 |
|
k88936
|
842d080a75
|
锁定图片缓冲依赖
将 platform-image 使用的 bytes 依赖写入 Cargo.lock。
|
2026-09-11 17:37:32 +08:00 |
|
k88936
|
8cd6e34af0
|
调整图片切分批次请求尺寸计算逻辑
基于批次源矩形总面积动态计算 image-edit 请求尺寸,新增面积对齐和最小/最大值限制,扩展相关模块和测试以支持调整后的工作流。
|
2026-09-11 17:33:26 +08:00 |
|
k88936
|
b357d36262
|
明确 GPT 图片编辑响应格式
原始图片编辑请求固定声明 response_format=b64_json。
补充 GPT-Image-2 仅返回 b64_json 的契约行内注释。
|
2026-09-11 17:29:11 +08:00 |
|
k88936
|
48c5638893
|
扩大原始图片文本字段上限
multipart 文本字段改为 chunk 流式读取并限制 16KB。
统一 UTF-8 校验和超限错误,避免先完整分配超长 prompt。
|
2026-09-11 17:28:13 +08:00 |
|
k88936
|
46df12c086
|
收敛原始图片 multipart 错误
服务端记录解析原始错误,客户端仅返回稳定分类文案。
|
2026-09-11 17:26:33 +08:00 |
|
k88936
|
4bdbab29c0
|
优化原始图片请求缓冲
将 ReferenceImage 与 multipart 输入改用 bytes::Bytes。
通过流式 multipart part 避免 reqwest 路径的额外整图复制。
|
2026-09-11 17:25:25 +08:00 |
|
k88936
|
9acc23b848
|
抽离 DFS 批次逻辑至独立模块,并优化节点面积计算与终端过滤流程
Project CI / Repository checks (pull_request) Failing after 15s
Project CI / Backend tests (pull_request) Failing after 15s
Project CI / Frontend tests (pull_request) Successful in 8m16s
Project CI / Native shell tests (pull_request) Failing after 11m7s
|
2026-09-11 15:34:30 +08:00 |
|
k88936
|
b9b4ebd38e
|
重命名图片编辑为提取模块并更新相关调用绘制流程
Project CI / Repository checks (pull_request) Failing after 16s
Project CI / Backend tests (pull_request) Failing after 15s
Project CI / Native shell tests (pull_request) Failing after 4m22s
Project CI / Frontend tests (pull_request) Successful in 11m36s
|
2026-09-11 15:18:05 +08:00 |
|
k88936
|
8f680ef376
|
视觉绑定增加透明标记预处理
新增视觉绑定 RGBA 预处理与阈值复用
在请求前生成不透明洋红标记图并记录耗时
更新英文提示词说明标记色语义
|
2026-09-11 15:09:44 +08:00 |
|
k88936
|
7c7d55dcab
|
重构提取提示词生成逻辑,移除文本拼接方式,新增 YAML 序列化结构与测试
|
2026-09-11 14:54:00 +08:00 |
|
k88936
|
1303592a86
|
重构UI编辑器素材切分工作流模块
Project CI / Repository checks (pull_request) Failing after 14s
Project CI / Backend tests (pull_request) Failing after 15s
Project CI / Frontend tests (pull_request) Successful in 5m17s
Project CI / Native shell tests (pull_request) Failing after 6m41s
拆分提取与绑定提示词模块
拆分图片编辑、视觉绑定、裁切和批次 patch 实现
同步技术方案实现组织说明并更新提示词测试
|
2026-09-11 13:54:33 +08:00 |
|
k88936
|
1db7597141
|
重构UI素材切分树与批次选择
移除文本遮罩和标记图生成流程,图片编辑直接读取原始界面图
引入节点类型并保留文字移除上下文,按前序DFS与面积预算选择图片批次
补充根节点、重叠节点、文字过滤和超面积推进测试并同步TypeScript类型
|
2026-09-11 12:55:53 +08:00 |
|
k88936
|
13701d0144
|
澄清UI自动切分的原图输入与调试产物
明确图片编辑直接使用原始界面图,不再生成辅助输入图
明确处理图与裁切图使用随机文件名并保留用于调试
|
2026-09-11 11:56:33 +08:00 |
|
k88936
|
5c83142fec
|
更新UI编辑器自动切分素材工作流方案
将多轮整图分层与DFS面积批次写入权威专题
明确TextRemovalOnly、视觉绑定和atlas输出合同
删除平行专题文档并保留后续TODO
补充UI编辑器自动分离多轮分层方案
新增整图语义分层与多轮 image-edit 方案
明确 DFS 批次、TextRemovalOnly 和视觉绑定合同
记录面积预算、恢复边界与后续 TODO
|
2026-09-11 11:10:51 +08:00 |
|
k88936
|
95ed49f264
|
调整素材切分边界像素上限
将视觉绑定区域每条边的调整上限改为固定 32px。
同步 UI 编辑器自动切分技术方案与项目决策记录。
更新边界测试以覆盖绝对像素限制。
|
2026-09-11 10:28:32 +08:00 |
|
lhk229
|
11c8cbdf67
|
Merge pull request '修复 AGC Direct 写通道项目锁零等待与持锁方不可诊断' (#320) from fix/issue-318-direct-write-lock-wait into master
Project CI / Repository checks (push) Successful in 3m7s
Project CI / Frontend tests (push) Successful in 3m41s
Project CI / Backend tests (push) Successful in 5m48s
Project CI / Native shell tests (push) Successful in 17m34s
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/320
|
2026-09-10 21:43:37 +08:00 |
|
suzmii
|
ff42fff61c
|
按评审意见把写锁等待挪出 runtime worker 并收紧 wait_exhausted 记账
Project CI / Repository checks (pull_request) Successful in 3m18s
Project CI / Frontend tests (pull_request) Successful in 4m3s
Project CI / Backend tests (pull_request) Successful in 7m25s
Project CI / Native shell tests (pull_request) Successful in 19m35s
- agc_write_file 写路径改经 bridge_write_file_in_blocking_pool 走 tokio::task::spawn_blocking:有界等待是同步轮询(最多约 10 秒),直接在 async handler 里跑会占住 tokio worker,争用窗口内同一轮并行写多个文件时会波及共享同一 runtime 的只读端点与 UI 命令
- 新增用例用默认 current_thread runtime 加心跳任务锁住该性质;把 handler 临时改回同步直调时该用例按预期失败,确认有区分度
- project.write_lock.wait_exhausted 与终态改判一起改为只在真的等过(max_attempts > 1)时发生:hydrate 的单次试探不再写 waitedMs 近似 0 的“耗尽”日志
- 技术方案、decision-log、pitfalls 同步这两条,并补“同步有界等待不能直接跑在 async handler 里”的排障经验
|
2026-09-10 21:38:48 +08:00 |
|
lhk229
|
e8c5d2e247
|
Merge branch 'master' into fix/issue-318-direct-write-lock-wait
Project CI / Repository checks (pull_request) Successful in 2m58s
Project CI / Frontend tests (pull_request) Successful in 3m45s
Project CI / Backend tests (pull_request) Successful in 7m5s
Project CI / Native shell tests (pull_request) Successful in 17m13s
|
2026-09-10 21:13:23 +08:00 |
|
lhk229
|
ab86efa421
|
Merge pull request '停止追踪误提交的本地文档' (#323) from rm/local-docs into master
Project CI / Native shell tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/323
|
2026-09-10 21:12:38 +08:00 |
|
lhk229
|
a12d18c1cd
|
停止追踪误提交的本地文档
Project CI / Repository checks (pull_request) Successful in 2m30s
Project CI / Frontend tests (pull_request) Successful in 3m19s
Project CI / Backend tests (pull_request) Successful in 6m6s
Project CI / Native shell tests (pull_request) Successful in 18m2s
从仓库索引移除 local-docs 下的 11 份本地过程文档
保留当前工作区本地文件,不新增或修改忽略规则
|
2026-09-10 13:00:26 +00:00 |
|
suzmii
|
71e9ad3133
|
修复锁失败终态判据漏传平台导致 CI 把权限改判成争用
Project CI / Repository checks (pull_request) Successful in 6m17s
Project CI / Frontend tests (pull_request) Successful in 8m23s
Project CI / Backend tests (pull_request) Successful in 12m7s
Project CI / Native shell tests (pull_request) Successful in 25m6s
- project_write_lock_permission_is_ambiguous 改为按平台加原始错误码判定(Windows 的 ACCESS_DENIED(5));只看 ErrorKind 在 Linux 上会得出相反结论:errno 5 在 Windows 是 ACCESS_DENIED、在 Linux 是 EIO
- ProjectWriteLockFailure::Retryable 携带 platform,终态改判与争用文案都用同一次分类的平台,不再依赖宿主 errno 语义
- 终态投影用例显式用 Windows 平台构造失败并补 Unix 反例,两个平台上结论一致;CI 首次推送正是在此失败(2358 passed / 1 failed,left contention / right permission_denied)
- pitfalls 补充“判据的每一环都要带平台”的排障经验
|
2026-09-10 20:46:10 +08:00 |
|
suzmii
|
06f738dc99
|
将项目写锁从 project/filesystem.rs 纯搬移到 project/write_lock.rs
Project CI / Repository checks (pull_request) Successful in 2m37s
Project CI / Frontend tests (pull_request) Successful in 3m30s
Project CI / Backend tests (pull_request) Successful in 6m36s
Project CI / Native shell tests (pull_request) Failing after 13m57s
- 新建 project/write_lock.rs:取锁、等待分类、持锁方诊断、残留回收与 4 条锁用例整体搬移,逻辑不变
- project/filesystem.rs 只保留项目文件 IO(1533 → 680 行),锁相关常量、结构、进程判据与用例全部移出
- project.rs 注册 mod write_lock 并 pub(crate) use write_lock::*,crate::project:: 与 crate:: 既有路径不变
- windows_metadata_is_reparse_point 提为 pub(crate),供 write_lock 复用同一条 reparse point 判据
- agent_db.rs 与 checkpoint.rs 的 PROJECT_FILE_FLAG_OPEN_REPARSE_POINT 导入路径改为 super::write_lock
- 同步修正技术方案、Fast GDD 技术方案、decision-log、pitfalls 中指向锁实现的文件路径,并把“拆锁”从后续事项改为已完成
|
2026-09-10 20:12:28 +08:00 |
|
suzmii
|
8c639e5d13
|
修复项目写锁重试判据用一次元数据观察误判瞬时争用
- 项目写锁分类改为只按错误码判定重试性,不再用 path.exists() 决定“要不要等”:真机 6 万次建锁/删锁竞争实测 396-538 例命中“ACCESS_DENIED(5) + 目标不可见”,旧判据会让等待层立刻失败关闭,把毫秒级竞争换成更误导的 ACL 文案
- 新增 ProjectWriteLockFailure(Retryable / Terminal)与 acquire_project_write_lock_failure,有界等待改按类型分流,acquire_project_write_lock 退化为它的文案包装
- Windows 的 ACCESS_DENIED(5) 终态改判移到等待预算耗尽之后:只有真的等过预算且目标此刻仍不存在时才投影成权限拒绝,单次试探保持争用语义
- 锁分类判据改为平台参数传入(project_write_lock_open_failure_for),Linux CI 可覆盖 Windows 分支;替换原先只在 Windows 本地执行的分类用例
- 零等待入口在错误码不可区分时补一句“可能是删除挂起、删除拆链窗口或权限 / ACL 拒绝”,争用前缀逐字不变,调用方既有重试语义不受影响
- PROJECT_WRITE_LOCK_CONTENTION_PREFIX 收口 provider_recovery.rs、planning_session_v2.rs、direct_runtime.rs 三处手写文案
- project.write_lock.wait_exhausted 日志补 projection= 分类,attempts 记为实际尝试次数
- 同步更新技术方案、decision-log、pitfalls,并修正 ownerIsSelf 只比 PID 的表述
|
2026-09-10 20:07:28 +08:00 |
|
suzmii
|
59cab3d9fd
|
Merge remote-tracking branch 'origin/master' into fix/issue-318-write-lock-classification
|
2026-09-10 19:58:05 +08:00 |
|
k88936
|
b8d8072267
|
完善识别命令说明,新增禁止冗余背景节点的指引
Project CI / Repository checks (pull_request) Failing after 9s
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / Frontend tests (pull_request) Successful in 2m44s
Project CI / Native shell tests (pull_request) Failing after 3m5s
|
2026-09-10 19:54:46 +08:00 |
|
k88936
|
462caa33c5
|
修复工作流完成弹窗的多行错误展示
让完成通知中的换行字符按实际换行渲染,避免多项回填错误挤成一行。
保持通知内容和弹窗交互不变。
|
2026-09-10 19:06:20 +08:00 |
|
k88936
|
4e1064266f
|
移除自动切分结果的冗余类型断言
依赖空值检查后的 TypeScript 类型收窄直接使用 SeparationDTO。
不改变自动切分流程或运行时行为。
|
2026-09-10 19:05:48 +08:00 |
|
k88936
|
a50cbfb6c8
|
过滤图片编辑响应中的空图像数据
忽略上游返回的空 b64_json 条目,避免把空字符串转发为图像结果。
新增空条目与有效条目混合响应的回归测试。
|
2026-09-10 19:04:40 +08:00 |
|