suzmii
5b62d1e4ef
修复资源登记把任意图片写成 ui 类型
...
Project CI / Repository checks (pull_request) Successful in 3m17s
Project CI / Frontend tests (pull_request) Successful in 3m55s
Project CI / Backend tests (pull_request) Successful in 6m29s
Project CI / Native shell tests (pull_request) Successful in 17m16s
停用本地导入图片的 ui 默认 kind:agent_local_project_file_type 的图片扩展名分支改写 canonical image(派生 unclassified,落「待归类」),并注明不许把 ui 当图片默认值及其不可恢复原因——读时自愈只在落盘 category 为 unclassified 时触发,kind 本身写错时自愈只会把错值放大成 ui-interaction
账户素材导入改用平台真实类型:新增 imported_platform_asset_kind,账户素材库记录自带的 assetKind 不再被常量 ui 顶掉,缺失才退回中性 image
平台素材导入改用响应里的 assetKind:网页项目画布与平台素材导入同样走 imported_platform_asset_kind,不再写死 ui
上传素材按内容证据推导 kind:upload_local_asset_at 不再把来源词 uploaded 当类型,改由 uploaded_asset_kind 按 mediaType 与扩展名推导 audio/video/image/document/code,判不出才用中性 asset;同一命令也收 .wav 与 .md,因此不能一刀切成 image
补 4 处回归与反查用例:本地导入与上传断言落盘 kind 与 category 且不得出现 ui、ui-interaction、uploaded;两处平台导入的 kind 解析加纯函数单测与调用点反查门禁;变异把错值改回来必须变红(M1/M2/M3 实测 4 个用例全红,还原后 diff 与基线逐字节一致)
覆盖边界:账户素材库与平台素材导入是异步 HTTP 路径,仓库内没有可复用的端到端夹具,这两条覆盖是纯函数单测加调用点反查门禁,不是端到端断言;本地导入与上传是读落盘 manifest 的行为级断言
后续事项:ImportedAsset.asset_kind 仍返回平台原始值(缺失为 none),与已落盘 kind 可能不一致,本次未改动
2026-09-12 02:30:31 +08:00
suzmii
90177308e0
pitfalls:补记「同一条命令的口径差异」——CI 用提交范围比较 git diff --check
...
Project CI / Repository checks (pull_request) Successful in 3m17s
Project CI / Frontend tests (pull_request) Successful in 3m55s
Project CI / Backend tests (pull_request) Successful in 6m17s
Project CI / Native shell tests (pull_request) Successful in 17m11s
- docs/project-memory/shared-memory/pitfalls.md:在「只跑门禁子集 → 同一天两次 CI 红」条目的「原因」里补第三类成因
- 口径差异:CI 跑 git diff --check "${base_ref}"..."${head_ref}"(提交范围),本地裸跑 git diff --check(工作树 vs 索引)在干净树上恒为空,所以本地绿不能证明 CI 这一跳会过
- 实例:pitfalls.md 末尾多出的空行(f16aa440b 引入),因前两次推送分别停在 check:git-hooks 与 check:rustfmt 而一直未被这一跳检查
2026-09-12 02:07:49 +08:00
suzmii
a5c7938d05
修 CI:去掉 pitfalls.md 末尾多余空行(git diff --check 报 new blank line at EOF)
...
- docs/project-memory/shared-memory/pitfalls.md:删掉文件末尾多出的一个空行,使文件以单个换行结尾(UTF-8 无 BOM、LF 不变,仅 -1 行)
- 该空行由先前提交 f16aa440b 引入;前两次 CI 分别停在 check:git-hooks 与 check:rustfmt,都没走到最后一道 git diff --check,因此一直潜伏
- 自检口径按 CI:git diff --check fafe6b63c..HEAD(CI 是提交范围比较;本地裸跑 git diff --check 在干净树上恒为空,看不出来)
2026-09-12 02:02:12 +08:00
suzmii
31fcbb79dc
pitfalls:记一条「只跑门禁子集 → 同一天两次 CI 红」
...
Project CI / Repository checks (pull_request) Failing after 2m51s
Project CI / Frontend tests (pull_request) Successful in 3m29s
Project CI / Backend tests (pull_request) Successful in 7m5s
Project CI / Native shell tests (pull_request) Successful in 17m8s
- 现象:dd7cf401a 给 lint-staged 加 *.rs 键,但本地从未跑过 check:git-hooks(它是 npm run lint 链里的一环),而 scripts/git-hooks.test.mjs 用 assert.deepEqual 钉住 lint-staged 的整份配置形状 → CI 以 deepStrictEqual 失败;本批更早还因 check:rustfmt 红过一次(15660a98b 修 8 处格式偏差),成因是 pre-commit 的 lint-staged 当时只覆盖 *.{js,mjs,cjs,ts,tsx},Rust 格式本地无守卫
- 原因:npm run lint 是一条 && 长链(encoding / npm-workspaces / git-hooks / rustfmt / spacetime-schema / production-ops / preview-deployer / maintenance-page / eslint / typecheck),中间任一步失败则其后步骤根本不执行,「跑到第 N 步就以为本地绿了」;更隐蔽的是本地若因环境原因在中间断掉(如 Windows 上 check:git-hooks 第 2 个用例的 EBUSY),后面那些本来能通过的步骤也从未被验证
- 处理:push 前按完整链路跑;&& 链在某一步失败时,必须把失败步之后的每一步单独再跑一遍(10 步 + git diff --check)并逐条记 exit code(取 exit code 不要接管道);改动碰到 package.json / .husky/ / scripts/ 下的门禁资产时,check:git-hooks 是必跑项
- 验证:本次 check:git-hooks 因本机 Windows EBUSY 中断后,补跑其后各步全部 exit 0(spacetime-schema / production-ops / preview-deployer / maintenance-page / lint:eslint / typecheck / encoding),只有 check:rustfmt 红且红在别人在途的 .rs(assets.rs:519 落在其未提交 hunk +470,62、commands.rs:3079 落在其未提交 hunk +3068,58);变异验证:把 *.rs 从 package.json 摘掉 → 第 1 个用例以同样的 deepStrictEqual operator 变红,还原(SHA256 一致)后回 ok
- 纯文档追加:文件末尾 +8 行、无删改;本条只提交 docs/project-memory/shared-memory/pitfalls.md 一个路径
2026-09-12 01:28:05 +08:00
suzmii
21da95387b
decision-log:把守卫范围与本地限制两条裁定写进既有条目
...
- 取舍 bullet 补裁定理由:保持「整个 workspace」检查、不换成只查暂存文件(rustfmt --check --skip-children 与 cargo fmt 的口径不一致);本批两次 CI 红的共同根因是「本地绿 ≠ CI 绿」,守卫必须与 CI 同口径
- 取舍 bullet 补流程归因:共树里的硌人是「共享 worktree」的症状、不是守卫的问题,对应流程修正是「一条线一个 worktree」
- 本地限制 bullet 定性为「本机环境限制,不是 CI 会红」,写明根因(Windows/WSL 跨 /mnt/c 的临时目录句柄在子进程退出后仍被持有)、删除重试实测无效且已还原、残留目录会累积(清前 16 个、最早 2026-09-05,本轮已清 0),并给出「Linux CI 上通过」的依据
- 明确裁定:接受该用例在 Windows 上红,不改它语义、本批不再修
2026-09-12 01:15:11 +08:00
suzmii
9fea60b850
append 锁:预算与项目写锁对齐、超时报可诊断的持锁方、争用做有界退避重试
...
Project CI / Repository checks (pull_request) Failing after 3m22s
Project CI / Frontend tests (pull_request) Successful in 3m46s
Project CI / Backend tests (pull_request) Successful in 6m30s
Project CI / Native shell tests (pull_request) Successful in 17m14s
- project/agent_db.rs:等待预算从 10ms×100≈1s 改为 5ms×2000≈10s,与项目写锁完整窗口同口径;新增 lock_short(5ms×200≈1s)供只读路径使用
- project/agent_db.rs:超时文案在锁路径后追加持锁方线索(读锁文件里的诊断元数据,读不到就明说不可读),现场不再只拿到一句"检查运行时配置"
- project/agent_db.rs:取锁成功后把 label/pid/processStartedAt/acquiredAt 写进锁文件;仅作诊断,不参与判活、回收或抢占,同一进程重复取同一把锁不重写
- project/agent_db.rs:抽出 PROJECT_APPEND_LOCK_TIMEOUT_MARKER 常量,控制流不再各自复制中文
- project/conversation.rs:整份读对话记录的两处只读入口改用短窗口,避免把面板读路径一起拖住
- agent/direct_project_history.rs:争用类失败做一次有界退避重试(250ms);格式类失败不重试
- agent/direct_runtime.rs:锁争用给可操作提示(另一个客户端进程正在读写该项目历史或项目锁,请稍后重试,确认没有其它客户端再重启),retryable 保持 true,但现在确实会自动重试
- 用例:预算口径、锁文件诊断元数据、持锁方线索、被独占持有时超时且不留残留、争用重试成功、超出预算失败关闭、格式类不重试
- 变异验证:预算常量改回 1s → 预算用例红(left 10ms / right 5ms);去掉重试 → 重试用例红(append after retry 直接报跨进程锁超时);验证后已还原
2026-09-12 01:09:37 +08:00
suzmii
cafd989bfb
decision-log:记录 pre-commit 新增 Rust 格式守卫的取舍与本地限制
...
- 新增 2026-09-11 条目:背景(本地无 Rust 守卫、CI check:rustfmt 是唯一防线)、决策(lint-staged 增 *.rs + 包装脚本对两个 workspace 只查不改)、连带维护点(git-hooks.test.mjs 钉住整份配置形状,增键必须同步)
- 记下刻意保留的取舍:无暂存 .rs 时不触发;一旦暂存 .rs 则按整个 workspace 检查(与 CI 同口径),副作用是别人的未暂存未格式化 .rs 会挡住本次提交
- 记下未修的本地限制:check:git-hooks 第 2 个用例在 Windows 因 finally 里 rmSync 报 EBUSY 而红(断言全过、红在清理),TEMP 里堆了 16 个残留目录最早到 2026-09-05,加删除重试实测无效,CI 在 Linux 上不受影响
- 不动历史条目:2026-08-12 那条的「提交门禁」一行按本文件顶部口径只用于追溯
2026-09-12 01:01:51 +08:00
suzmii
2a7bfadd72
修 CI:git-hooks 回归用例跟上 lint-staged 新增的 *.rs 守卫
...
- scripts/git-hooks.test.mjs 用 assert.deepEqual 钉住 package.json 的 lint-staged 整份配置形状,dd7cf401a 新增 *.rs 键时漏了同步,Repository checks(经 npm run lint → check:git-hooks)deepStrictEqual 失败
- 按新形态补上 '*.rs': ['node scripts/lint-staged-rustfmt.mjs'],不放宽断言:仍是整份配置的 deepStrictEqual,改回「只要含 js 那条就算过」这类弱化写法一律不做
- 第 2 个用例里的本地 lintStagedConfig 是 temp repo 的测试替身,不是对真实配置的期望:temp repo 里没有 Rust 文件,加 *.rs 只会命中 0 个文件,故不动
- 变异验证:把 *.rs 从 package.json 摘掉 → 本用例以同样的 deepStrictEqual operator 变红(# fail 2);还原(package.json 字节级哈希一致)后复跑该用例回到 ok
2026-09-12 00:43:49 +08:00
suzmii
77871bfa56
把可能弹 UAC 的 ACL 提权修复移出 append 锁的持锁窗口
...
- project/agent_db.rs:Windows 取锁成功路径不再在"已持有零共享句柄"时做带提权的 ACL 修复;持锁期间只做不提权的严格校验,校验不过就先释放句柄、再提权修复,并返回"这轮没取到锁"由外层重试循环按修复后的 DACL 重新打开
- project/agent_db.rs:新增 release_project_append_os_lock_then_repair_acl,参数按值接收锁句柄且函数体第一件事是 drop,使"边持锁边等 UAC"在签名层面无法被表达
- 原因:提权修复走 powershell Start-Process -Verb RunAs -Wait 同步等用户点 UAC,在持锁期间等它等于把用户犹豫的时间记进别人的持锁窗口;只有 Windows 存在这条路径
- 判据(结构级):提权修复只在此一处被调用,且调用点必须交出句柄所有权;测试环境不弹真 UAC(config.rs 测试分支本地收紧),故不写假 UAC 用例
- 真机判据:DACL 有缺陷的机器上,持锁方进入修复期间不再持锁,等待方从"超时"变为可成功
- 不变项:首次创建锁文件的本地 harden 仍留在持锁期间(本进程新建对象不因继承 DACL 自动提权)
2026-09-12 00:12:52 +08:00
suzmii
1affb5eec3
锁内只保留 append:DirectProject 历史的幂等回扫移出持锁窗口
...
- direct_project_history.rs:幂等回扫与序列化移到取锁之前,取锁后常态只做一次追加,不再在锁内读完并逐行解析整份历史
- direct_project_history.rs:回扫到取锁之间若历史文件变了(len/mtime 与回扫时不一致)才回到锁内重扫一次;同一 id 不写第二行的语义不放宽,只是常态不再为它读整份文件
- direct_project_history.rs:新增 direct_project_history_duplicate_at 三态判定(Absent/Identical/Conflict)与回扫状态快照,对外行为与原实现一致(幂等 no-op、id 冲突失败关闭)
- direct_project_history.rs:新增回扫探针(两个时点回调)与三条用例:回扫在 append 锁外、锁外回扫后并发追加仍不重复写、id 冲突仍失败关闭
- project/agent_db.rs:新增测试专用探针 project_append_os_lock_is_held_for_test,用与生产同一套打开方式判断追加写目标的锁此刻是否被持有
- 变异验证:把回扫塞回锁内后 idempotency_reverse_scan_runs_outside_the_append_lock 变红(exit 101),报出「幂等回扫必须发生在 append 锁外」,验证后已还原
2026-09-12 00:07:04 +08:00
suzmii
f11942f357
展开态补回空态提示:复用栏目页同一个 .game-resource-page-empty 与文案,不新增样式
...
Project CI / Repository checks (pull_request) Failing after 1m18s
Project CI / Frontend tests (pull_request) Successful in 3m29s
Project CI / Backend tests (pull_request) Successful in 6m42s
Project CI / Native shell tests (pull_request) Successful in 17m44s
- index.tsx:展开态在"可见资源为 0"时渲染 <p class="game-resource-page-empty">没有匹配资源</p>,与栏目页那一条同一条判据口径与同一句文案
- 它挂在既有的画布浮层 host 下(该 host 自身不定位),因此按画本场景根居中,观感与栏目页一致,不需要任何新 CSS
- 测试:空项目的「所有资源」用例补三条断言——进入展开态后标题栏是 .is-active[data-resource-book-category="all"]、卡片宿主数为 0、空态文案是「没有匹配资源」(把"复用既有空态、不新增样式"变成可执行判据)
2026-09-11 23:55:36 +08:00
suzmii
85358b2ca5
「所有资源」页的决策与验收判据跟上当前形态:分带几何口径 + 两页共用同一份布局数据
...
- decision-log 新增「各栏目按分带铺在同一张画布上」:记分带几何(buildResourceBookAllLayout + resourceBookAllTitlebarRects 复用总览标题栏渲染路径)与冻结口径(只在项目/排序/可见资源集变化时重算,拖动不重算;签名不含 token 的理由),以及本轮不动的三处"仍是另一套"(依赖连线 / 空态分带 / 总览缩略卡网格)与它们的后续顺序
- decision-log 新增「两页共用同一份布局数据」:记裁决(不开独立空间、写回同一 mode 同一 sidecar 的同一 section、提交前减带原点)、"为什么不会写偏"的依据、与"历史手动坐标只读恢复/不删除/不重置/不迁移"不冲突的理由,以及用户可自证的往返判据
- 验收文档 S7 行判据改写:旧判据 data-resource-book-all-page / data-resource-book-all-host 已随网格分支删除,改钉 .game-resource-book-scene-card[data-resource-book-category](每张资源恰好一个宿主)、.is-active[data-resource-book-category="all"] 与 .game-resource-book-view;补上"展开态可拖且在栏目页看到同一位置"这条往返判据
- 验收文档 S7 期望结果同步:由"汇总页"改为"与栏目页同一套画本场景、各栏目按竖向分带铺开"
2026-09-11 23:40:12 +08:00
suzmii
0d98bd05cc
删掉「所有资源」页的独立网格样式:它已经走画本场景,这六条没有调用方了
...
- 删除 .game-resource-all-resources-host:整页 absoulte 层与自己的底纹(原本是为了盖住画本场景底纹、并躲开画布容器的滚动处理)
- 删除 .game-resource-all-scroll:分组网格的自身滚动容器
- 删除 .game-resource-all-section:按栏目分组的分节卡片(边框 / 圆角 / 半透明底)
- 删除 .game-resource-all-grid:repeat(auto-fill, 180px) 卡片网格
- 删除 .game-resource-all-card:网格里的卡片占位格
- 删除 .game-resource-all-grid .game-resource-card:只读页的光标与 touch-action 覆盖(展开态已可拖,卡片要保留画布那套 touch-action: none)
- 不留任何 all 专属替代规则:展开态的外观全部由既有的 .game-resource-book-scene-card / .game-resource-card 与共享规则给出("零新增 CSS"是本次红线)
2026-09-11 23:33:59 +08:00
suzmii
9788248d9b
「所有资源」页改走画本场景:与栏目页同一套卡片宿主与几何,并可拖动
...
- 新增 resourceBookShowsAllCategories:把"子画布里的 all"这一态判定收在 resourceBookModel 一处
- resourceBookCategoryCardPresentation:展开态下真实栏目返回 child(卡片仍由各栏目组承载,每张资源只有一个宿主)、all 自己返回 null(只出标题栏与全量计数)
- 新增纯函数 buildResourceBookAllLayout:按栏目顺序纵向排"分带",用各栏目可见资源的 extent 定带宽高;卡片世界坐标 = 栏目内局部坐标 + 带原点
- 新增 resourceBookAllTitlebarRects:分带 → 栏目标题栏矩形,让展开态复用总览态"按矩形钉标题栏"的同一条渲染路径(ResourceBookScene 不需要知道"展开态"这个概念)
- 新增 resourceBookAllBandLocalPoint:展开态世界坐标 → 栏目内局部坐标,这是落盘前唯一的换算(减带原点)
- buildResourceBookScenePlan:展开态下 all 只出标题栏(钉在视口 + 全量计数),真实栏目按带偏移铺满 child 卡;真实栏目这一支仍按 presentation === child 取卡,"能出卡的判定"只有一处
- buildResourceBookScenePlan:返回总览的淡出改为按"刚离开的那段子画布"判定(exitingCategory 传 all 时覆盖所有栏目),并用带偏移位置淡出,否则返回动画会跳位置
- buildResourceBookScenePlan:「所有资源」组不再接 child / exiting 卡,避免同一张卡在两组里各挂一份(DOM 查询与 FLIP 键撞车)
- index.tsx:删掉独立网格页组件、其 host 块与 resourceBookAllResourcesSections memo,展开态整体交给画本场景
- index.tsx:新增内存态 resourceBookAllViewport(不落盘、不进按真实栏目键的 resourceCanvasViewports),滚轮 / 缩放 / 适应 / 平移 / 框选都作用到它
- index.tsx:分带几何按"项目 + 排序 + 可见资源集"冻结(签名 + ref 短路;签名不含 state.token——返回总览时 token 也会变,含它会在淡出期间重算),拖动不重算带高,避免"拖上面一带让后面所有带整体位移"
- index.tsx:拖动放开——展开态下每张卡都能拖,section 取 resource.category(栏目页仍只拖当前分页栏目)
- index.tsx:提交前用 resourceBookAllBandLocalPoint 把世界坐标减回带原点,写回的仍是同一 mode 同一 sidecar 的同一 section(.agent/workbench/resource-layouts/{dependency,type}.json),没有第二份空间,不改契约与 schema
- index.tsx:renderResourceBookCard 去掉 options.draggable:展开态已可拖,这个"只读"开关没有调用方了
- 测试:resourceBookModel.test 钉住展开态 presentation 与"栏目页仍是原判据";resourceBookLayout.test 退役旧分组函数用例,新增分带几何 / 标题栏矩形 / 减带原点换算 / 展开态计划(含"每张资源只有一个宿主"与按带位置淡出)断言
- 测试:appSurface 两处「所有资源」判据从旧网格宿主改为画本场景(.game-resource-book-scene-card[data-resource-book-category] 与 .is-active[data-resource-book-category="all"]),并断言旧网格容器 / 宿主一个都不再存在
2026-09-11 23:33:08 +08:00
suzmii
f16aa440b9
补踩坑:第四类索引事故——git add <路径> 会把同一文件里别人的 hunk 一起暂存
...
- 记录 28781a420 的事故形态:该笔除我新增的用例(@@ -1260,6 +1260,51 @@)外,还混入了 peer 对「所有资源」测试期望的在途改动(@@ -9562,37 +9607,83 @@),提交描述与实际内容不符,且对方那份文件随即显示为干净、容易被误判为已收口;内容未丢
- 写清正确护栏:对可能被他人同时编辑的文件,把 git add <path> + git diff --cached(看内容、不只看文件名)+ git commit 压进同一条命令,并逐 hunk 确认每一个都是自己这次要写的;发现混入他人 hunk 后保持现状并立即上报,不在共享树里用 --amend/reset/checkout --/revert 做手术
- 写清状态信号:M (已暂存且工作区与索引一致)/ MM(add 后又改过)/ M(仅工作区),并点明「M 只能说明 add 之后没人再动过,不能说明这份文件里只有我的改动」
- 写清同类隐患:pre-commit 的 lint-staged 会对它格式化过的文件做 git add(prettier --write 之后 Applying modifications from tasks),与 npx lint-staged --diff=… 属同类反向 git add
- 与前三类索引事故(git add -A 卷走别人的文件 / stash pop 弹出别人的 stash / lint-staged --diff 反向 add)并列,指明本类正是「按文件名校验」这道护栏的失效点
- 门禁:npm run check:encoding exit 0(4399 file(s))
2026-09-11 23:08:57 +08:00
suzmii
3a850ee6e7
补两条踩坑:app-server 会 1:1 回显注入内容(读侧上限不得小于写侧允许量),以及“掉了就补读”的补扫不是修复
...
- 新增「Codex app-server 会 1:1 回显注入内容:读侧上限不得小于写侧允许量」:记录隔离探针实测(捆绑 codex-cli 0.147.0)——注入 5 MiB 的 item,app-server 接受并回一条 5 243 245 字节的 rawResponseItem/completed 单行,而读侧上限当时 4 MiB、写侧无上限,于是合法的注入被读行判成连接级故障,报错方向指向 app-server;同时记下 stderrBytes=405 那类摘要不能当证据(正常启动就有 275/452/546/5996 B 的插件/别名警告)、experimentalRawEvents 需要 initialize.capabilities.experimentalApi、以及探针必须用管道 stdin 与按 CommandLine 精确清理
- 新增「「掉了就补读」的补扫不是修复:自激回路会一路耗到内存」:明确标注**由并行工作线报告、本线未独立复核**,并给出取证据前不得引用的警示与“去掉补扫症状是否回来”的判据
- 门禁:npm run check:encoding exit 0(4399 files)
2026-09-11 22:51:24 +08:00
suzmii
28781a420c
补资源总览网格的声明级断言:钉住 width:100% 与 max-width 并存,防止退回单列
...
- 新增用例「keeps the resource overview grid off fit-content so its columns stay responsive」:断言 .game-resource-book-main-grid 同时声明 width: 100% / max-width: 1120px / margin: 0 auto / repeat(auto-fit …),并同款断言 .game-resource-book-main-heading 的 width: 100%
- 取声明体前先剥掉 CSS 注释:本次修复的注释里就写着 width: 100% 等字样,不剥掉会让断言匹配到注释而假绿(删掉真正的声明也照样通过)
- 注释里写明这条断言**验不到布局**:AGC 的 vitest 没开 css: true、styles.css 不会被加载、jsdom 也没有布局引擎,gridTemplateColumns 的解析结果与缩略卡列数只能在真机量;真机判据(3 个非 0 轨道 / grid 宽 432→1120 / 8 张缩略卡 top 只有 3 个取值,且需在总览态取样)写在用例注释里
- 变异验证:临时删掉 .game-resource-book-main-grid 的 width: 100% → 用例变红且失败信息打印的是真实声明体(证明注释剥离生效);还原后 styles.css 逐字节哈希与已提交版本一致,复跑绿灯
- 门禁:npm run typecheck exit 0;npm run check:encoding exit 0(4399 files);npx vitest run apps/ai-game-creator-shell/tests/appSurface.test.ts 本用例 1 passed
2026-09-11 22:50:01 +08:00
suzmii
3db6afa052
对齐 Codex app-server 读写单行上限:写侧守卫 + DirectProject 历史注入前置校验,并把注入超限改判为不可重试
...
- 隔离探针实测(codex-cli 0.147.0,AGC 捆绑版本):experimentalRawEvents 线程收到 thread/inject_items 后会逐条原样回显 rawResponseItem/completed —— 注入一个 5 MiB 的 item,stdout 就回一条 5 243 245 字节的单行;而读侧上限原为 4 MiB,于是「我们注入得进去」却「我们读不回来」,报错方向指向 app-server,实际是我方读行判死
- codex_app_server.rs 的 GAME_CREATOR_CODEX_APP_SERVER_LINE_MAX_BYTES 由 4 MiB 提到 32 MiB,注明它同时充当 stdout 读侧上限与 stdin 写侧守卫;取值依据写进注释(单张图 base64 上限 10 MiB、单次图片总量 16 MiB 折 base64 约 21.3 MiB,再加 JSON 信封),再大就失去内存/DoS 边界的意义
- 新增写侧守卫 game_creator_codex_app_server_message_oversize_error:write_message 超限即失败关闭并给出字节数,绝不写出自己读不回来的行(两侧共用同一常量即这条不变量)
- 新增 DirectProject 历史注入前置校验 direct_project_history_injection_oversize_error:单条 item(扣掉 rawResponseItem/completed 回显信封余量)与整份载荷都必须落在上限内;超限指名 itemId/type/字节数并失败关闭,且不截断、不摘要、不改写历史(技术方案末节口径)
- 新增专属前缀 DIRECT_PROJECT_HISTORY_INJECTION_OVERSIZE_PREFIX,供 direct_runtime 判可重试性与给专属提示
- direct_runtime.rs:direct_codex_failure_is_retryable 把注入超限改为不可重试(同一份历史每次读结论相同,且本轮用户消息已先追加进同一文件、载荷只会更大);direct_codex_failure_recovery_hint 与 direct_codex_failure_public_summary 各补一条专属文案,用户不再看到笼统的「Codex 未完成本轮代码修改,请检查运行时配置后重试(可直接重试)」
- 新增 2 条用例:写侧守卫与读侧共用同一上限的边界(等于上限必须放行、上限+1 必须拒绝)、注入侧整份载荷与单条 item 双超限必须拒绝
- 变异验证:把写侧守卫改成 >=、把单条上限放成 usize::MAX,两条用例各在自己那一处变红;还原后逐字节哈希一致并复跑绿灯
- 门禁:npm run check:rustfmt exit 0;npm run typecheck exit 0;cargo test 定向 2 passed(2257 filtered out)
2026-09-11 22:24:30 +08:00
suzmii
1b7261685c
登记素材上传配对的踩坑与覆盖边界:断言打在生产函数上,端到端 UI 未覆盖
...
- `pitfalls.md` 新增「素材上传不要把『上传前读到的 revision』贴到『上传后读到的清单』上」:现象(每次上传都先吃一条拒收提示)、根因(上传本身推进 revision,错配必然发生而非竞态)、处理(上传动作与配对读收进同一个函数,调用方拿不到中间那个 revision,也就没机会贴错)、同类文案坑(`unresolved` 三条进入路径里有两条重读是**成功**的,写成"读取磁盘清单失败"就是误报)、验证与变异,并记录关联文件与提交。
- 覆盖边界(按当下口径写清,防止后人误读):断言打在生产函数 `uploadProjectAssetFilesAndReadSnapshot` 上 —— 它同时拥有上传与配对读,所以配对语义是真测的;但 AGC 侧**没有**「资源面板上传 → 拒收提示条」的端到端 UI 用例(现有 harness 只有聊天入口的 `/asset.upload`,资源面板 file input 无用例),因此「界面上不再出现拒收提示」是推理结论而非端到端断言,禁止当成端到端覆盖引用。
- 同一条边界同时写进 `projectResourceLiveUpdateModel.test.ts` 用例组头部,随断言一起走,避免只看测试文件的人误读。
- 纯文档 + 测试注释,无功能改动。
2026-09-11 22:19:14 +08:00
suzmii
c3ccae75af
按实测收回 cfd89ba57 顺手加宽的一处测试超时,并写明另一处保留的理由
...
- `prefetches only cards that are actually in view, and still fills the first screen` 的 `}, 30000)` 收回(回到 vitest 默认 5 s):实测 93 ms,约 54 倍余量,而且真正的时间门是内层 `waitFor` 自带的 1 s。cfd89ba57 那次只是给负载留余量,没有对应的结构性成本 —— 对照 `releases Blob URLs while continuously browsing beyond the cache limit`(79 轮串行读盘、实测 6120 ms、超默认 5 s)那条的预算属结构性必需,保持不动。
- `keeps a visible card cached when later loads push the cache over its limit` 的 `}, 60000)` **保留**并写明理由:它的职责是挂起护栏,必须大于内层 `waitFor` 的 20 s 断言预算,否则内层断言自己的失败信息永远不出现(vitest 会先在测试超时处中止,只剩笼统的 "test timed out")。用例实测 120 ms,20 s 与 60 s 都不是耗时预期;硬收会让内层预算变成不可达配置,是更差的诊断而不是更紧的门禁。
- 无功能改动。
2026-09-11 22:18:40 +08:00
suzmii
fef366a66b
文档跟进:资源画布的引用入口按当前状态描述(图标 @ + 文案「引用」)
...
- 「当前已完成」清单里「资源画布素材卡提供 `@引用`」既不准确也不再是当前形态:入口已从卡片挪到选中工具条,且可见文案与 title 都不再自带 `@`(`@` 由 `AtSign` 图标承担,文案再写一次会渲染成「@ @引用」)。
- 按「四不写」把该条直接改写成当前状态:入口位置(选中工具条)、图标与文案口径(图标 @ + 文案「引用」)、以及插入对话里仍然是 `@素材名` 芯片。
- 纯文档,无代码改动;单独提交便于 cherry-pick。
2026-09-11 22:18:09 +08:00
suzmii
a88034dab1
修复资源总览网格退化成单列:父链宽度不定让 auto-fit 只解析 1 个轨道
...
- styles.css 的 .game-resource-book-main-grid 增加 width: 100%:父级 .game-resource-book-main-world 是列向 flex 容器,交叉轴 auto 外边距(margin: 0 auto)会吃掉自由空间并取消 stretch,使该网格按 fit-content 定宽;fit-content 定宽时网格 inline size 在内在尺寸阶段不定,按 CSS Grid 规范 auto-fit 的重复次数解析为 1,于是 2560x910 窗口下 grid 宽只有 432px、getComputedStyle(grid).gridTemplateColumns 只有 1 个轨道、8 张栏目缩略卡竖向排成一列(top 步距 230)
- 同款修 .game-resource-book-main-heading:它在同一个 flex 列里带 margin:auto,同样退化成 fit-content,标题栏只占 <h2> 宽度且 space-between 无从展开
- 两处都补注释写明「width:100% 是 auto-fit 按 max-width 解析列数的前提」,防止后人当作冗余声明删掉
- 修复后 auto-fit 按 max-width:1120px 解析重复次数:3x280+2x18=876 <= 1120、4x280+3x18=1174 > 1120,即 3 列
- 真机判据:gridTemplateColumns 应给出 3 个非 0 轨道(约 361.33px)、grid 宽 432 -> 1120、8 张缩略卡 top 只有 3 个取值;且必须在总览态核对(栏目态该层带 is-background,opacity 为 0,是背景层)
- 未改动任何既有断言;AGC vitest 不加载 styles.css(无 css: true),声明级断言随下一笔提交补进 appSurface 用例
2026-09-11 22:10:43 +08:00
suzmii
e98066ee7e
驱逐后不再补扫:删掉那条会把可见卡反复重读的自激回路,并如实标注超时预算
...
- 删掉 publishPreview 里"驱逐后立刻补一次可见性扫描"(原 useProjectResourceCardPreviews.ts 的 `if (evictedCount > 0) sweepVisiblePreviews()`)。它原先的注释宣称"递归深度恒为 1、不自激",该不变量是假的,判据有三条:(1) 触发条件是"本轮驱逐了任意条目",而第一轮只淘汰视口外条目,那种情况下根本没有可见卡丢状态,补扫却照样把空闲且可见的卡重新入队;(2) 真正驱逐到可见卡时(全表都在视口内且仍超预算,第二轮全表 LRU 回退)补扫把刚被驱逐的卡重新入队 → 读回来又超预算 → 再驱逐 → 再补扫,每个周期跨一次异步读取,是不收敛的回路;(3) 那种回读换不来稳定结果,读回的卡立刻被下一轮 LRU 淘汰(第二轮回退是全表 LRU,刚读回的卡恰好最新),只在可见集合里轮转。因此正确反应是接受这次有界淘汰(由「全可见且超预算时仍必须淘汰」钉住),而不是反复重读;代码注释按这三条重写,不留误导后人的陈述。
- 顺带删掉只为那段补扫存在的 `evictedCount`(否则是死变量)。
- 断言:新增 useProjectResourceCardPreviews.test.ts「settles instead of re-reading evicted visible cards forever」——全部登记且都在视口内(第一轮无从下手),断言读取次数在观察窗口内不再增长、且缓存稳定在上限。
- 变异验证(提交前已跑):把补扫加回去 → 该用例**不是断言变红而是 worker 被撑爆**(`ERR_WORKER_OUT_OF_MEMORY`,约 74 秒后终止),即回路真的不收敛;还原后复跑 32 passed,该用例 2.1s 通过。
- 超时预算改为"标注并给出实测依据",不再用放宽时间门吸收负载代价:`releases Blob URLs while continuously browsing beyond the cache limit` 的 `}, 30000)` 保留,并在用例前写明理由 —— 它逐个 waitFor 等 79 张卡串行读完,轮数由条目上限 48→72 机械地从 55 涨到 79(+44%),实测 6120 ms,已超 vitest 默认 5s,属结构性必需。同一提交里的 `waitFor({ timeout: 30000 })`(由 20000 顺手放大)按实测**回到 20000** 并写明依据(该用例实测 124 ms,约 160 倍余量)。
- 门禁:useProjectResourceCardPreviews 32 passed。
2026-09-11 22:02:31 +08:00
suzmii
b12b0998d0
分类改动不再丢弃已落盘的画布坐标:分区不一致时归并到资源当前分类并保留 x / y
...
- 原缺陷(3082c3e85 的连带副作用):`kind:"UI"` 的资产投影分类由「待归类」修到「UI 交互」后,它们落盘的坐标 section 仍是现行栏目值 `unclassified`,于是 resolveResourceCanvasSection 走「现行栏目值 != 资源当前分类 ⇒ null」直接判丢弃,8 条用户手摆的坐标没能跟过来、被自动排布重算。
- resourceCanvasSectionMapping.ts:现行栏目值改为返回**资源当前分类**("这张卡属于哪一栏"的唯一真源本来就是 resource.category,协调时也按它分组),与旧栏目归并支路同一条语义 —— 只改写 section,x / y / manuallyPlaced 原样保留。判据:坐标是栏目内局部坐标(reconcileResourceCanvasLayout 先按 section 分组再算栏目带原点),所以换栏目保留 x / y 得到的正是"这张卡在新栏目里的同一个槽位";而"丢弃 + 自动重排"会连 manuallyPlaced 一起抹掉,是用户可见的损失。
- 判断与理由:**保坐标重写 section 可行**。同一函数对更难的旧栏目 case(旧 `art` 可能归并到 4 个不同栏目)已经在做同样的事,对 `unclassified → ui-interaction` 反而更窄;拒绝它是自相矛盾。
- 丢弃口径收窄:resolveResourceCanvasSection 只在**确实无从归并**时返回 null —— 无法识别的分区值,以及旧栏目归并目标集合不含资源当前分类(如旧 `code` 遇到已归为 `document` 的资源)。useProjectResourceCanvasLayout.ts 的 droppedSectionMismatch 文档与读盘统计注释按此更新(用户可见文案未变,它对新口径仍然成立)。
- 断言:resourceCanvasSectionMapping.test.ts 把原「沿用既有行为丢弃该坐标」用例改写为守新契约(归并 + changed=true),并新增 x / y / manuallyPlaced 逐项不变用例;resourceCanvasLayoutModel.test.ts 原「drops a persisted position…」改写为「rewrites … keeping the coordinates」;useProjectResourceCanvasLayout.test.ts 的读盘统计由 normalized 1 / droppedSectionMismatch 1 改为 normalized 2 / droppedSectionMismatch 0,并新增"归并必须连坐标一起保住"的断言,另补一条用例钉住 droppedSectionMismatch 只剩"无从归并"两类来源;appSurface/project-development.suite.ts 的提示文案与 data-* 计数同步,并新增写盘坐标断言。
- 变异验证(提交前已跑):把 resolveResourceCanvasSection 还原成 `section === resourceCategory ? section : null` → 6 条用例变红(映射 2 条、布局模型 1 条、读盘统计 2 条、appSurface 1 条),还原后复跑 83 passed + appSurface 该条 passed。
- 门禁:resourceCanvasSectionMapping 9 passed、resourceCanvasLayoutModel 47 passed、useProjectResourceCanvasLayout 27 passed。
2026-09-11 21:48:43 +08:00
suzmii
006e9cc2f3
素材上传不再每次触发一次拒收提示:上传与清单配对读放进同一个函数
...
Project CI / Repository checks (pull_request) Failing after 1m31s
Project CI / Frontend tests (pull_request) Successful in 3m46s
Project CI / Backend tests (pull_request) Successful in 8m21s
Project CI / Native shell tests (pull_request) Successful in 19m10s
- 原缺陷:上传路径在上传**前**读 get_local_game_project_revision,上传完把那个**旧 revision** 交给 reloadManifestAfterAssetCommand;后者重新读盘拿**新清单**再打上旧 revision。上传本身会推进项目 revision(Rust advance_agent_runtime_project_revision_locked),于是这一对是撕裂的,「同 revision 不同指纹」被 projectResourceLiveUpdateModel 判成 revision-conflict —— 用户每上传一次素材就先看到一条「资源清单更新被拒收…」。
- projectResourceLiveUpdateModel.ts 新增 uploadProjectAssetFilesAndReadSnapshot:上传动作与"配对读"由同一个函数拥有,配对读复用既有 rereadAuthoritativeProjectManifestSnapshot(同一次读里配对 revision + 清单,并再读一次 revision 确认没被写盘插队)。调用方拿不到中间那个 revision,也就没有机会把它贴错。
- index.tsx 的 uploadResourcePanelFiles 改用它,删掉上传前那次 revision 读取与旧 revision 的传递。
- 附带文案误报:describeProjectManifestMergeRejection 的 unresolved 文案由「重新读取磁盘清单失败,请重新打开项目」改为「未能按磁盘清单重新对齐,请重新打开项目」。unresolved 有三条进入路径,其中两条**重读是成功的**(读到的一对比手上旧、或读到的是撕裂的一对),写成"读盘失败"是误报;新文案对所有路径都成立。WorkspaceLauncher.tsx 在"读到了但不采用"那一支补注释说明 stage 不是读失败。
- 断言:projectResourceLiveUpdateModel.test.ts 新增「素材上传后的清单快照必须配对」——假后端在上传时推进 revision,断言 merge 判 accepted 且 projectManifestMergeRejectionDecision 为 null(即"上传一次不产生拒收提示"),并附一条对照钉子显式写出旧形状、断言它必被判 revision-conflict;另新增 unresolved 文案不得包含"读取磁盘清单失败"的用例。
- 变异验证(提交前已跑):把 uploadProjectAssetFilesAndReadSnapshot 还原成"上传前读 revision + 上传后读清单"→ 配对用例变红(并给出 revision-conflict 的失败信息),还原后复跑 15 passed。
- 门禁:projectResourceLiveUpdateModel 15 passed、workspaceLauncherManifestMerge 5 passed。
2026-09-11 21:33:54 +08:00
suzmii
09ed7b099b
视图切换取消排队预取在生产路径上真正生效:视图标识改为必填
...
- 原缺陷:预览 Hook 的预取作用域 key 缺省退化为"被喂进来的资源集合签名",而宿主按设计要求恒传**全量投影**(传全量才不会让总览里其它栏目只剩栏目标题栏),换栏目/换视图一字不改 ⇒ key 不变 ⇒ 取消上一视图排队预取的 effect 永不执行,"同级裁决"一并退化为 no-op。已有用例用"改 resources"模拟切视图,测的是生产不存在的调用方形状。
- resourceCanvasController.ts 新增 createResourceCanvasPrefetchScopeKey({ view, target, mode }):由视图身份(main / child:<栏目>)加排序模式算出标识。
- index.tsx 在资源画布处显式算出该标识并传给预览 Hook(栏目取 resourceBookState.view / resourceBookState.category,排序取 sortMode)。
- useProjectResourceCardPreviews.ts 把 prefetchScopeKey 由可选改为**必填**并删掉那段兜底:它能"看起来还在工作",正是它掩盖了漏接线;现在漏传是类型错误而不是静默少取消一次。
- 断言:resourceCanvasController.test.ts 新增标识派生两组用例(换栏目/换视图/换排序模式必须变,同一视图必须稳定);useProjectResourceCardPreviews.test.ts 改写两条既有切视图用例为生产形状(resources 恒为全量、只改视图标识与 eagerResources),并在用例内前置断言"换栏目必须换标识";其余既有用例经用例侧包装补齐标识,形状与生产一致,断言一条未放宽。
- 变异验证(提交前已跑):把 createResourceCanvasPrefetchScopeKey 的栏目分量去掉(只留 view + mode)→ 3 条用例变红(标识派生 / 取消上一视图排队预取 / 取消后重新可见再入队),还原后复跑 34 passed。
- 门禁:`npx vitest run` 上述两文件 34 passed;typecheck 见随后整轮。
2026-09-11 21:31:30 +08:00
suzmii
4175d82fa1
工具条「引用」不再渲染成「@ @引用」:@ 只留图标,文案去掉重复的 @
...
- index.tsx 选中工具条的引用按钮:title 由「@引用」改为「引用」,可见文案 <span>@引用</span> 改为 <span>引用</span>。图标 AtSign 本身就是 `@`,文案再写一次就渲染成「@ @引用」。
- label={`引用资源 ${selectedResource.label}`} 保持不变:无障碍名仍要能读出「引用资源 <素材名>」,本次只去掉可见文案与 title 里的 `@`。
- 断言(appSurface/project-development.suite.ts):静态形状用例改判 title="引用" / <span>引用</span>,并新增 not.toContain('@引用') 反向守卫;键盘通路用例改判 title === '引用'、可见标签 .genarrative-image-canvas__chrome-button-label 文本为「引用」,并新增 aria-label === '引用资源 hero.png',钉住无障碍名没有被一起去掉。
- 变异验证(提交前已跑):把 index.tsx 的 title 与可见文案一起改回「@引用」→ appSurface 两条用例变红(资源卡的 @ 引用入口只留在选中工具条里 / 工具条里的「引用」用键盘也能插进聊天输入框),还原后复跑 412 passed。
- 门禁:`npx vitest run apps/ai-game-creator-shell/tests/appSurface.test.ts` 412 passed(改动前后同一时刻对照,均为 412 passed)。
2026-09-11 21:25:14 +08:00
suzmii
dd7cf401a9
补 lint-staged 的 Rust 守卫:pre-commit 也跑 check:rustfmt
...
- 新增 scripts/lint-staged-rustfmt.mjs:对 server-rs 与 apps/ai-game-creator-shell/src-tauri 两个 workspace 跑 cargo fmt --all --manifest-path <m> -- --check,只查不改
- 为什么需要包装脚本:lint-staged 会把命中的暂存文件路径追加到命令末尾,而 cargo fmt 只按 workspace 粒度格式化、不接受文件参数,直接写成 npm run check:rustfmt 会被多余参数打断;脚本因此忽略 argv,并按 workspace 逐个检查
- package.json 的 lint-staged 配置新增 "*.rs": ["node scripts/lint-staged-rustfmt.mjs"]
- 成因:原配置只覆盖 *.{js,mjs,cjs,ts,tsx},Rust 格式在本地完全没有守卫,唯一防线是 CI 的 check:rustfmt,本 PR 已因此红过一次(见 15660a98b)
- 已实测:把包装脚本直接跑一遍 exit 0;lint-staged 分派层面确认 "*.rs" 任务会被真的触发(对 6 个 .rs 文件跑通);脚本本身过 eslint 与 prettier --check
2026-09-11 21:24:43 +08:00
suzmii
5fff7a134c
④ 资源分类写入补一条 agent.db 审计记录
...
- update_manifest_asset_classification_at 在 manifest 写成功后追加 recordType=asset.classification.update 的审计,复用既有 append_agent_db_record 惯例(照 assets.rs 的 asset.register / asset.update:manifest 写成功后追加)
- 字段:assetId(沿用 assets.rs 的 assetId)、expectedProjectRevision(本次写入实际校验的 CAS 基准 revision,沿用分类输入契约里的同名参数)、previousCategory / previousTags(变更前值)、category / tags(变更后值)
- 不记 localPath / kind / mediaType / source:本记录针对的是已有 assetId 的分类变更,这些字段并未改变,且能从 manifest 或既有 asset.register 记录追到,多记一份会在改名后产生互相矛盾的审计
- 不用 projectRevision 这个名字:既有 agent.runtime.action_receipt 里 projectRevision 的语义是「动作完成后的 revision」,本条审计追加在 revision 推进之前,沿用同名会指代不一致;审计是持久化数据,故在新记录类型里另起不冲突的名字,不动既有记录格式约定
- 位置放在推进 revision 之前是刻意的:分类已经真实落盘,审计不能因为紧随其后的 revision 推进失败而缺失,否则「改过但查不到」正是这条缺陷;推进失败仍然照旧报错
- 审计追加失败按既有惯例映射为可见错误「资源分类已写入,但审计记录失败:{error}」,不静默吞掉
- project/manifest/classification_tests.rs 补 3 条断言:成功写入恰好一条且前后值正确(含第二次写入的 previous 必须取第一次的落盘值)、四类被拒写入不产生任何审计、审计写失败时错误可见且不留假审计(同时确认分类本身已落盘、不回滚)
2026-09-11 21:18:55 +08:00
suzmii
4161888219
③ 资源画布布局的读/写命令补项目权限门
...
- read_local_project_resource_canvas_layout 补 enforce_project_auto_permission_policy(root, "asset.list"),与紧邻的 read_local_project_resource_graph 完全同口径
- update_local_project_resource_canvas_layout 补 enforce_project_permission_policy(root, "asset.register"),与本文件 update_local_project_resource_classification / delete_local_project_asset / rename_local_project_asset 同口径
- 权限位依据:读路径是同一块资源画布的渲染读路径,邻居用 asset.list;写路径是「改动项目内资源相关持久化数据」,manifest 侧的分类写入本身就用 acquire_project_write_lock(root, "asset.register"),故沿用同一权限位,不新造权限名
- 读用 auto、写用普通门是刻意的:asset.list 是 Auto,auto 口径默认放行,只有策略显式 deny/confirm 才拒绝(读路径没有可插入的确认交互,要求确认等同拒绝);asset.register 默认是 Confirm,若写路径也用 auto 会直接打死默认路径
- tests/project.rs 补断言:默认策略下读与写都放行;deny asset.list 读失败、confirm asset.list 也读失败(钉住 auto 口径这一选择);deny asset.register 时读仍放行、写被拒且被拒的写不留任何落盘副作用(断言 sidecar revision 未变);恢复默认策略后写入照旧成功
2026-09-11 21:18:41 +08:00
suzmii
6cc73b07ac
② GameCreationAppManifest 加 deny_unknown_fields:未知顶层字段失败关闭
...
- shared-contracts 的 GameCreationAppManifest 加 #[serde(deny_unknown_fields)],并写明取向与取舍
- 选「失败关闭」而不是「保留未知字段 round-trip」的理由:AGC 读写 manifest 是「整结构体反序列化 + 整结构体重新序列化覆盖落盘」,放行未知顶层字段就等于让「读一次 + 任意一次写」静默抹掉未来版本新增的字段;而 flatten catch-all 只能覆盖加了它的那一层,tasks / assets / versions / preview / commandRuns 内部的未来新增字段照样被抹掉,且写侧的 skip_serializing_if 会同时把已知字段归一化,落盘结果是「新字段原样 + 旧字段被规范化」的混合体,比直接报错更难排查
- 与既有取向同口径:本批新增的资源布局 sidecar 对未知 schema 就是失败关闭,UpdateLocalProjectResourceClassificationInput 也已 deny_unknown_fields
- 影响面已核实:server-rs 内 game_creation_app 模块只被自身引用,不进 /api/external/v1、不进 SpacetimeDB;全仓 GameCreationAppManifest 的反序列化点只有 src-tauri 的 read_manifest 一处;仓库自带 smoke 脚本写的 manifest 只有 schemaVersion/projectId/name/assets 四个已知键
- 断言:shared-contracts 补契约级用例(未知顶层字段反序列化失败且报出字段名、已知字段含可选字段照旧往返);project/manifest/import_tests.rs 补消费侧用例(纯读报错、读+写入口 mutate_manifest_at 也报错、两次失败后磁盘文件逐字节未变即未知字段没被抹掉)
2026-09-11 21:18:29 +08:00
suzmii
5eaf9faefd
① manifest 的 schemaVersion 补读/写失败关闭门
...
- 新增 validate_manifest_schema_version:只接受 GAME_CREATION_APP_MANIFEST_SCHEMA_VERSION,未知版本报「manifest schemaVersion 不受支持:{实际值}(当前支持 {当前值})」
- read_manifest 在解析后立即校验 schemaVersion,与既有的 godotProjectRoot / versions 校验同级;读到未知版本直接拒绝打开,不再被当成已知版本继续使用
- write_manifest_locked 落盘前同样校验,保证本客户端永远不会把未知 schemaVersion 写进项目(该函数是 write_manifest 与 mutate_manifest_at 共用的唯一落盘入口)
- 前向兼容取舍:刻意不做「接受未来版本 + 读时就地升级」——当前并不存在 v2 定义,凭空写一个升级只能把未知数据改写成当前版本的形状,正是本次要修掉的「静默接受」;代价是未来发 v2 时旧客户端明确报错要求升级,而不是把项目按旧结构写回
- project/manifest/import_tests.rs 补 3 条断言:当前版本必须被接受且全字段回读相等(正向断言,挡住「无条件拒绝」这种改法)、未知版本读失败且磁盘文件逐字节未变、未知版本写失败且不落盘
2026-09-11 21:18:15 +08:00
suzmii
15660a98b2
修 CI:补跑 AGC src-tauri 的 rustfmt,修正本批遗留的 8 处格式偏差
...
Project CI / Repository checks (pull_request) Successful in 2m52s
Project CI / Frontend tests (pull_request) Successful in 3m30s
Project CI / Backend tests (pull_request) Successful in 5m44s
Project CI / Native shell tests (pull_request) Successful in 19m31s
- 只做格式重排(应合成长行/应拆多行),无语义改动
- 命中 agent/direct_project_history.rs、agent/direct_runtime.rs、main.rs、project/conversation.rs、project/conversation/tests.rs
- 分别来自 bfb928295 / 2b44b6259 / 458a65cb5 / f0d5687ab 四笔提交的新增行
- 成因:pre-commit 的 lint-staged 只覆盖 *.{js,mjs,cjs,ts,tsx},Rust 格式本地无守卫
2026-09-11 21:09:09 +08:00
suzmii
47c88809b6
decision-log:记录冷启动首屏同卡重复读为后续项(本轮不修)
...
- 新增一条 2026-09-11 决策记录:冷启动首屏同一张卡被读两次的现象、两条对照证据(eagerPreviewLimit 置 0 同形;hook 整份换回 A/B 之前的 HEAD 版本同样重复)、怀疑方向(observePreview 的注册回声扫描 + 取消 visible 预取后的立刻重扫 + 0/250/1000ms 多延迟点叠加)、未修原因(赶 DDL、非用户可见故障、属门禁与队列时序这条更脆的通路)、影响(首屏请求量比理论最小值多约 20%)与建议的修复断言;
- 记录里写明 A+B 只改「取哪些、按什么顺序」,与这条重复读无关;
- prettier 顺带把该文件整份规范化(改动 2 行缩进 + 2 个空行,属既有旧条目,纯格式无语义)。该文件在 HEAD 上本就不是 prettier-clean(已用 HEAD 副本 prettier --check 实测为 warn),本次一并收口。
2026-09-11 21:00:36 +08:00
suzmii
87968e3be3
布局落盘 / 读盘失败不再吞掉原因:脱敏后留一行日志
...
- 两处 .catch(() => {…}) 没有 message 参数,失败原因被整个吞掉:用户只看到「布局保存失败」「布局读取失败」,排障端也拿不到为什么(revision 越界 / IPC 拒绝 / 权限);
- 写回失败(update_local_project_resource_canvas_layout 的 .catch)与读盘失败(read_local_project_resource_canvas_layout 的 .catch)都补上 error 参数,并落一行 console.warn;
- 新增 describeResourceCanvasLayoutFailure:把 error.message 压成一行、截断 400 字,并复用 errorReporting 的 normalizeDiagnosticText 脱敏(路径 / token / URL / 长 id 打码);
- errorReporting 的 normalizeDiagnosticText 改为导出:脱敏口径只留一份,业务文件不再各写一套正则;
- 用户可见文案一字不改(LayoutNotice 联合类型与既有四条用例的断言原样保留),原因只进日志;日志由客户端已装的 webview→application.log 桥带进诊断日志;
- 新增两条用例:写回失败必须留下原因(并断言可见文案仍是「布局保存失败,已恢复上次布局」)、IPC 拒绝且原因里带本机绝对路径与 token 时必须脱敏成 <path> 且压成一行;
- 变异验证:把写回那处改回吞掉原因 → 写回用例红灯;把读盘那处改回吞掉原因 → 脱敏用例红灯(各自只红对应一条,既有 24 条全绿)。
2026-09-11 21:00:16 +08:00
suzmii
3a4f95d7ca
Merge remote-tracking branch 'origin/master' into feat/agc-canvas-resource-workbench-v3
...
Project CI / Repository checks (pull_request) Failing after 1m23s
Project CI / Frontend tests (pull_request) Successful in 5m4s
Project CI / Backend tests (pull_request) Successful in 6m33s
Project CI / Native shell tests (pull_request) Successful in 19m45s
# Conflicts:
# apps/ai-game-creator-shell/src/App.tsx
2026-09-11 20:56:14 +08:00
suzmii
2ea3bcbb07
驱逐改为可见性优先,条目上限 48→72:图片不再自己消失又回来
...
Project CI / Repository checks (pull_request) Failing after 13s
Project CI / Backend tests (pull_request) Failing after 12s
Project CI / Frontend tests (pull_request) Successful in 3m14s
Project CI / Native shell tests (pull_request) Successful in 19m24s
用户报「图片会自己消失然后重新加载」。根因是**淘汰完全按 LRU 插入顺序、且完全不看"是否仍然可见"**:缓存条目顺序是「最近一次被请求」的顺序,而停在屏幕上不动的卡片不会产生新的请求 —— 于是恰恰是用户正看着的那几张排在队首被首选淘汰,`disposeCachedPreview` 释放 Blob 后图片凭空消失,再被兜底扫描重新读回来,表现为闪烁。上一轮「驱逐后补一次可见性复核」只是把"掉了不回来"变成"掉了再加载",是治标。
- `projectResourceCardPreviewEvictionIdentities` 新增 `visibleIdentities` 参数,淘汰改两轮:**第一轮只淘汰视口外的条目**(可见卡一律跳过);**第二轮才回退** —— 只有"剩余条目全部仍在视口内且依旧超预算"时才按全表 LRU 淘汰。回退不可省略,否则"可见即永不淘汰"会造成无界内存,该回退由用例钉住。
- `useProjectResourceCardPreviews` 在淘汰前按几何算出可见集合(复用既有的视口档位判据 `viewportBandOfElement <= 1`,经 ref 转发生效,避免定义顺序耦合)。
- `PROJECT_RESOURCE_CARD_PREVIEW_CACHE_LIMIT` 由 `48` 提到 `72`。依据是真机实测:该项目「UI 交互」栏目有 **51 张**可预览卡,而原上限 48 **小于一栏的规模** ⇒ 滚满该栏目必然驱逐;取 72 覆盖 51 张并留约 40% 余量,按真机单张均值 591 KB 外推 ≈ **43 MiB**,**仍在既有 64 MiB 字节预算之内**(真机 52 张 blob 合计 29.32 MiB,仅用掉 45.8%)。**字节预算未动,也不是把上限放大到任意大。**
断言(`tests/useProjectResourceCardPreviews.test.ts`):
1. 「可见卡不得成为首选淘汰对象」:最老的 3 张都在屏幕上时,淘汰必须跳过它们、改淘汰视口外的第 4 张;对照用例同时钉住"不给可见信息时退化为纯 LRU";
2. 「全可见且超预算时仍必须淘汰」(防无界内存),条目上限与字节上限两侧各一条;
3. 「51 张整栏零淘汰」:真机栏目规模下 `projectResourceCardPreviewEvictionIdentities` 必须返回空数组,且断言字节侧余量。
另把原先守旧行为的用例改写为守新契约:可见卡被后续加载挤出缓存上限时**必须仍保持 `loaded` 且不产生第二次读取**(不再依赖"掉了再补读")。既有用例一条未放宽。
变异验证:
- 去掉可见性过滤(第一轮不再跳过可见卡)→ 断言 1 所属用例立即失败(`expected [ [ …(2) ], [ …(2) ] ] to have a length of 1 but got 2`,即目标卡被驱逐并重读);
- 去掉"全可见时回退全表 LRU"→ 断言 2 立即失败(`expected [] to deeply equal [ 'item-0' ]`,即缓存无界)。
验证:定向 `useProjectResourceCardPreviews` 31 passed;typecheck exit 0;prettier 干净。(全量 AGC 子集的前后对照见随后的回报。)
2026-09-11 20:39:59 +08:00
suzmii
fcaf1a8e91
补坑位记录:新增文件后必须重跑完整 typecheck
...
- pitfalls.md 新增 2026-09-11 条目,记 lint-staged 只做 eslint 与 prettier、不做 tsc,因此 pre-commit 绿不等于类型正确
- 按体例写现象(第 113 行 TS2322、ref 元素类型不匹配)、原因(typecheck 是在新增该文件之前跑的)、处理(每新增或改名源文件后重跑完整 typecheck,门禁顺序固定为改完 → 全量 typecheck → 定向测试 → 其余门禁)
- 验证写明:修复后 exit 0、修复前 exit 2,而定向测试修复前后都是 22 passed,说明测试通过推不出类型正确;并推广到未使用 import、类型层 props 不匹配、只有 tsc 才发现的 .tsx 泛型推断失败
- 该文件原本结尾没有换行符,追加后上一行必须重写为带换行,因此 diff 记为 11 增 1 删;已逐字核对被删行原样出现在新增行中,实际无内容丢失
2026-09-11 20:39:19 +08:00
suzmii
0ef1a4ec15
接线资源筛选浮层并把资源卡旁两个浮层改成互斥
...
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 3m16s
Project CI / Native shell tests (pull_request) Successful in 19m58s
- index.tsx:新增 resourceFilterOpen 与 resourceFilterTags 两个 state,区域不新增 state(唯一新增的筛选相关 state 是已选标签)
- index.tsx:可见资源由内联关键词过滤改为调用 filterCanvasResources,维度为区域 / 标签 / 关键词;区域由 resourceBookState 派生(不在分页栏目里时为「全部区域」),因此用户用滚轮 / 总览卡片 / 下一页换栏目时区域自动跟随,无需双向同步
- index.tsx:标签库按「区域 + 关键词」派生并故意不含已选标签——若拿已按标签收窄的集合派生,选了一个标签后列表只剩该标签,用户再也选不出第二个标签,AND 多选会形同废掉
- index.tsx:Dock 上紧邻搜索按钮新增筛选按钮,复用 game-resource-book-zoom-button 与 is-active 口径;两个浮层共用同一个右下角锚点,因此开筛选即收起搜索、开搜索即收起筛选
- index.tsx:挂载 ResourceFilterPanel,区域变更转交既有 openResourceBookChild(与栏目切换同一条路径),关键词与搜索浮层共用同一份 searchText
- resourceCanvasFilterModel.ts:resourceFilterIsActive 只看关键词与标签、不含区域——区域就是画布当前栏目,用户换栏时它照样在变,算进高亮会让按钮在「只是换了一栏看」时也常亮
- 新增 resourceFloatingPanelModel.ts 与其测试:资源卡旁「快速编辑」与「生成动画」的互斥规则收在一处并被两个开启入口共用,修掉「先开生成动画再点快速编辑两个浮层并存」的缺口;关闭仍只关自己,生成收尾不会吞掉用户刚打开的另一个面板
- 断言:新增 5 条互斥用例(含两个方向各自一条与来回点击序列),加上既有筛选用例;变异验证实测——把互斥模型的 closed 写成恒为 quick-edit(等价只修一个方向)→ 4 failed,还原后 5 passed
2026-09-11 20:29:45 +08:00
suzmii
cfd89ba570
③ 驱逐用例抗并发负载:一次灌满替代 48 轮逐张等待
...
- 现象:驱逐用例逐张 waitFor 48 张(3 个读取槽 + 48 轮 act/轮询)在同树多个写者并发跑测试时,会把用例 5s 超时耗光(Test timed out in 5000ms),红的是超时不是断言;
- 改法:48 张一次性入队,只等"读取都已发出"(read 次数 ≥ 49),不再逐张断言 48 个卡的状态;
- 原因说明:驱逐本来就会连锁(目标卡被驱逐 → 补扫描重读 → 再挤掉一张未被观察的填充卡),逐张断言会在链条行进中读到 undefined,红的是时序不是契约;
- 核心断言一条不动:目标卡必须被重新请求(读次数 1 → 2)且最终回到 loaded;本用例超时放宽到 60s、内部 waitFor 20s;
- 验证:改动前后各连跑 6 轮 + 4 路并发同时跑两个用例文件,全绿。
2026-09-11 20:23:10 +08:00
suzmii
a0d1fca30a
拒收提示不再被"进入项目"那一次清除吃掉:只在真的换项目时清
...
- 现象:打开项目这一提交里刚落下的拒收提示,会被同一次 [projectPath] 变化的清除 effect 清掉 —— 资产命令在项目刚打开后马上推送清单快照正是主场景,提示于是时有时无;
- 改法:新增 manifestMergeNoticeScopeRef 记录上一次观察到的项目路径,undefined → 路径(首次进入)时不清;只有真正的 A→B 换项目或关掉项目才清提示与在飞标记;
- 断言:新增"换项目必须清掉上一个项目的拒收提示"用例(确定性反向钉子,防止把清除整个删掉);
- 用例加固:拒收提示的三处断言改为每轮重新查询 DOM(阶段切换时 React 可能替换节点,抓着旧引用会在负载下瞬时红),异步恢复等待放宽到 4s;
- 说明:这次加固的起因是一次偶发红(expected undefined to be 'revision-conflict')。事后在改动前后各跑 18/28 轮未能复现"去掉护栏必红",所以此处不声称护栏就是那次偶发的成因;护栏本身修的是同一提交窗口被清除这一确定性缺陷,长时压测(4 路并发同时跑两个用例文件)全绿。
2026-09-11 20:22:52 +08:00
suzmii
d3b341948a
文档收口:工具条动作放行口径、生成动画接通与「改造 = 快速编辑」
...
- pitfalls.md:把「资源画布工具条的『改造』『角色动画』按钮点了没反应」按四不写改成已收口状态(不再写"尚未修"):生成动画已接真实链路 + 参数入口为什么关、改造由快速编辑承担、其余 5 个动作逐项不做的证据;补记两条连带经验(复用共享面板时要逐个确认"可选参数在该宿主是否影响请求";面板的泥点价就是提交按钮本身,档位常量必须与后端固定值一致)。
- decision-log.md:新增 2026-09-11 条目,记录四条决策(接通生成动画的门禁与链路、复用共享动画面板并关参数入口、改造认定为快速编辑、其余动作不接的逐项证据)与三条变异验证结果。
- AGC 技术方案「操作边界」:补 4 条当前口径(动作集合按"放进来就必须真能跑通"放行、生成动画的面板与固定档位、改造=快速编辑、未接通动作各自缺什么)。
- Issue #309 与 PR #316 正文未改:远程写操作需用户确认,decision-log 里已记录这两处需要怎么改。
2026-09-11 20:09:51 +08:00
suzmii
e765c9f8a6
资源卡工具条接通「生成动画」:只放行真能跑通的角色图派生
...
- resourceCanvasToolbarModel:只有在「已登记的栅格角色图」上放行 character-animation
(非角色 / 未登记为正式素材 / 非栅格三类都不放行;Rust 侧角色动画要解码源图取宽高,SVG 必失败);其余动作仍按 opt-in 不渲染,并写明不做它们各自的阻塞证据。
- index.tsx:把源解析与 revision 缓存抽成 resolveResourceDeriveSource,快速编辑与生成动画共用,避免同一个源在两条链路上得到两份 manifest 视图;新增生成动画的源/浮层状态、请求身份(与快速编辑同一套「提示词变了才重铸」口径)与打开/提交/关闭时机。
- 面板复用共享 ImageCanvasCharacterAnimationPanelView,参数入口显式关闭(比例/时长/清晰度与模型由客户端 Rust 固定为 same/720p/32 帧/4 秒/seedance2.0-fast,改它不改变请求);档位常量与 Rust 常量同值,泥点价按同一算法算,避免按钮上出现与实际计费不符的数字。
- 「改造」(redraw) 不再另起入口:其语义由既有「快速编辑」承担,接独立按钮只是同链路重复入口。
- 断言改写(四不写):角色资源那条由「只放行快速编辑与下载」改写为「放行生成动画」,并新增三条反向守卫(非角色图片 / 角色图未登记 / 非栅格角色图均不放行)。
- 端到端新增「从角色资源卡生成动画」:断言 editKind/generationMode/prompt/assetName/sourceAssetId 与泥点价档位,并断言参数入口不存在。
2026-09-11 20:08:22 +08:00
suzmii
4be88f177f
角色动画面板新增可选参数入口开关:AGC 固定档位不再渲染假控件
...
- 新增可选 prop showParameters(默认 true):为 false 时不渲染「比例 / 时长 / 清晰度」
入口按钮与对应浮层菜单,默认值等于网页端美术画布今天的渲染,行为逐字不变。
- 关闭理由写进注释:宿主若不能把这三个值送进请求,渲染出来就是点了不生效的假控件。
- 单独成一个提交,便于共享面板被其它改动覆盖时单独摘取或回退。
2026-09-11 20:07:38 +08:00
suzmii
5f03f050ad
修正筛选浮层 panelRef 的元素类型,补回漏跑的类型检查
...
- ResourceFilterPanel.tsx:panelRef 由 HTMLElement 改为 HTMLDivElement。该 ref 挂在外层 div 上,React 的 Ref<HTMLDivElement> 不接受 RefObject<HTMLElement>,此前 typecheck 报 TS2322
- 漏跑原因:提交浮层组件那一笔时,我是在新增该文件之前跑的 typecheck,之后只跑了定向测试与 pre-commit 的 lint-staged(它对暂存文件只做 eslint 与 prettier,不做 tsc),因此这个类型错误当时没有被拦住;补跑 ai-game-creator-shell:typecheck 后修复
- 行为不变:只收窄 ref 的静态类型,关闭口径与渲染结构都不动;定向测试复跑 22 passed
2026-09-11 20:07:04 +08:00
suzmii
86d55a1aba
补资源筛选浮层的 PRD 条款与共享决策记录
...
- docs/prd/...PRD-2026-07-20.md:§5.2.4 新增资源筛选条款——按需弹出的独立浮层取代常驻筛选条(常驻条已移除、不回归)、固定三个字段(查找素材 / 所在区域 / 自定义标签)与各自口径、不提供「状态」字段及其理由、区域既是筛选维度也是画布当前栏目且必须是同一份状态、两种区域语义共用一份过滤实现、浮层与搜索浮层同锚点不得同时展开、关闭与高亮口径、筛选后空态要求
- docs/project-memory/shared-memory/decision-log.md:新增 2026-09-11 决策条目,按体例写背景 / 决策 / 影响范围 / 验证方式 / 关联文档
- decision-log 如实记录:已落地的部分是共享外壳、纯函数与 AGC 侧组件样式(各自独立提交),而 index.tsx 的 3 处接线因该文件被另一条线占用尚未提交,并写明接线完成后应补记——不把未落地行为写成已实现
- decision-log 记录「状态」字段不做的三条证据链(manifest 资产无 status、资源投影无 status、唯二候选任务状态与附件导入状态在投影里已被上游过滤故恒单值),以及区域用派生而非新增第二份 state、「全部区域」复用既有所有资源分组网格的取舍
- decision-log 记录 PlatformResourceFilterBar 不碰不扩的理由(横向常驻条且被主站参考图弹窗在役使用)与既有断言零放宽、三条变异验证实测结果
2026-09-11 20:04:33 +08:00
suzmii
149c0b591a
冷启动首屏:热预取过可见性判据,相交卡按视口内 / 余量圈两档放行
...
- A 热预取不再按投影顺序盲取前 N:eager effect 现在只预取已登记且几何上可见(档 0 / 档 1)的卡,按两档顺序入队,eagerPreviewLimit 仍是硬上限;
- A 保留首屏兜底:一张可见卡都判不出来时(卡片尚未注册 / 容器还没布局出尺寸)退回原顺序预取,绝不把首屏热预取削成 0;
- B 新增 viewportBandOfElement:0 = 视口内、1 = 只落在 rootMargin(160px) 圈里、2 = 放行范围外(含量不出尺寸);门禁与放行顺序共用同一套几何口径;
- B 新增 requestPreviewCardsByViewportBand:先档 0 再档 1,只改入队顺序、不改总量(档 1 在同一次调用里一样放行),3 槽 / 48 项 / 64 MiB 合同不动;
- B 兜底扫描改用两档放行(门禁语义不变:只有档 0 / 档 1 才放行),不会退化成"只补第一档";
- B observer 回调一次报来十几二十张相交卡时,只把"视口内"的插到前面,其余一张不丢,既有"相交即放行"语义不变;
- 新增用例:视口外卡片不得进入热预取(改前首屏 distinct 读 20 张、含 8 张视口外;改后 12 张全部可见);相交一次性放行时先视口内后余量圈且总量不变(6 张全放行);
- 变异验证:整份还原成改前版本 → 两条用例分别红(20 vs 12、放行顺序反了);只把 observer 回调改回单趟 → 只有两档那条红。
2026-09-11 19:58:09 +08:00
suzmii
1c43f2c2b2
新增资源筛选浮层组件与右下角锚点样式
...
- ResourceFilterPanel.tsx:AGC 侧筛选浮层,领域规则留在这一层——区域取值就是画布当前栏目(只把选择交回宿主,面板自己不改栏目也不另存区域),关键词与画布搜索浮层共用同一份状态,标签走 AND 语义;共享层只提供浮层外壳与表单原语
- ResourceFilterPanel.tsx:不渲染「状态」字段,并按注释写明理由——manifest 资产与资源投影都没有状态事实源,唯二候选(任务状态、附件导入状态)在投影里已被上游过滤,硬用即恒单值假筛选
- ResourceFilterPanel.tsx:「点外部 / Esc 关闭」按既有搜索浮层口径在 document 上同时接管 click 与 Escape,点触发按钮不被判成外部;不复用美术画布那个 dismiss hook,因为它判定焦点是否在浮层里用的是自己的 portal-menu 类,本浮层不匹配会导致 Esc 关闭后焦点不回触发按钮
- ResourceFilterPanel.tsx:区域下拉由 RESOURCE_FILTER_REGION_OPTIONS 派生,显示名与 @ 面板同一份口径;标签 chip 用既有 platform-category-chip 类,选中态不另造样式
- resourceCanvasFilterModel.ts:筛选生效判据 resourceFilterIsActive 落在模型层,供宿主给 Dock 按钮打高亮(条件不随浮层收起一起消失);纯空白关键词不计入,避免按钮为一次空输入长期高亮
- styles.css:新增 .game-resource-filter-panel 右下角锚点(与搜索浮层同一 bottom / z-index 口径,向上展开),定位留在宿主,共享浮层外壳保持不自带 position
- tests/resourceFilterPanel.test.tsx 与 tests/resourceCanvasFilterModel.test.ts:覆盖三字段渲染且无「状态」占位、区域选项取值与中文显示名逐个钉住、关键词回显与回调、区域切换只回调、标签受控多选与 aria-pressed、空标签库隐藏该字段、关闭键 / Escape / 点外部 / 点触发按钮四种关闭口径、Escape 后焦点回触发按钮、筛选生效判据
2026-09-11 19:55:22 +08:00
suzmii
70256c7585
新增资源画布筛选纯函数与三条变异验证用例
...
- resourceCanvasFilterModel.ts:把画布筛选收成一处纯函数——区域判据做恒等比较表达「只筛当前区域」,「全部区域」放行全量;标签复用共享 assetTagsMatchSelection(AND 语义);关键词沿用既有搜索的名称 / 路径 / 媒体类型 / 任务名四字段与大小写不敏感口径,使搜索浮层与筛选面板对同一关键词给出同一结果
- resourceCanvasFilterModel.ts:区域选项由 PROJECT_RESOURCE_CANVAS_SECTIONS 派生,中文显示名复用 @ 面板那份唯一权威口径 resourceReferenceCategoryLabel,不为「项目版本」以外的栏目另写译名表
- resourceCanvasFilterModel.ts:标签库只统计当前区域内的资源,切换区域后不残留只属于别的区域的标签
- tests/resourceCanvasFilterModel.test.ts:覆盖区域选项顺序与显示名、空筛选不重排、区域恒等比较、关键词四字段与空白归一、标签 AND 语义、无标签事实源资源的口径、三维度叠加、标签库计数与排序
- 三条变异验证实测均变红后还原:把区域判据改成恒 true → 4 failed;去掉关键词判据 → 3 failed;去掉标签判据 → 4 failed;还原后 13 passed
2026-09-11 19:50:19 +08:00
suzmii
1be5218aeb
kind 别名表查表加 Object.hasOwn 守卫:原型键不再被误当成别名
...
- `canonicalGameCreationAppAssetKind`(TS)此前用对象字面量直接下标查别名表:`kind` 是外部输入,`constructor` / `__proto__` / `toString` / `valueOf` / `hasOwnProperty` 会命中 `Object.prototype` 上的成员,被当成 canonical kind 返回(`__proto__` 返回原型对象本身);Rust 侧是 `match` 字面量,只会落 `image` 兜底,同一输入两侧分叉
- 改用 `Object.hasOwn(GAME_CREATION_APP_LEGACY_ASSET_KINDS, normalized)` 先确认命中的是表自己的键,再取值;`noUncheckedIndexedAccess` 下仍保留一次取值后的 truthy 判定
- 补断言(无断言的边界修法下次会被改回去):`gameCreationApp.test.ts` 对 `constructor` / `__proto__` / `toString` / `valueOf` / `hasOwnProperty` 逐条断言 `canonicalGameCreationAppAssetKind` 落 `image`、`gameCreationAppAssetCategoryForKind` 落 `unclassified`
- 跨语言对照:`assetKindCanonicalMapping.test.ts` 的 `decided` 表新增 `constructor` 与 `__proto__` 两行(`image` / `unclassified`),与 TS 同一份口径对照
- Rust 侧同步断言:`game_creation_app.rs` 的 `asset_category_mapping_covers_every_canonical_kind` 补 `constructor` / `__proto__` / `toString` / `valueOf` 必须落 `image` 与 `unclassified`,把「两侧一致」这件事写进两侧各自的用例
- 边界范围:只收口「原型成员被当成别名」这一种极端输入;`kind` 的正常词表、大小写口径与读时自愈规则不变,manifest 字段构成与顺序不变
2026-09-11 19:44:04 +08:00
suzmii
eb6f72ab9d
新增共享筛选浮层外壳 PlatformFilterPanel
...
- packages/shared/src/components/PlatformFilterPanel.tsx:新增按需弹出的筛选浮层外壳,只承载通用表现——竖向字段容器、右上角关闭键与 role=dialog 语义;字段名与控件全部由宿主经 children 传入
- 字段排布约定收敛到 PlatformFilterPanelField:字段名在上、控件在下,可用 controlId 把字段名与控件关联;字段名复用既有 PlatformFieldLabel,不另写标签样式
- 不下沉任何领域规则:外壳不知道区域 / 标签 / 状态等概念,不接后端,不算过滤;筛选取值与判据都由宿主持有,因此同一外壳可在不同页面各装一套字段
- 不自带 position:定位与层级由宿主经 className 注入,避免共享层猜宿主布局
- packages/shared/src/components/PlatformFilterPanel.test.tsx:覆盖 dialog 语义与关闭转发、字段逐个渲染且不出现外壳自带的「状态」占位字段、controlId 字段名关联、以及宿主定位类注入且组件不自带 absolute / fixed
2026-09-11 19:43:51 +08:00
suzmii
d4e7b8bbaf
队列满时被吞掉的按需请求留痕:点播放没反应不再是静默
...
- requestPreview 在队列达上限且没有可顶掉的可见性预取时,按需请求(detail/play)此前直接 return,用户在可见卡上点播放没有任何请求与痕迹;
- 新增 droppedRequestsRef:单调计数 + 最近一条明细(identity / reason / queueLength / at),并补一条 [preview-queue] console.warn;
- previewQueueSnapshot 暴露 droppedRequestCount 与 lastDroppedRequest,排障与用例可直接观测;
- 可见性预取撞上限属于设计内背压(下一轮兜底扫描会补),不计入丢弃口径;
- 队列上限、3 个并发槽、优先级顺序(play > detail > visible)全部不动;
- 新增用例:压满 96 条 detail 后 play 被丢弃必须留下标记,且 visible 背压不计数。
2026-09-11 19:35:25 +08:00
suzmii
56a8c2c32c
驱逐仍可见的卡之后补一次可见性复核:图片不再凭空消失
...
- publishPreview 记录本轮驱逐条数,驱逐发生后在 previewsRef 落盘之后补一次 sweepVisiblePreviews;
- 被驱逐的 identity 状态正好回到 undefined,而 sweepVisiblePreviews 只对 undefined 的卡重新入队,此前只差不这一次调用;
- 调用点必须在 previewsRef.current = next 之后,否则扫描看到被驱逐卡仍是 loaded 而不做任何事;
- 注释写明重入有界:重新入队走 publishPreview({status:'loading'}),不进 loaded/failed 驱逐分支,递归深度恒为 1;
- 只在真的发生驱逐时补扫,普通 loading/loaded 发布不增加扫描开销;
- 新增用例:灌满 48 张缓存把仍可见的目标卡挤出(LRU 不看可见性),断言该卡被重新请求读成 loaded。
2026-09-11 19:28:47 +08:00
suzmii
f88e6aa5fe
清单快照被拒收不再静默:可见提示 + 强制重读磁盘真相
...
- WorkspaceLauncher:applyManifestSnapshot 拒收分支此前直接 return,改为必须先留痕(console.warn 记 decision/source/两个 revision)再走恢复;
- 新增 manifestMergeNotice 状态与提示条,DOM 暴露 data-manifest-merge-decision / -stage / -source / -held-revision / -snapshot-revision 作为排障观察点;
- 新增 recoverRejectedManifestSnapshot:重读磁盘 revision + 清单并重建 merge 状态,把被拒快照漏掉的新资源真正带进项目上下文;
- 同一项目只允许一条恢复在飞,避免拒收成串到达时打满读取槽;
- 重读期间若有更新的快照已被接受,绝不回退 revision(宁可报未解决,不放宽 CAS);
- scope-mismatch 仍只记日志不弹提示:串项目的快照对用户没有可执行语义;
- projectResourceLiveUpdateModel:新增拒收判定、三阶段文案与 rereadAuthoritativeProjectManifestSnapshot(两次读 revision 夹一次读清单,撕裂就放弃);
- styles.css:新增 .launcher-manifest-merge-notices 绝对定位提示位,容器不吃点击,与 .game-resource-book-notices 同口径;
- 新增 apps/ai-game-creator-shell/tests/workspaceLauncherManifestMerge.test.tsx:拒收可见 + 重读采纳 + 重读失败报未解决 + 不回退 revision + 串项目快照保持静默;
- projectResourceLiveUpdateModel.test.ts 追加拒收可见性/重读三读/撕裂放弃/跨项目拒绝/revision 非法/三阶段文案可区分六条断言。
2026-09-11 19:23:25 +08:00
suzmii
ee8e12783e
校准读时重写的文档口径:写回一次 + 丢弃可见,并补一条口径变更决策
...
- decision-log 2026-09-10 那条把「不写迁移脚本、不删除、不重置」改成当前事实:读时会把 legacy 分区(art / code)坐标归并到新分区并写回一次 sidecar(revision +1);不写迁移脚本、不重置坐标位置;但无法归并的坐标会被跳过(跳过条数在画布提示条上可见)。
- 新增 2026-09-11 decision-log 条目:背景(审计查实「读时原地重写」112 条 + 27%(66 + 16)丢弃与旧文档字面冲突)、决策(用户选 A:保留重写、不静默、改文档)、影响范围、验证方式(含两处变异验证)、关联文档。
- 技术方案【GameAgent资源自由画板与快速编辑】:同一句改成读路径写回一次 + 无法归并的坐标被跳过且可在提示条 / data-resource-canvas-layout-* 上读到。
- PRD【项目开发工作台】第 325 行同一句同样校准(避免权威文档里留着「不写迁移脚本、不删除、不重置」这句会误导排障)。
- 测试用例【AGC资源工作台V3端到端验收】S21 台账那格补上「存量项目第一次打开时读路径也会写回一次、并给一次性提示条」,避免把 revision 从 1 开始误判成异常。
- 行为、sidecar schema(v1)与跨端契约均未改动。
2026-09-11 19:19:51 +08:00
suzmii
e15456ea14
读时丢弃的坐标不再静默:提示条带条数并在 DOM 上分开三类计数
...
- readReport 增加 droppedMissingResource(资源已不在 manifest)/ droppedSectionMismatch(分区与资源分类不匹配)/ dropped(两者之和),判据仍是 normalizeResourceCanvasPosition,未改 resourceCanvasLayoutModel 的丢弃语义。
- 文案补上跳过条数与两类原因:归并与丢弃同时发生时用「另有 N 条坐标无法对齐已跳过(…)」;只有丢弃时用「打开项目时有 N 条坐标无法对齐已跳过(…)」。
- 提示条暴露 data-resource-canvas-layout-normalized / -dropped / -dropped-missing-resource / -dropped-section-mismatch,供排障直接读 DOM;完全没丢时四个值都是 0。
- 读盘触发条件放宽为「有归并或有丢弃」,避免只有丢弃时什么都不提示。
- 断言:读盘统计用例覆盖三种情况分离;文案用例覆盖四形态(含真机 112 / 66 / 16 口径);appSurface 用例断言四个 data-* 与完整文案。
- 变异验证:把 dropped 计数改成恒 0 → 统计用例、读盘报告用例、提示条用例三处变红;去掉 data-resource-canvas-layout-dropped → 提示条用例变红。
2026-09-11 19:18:12 +08:00
suzmii
18361f8585
读时归并不再静默:打开项目归并旧分区坐标后给一次性提示
...
- useProjectResourceCanvasLayout 新增读盘只读统计 inspectProjectResourceCanvasLayoutRead 与文案 describeProjectResourceCanvasLayoutRead。
- 读盘判定 changed 时写入 readReport(项目作用域身份 + 排序模式 + 旧分区归并条数),判据复用 normalizeResourceCanvasPosition,只统计、不改写回与丢弃语义。
- index.tsx 在既有 game-resource-book-notices 提示层内渲染一次性提示条,复用 .game-resource-live-notice 样式与「知道了」关闭按钮;每个项目只提示一次,切换项目清空。
- 断言:useProjectResourceCanvasLayout.test.ts 覆盖归并时 readReport 与文案、无需归并且不写盘、只补新资源落位的写回不报读时统计;appSurface/project-development.suite.ts 覆盖提示条出现(data-resource-canvas-layout-normalized、可关闭)与无需归并时不出现。
- 变异验证:去掉 setReadReport → 上述读盘统计与提示条用例变红。
2026-09-11 19:14:44 +08:00
suzmii
27be57bf68
修正上一条提交里错位的别名表用例行
...
- 现象:提交 3082c3e85 把两条新增的 `decided` 表行(`'UI'`、`'font'`)插到了 `test.each(decided)` 的实参位置,`test.each` 拿到的是对象而不是回调,原来 7 条 `decided` 用例全部报 `fn2 is not a function`
- 成因:pre-commit 的 lint-staged 对**部分暂存**文件做「隐藏未暂存改动 → 跑 prettier → 还原未暂存改动」时会重新落位 hunk,本次两条新增行落错了位置;该文件当时是部分暂存(提交 ① 只暂存了其中 3 个 hunk),因此被波及
- 修法:把两条行移回 `decided` 数组内的正确位置,`test.each(decided)` 恢复成「表 + 单回调」形态
- 本提交只暂存这一个文件(不部分暂存),避开同一成因
2026-09-11 18:57:42 +08:00
suzmii
d9822eca05
同步资源分类口径的文档:读显示 / 写回两个口径、别名表大小写不敏感
...
- PRD 的分类取值段落改为「读显示 / 写回两个口径」:写清跨端同构的两个函数名、Agent 投影不许再透传落盘 `category`、面板保存回传落盘原值、别名表大小写不敏感(`"UI"`、`font`)
- 技术方案(AI游戏创作智能体App实施计划)的 manifest `category` 段落同步:`"UI" → ui-interaction`、`font → document`,其余映射不到的 kind 才落 `unclassified`;补上两侧口径函数名
- `pitfalls.md`:把「补别名只影响新登记,不重算 `category`」这条坑更新为已修形态,并写明「同 kind 重登记禁止动 `category`」这条必须保留的不变量;「读时重派生」条目补上两个口径不能混用与跨端必须同构两条
- `pitfalls.md` 新增条目「大写 `UI` / `font` 不在 alias 表 → 8 条真机 UI 资产永远落「待归类」,且自愈救不回」,记录成因链与三层守卫
- `decision-log.md` 新增决策条目:口径拆两半、自愈不下沉到反序列化、别名表大小写不敏感、重登记重派生但不抹掉显式分类,含变异验证与影响范围
- 端到端验收用例文档的 S5 栏目归属补一句:判定「编辑标签后分类有没有被改」必须比 manifest 文件,不能拿自愈后的显示值当落盘值
2026-09-11 18:49:32 +08:00
suzmii
f476eb89e5
同路径重登记:kind 变化时重派生 category,同 kind 时保留落盘分类
...
- `register_local_asset_entry`(`assets.rs`)命中同 `localPath` 的既有资产时,旧实现只覆盖 `kind` / `media_type` / `source`,**从不重算 `category`**:`kind` 变了而 `category` 停在旧值,且陈旧的非 `unclassified` 值会被读侧无条件信任(自愈只在落盘值是 `unclassified` 时才触发),该资产就永远停在错误栏目
- 修法:只在 `existing.kind != kind` 时重派生 `category`;`kind` 未变时刻意不动 `category`——落盘分类是权威值,同 kind 重登记不得抹掉它
- `register_local_asset_records_existing_asset_with_canvas_source` 补上 `category` 断言:首次登记 `kind:"character"` 落 `character`,重登记改成 `kind:"ui"` 后必须变 `ui-interaction`(旧用例只断言 `kind` 与 `source.kind`,正好走更新分支却漏掉 `category`,所以这条错位一直没被抓住)
- 新增用例 `register_local_asset_keeps_explicit_category_when_kind_is_unchanged`:显式设成 `audio` 后同 kind 重登记,`category` 与 `tags` 必须原样保留,把「不能无条件重派生」这条不变量钉死
- 新增用例 `register_local_asset_derives_category_from_real_write_side_kinds`:用与现役写入侧逐字一致的字面量(`"UI"` / `"font"`)走真实 `register_local_asset_at`,断言落到 `ui-interaction` / `document`;它属于同一套 `register_local_asset_*` 写 API 的派生行为,因此与上面的更新分支断言放在同一个提交
2026-09-11 18:48:03 +08:00
suzmii
3082c3e854
kind 别名表大小写不敏感并收口 font:堵住 8 条 UI 资产永远落「待归类」
...
- `canonical_game_creation_app_asset_kind`(Rust)与 `canonicalGameCreationAppAssetKind`(TS)改为对 trim 后的小写值查别名表与 canonical 目录,修正「UI 设计资产的现役写入侧写的是大写 `"UI"`」这条真机事实
- 别名表补 `font → document`:字体上传(`ttf / otf / woff / woff2`)登记的 manifest `kind` 就是 `font`
- 为什么必须在别名表收口、读时自愈救不回来:`"UI"` 与 `"font"` 的派生结果本身就是 `unclassified`,自愈规则「派生值不是 unclassified 才触发」永不成立;真机 8 条 `kind:"UI"` + `mediaType:"application/json"` + `localPath:"ui/UI 设计 N.json"` 与写入路径逐字段吻合
- 改写 Rust 断言 `game_creation_app_asset_category_for_kind("UI") == Unclassified` → `UiInteraction`,并补 `canonical_...("UI") == "ui-design"` 与 `font == Document`:旧断言把这条 bug 钉成了「期望行为」,新形态才是唯一真源——写入侧真实写出的 kind 必须能落进明确栏目,否则真机资产永远归不了类
- 改写 TS 断言 `gameCreationAppAssetCategoryForKind('UI') == 'unclassified'` → `'ui-interaction'`,理由同上
- `game_creation_app.rs` 里「现役写入侧仍会写出这些非 canonical 值,必须在这里收口」的注释此前只收口了小写 `ui`,与大写写入侧矛盾,现按注释本意收口
- 新增写侧→分类的端到端契约用例:`resource_bridge.rs` 的 `bridge_is_idempotent_and_installs_source_image` 走真实生产函数 → 真实 `register_local_asset_at(..., "UI", ...)` → 断言落盘 `category` 为 `ui-interaction`
- 新增 `assetKindCanonicalMapping.test.ts` 的「写侧 kind 字面量 → 分类」用例组:直接解析 UI 编辑器写侧源码第 3 个实参,写点换个新字面量就会红,防下次再漏
2026-09-11 18:46:58 +08:00
suzmii
576786324f
编辑标签面板回传落盘原值:堵住「只改标签」静默改分类
...
- 新增 `gameCreationAppAssetPersistedCategory`:写回口径,只做「缺失或非法 → 按 kind 派生」兜底,不套用读时自愈;它必然等于 Rust 反序列化后的落盘 `category`
- `ResourceClassificationPanel` 的分类初值从 `gameCreationAppAssetCategory`(读显示口径、会把落盘 `unclassified` 自愈成派生值)改为 `gameCreationAppAssetPersistedCategory`,保存时回传落盘原值
- 修掉真机上「同一 `kind:"ui"` 资产同时存在 55 条 `unclassified` 与 2 条 `ui-interaction`」的漂移签名——后者正是自愈值被回写持久化的结果
- 面板注释更正:原注释写「保证『只改标签』不会顺带改动分类」,但那行读的是自愈后的值,这个保证是假的
- `gameCreationAppAssetCategory` 的文档补上「这是读显示口径,回写必须用 `gameCreationAppAssetPersistedCategory`」,避免下次再混用
- 新增面板用例「保存标签不改动落盘 category:自愈值不得被回写」:夹具 `{kind:'ui', category:'unclassified'}`,断言写入命令收到的 `category` 仍是 `unclassified`
- 既有面板夹具 `{kind:'character', category:'character'}` 是自愈 no-op,永远测不出漂移,因此保留它作为对照、另加自愈夹具
- 新增契约用例「写回口径保留落盘 unclassified,读显示口径才自愈」,把两个口径的差集钉死
2026-09-11 18:45:38 +08:00
suzmii
458a65cb5e
资源分类读显示口径下沉到 Rust:Agent 投影与 UI 同构
...
- 新增 `game_creation_app_asset_effective_category`:读显示口径的唯一实现——落盘 `category` 权威,仅在落盘值为 `unclassified` 且该资产 `kind` 能派生出明确的非 `unclassified` 分类时采用派生值,其余信任落盘值
- `GameCreationAppAssetManifestEntry` 的反序列化刻意不做自愈:反序列化结果就是落盘原值,「编辑标签」面板要靠它原样回写;自愈只属于读显示口径
- Agent 资源投影 `bridge_registered_resource` 不再直接透传 `asset.category`,改走有效分类,修掉真机 122 条资产里 55 条「UI 显示 UI 交互、Agent 读到待归类」的跨端口径分歧
- 新增 Rust 决策矩阵 `EFFECTIVE_CATEGORY_CONTRACT` 与用例 `asset_effective_category_follows_the_shared_contract_matrix`,矩阵是「落盘值 / kind 派生 / 读时自愈」三个口径的唯一真源
- 新增跨语言契约:`assetKindCanonicalMapping.test.ts` 解析 Rust 源码里的决策矩阵与 canonical kind→栏目表,逐条喂给 TS `gameCreationAppAssetCategory` 对照,任一侧改口径都会红
- `direct_tool_bridge` 新增 Agent 侧回归用例:`kind:"ui" + category:"unclassified"` 必须投影成 `ui-interaction`
- 既有用例 `..._projects_manifest_classification_verbatim` 更名为 `..._keeps_explicit_manifest_classification`:逐字透传只在落盘值不是 `unclassified` 时成立,旧名字会与新的有效分类语义矛盾
2026-09-11 18:43:39 +08:00
suzmii
c527c19bf8
校准 DirectProject 历史兼容口径的技术方案与共享决策记录
...
- 技术方案:把「不迁移旧 {role,content} 行 / 不会对旧格式做迁移或兼容」改成当前状态——读侧白名单兼容 legacy 行(含 tool 行只识别不注入)、写侧 DirectProject 自己的旧行写点已收口
- 技术方案:修正「Rust 是该历史文件的唯一写入方」,写清 project.jsonl 同时被通用对话链(agent_id=None 的项目主对话与 Runtime 公开状态消息)读写,并记录两条链互读兼容的规则
- 技术方案:说明为什么故意不给通用对话写入器加「Direct-owned 就拒写」的硬报错(会把旧行噪声换成任务起不来),以及这类失败为何按不可重试处理
- 技术方案:更新时间改 2026-09-11
- decision-log:新增 2026-09-11 条目,记录格式切换当年「唯一写入方 + 测试手动清理」的前提在存量用户项目上不成立、现改为「读侧白名单兼容 + 写侧统一」,以及为什么不做数据迁移
2026-09-11 18:36:29 +08:00
suzmii
2b44b62599
DirectProject 历史格式类失败给出专门提示并按不可重试处理
...
- direct_runtime.rs:新增 direct_project_history_shape_failure 白名单(历史记录类型无效 / 缺少 payload / 解析历史失败)
- direct_codex_failure_recovery_hint 增加专门 hint,指向真实现象与动作:该类旧格式已被读侧兼容,仍失败说明记录不在白名单内,请检查项目诊断后修复该历史文件
- direct_codex_failure_is_retryable 对该类失败返回 false,前端不再显示「可直接重试」(同一份历史每次读得到同一结论)
- 打开/读取类 IO 失败不在白名单内,仍按可重试处理
- 补断言:hint 文案、IO 失败边界、诊断 message 里的 retryable=false 与 sidecar 的 "retryable": false
2026-09-11 18:36:19 +08:00
suzmii
5ac26b99c9
显式 Codex 返回不再往项目主对话投影旧格式行
...
- direct_tools_mcp.rs:删除 conversation.record_codex_response 末尾往 project.jsonl 追加 legacy 行的投影,它写的是 {schemaVersion:game-creator-conversation.v1,...} 旧行,会毒化共用该文件的 DirectProject 历史
- 顺带删掉只为那条投影存在的 key/message_id 计算与描述它的注释,不留墓碑
- 该工具的事实来源仍是自己的只读 journal .agent/conversations/codex-responses.jsonl,返回内容与 conversation.list/read 行为不变
- 补断言:record_codex_response 只写 codex-responses.jsonl,project.jsonl 保持为空
2026-09-11 18:36:16 +08:00
suzmii
f0d5687ab7
共享的 project.jsonl 让两条对话链互读对方的行,混合历史不再双向失败关闭
...
- project/conversation.rs:read_persisted_local_conversation_records_unlocked 跳过 type=response_item 且带 payload 的行(DirectProject 写给同一份「项目主对话」的行),其余解析失败仍按「解析对话记录失败」失败关闭
- 新增 is_direct_project_history_row 做行信封白名单,只认对方那一种明确枚举的形状,不放宽成「什么都跳过」
- 不把 response_item 行二次投影成 LocalConversationMessageRecord:DirectProject 侧已经拥有那份 Responses item → 聊天内容的投影,再造一份平行投影会与它漂移
- 不加「文件已属于 DirectProject 就拒绝追加旧行」的硬报错:runtime_driver/task_start.rs 在 ensure_..._accepted_public_status_at 返回 Err 时会中止后台任务(「后台任务启动确认落盘失败,任务未执行」),runtime_protocol/steering.rs:572/604/1300 也用 ? 上抛,加硬报错会把旧行噪声换成任务起不来;毒化本身已由读侧白名单堵住
- 补断言:混合文件里通用链只读自己的 legacy 行且坏行仍失败关闭、混合文件从两条链都能读(DirectProject 把两种行都读出来)、纯旧格式文件的写入行为不变
2026-09-11 18:36:07 +08:00
suzmii
bfb928295e
DirectProject 读侧白名单兼容格式切换前的旧行,存量项目不再全部读不动
...
- direct_project_history.rs:两处行信封判定收敛到 direct_project_history_item_from_parsed_line,response_item 与白名单化的 legacy 行走同一条判定路径
- 新增 direct_project_legacy_row:只认 schemaVersion=game-creator-conversation.v1、无 type、role 落在该写入器自己的角色集合(user/assistant/tool)内、content 为非空字符串的行,其余形状继续按损坏失败关闭
- user/assistant 旧行投影成与 direct_project_local_message_item 同形状的 message item:role 与 content 逐字节保留、不 trim、不改写、未知字段忽略,有 messageId 才带 id
- tool 旧行已识别但不进 Codex 上下文:它不是 Responses item,无法还原成真正的工具 item,混入会造出假的工具消息;聊天投影本来也只展示 user/assistant
- 抽出 direct_project_message_item 供本地补写与 legacy 投影共用,保证两种来源的 item 形状一致
- 补断言:旧行投影(role/content 逐字节、无 messageId 时无 id)、旧行与新行交替的混合文件按行顺序读取、tool 行被识别且不进上下文、非白名单异常行(role=system/developer、content 非字符串或为空、缺 role、缺 payload、坏 JSON)仍失败关闭、通用对话写入器产出的旧行形状落在白名单内
- 变异验证:去掉 legacy 兼容分支→投影/混合文件/通用写入器形状 3 个用例变红;把白名单放宽成「任意行都接受」→失败关闭用例变红
2026-09-11 18:35:26 +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
suzmii
f5b381dbd8
视图切换时只取消上一视图排队中的可见性预取
...
用户离开某个视图后,继续为它排队读图没有任何收益,而这些排队的预取会**排在新视图按需请求的前面**(3 槽跨视图共享),把"进入总览后等图"变成纯等待。这是"进总览要等图"的主因,单张读取本身只有 5–15ms。
- `cancelQueuedVisiblePrefetches()`:只下掉**还在队列里**的 `visible` 理由任务。语义边界刻意收窄 ——
- `detail` / `play` 理由的排队**保留**;
- **在途请求不打断**(只占 3 槽中的 1 个,打断它拿不回已花的读盘成本,且切回来要重读);
- **缓存与身份不失效**(不触发 `disposeAllCachedPreviews`),切回原视图不重读已拿到的图。
- 修法 4 一并收口:视图切换 effect 在取消后**立即按几何复核一次**(`sweepVisiblePreviews`),仍然可见的卡重新入队、不可见的自然不再请求 —— 因此不存在"取消后永不重试"的死角。
- 依赖使用**派生后的** `prefetchScopeKey`(不是可能为 `undefined` 的 `input.prefetchScopeKey`)。这修掉了本轮自查发现的一个真 bug:早期写法在调用方未传该 prop 时直接 `return`,整段取消逻辑成了**永不执行的死代码**;由下面的断言暴露。
断言(`tests/useProjectResourceCardPreviews.test.ts` 新增 2 条):
1. 「切视图只取消上一作用域排队中的可见性预取」:登记 6 张(3 在途占满槽 + 3 排队,其中 1 张为 `detail`),切视图后断言队列从 3 → 1、**留下的正是 `detail`**、且 `activeReadCount` 仍为 3(在途不被取消)、新视图 identity 立刻可用;
2. 「取消后再次可见会重新入队」:切走再切回,卡片重新注册且几何可见后,断言该卡**重新进入队列** —— 直接守住"不留永不重试死角"这条硬要求。
变异验证:把取消那一步去掉(effect 内只保留复核)→ 第 1 条断言立即失败(`expected [ …(3) ] to have a length of 1 but got 3`);恢复后 24/24 通过。
验证(同一时刻、同一命令的前后对照;当时树上有并发改动:`src-tauri/.../direct_project_history.rs`):
- 改动前(只 stash 我的两个文件):`86 files / 1236 passed / 4 skipped / 0 failed`
- 改动后:`86 files / 1238 passed / 4 skipped / 0 failed`(多出的 2 条为本提交新增用例)
- `src/components/image-editor` 1387 passed;typecheck exit 0;check:encoding 4388 文件;prettier 与 eslint 干净;`git diff --check` 干净。
2026-09-11 17:55:22 +08:00
suzmii
8edee9eef4
预览队列改为同级裁决:当前预取作用域优先,但不越过 play
...
背景:全局 3 槽跨视图共享,而 hook 的 scopeKey 只含 `projectPath + projectId`(不含视图)。用户在栏目页滚一遍会按可见性入队最多 51 个预览 job;点「回到资源总览」时它们仍排在同一个队列里,总览自己那几张「该出图」的卡只能排在后面 —— 这就是「进总览要等图」的真实来源。
- `nextPreviewJob` 改为两级裁决:**理由优先级固定 `play > detail > visible` 不变**,只在**同一理由内部**让当前预取作用域的请求优先。
- ⚠️ 早期写法用「作用域匹配则权值 +3」,会让当前视图的 `visible` 压过上一视图的 `play` —— 直接破坏 PRD §3.3.2 的固定调度优先级。这个错误是被本提交新增的契约用例抓到的,已改为同级裁决,并把该约束写进函数注释。
- 新增 `prefetchScopeKey`:优先取调用方显式传入的值;未传时退化为**被喂进 hook 的资源集合签名**,因此调用方(`index.tsx`)无需改动即可生效。
- 队列任务记录入队时的 `prefetchScopeKey`,供同级裁决使用。
- 新增只读 `previewQueueSnapshot()`:暴露「谁在排队、属于哪个预取作用域、当前活动读取数」。队列病理此前只能靠猜,有了它「当前视图的卡是否真的进了队列」可直接断言。不参与渲染、无副作用。
断言(`tests/useProjectResourceCardPreviews.test.ts`):新增「当前预取作用域越过上一作用域的排队预取」契约用例,三条:
1. 当前作用域的 `visible` 越过上一作用域排队的 `visible`;
2. **但不得越过 PRD 优先级** —— 当前作用域的 `visible` 仍排在 `play` 之后;
3. 同一作用域内仍是 `detail > visible`。
变异验证:把作用域偏好关掉(`&& false`)→ 第 1 条断言立即失败(`expected 'previous' to be 'current'`);恢复后 22/22 通过。断言不是恒真假守卫。
验证:typecheck exit 0;该测试文件 22 passed;check:encoding 4388 文件;`git diff --check` 干净。(AGC 全量与本条无关的并发改动混跑,故此处只报本文件的定向结果;全量对照见后续提交的回报。)
2026-09-11 17:44:21 +08:00
suzmii
a4bec3d018
记下「不再提醒」偏好保持单键、不按入口分域的理由
...
Project CI / Repository checks (pull_request) Successful in 2m35s
Project CI / Frontend tests (pull_request) Successful in 3m28s
Project CI / Backend tests (pull_request) Successful in 5m48s
Project CI / Native shell tests (pull_request) Successful in 18m25s
- 该键关掉的只有聊天输入区的「发送前提醒」;资源侧生成素材与快速编辑没有可关的提醒,润色是显式按钮动作
- 分域只在「每个入口都有可关的提醒」时才有意义,现在分域等于给不存在的提醒提前留位
- 只补注释,不改行为与断言
2026-09-11 17:06:35 +08:00
suzmii
327a5d38ee
同步验收文档里 #309 C3 的口径与两条入口的润色判据
...
- S9 行与 7.4 差异表补一句:只读信息浮层已回归(工具条「信息」动作),C3 取消的仍只是可编辑详情面板与全屏编辑路由
- S10 / S11 行补上两处入口的「AI 润色」判据:按钮 aria-label 与 aria-busy、成功回填与「恢复原文」、失败保留原文、超类型上限截断并提示「已按长度上限截断」
- 纯文档改动,不动代码与断言
2026-09-11 17:03:04 +08:00
suzmii
c2d3292769
快速编辑浮层接入提示词润色,提示词变了就重铸请求身份
...
- 选中工具条的快速编辑面板通过共享 composer 的注入位渲染同一个 ResourcePromptPolishSlot,场景约束为「图片素材的快速编辑提示词」
- 润色回填走 applyResourceQuickEditPrompt:与共享 composer 的 resetFailedDialogStatus 同口径,提示词变了就把上一次的失败状态清掉
- 提交侧请求身份按提示词收口:同 sourceLayerId 且提示词未变时复用(失败重试仍命中同一 operation 账本),提示词变了则重铸 operationId / 幂等键——Rust 的 request_fingerprint 含 prompt,复用旧身份会被判「已绑定到不同资源编辑请求」;正规化结果与 revision 属于别的事实,换身份时原样保留
- 打开面板时的初始身份改用统一的 createResourceEditRequestIdentity(绑定面板草稿提示词)
- 测试:live integration 补两条——润色成功回填并换身份(断言 prompt 与 operationId/幂等键同时变化)、润色失败保留原文且身份不变
- 变异验证:提交侧去掉按提示词重铸(同 sourceLayerId 直接复用旧身份)→ 「润色后换身份」用例红灯(两次 operationId 相同,实测)
2026-09-11 17:02:17 +08:00
suzmii
d44e1ae8ea
生成素材弹窗接入提示词润色,并让请求身份绑住它铸造时的那句提示词
...
- 新增 ResourcePromptPolishSlot:素材侧两处入口共用的「AI 润色 / 恢复原文 / 润色中…」动作,取数走 AGC 侧 usePromptPolish,聊天框同款失败态(失败保留原文、可重试文案)
- 场景约束走 polish_local_project_prompt 的 context:「这是素材生成提示词(音效)」+「只润色这一句、不要扩写成需求/方案/验收标准、不要新增事实」(本批不动后端提示词文件),文案落在 resourceCanvasPromptPolishModel
- resourceEditModel 新增 truncateResourceEditPrompt:超上限先按类型截断(背景音乐 140 / 音效 1900 / 视频与角色动画 4000 / 其余 32000)再回填,并在状态行给出「已按长度上限截断」,不静默丢内容;后端上限未改
- resourceEditModel 新增 resolveResourceEditRequestIdentity:请求身份绑定到铸造时的 prompt(Rust request_fingerprint 含 prompt,改了提示词还复用同一 operationId 会被判「已绑定到不同资源编辑请求」);提示词没变时仍复用,失败重试照旧命中同一账本
- 生成素材弹窗用注入位渲染润色动作(共享 composer 只提供插槽,不上 Tauri 调用),提交时按同一口径解析身份;原先只在这一处使用的 createResourceCanvasGenerationRequest 随之下线
- 样式落在 resourceCanvasChrome.css(resource-prompt-polish 一族),弹窗与 composer 共用一行
- 测试:模型层补截断边界与身份复用/重铸;弹窗层补润色回填与上下文、超限截断提示、失败保留原文、失败后提示词与润色一起锁定且重试复用同一请求
- 变异验证:截断改成恒等 → 模型用例与「超限截断」用例双双红灯(实测字段长度 206 ≠ 140);身份去掉重铸 → 模型用例红灯
2026-09-11 16:58:49 +08:00
suzmii
62029fdc23
给共享生成 composer 加一个可选的提示词动作注入位
...
- ImageCanvasBasicGenerationComposerView 新增 promptActionSlot(可选):不传时整块不渲染,默认 DOM 与行为逐字不变
- 注入位紧跟在提示词输入框之后,节点由宿主提供并自己负责在 composer 网格里的落位;共享组件内不做任何 Tauri 调用
- ImageCanvasQuickEditPanelView 原样透传该 prop,网页端两条调用链不传即不受影响
- 测试:composer 与快速编辑面板各补一条「不传时无占位节点、传入时落在提示词之后」,默认不变由既有用例继续覆盖
2026-09-11 16:54:57 +08:00
suzmii
25c55fcb7f
把提示词润色的状态机抽成 usePromptPolish,聊天输入区先迁过去
...
- 新增 features/project-workspace/usePromptPolish.ts:失败保留原文、首次成功落原文快照(反复润色只覆盖结果)、可重入保护、可注入的上下文与规范化回调,Tauri 调用固定在 AGC 侧(默认 requestChatPromptPolish)
- 聊天输入区改用它,行为逐字不变:润色按钮 aria-busy/disabled、Loader2/Sparkles、「润色中…」/失败文案、失败保留原文、恢复原文回到最初原文、草稿清空后重置
- 聊天特有的「发送前提醒」留在输入区:提醒偏好、本轮已确认草稿指纹、表单捕获拦截、面板内润色用另一句失败文案
- chatPromptPolish.ts 的 requestChatPromptPolish 及其单测未改动,继续作为这条 LLM 通道的契约测试
- 护栏:chatPromptPolish.test.tsx(16 条)与 resourceReferenceInput.test.tsx(20 条)全绿
2026-09-11 16:53:33 +08:00
suzmii
3de2ec734b
预览门禁去掉单点依赖:observer 必定建出,并加可见性兜底扫描
...
真机现场:整个「UI 交互」栏(51 项)全部只剩占位图标。根因链是**同一对文件里的两个缺陷叠加**,因此作为一个原子提交收口(拆成两半任一半都不足以独立成立:光修 observer 仍可能被回调时序漏掉,光加扫描则 observer 根本不存在时的判定精度无从恢复)。
一、确认 2a157ea6f 引入的回归:observer 可能永远不建
- 那次改动把「root 为 null」当成「不建 observer」,并指望「卡片注册」作为 root 就绪信号重建。
- 但那个 effect 每个 scope **实际只跑一次**(`requestPreview` 是稳定引用,其余依赖在 scope 内不变),一旦这一轮因 root 为 null 直接返回就再无第二次机会;
- 而「卡片注册」信号只在**后续还有新注册**时才来 —— 初次挂载时 51 张卡一次性注册完,之后再没有新注册,信号永不再来。
- 结果:observer 永不创建、所有卡永不被观察、永远停在 `idle`,整栏只剩占位图标(`categoryIcons['ui-interaction'] = LayoutGrid`)。
- 修复:**绝不拿"root 未就绪"当作"不建 observer"的理由**。拿到容器 root 最好;拿不到就退到 canvas、再退到视口(`root: null`)。视口判定严格优于"没有 observer"——屏幕上真实可见的卡一定落在视口矩形内;代价只是视口外但仍在画布内的卡晚一步由滚动触发。容器 root 迟到时再有界重试(5 次、退避到 512ms)重建一次,恢复按画本容器裁剪的精确判定。
二、系统性防线:可见性兜底扫描(去掉单点依赖)
- 门禁原先只有 `IntersectionObserver` 一条路,observer 没建出来 / 回调没送达 / 注册与创建交错,卡片就再无第二次机会。
- 新增 `sweepVisiblePreviews()`:按**与 observer 对齐的视口几何判据**(含 160px 余量)独立复核登记表,只对 `idle`(从未请求)的卡补一次 `visible`,`loading`/`queued`/`loaded`/`failed` 一律不碰。
- **不是第二条加载通路**:仍经 `requestPreview` 走同一条队列,受同一套去重、优先级、全局 3 槽与 `48` 项 / `64 MiB` 预算约束;**只补"可判定为可见"的卡,不退化成全量预读**(PRD §3.3.2 合同不变)。
- 触发点:scope 变化后 0 / 250 / 1000ms 各扫一次(覆盖晚挂载的卡)、observer 就绪后立即扫一次、每次卡片注册时扫一次、窗口 resize 与页面重新可见时各扫一次。
测试(`tests/useProjectResourceCardPreviews.test.ts`)
- 更新「等真正的 root 就绪」这条契约:它原先断言"root 为 null 时不得建 observer"——那正是本轮回归的语义,改为断言"**仍然必须建出 observer**(`root: null` 视口判定)",并要求容器 root 迟到后重建为容器 root;
- 新增「不在热预取窗口内的可见卡不得停在 idle」(20 张 / 热预取 12);
- 新增「没有任何 observer 回调时,可见卡也必须被放行」——完全不触发回调,只靠几何可见性,专门守住兜底扫描;
- 新增「视口外的已登记卡不得被请求」——守住"不退化成全量预读"。
变异验证:把兜底扫描改成直接 `return 0`(等价于去掉扫描)→ 「没有任何 observer 回调时可见卡也必须被放行」立即失败(`expected undefined to be 'loaded'`);恢复后 21/21 通过。断言不是恒真假守卫。
可观测性:`data-preview-status` / `data-preview-error` 已在位,因此"可见却 idle"这类问题以后读一个 DOM 属性即可判定,不再需要解码图片或猜调度。
验证(同一时刻、同一命令的前后对照;树上另有并发改动):改动前 `86 files / 1225 passed / 4 skipped / 0 failed`;改动后 `86 files / 1227 passed / 4 skipped / 0 failed`(多出的 2 条为本提交新增用例)。`src/components/image-editor` 1385 passed;typecheck exit 0;check:encoding 4384 文件;prettier 与 eslint 干净;`git diff --check` 干净。
2026-09-11 16:49:09 +08:00
suzmii
e088ede217
让「当前使用」的资源卡真的发光,并修掉版本高亮的两处既有缺陷
...
- .game-resource-card.is-current-version 的外向扩散层从 0 0 0 2px /14%(那是描边)改成 0 0 0 3px /32% + 0 0 20px /34% 的真发光,边框口径仍是 1px
- 新增 game-resource-card-current-version-breathe 关键帧与 ::after 光环(只呼吸 opacity,照本页 .ui-editor-status-attention 的既有写法):声明档位 38%,呼吸区间 0.58 ↔ 1,视觉上约 22% ↔ 38%
- prefers-reduced-motion 下关掉动画但保留可见档位(opacity 0.75),收敛动画不收敛可见性
- 缺陷①:.game-resource-card.is-relation-version-binding 原本只写 border-color,而卡片本体 border: 0,规则从未生效(「点击版本卡后高亮绑定资源」这条 PRD 语义一直看不见);改为真实的 1px 边框 + ring,并把该规则移到 .is-current-version 之前,让常驻光环在两者同时命中时仍然赢
- 缺陷②:当前版本规则与 hover/focus/selected 同权重且在后,导致当前版本卡几乎看不出被选中;新增 .is-current-version.is-selected / :hover / :focus-within / .is-dragging 变体,显式提权到 (0,3,0) 并带上选中态自己那层阴影
- 测试:新增 resourceCardCurrentVersionStyle.test.ts(外向扩散层档位、呼吸实现方式与关键帧区间、选中态变体权重更高、reduced-motion 下仍可见、版本聚焦规则不再是死规则)
- 测试:resourceVersionSwitch 补 data-used-by-current-version 的 DOM 断言(命中为 "true"、未命中不含该属性、切版本后跟着换手)
- 测试夹具修正:project-development.suite 的版本夹具把 slotId 从 'player' 改成恒等映射 'asset:asset-player'('historical' → 'asset:asset-removed'),否则「当前版本」判定永远不命中、照它写断言必成假守卫;并补一条自证断言钉住它真的命中
2026-09-11 16:42:58 +08:00
suzmii
082d8d62de
把运行页签的资源信息搬到画布选中工具条,两处共用一份只读字段
...
- 新增「信息」动作:排在「@引用」之后、「编辑标签」之前,点开非模态信息浮层,再点一次即收起(aria-pressed 反映开合)
- 新增只读字段组件 ResourceInfoFieldsView(ResourceInfoPanelView.tsx),运行页签的「信息展示」与画布浮层共用,字段清单只在 resolveResourceInfoFieldRows 单点定义
- 字段口径:名称 / 路径 / 类型 + 只读分类与标签(分类取画布栏目口径,标签为空时给「暂无标签」),刻意不含来源任务、资产 ID 等 manifest 内部标识
- 浮层 chrome 与快速编辑浮层同族(同一锚点、同档圆角与阴影),样式落在 resourceCanvasChrome.css;关闭入口三处:动作按钮、面板关闭按钮、画布浮层统一的 Esc / 点边界外
- 关闭判据收口:resolveResourceCanvasQuickEditDismissOpen 更名为 resolveResourceCanvasFloatingPanelDismissOpen、参数改为 isFloatingPanelOpen,宿主把「快速编辑开」与「信息开」合成一个布尔
- .game-resource-info-panel 补进 RESOURCE_CANVAS_INTERACTION_SELECTOR,否则点在只读字段值上会被判成点画布空白而清掉选中
- 换选 / 清空选中 / 切项目时信息浮层自动收起:在选中派生处按 selectedResourceId 收口,不在每个重置点各补一行
- 测试:新增 resourceCanvasInfoModel 三条与「信息面板在画布浮层与运行页签里渲染同一份只读字段」(工具条顺序、开合、关闭按钮只收面板、点画布以外收起、Esc 连工具条一起收、运行页签字段逐行相同);resourceCanvasFloatingDismiss 的判据用例与交互选择器夹具改为浮层通用口径
- resourceCanvasChrome.css 的字段排版收在浮层选择器下,不跨上下文改运行页签的字号与列宽
- decision-log 新增一条:记录这次对 Issue #309 C3「取消资源详情面板」的有意局部回退(只回退「看信息」,不恢复可编辑详情面板与全屏编辑路由),并登记需要同步的 C3 引用位置
2026-09-11 16:42:40 +08:00
suzmii
d80011656b
把资源卡的 @ 引用入口挪进选中资源工具条
...
- 删除资源卡右上角的 @ 引用圆钮,连同它的 44×44 热区伪元素与全部样式一起退役
- 选中资源的画布工具条新增「@引用」动作,排在「UI 编辑器」之后,出站负载与来源逐字未变(source: 'resource-card')
- 测试:原「卡片圆钮视觉尺寸」用例改写为「入口只留在工具条里」的源级 + 样式级断言,并补反向断言卡片组件内不再出现插入调用
- 测试:新增键盘通路用例,聚焦后回车必须真正派发 agc-resource-reference-insert,且两条通路负载逐字相同、每次激活只派发一次
- harness 注释同步:资源卡本体只剩「选中资源」与媒体播放钮
2026-09-11 16:28:48 +08:00
suzmii
3bfc3f0849
新增 AGC 资源工作台 V3 端到端验收用例
...
Project CI / Repository checks (pull_request) Successful in 3m14s
Project CI / Frontend tests (pull_request) Successful in 3m39s
Project CI / Backend tests (pull_request) Failing after 6m3s
Project CI / Native shell tests (pull_request) Failing after 6m22s
- 新增 docs/technical/【测试用例】AGC资源工作台V3端到端验收-2026-09-11.md
- 给出从建项、对话生成素材到运行收尾的一条主线,按 S1–S21 分步列出操作、期望结果、对应 PRD 条款、可观察判据与已知例外
- 落定每步的可观察形态:资源卡 data-preview-kind / data-preview-status / data-preview-error、data-used-by-current-version、data-resource-book-category、data-resource-view-state 与控制台判据脚本
- 记录前置条件与门禁口径:dev 态前端走 Vite HMR、Rust 侧改动需重启客户端、服务端改动需重启 api-server、build-gate 代理假红需清代理变量
- 列出只靠视频或截图表达的 7 处条款清单与补齐方式,并更正 F12 无法观察 Rust 到 api-server 的 HTTP 这一前提
- 列出已知未做与已取消项,以及文档与代码的四处偏差(资源卡打开详情按钮、运行入口提示文案、画布生成入口进度、真机落盘分类分布)
- 附验收记录表与逐步骤失败排查索引
2026-09-11 15:45:01 +08:00
suzmii
5bf348d88a
把误入上一个提交的验收文档移出提交,交回其作者
...
- 81482b458 原本只应包含 tests/appSurface/project-development.suite.ts 一条断言同步,
但该验收文档当时已被预置在索引里,随那次提交一起被带走;这里只做「移出提交」,
不改动文档内容,文档仍完整保留在工作区,由它的作者自行提交
- 未使用 --amend:按纪律不改写已有提交
2026-09-11 15:42:24 +08:00
suzmii
81482b4587
同步「编辑标签」入口文案的既有断言
...
- tests/appSurface/project-development.suite.ts:跟随 6bdc8bbd9 把资源卡工具条入口由
「分类与标签」改为「编辑标签」,同步音频资源工具条那条既有断言(否则 HEAD 的树是红的)
- 同一处注释同步说明:该面板只编辑 manifest `assets[].tags`,分类不再有手动入口
2026-09-11 15:41:17 +08:00
suzmii
ea9668e4a9
资源总览「所有资源」卡补上资源预览
...
- 现象与归因:「所有资源」卡的预览区一直是空的,原因是我在 1cc9a2381 里加的闸 `!isResourceBookAllTarget(category)`(当时为避开"同一张资源卡挂两份")让它一张卡片计划都不生成;预览卡从来只由画本场景注入,占位摞本身不含卡片
- 改为真正生成卡片计划:喂进去的仍是全量投影(与标题栏计数徽标同一份口径),但当成一摞交给栏目卡同一个选取函数 `selectResourceBookOverviewCards`——没有视图中心时按投影顺序取前 `RESOURCE_BOOK_OVERVIEW_STACK_LIMIT`(=3) 张,与栏目卡每摞上限同口径;不分类型列,避免 66 项一口气铺出十几列
- 预览用同一个 `renderCard` 与同一套 `resourceBookOverviewCardLayout` 几何渲染,唯一差别是宿主类名换成 `.game-resource-book-preview-card`:转场层按 `.game-resource-book-scene-card` 收集 FLIP 节点并以 `card:${resourceId}` 为键,同一张卡两个宿主会让两条记录互相顶掉,因此预览宿主不进收集范围(`resourceBookController` 一行未改)
- 预览宿主带 `aria-hidden` + `pointer-events: none`:无障碍树与 `getByRole` 里每张资源卡仍然只有栏目卡那一份,不会重复命中;点预览区仍走进「所有资源」页,栏目卡预览卡仍可选中
- 转场淡出集合(`resourceBookPlanKeysRef` 那段)跳过「所有资源」组,避免预览节点被当成"离开视图的卡片"按子画布坐标重新贴到画布别处
- `ResourceBookThumbnail`:该卡正文的占位摞从最多 3 摞改为对齐真实摞数的 1 摞,卡片高度回到与栏目卡同一条口径
- `styles.css`:把 `.game-resource-book-preview-card` 并进 `.game-resource-book-scene-card` 的两条既有规则(宿主几何、主态卡片圆角/阴影)与 `prefers-reduced-motion`;没有新写一套预览样式
- 断言(`project-development.suite.ts`):预览卡的 `data-resource-card-id` 序列恰等于全量投影前 3 个、条数 == `min(3, 计数徽标)`、预览里是完整卡片(视觉体 + 选中按钮)、宿主在 `aria-hidden` 子树里、宿主几何规则与栏目卡共用同一条
- 断言(新增用例):空项目下沿用既有空态「暂无资源」、预览节点 0 个、计数 `0 项`、入口行仍在,卡片不破版
- 单测(`resourceBookLayout.test.ts`):把已被新行为取代的旧断言(`all` 组不出卡片、全计划无重复卡片键)删掉,换成新合同(预览 = 全量投影前 3 张、只铺一列、各栏目摞不变),并补空投影 → 0 张
- 变异验证(两条都跑过并已还原):① 喂进去的资源改回空数组 → `AssertionError: expected +0 to be 4`;② 恢复旧闸(计数仍正确、预览为 0)→ `AssertionError: expected [] to deeply equal [ Array(3) ]`
2026-09-11 15:37:17 +08:00
suzmii
6bdc8bbd93
AGC 资源分类面板改为「编辑素材标签」:只编辑标签、分类不再有手动入口
...
- ResourceClassificationPanel.tsx:面板改为只编辑 manifest `assets[].tags`,移除分类 6 类
chip 那一排;标题与 aria-label 改「编辑素材标签」,副标题由资源路径改为素材名
(`localPath` 的 basename,仓库没有独立显示名字段)
- ResourceClassificationPanel.tsx:标签状态由「整段逗号分隔字符串」改为字符串数组,
每个已有标签渲染成自带删除按钮的胶囊 pill;保存时把未落成 pill 的输入尾巴一并切分,
归一化仍走 `normalizeGameCreationAppAssetTags`,回车 / 中英文逗号 / 顿号提交方式不变
- ResourceClassificationPanel.tsx:写入命令 `category` 是必填,读一次当前权威值并
在保存时原样回传,保证「只改标签」不漂移分类;底部按钮「保存」改「保存标签」,
删除资源入口按既有保留(截图未画,但它是唯一的资源删除入口)
- resourceClassificationTagPanel.css:新增标签 pill 样式,删除按钮嵌在 pill 内部
(视觉图标 11px、热区 32×32、负外边距抵消不撑高 pill);若第二处出现带删除按钮的
标签 pill,抽到 `packages/shared` 做 `PlatformRemovableTagPill`,不要复制这份实现
- index.tsx:资源卡工具条入口 label / title / 文案由「分类与标签」改「编辑标签」,
与面板标题一致(否则入口写着分类、打开的是纯标签面板)
- tests/resourceClassificationPanel.test.tsx:断言对齐截图文案、逐个 pill 自带删除、
点某个 × 只删对应标签、aria-label 可区分、保存 payload 的 tags 数组与 category 原样回传、
取消不写盘、入口 label 与面板标题一致、删除热区不小于 32px
- 文档:PRD §5.3「分类取值优先级」改写为当前状态(分类没有用户手动设置入口、
该面板只编辑标签),并新增 decision-log 条目记录本次产品决策与「用户手动设
category 的能力就此移除」这一事实
- 说明:截图文案(编辑素材标签 / 新增标签,多个用逗号分隔 / 保存标签)在全仓检索
无命中,属仓库之外来源,本次按用户截图对齐,不是 PRD 明文
2026-09-11 15:34:36 +08:00
suzmii
2a157ea6f8
预览可见性门禁等 root 就绪再建 observer,并把登记表补挂齐
...
真机现场:同一屏里 `idle` 与 `loaded` 交错,12 张相交卡从未入队(`idle` 的语义就是「从未请求」,不是被淘汰回退)。根因在 observer 的**创建时机**:`useProjectResourceCardPreviews` 建 IntersectionObserver 时把 `intersectionRootRef.current ?? canvasRef.current` 直接当 root 传下去,而 root 是资源画本容器、由被观察卡片所在的子树持有。创建那一刻 root 还是 `null` 时,浏览器会**退回按视口判定**,于是被画本容器裁掉的卡片永远报「不可见」,可见性门禁再也不放行它们 —— 卡面只剩占位图标,且没有任何错误提示。
- `useProjectResourceCardPreviews`:root 为 `null` 时**不建 observer**,等 root 就绪后由卡片注册触发的 `rootEpoch` 重建。判据是「卡片一定渲染在画本容器内部」,所以**有卡片注册本身就等价于 root 已就绪**,不需要新增跨组件契约、也不必改 `index.tsx`。
- 新增 `attachObservedCards()`:observer 就绪或重建后,按登记表把**每一张已注册卡片**补挂一遍。此前只在新 observer 创建时补挂一次,注册与创建分属不同 effect 存在时序窗口,错过那次补挂的卡会停在登记表里却从未被观察。
- root 未变且 observer 已在时只补挂、不重建,避免每次渲染重建观察器。
- `observePreview` 在没有 `IntersectionObserver` 的环境(如单测)保持静默,不制造多余渲染。
测试(`tests/useProjectResourceCardPreviews.test.ts` 新增 3 条契约):
- 「不在热预取窗口内的可见卡不得停在 idle」:注册 20 张、`eagerPreviewLimit: 12`,断言注册进 observer 的元素数等于注册数、回调报可见后全部落 `loaded`、且没有一张停留在未请求状态;
- 「等真正的 root 就绪后再观察并加载」:root 首次为 `null` 时**不得建 observer**(否则按视口判定),注册后必须以真正的 root 建出来并完成加载;
- 「建 observer 之前就注册的卡要被补挂」:断言 observer 就绪后登记表里的每一张都在观察集合内,且报可见后全部 `loaded`。
变异验证:把 root 守卫退回旧行为(允许 root 为 `null` 时照建 observer)后,「等真正的 root 就绪」这条立即失败(`expected [] to have a length of 0 but got 1`);恢复后 19/19 通过。断言不是恒真假守卫。
边界说明:只改预览 hook 与它的测试,未动 `index.tsx` / `styles.css` / `resourceBookLayout.ts`(均在他人手上),未放宽任何既有断言、未取消可见性门禁(仍是按需加载)。
验证:`npm run test -- apps/ai-game-creator-shell/tests` 84 files passed / 1216 passed / 4 skipped / 0 failed;`src/components/image-editor` 1385 passed;typecheck exit 0;check:encoding 4379 文件;prettier 与 eslint 干净;`git diff --check` 干净。
2026-09-11 15:31:29 +08:00
suzmii
39a96aa418
模型下拉菜单高度有界:健壮性补强,条目多时不再盖住消息
...
Project CI / Repository checks (pull_request) Successful in 2m36s
Project CI / Frontend tests (pull_request) Successful in 3m20s
Project CI / Backend tests (pull_request) Successful in 6m29s
Project CI / Native shell tests (pull_request) Successful in 18m34s
- 性质说明:本条是**健壮性补强**,不是用户本轮报的那几条之一;由上一提交(锚点修复)排查时顺手发现的未修观察收尾。
- styles.css:`.conversation-model-menu` 补 `max-height: min(240px, 40vh)` + `overflow: auto` + `overscroll-behavior: contain`。菜单此前没有高度上限,模型条目很多时会长到 composer 顶边以上、盖住消息;240px 与视口 40vh 取小者,矮窗 / 窄屏(移动端优先)更稳。`overscroll-behavior: contain` 与既有 `.resource-reference-menu` 同一口径,菜单内滚动不传染给背后的消息列表。不新增视觉:border / radius / padding 与 token 全部沿用原值。
- 语义零改动:锚点与流式归属不变(`position: absolute; right: 0; bottom: calc(100% + 8px)` 未动),打开 / 选择 / 刷新模型列表的交互不变。
- project-development.suite.ts:新增声明级守卫「bounds the model dropdown height so a long catalog cannot cover the composer」——菜单规则必须同时声明 `max-height: min(240px, 40vh)`、`overflow: auto`、`overscroll-behavior: contain`,并仍是 `position: absolute`(高度有界不改锚点)。
- 变异验证(已实测):把 `max-height` 摘掉 → 用例红灯(expected '…' to match /max-height:\s*min\(\s*240px\s*,\s*40vh\s*\)/u)。
- 门禁:typecheck exit 0;AGC 子集 1206 passed / 4 skipped / 0 failed(基线 1205 + 本次新增 1 条);src/components/image-editor 1385 passed;check:encoding 4379 文件通过;`git diff --check` 全量与本次两个文件范围均 exit 0。
2026-09-11 14:59:42 +08:00
suzmii
4f3516a5d9
修复分类 chip 条叠字:分段页签子项补内容宽度下限
...
- packages/shared/src/components/PlatformSegmentedTabs.tsx:容器补 `platform-segmented-tabs`
稳定钩子类,供共享样式表精确命中子项(不依赖 Tailwind 任意值扫描)
- packages/shared/src/components/styles.css:新增 `.platform-segmented-tabs > button`
的 `min-width: max-content`,给每个子项一个「内容宽度」下限;放不下时由容器横向滚动兜底
- apps/ai-game-creator-shell/src/view/project-development/ResourceClassificationPanel.tsx:
「资源分类与标签」的 6 类分类条由 `columns="threeToSix"` 改为 `layout="scroll"` +
`frame="bare"` + `surface="transparent"`,与 `@` 面板和资源画布的分类条同一条既有形态
- packages/shared/src/components/PlatformResourceFilterBar.test.tsx:新增两条声明级断言,
钉住「子项不换行 + 容器横向可滚 + 子项有不低于内容宽度的下限」
2026-09-11 14:54:27 +08:00
suzmii
ff287c19fc
模型下拉弹层改回以触发钮为锚点,输入区高度变化不再牵动它
...
- styles.css:direct-codex 控制排里的 .conversation-model-select 由 position: static !important 改为 position: relative !important(只改这一个词,另补一段注释说明它同时是弹层锚点)。这颗容器是 .conversation-model-menu(position: absolute; right: 0; bottom: calc(100% + 8px))与模型提示([role='alert'] / [role='status'],position: absolute; bottom: 36px)的包含块;写成 static 时包含块回落到最近的有定位祖先——也就是 position: absolute 的 composer 盒子,菜单于是出现在整个 composer 上方、与触发钮之间隔着整个输入区,输入区一变高(多行、引用 chip、AI 润色)菜单与提示跟着往上飘:这就是"编辑框把元素挤开"的形态。
- styles.css:right/bottom: auto、flex: 0 1 auto、min-width: 0、max-width: 180px 全部保持原样——relative 不会把模型选择钮移出控制排,也不改它被压缩换行的行为;交互语义零改动(打开/选择/刷新模型、发送、@ 引用、快速模式全在原位)。
- project-development.suite.ts:新增一条声明级守卫。① 弹层不参与父容器流式布局(菜单与模型提示都是 absolute,菜单 bottom: calc(100% + …)、right: 0);② 锚点必须是有定位的容器(relative 且不是 static),同时仍在原位(right/bottom auto、flex 0 1 auto、min-width 0);③ 输入区高度变化不得推动同排操作元素(composer 是底边锚定的两行网格:position: absolute + bottom: 12px + grid-template-rows: auto auto;控制排是单行 flex 且不换行,@ 与发送钮 flex: 0 0 30px 不可压缩,窄屏下被压缩的是可收缩的模型选择钮)。
- conversationModelSelect.test.tsx:新增一条 DOM 守卫——菜单必须是 .conversation-model-select 的直接子节点,且不得成为控制排容器 .project-supervisor-composer-controls-right 的流式子节点。
- 变异验证(均已实测红灯):① 锚点改回 static → "expected … to match /position:\s*relative\s*!important/";② 菜单改成 position: static(弹层回流式)→ "expected … to match /position:\s*absolute/";③ 把菜单渲染挪出触发钮容器(变成同排容器的流式子节点)→ DOM 守卫 "expected null not to be null"。
- 门禁:typecheck exit 0;AGC 子集 1205 passed / 4 skipped / 0 failed(基线 1203 + 本次新增 2 条);src/components/image-editor 1385 passed;check:encoding 4379 文件通过;本次三个文件单独 `git diff --check` exit 0(全量 `git diff --check` 目前报的是另一位 Agent 在途修改的 packages/shared/src/components/styles.css:1281 EOF 空行,与本次无关)。
2026-09-11 14:53:11 +08:00
suzmii
9c4778c881
把资源卡右下角的 @ 引用按钮做小:视觉缩到 0.8×,热区保持 44×44
...
Project CI / Repository checks (pull_request) Successful in 3m31s
Project CI / Frontend tests (pull_request) Successful in 4m24s
Project CI / Backend tests (pull_request) Successful in 6m51s
Project CI / Native shell tests (pull_request) Successful in 18m37s
- styles.css:`.game-resource-card-reference` 视觉尺寸 30×30 → 24×24(0.8×),新加 `.game-resource-card-reference svg` 把内部 `AtSign` 图标同步从 16px 收到 13px,圆角/描边/底色/阴影 token 全部沿用原值。
- styles.css:`bottom` 由 9px 调到 14px,与右侧 34px 播放钮圆心对齐(9 + 34 / 2 = 14 + 24 / 2),避免缩小后两颗圆钮错位。
- styles.css:新增 `.game-resource-card-reference::before` 伪元素撑出 44×44 热区(本仓 window chrome / 素材选择列表同口径的最小可点尺寸),只扩命中范围、不参与布局也不改变绘制;整体向左让 4px,让热区右边缘与播放钮的盒子恰好相邻,不覆盖它。
- 语义未动:仍是「插入素材引用」入口,className、`aria-label={\`引用资源 ${resource.label}\`}`、key 与 `dispatchResourceReferenceInsert` 调用一行未改,本次只改 CSS 声明。
- 测试:新增 CSS 声明级用例,断言按钮与图标确实变小(24 < 30、13 < 16)、热区不小于 44×44、热区右边缘不越过播放钮盒子,并顺带钉住 `index.tsx` 里 @ 入口的 className / aria-label / 插入动作仍在。
- 变异验证:把按钮改回 30px、热区改回 24px、图标改回 16px → 用例红灯;只把热区缩回 24px → 用例同样红灯(均已实测,随后原样还原)。
2026-09-11 14:00:32 +08:00
suzmii
399fcacb8e
同步删除栏目大纲导航的权威文档:PRD 与技术方案改成总览卡片/所有资源/下一页口径
...
- decision-log.md:新增「删除资源画布左侧的栏目大纲悬浮导航」决策,先记录查证结论(decision-log / pitfalls / PRD / 技术方案里此前只有要求保留该导航的条文,没有任何删除决策,本次是新决策),再写决策、语义变更、不做什么与变异验证结果。
- PRD:§阶段说明与 §7.2 验收两条不再写"大纲展示全部栏目""通过栏目大纲和滚轮访问全部栏目",改为栏目大纲由「资源总览」的栏目缩略卡片承载、切栏目走总览卡片 +「所有资源」入口 + 页内「下一页」。
- 技术方案:目标、操作边界与验收共五处删掉"栏目大纲悬浮在画布左侧/只显示图标和栏目名称""点击大纲切页""分页大纲以悬浮 Dock 展示全部栏目"等条文,改成当前状态(左侧不再有悬浮导航)。
- pitfalls.md:补记一条 jsdom 坑——栏目页 fit key 需要非零可测量尺寸,jsdom 下恒为 0,所以"总览→栏目"往返会重新适配视口;进入栏目后应恢复上次 viewport 的用例在 jsdom 里必须避免这种往返,不要误判成产品回归、也不要去改 fit 逻辑。
2026-09-11 13:54:27 +08:00
suzmii
29b99f213d
删除资源画布左侧的栏目大纲导航:切栏目改由总览卡片、所有资源入口与下一页承担
...
- index.tsx:整条删除 `ResourceBookOutlineNav` 组件(`.game-resource-outline` / `aria-label="资源栏目大纲"` / 栏目图标 + 栏目文字 + 未读红点)以及栏目页与「所有资源」页两处挂载点;`ResourceBookAllResourcesPage` 不再接收只服务导航的 `unreadCategories` / `onOpen`。
- index.tsx:一并清掉只服务这条导航的「未读红点」状态链(`unreadResourceCategoryState`、`resourceCategorySnapshotRef`、`resourceIdsByCategory`、`viewedResourceCategory` 与对应 effect),不留死代码、不留墓碑注释。
- styles.css:删除全部 `.game-resource-outline*` 规则(悬浮 Dock、常态/悬停态、图标列宽、`.game-resource-outline-label`、`.game-resource-outline-unread`,共 106 行)。
- 保留未动:分区栏目本身、栏目标题栏、资源卡、总览缩略卡片、第 0 张「所有资源」入口、「所有资源」汇总页、搜索、总览、快速编辑与选中工具条。
- 测试:切栏目 helper(appSurface/project-development、appSurface/home、resourceRename、resourceVersionSwitch)改为走「资源总览」缩略卡片(需要时先点「收起资源」回总览),不再点导航;栏目顺序断言改钉在总览缩略卡片的 `aria-label` 序列上(第 0 张「所有资源」+ 固定七栏目),断言内容未放宽。
- 测试:按「四不写」删除只守这条导航的断言——大纲常态可读性的 CSS 声明用例、大纲条目图标/文字的 DOM 用例(该用例保留其中与搜索浮层相关的断言并改名)、未读红点用例(该用例保留"只登记游戏代码的项目照常分页并落在待归类"的部分并改名)、空项目与「所有资源」页里的导航存在性断言。
- 测试:新增反向守卫 + 切栏目链路用例(`has no outline nav and keeps every section reachable through the remaining entries`):断言 `资源栏目大纲` 标签、`.game-resource-outline` 类名与对应 `<nav>` 都不再渲染,并逐条走通总览缩略卡片(含空栏目)→ 下一页 → 标题栏「资源总览」→ 「所有资源」入口往返。
- 测试:`preserves independent art viewports across sort and workbench mode switches` 保留全部原断言,只去掉排序模式切换后那些"点当前栏目"的空操作往返(旧导航点在同栏目上是提前返回,改 helper 后变成真实往返,会在 jsdom 里触发重新 fit)。
2026-09-11 13:54:12 +08:00
suzmii
d1a3702062
记录构建版本判据与 loopback HTTP 预览方案的评估结论
...
本轮「资源卡图片加载不出来」连续两轮按现役缺陷排查,最终发现真机数据在当前 HEAD 上判定全对、现象来自更早的客户端构建。把这次的方法教训与两条廉价判据固化成文档,避免后续重复投入。
- `pitfalls.md` 新增「用真机现象定性之前必须先确认客户端构建版本」:现象与「数据在 HEAD 上的实际判定」不一致时,第一个怀疑对象是构建版本而不是代码;两条廉价判据为真机 manifest 的 `category` 分布(旧构建 `unclassified:58`,新构建 `unclassified:1 / ui-interaction:59 / scene:1`)与控制台读 `[data-preview-kind]` 分布(新构建应为 `raster-image 52 / document 8 / code 1` 且无 `placeholder`)。同时记下方法教训:不要用 PowerShell 或手抄正则去复算 TS 判定表,誊本会引入假结论——本轮第一轮取证正是因此得出了不存在的「角标与预览分支分叉」,要跑就用真实源码跑。
- `decision-log.md` 新增「AGC 资源预览评估过本机 loopback HTTP 资源服务,因收益不匹配代价而暂缓」,并显式注明它与既有的 `asset:` 否决**不是同一条、理由不同**:`asset:` 是「绕过安全门禁」的原则问题,loopback HTTP 是「收益与代价不匹配」的性价比问题,其门禁可在服务端逐条复用。记录内容含 token 化不暴露路径、服务端复用同一套校验、与「不向 WebView 暴露本机文件协议」合同的关系判定(同构替代而非违约,信任边界转移到 token 与审计),以及流式下**必须明确降级的三条**:读取漂移复核、全局 3 permit 并发闸门、有界 tombstone 预算。量化依据为真机 52 张 PNG 的分层实测——Rust + JS 冷开合计约 0.3 s,大头是已由 `decoding="async"` 移出主线程的 37.2 MPx 解码,因此当前量级下 0.3 s 换「不向 WebView 暴露文件系统」这条合同是划算交易;并写明重新评估的触发条件(几百张资源 / 大图量级)。
- 同批一并暂缓的备选也记在案:Tauri 自定义协议(非 `asset:`)+ opaque token 因拿不到 HTTP 缓存语义而比 loopback HTTP 更差;磁盘缩略图缓存与 PRD 的纯内存口径及既有价值观冲突。
- 纯文档改动,无代码改动;`tauri.conf.json`、`Cargo.toml`、Rust 命令与 CSP 均未动。
2026-09-11 13:30:26 +08:00
suzmii
083df0aa2c
类型判定改为内容证据优先:消除 kind 与内容证据同权的脆弱点
...
**口径更正(后加的)**:本条提交**不是**"修复真机那 8 张卡"。经用真源码复算真机 manifest 确认,当前 HEAD 上这 8 张 `.json` 本就正确落 `document`、角标「文档」,该现象不复现——用户看到的是更早构建的行为。本条的真实价值是**消除 `kind` 与内容证据同权的脆弱点,并把「派发决策由内容证据决定」钉成不变量**,见下。
- 背景:真机「待归类」栏目曾出现 8 张卡——角标写「图片」、卡面却只有占位图标。该现象在当前 HEAD 上不复现(见上),但它对应一个**真实存在且此前只是碰巧没被踩中的脆弱点**:`projectedResourceKind` 里 `kind` 与内容证据**同权**,而 `artKind` 含 `ui`;一旦界面规格类资产丢了 `.json` 扩展名,预览派发就会翻车。原先能通过**完全依赖 `.json` 恰好在那张扩展名表里**,属巧合而非设计。
- 机制(旧行为):`kind:"UI"` 被 `artKind` 命中 → 判定为 `art`;预览调度再按 `art` 走图像分支,又因 `mediaType:"application/json"` 不是图像而兜底成 `placeholder`,而 `requestPreview` 对 `placeholder` 直接返回——**一次 IPC 都不发**,卡片既不报错也没有图。
- `resourceProjectionModel.ts` 的 `projectedResourceKind` 改为两趟判定:第一趟只看 `mediaType` 与路径扩展名(文件内容的可验证证据),第二趟才看 `kind`(登记标签,可能过时或宽泛)。`kind` 不再与内容证据同权,因此 `kind:"ui"` 无法再把 `application/json` 改写成 `art`。
- 不改 `artKind` 的取值(`ui` 仍在表内),只调整判定顺序:最小改动面,`kind:"ui"` + `image/png` 这类正常资产行为不变(仍由 `mediaType` 命中)。
- 界面规格 JSON 现在落 `document` 分支,走 `read_local_project_text_preview`(Rust 侧 `.json` 与 `application/json` 本就在支持范围内且这些条目已登记),卡面渲染 JSON 文本摘要,角标随 `projectResourceTypeLabel` 变为「文档」。预览链条数、缓存、并发与门禁一律未动。
- `tests/resourceCardPreviewRealManifest.test.ts` 中记录旧行为的用例同步跟上新合同:`placeholder: 8` 改为 `document: 8`,用例名与注释改写为「52 张 PNG 走图片分支,8 条 UI 规格走文档分支,无一落占位」,并新增「角标与预览分支必须说同一件事」的逐条断言。旧断言记录的是缺陷本身,按「四不写」直接更新为当前权威行为,不做兼容保留;其余既有断言一条未放宽。
- 验证:`npm run test -- apps/ai-game-creator-shell/tests` 1202 passed / 4 skipped / 0 failed;`src/components/image-editor` 1385 passed;typecheck exit 0;check:encoding 通过;`git diff --check` 干净。
2026-09-11 13:30:14 +08:00
suzmii
5a37ccfd2b
资源卡暴露预览状态,并补「派发决策由内容证据决定」的契约用例
...
占位分支对「还没读 / 读失败 / 压根不适用」给的是同一个图标,卡面也没有任何文字提示,现场只能看到「没有图」,无法区分是调度没发请求、原生拒绝了读取,还是这类资源本来就没有预览。本轮排查「图片加载不出来」时,这个不可观测性正是反复误判的来源。
- `index.tsx` 的 `ResourceCard` 根节点新增 `data-preview-status`(`idle` / `loading` / `loaded` / `failed`)与 `data-preview-error`(仅失败态给出原因)。排障从此只需读一个 DOM 属性,而不必去猜调度层。纯新增属性,不改变任何渲染分支与调度行为。
- 新增 `tests/resourcePreviewPredicateContract.test.ts`:把「派发决策必须由可验证的内容证据(mediaType,缺失时退路径扩展名)决定,登记标签 `kind` 只能在两者都给不出结论时兜底」钉成不变量。用 7 组「mediaType + 同通道扩展名」× 20 个 `kind` 的全量笛卡尔积断言 `kind` 不能改写预览分支,并断言组合总数等于笛卡尔积(防止将来收窄枚举让断言悄悄变弱)。另附本轮缺陷形状的最小复现(`application/json` + 任意图片类 `kind` 必须落 `document` 而不是 `placeholder`)、mediaType 缺失时由扩展名决定、以及扩展名与 mediaType 冲突时按既有设计由扩展名决定这三组显式合同。
- 该用例在**变异验证**下确实会红:把 `kind` 判定移回第一趟(还原本轮的分叉)后,本文件 4 条用例失败(不变量报出 56 处违规),恢复后全绿。断言不是恒真假守卫。
- 验证:`npm run test -- apps/ai-game-creator-shell/tests` 84 files passed / 1202 passed / 4 skipped / 0 failed;`src/components/image-editor` 1385 passed;typecheck exit 0;prettier 与 eslint 干净;check:encoding 4378 文件;`git diff --check` 干净。
2026-09-11 13:26:17 +08:00
suzmii
cd1aceb3d9
按 rustfmt 折行退出收尾用例:纯格式,无逻辑变更
...
Project CI / Frontend tests (pull_request) Successful in 7m44s
Project CI / Backend tests (pull_request) Successful in 10m11s
Project CI / Repository checks (pull_request) Successful in 23m14s
Project CI / Native shell tests (pull_request) Successful in 38m54s
- tests/project.rs:gui_exit_stops_the_preview_and_clears_the_stale_record 里 init_existing_html_project_at 那行超过 rustfmt 行宽(中文按双宽计),按 `cargo fmt --all --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml` 的结果折成两行。
- 用 cargo fmt(不是裸 rustfmt):裸 rustfmt 会把文件当模块根、跟随 mod 递归格式化整个模块树,本次已有人因此误改 50 个文件。
- 范围核对:`git diff --stat` 只有 apps/ai-game-creator-shell/src-tauri/src/tests/project.rs(1 file changed, 2 insertions(+), 1 deletion(-)),crate 里其余文件本来就是 rustfmt 干净的,未被牵连。
- 门禁:`cargo fmt --all --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml -- --check` 与 `... --manifest-path server-rs/Cargo.toml -- --check` 均 exit 0;`cargo check --locked --all-targets` exit 0;AGC 子集 1198 passed / 4 skipped / 0 failed;四条预览定向用例仍各 1 passed。
2026-09-11 12:47:22 +08:00
suzmii
531392e506
退出路径统一收尾本地预览,陈旧预览记录不再留给下次进入
...
- preview.rs:新增 stop_local_game_preview_on_exit——退出时若 registry 里确有 running 预览,就用 stop_local_game_preview_for_root 把它真正停掉并写 stopped(顺带落 preview.log 与 trace 收尾)。预览服务器是进程内线程,进程一退 URL 就永久失效;不在这里收尾,.agent/manifest.json 会一直写着 running。
- main.rs:handle_game_creator_gui_run_event 的 RunEvent::Exit 分支先做预览收尾,再做既有的 Agent server / runner 关闭;失败按 `preview.gui_exit.stop_failed` 记日志,不阻断退出。
- 语义变更(用户已确认接受):关窗不再保留预览——退出即停止预览并把记录写成 stopped,下次进项目一律落到资源管理。与"进入项目时按 registry 活体核对"配套:退出路径覆盖正常关闭,强杀 / 断电那类不走退出路径的情况由进入时的核对自愈。不引入 stale DTO 字段(判定仍要活体探测,且会把状态扩到跨端契约与全部消费方)。
- tests/project.rs:新增 gui_exit_stops_the_preview_and_clears_the_stale_record——退出收尾后 registry 归零且 manifest 记录为 stopped。
- tests/sessionPreview.test.ts:补两条 Rust 侧结构性守卫(本仓既有做法:直接解析源码)。① RunEvent::Exit 分支必须出现 preview::stop_local_game_preview_on_exit——这条接线没有别的行为测试覆盖(注册全局 registry 的用例会互相打架);② 同项目重启预览的替换分支里,收尾必须排在"旧预览是否属于另一个项目"的判定之后。变异验证:把 main.rs 的退出收尾摘掉 → 守卫①立即红灯(已实测)。
- decision-log.md:新增 2026-09-11 决策条目,逐条写下背景(偶发进运行界面的成因链:进程内预览线程 + 随机临时端口 + 退出零清理 + 进门不核对 + 同项目重启覆盖刚写的 running)、A/B/C 三项决策、关窗不再保留预览这条语义变更及"为什么两者都做而不加 stale 字段"、不做什么与验证方式。同文件被 prettier 补了几处标题前空行(格式规范化,无内容变化)。
- 验证:cargo check --locked --all-targets exit 0;Rust 定向用例 restarting_preview_for_the_same_project / replacing_preview_for_another_project / stopping_without_a_live_preview / gui_exit_stops_the_preview 各 1 passed;AGC 子集 1198 passed / 4 skipped / 0 failed;共享组件 1385 passed;typecheck exit 0;编码 4378 文件;git diff --check 干净。
2026-09-11 12:36:08 +08:00
suzmii
669c71d7e8
补记三条踩坑:rustfmt 作用域、build-gate 代理假红、worktree 与 MSYS bash 不兼容
...
- 新增「裸 rustfmt 会把一个文件放大成整个模块树」:现象是本想改 1 个文件实际改了 src/agent/ 下 50 个;原因是裸 rustfmt 把传入文件当模块根并跟随 mod 递归;处理口径是改格式前先 git diff --stat 确认范围、先备份,精确到文件用 cargo fmt -p <pkg> -- <文件...>,并行工作树里禁止盲跑 cargo fmt --all,误伤后用 git apply -R 反向补丁还原而不是 git checkout --
- 新增「build-gate 的警告门被代理环境变量误伤」:NODE_USE_ENV_PROXY=1 / HTTP_PROXY 会让 Node 打印 UNDICI EnvHttpProxyAgent experimental 警告,而 build-gate.mjs 只忽略含 ExperimentalWarning 字样的行,于是构建成功却判红;判据是同一 commit 清空这些变量后 npm run build 即 exit 0;CI 无这些变量不会触发,若要让本地带代理也能跑需在忽略规则补 EnvHttpProxyAgent / UNDICI-EHPA(属改门禁规则,本次未改)
- 新增「worktree 里 MSYS bash 跑 git 脚本会失效」:check-repository-ci.sh 这类脚本在 worktree 里第一步就报比较基线不可用,根因是 bash 用 MSYS 的 /usr/bin/git、而 worktree 的 .git 存 Windows 绝对路径,解析成 /mnt/c/.../C:/Users/...;口径是按脚本同序同命令用 Windows git 逐条等价执行
- 只追加,未重排既有条目
2026-09-11 12:28:58 +08:00
suzmii
66bb240115
进项目时按内存 registry 核对预览活体,陈旧记录不再冒充可运行预览
...
- 新增 features/app-shell/sessionPreview.ts 的 resolveSessionPreviewOnProjectOpen:进入项目时问一次 get_local_game_preview_status(内存 registry 是活体的唯一真相),确实 running 才把它作为本次会话的预览;记录写着 running 而 registry 没有活体时判为陈旧,复用现役 stop_local_game_preview 把落盘记录对齐成 stopped,并同时把会话 manifest 按真相投影成 stopped(否则运行入口会继续拿着打不开的 URL 渲染运行画面)。
- useHomeProjectCreation.ts:enterProjectDevelopment 改为 async,先做这次核对再进工作台,并按核对结果决定会话预览与 manifest 投影;三个调用点(新建项目、创建项目、打开项目)都改为 await。
- preview.rs:同一个项目重启预览时,旧 registry 身份的收尾不再覆盖刚落盘的 running——只有当旧预览属于**另一个项目**时才替它收尾。此前同项目重启会把刚写进去的 running 覆盖成 stopped,下次进项目便丢掉"预览在跑"这条事实(记录反方向失真)。
- preview.rs:stop_local_game_preview_for_root 在没有活体可停、但落盘记录仍是 running 时也把记录收尾成 stopped(stop 的语义变成"真的停干净,包括记录"),因此陈旧记录既可由进入项目触发对齐,也可由用户显式停止对齐。
- tests/project.rs:新增三条 Rust 定向用例——同项目重启后记录仍为 running 且端口是新预览的;换项目启动时旧项目记录写 stopped、新项目写 running;registry 无活体而记录写着 running 时 stop 会把记录对齐成 stopped。
- tests/sessionPreview.test.ts(新增):五条用例覆盖活体优先、陈旧记录对齐并投影、registry 不可读按没有在跑处理、记录本来不是 running 时不发多余停止命令、无 invoke 时零请求。变异验证:把活体核对去掉(直接信落盘记录)→「registry 里没有活体时不给会话预览」与「registry 不可读」两条立即红灯(已实测)。
- project-development.suite.ts:把「打开项目不查预览状态」那条断言改为「恰好核对一次预览活体」,并保留邻近的 start_local_game_preview 必须为 0 的断言——被新行为取代的是"从不核验","开项目不偷偷启动预览"这条原意一字未改。
- PRD §4.1:状态机按当前实现改写(进入项目一律落到 resource-overview;run 的自动进入只认内存 registry 的活体确认;落盘 preview 是记录而非活体,陈旧记录不触发切换也不参与渲染),并把退出收尾一并写进该节说明。
2026-09-11 12:27:31 +08:00
suzmii
1801d2b227
清 AGC src-tauri 既有 rustfmt 欠账:5 个文件纯格式化,无逻辑变更
...
- `check:rustfmt` 跑 server-rs 与 AGC src-tauri 两条命令,CI 在 server-rs 那条就退出,AGC 侧欠账从未被跑到;本提交只做格式化,不改任何语义
- `src/agent.rs`:`mod` 声明与 `pub(crate) use` 按 rustfmt 排序口径调整 `direct_codex_references` 的位置(声明顺序无语义影响)
- `src/assets.rs`:`infer_canvas_export_asset_kind` 的 `else if` 条件行重排;两处 `assert!` 参数按 use_small_heuristics 折叠;两个返回 `Result<..>` 的函数签名断行
- `src/project/asset_export.rs`:`resolve_export_source_file` 签名折成单行,`File::open`/`File::create` 两行重排,用例里 `SaveLocalProjectAssetFileInput` 实参折叠
- `src/tests/asset_rename.rs`:两处用例断行/折叠
- `src/tests/asset_delete.rs`:一处 `assert!` 实参折叠及连带重排
- 已用 `cargo fmt -p genarrative-ai-game-creator-shell -- --check <这 5 个文件>` 与整 crate `cargo fmt --all -- --check` 双重验证通过
2026-09-11 12:25:49 +08:00
suzmii
775b3792cd
修 rustfmt:resource_editor 新增用例按仓库格式折行
...
- `editor_api_rejection_reason_from_body` 用例里 3 处 `serde_json::json!(...).to_string().as_str()` 实参按 rustfmt 口径断行
- `editor_api_rejection_reason_from_body("<html>502</html>")` 断言折行
- 连带收掉 `remote-terminal-failed` 的 match 分支:该 arm 因上一提交改宽而超行宽,按 rustfmt 折成块
- `resource_editor.rs` 现在通过 `cargo fmt --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml -- --check`
2026-09-11 12:21:04 +08:00
suzmii
8a1917b7e1
同步分类自愈规则的契约用例:改断言并把盲区补成显式用例
...
- 修正 resolves asset category and tags with legacy and forward compatibility 中 { kind: 'character', category: 'unclassified' } 的期望:由 'unclassified' 改为 'character'
- 该断言是 09-09 引入的旧口径,与 2026-09-10 落地的分类自愈规则冲突;按拍板保留自愈规则(它修复真机 57 条 kind:ui 资产落待归类),因此精确更新断言而非放宽为 not.toBe
- 在断言处补注释说明这是本批有意行为,并写明已知盲区:用户手动把可明确分类的资产设为待归类时会被覆盖
- 新增用例「自愈规则覆盖落盘 unclassified:这是显式接受的盲区」,覆盖 character / ui / art-spritesheet 三条具体映射
- 新增用例「派生结果本身就是 unclassified 的 kind 不受自愈规则影响,保持落盘值」,覆盖 image / video / code / publication-material 与未知 kind
- 新增用例「落盘为明确分类时信任落盘值,不被 kind 派生结果覆盖」,覆盖 image+scene / character+audio / ui+document
- 变异验证:临时移除自愈规则后上述 2 条断言失败(expected 'unclassified' to be 'character'),恢复后全部通过
2026-09-11 12:16:26 +08:00
suzmii
caa188873d
删掉快速编辑目标校验里已失效的 generationInputs 形参
...
- `ensure_editor_image_edit_target_matches_source` 的 `generation_inputs` 形参在来源类型判据改为静态图集合、且 AGC 例外分支删除后再无任何使用,函数体内已无引用
- 同步删除该形参,并更新 1 处生产调用点与 8 处用例调用点传入的多余实参
- 该形参此前只用于把 generationInputs 透传给已删除的 `_for_request` 包装层,删除后判据与请求体字段彻底解耦
2026-09-11 12:14:40 +08:00
suzmii
49a30d51ff
修正 icon 全局放行后的两处判据:删掉死分支并更新旧断言
...
- 删除 `ensure_editor_image_edit_source_kind_allowed_for_request` 里 `AGC && assetKind=="icon" → Ok` 的例外分支:`icon` 已进静态图类型表被全局放行,该分支恒不改变判定结果
- 连带删除因此不再被引用的 `is_game_creator_resource_editor_generation` 与其定向用例(同一 scope 无人调用);AGC 来源别名口径仍由 `EditorGenerationQueueResultContext::from_job` 的 queue consumer 判定承担并有既有用例覆盖
- 两处调用点改为直接调 `ensure_editor_image_edit_source_kind_allowed`,删掉没有行为的 `_for_request` 包装层与 `generation_inputs` 形参
- 旧用例 `game_creator_resource_editor_bypasses_quick_edit_whitelist_only_for_its_source` 改名 `quick_edit_source_kind_policy_ignores_generation_source`,改为断言来源类型判据与 generation source 无关
- 修正 master 侧旧断言 `editor_image_edit_target_binding_prefers_object_id_and_fails_closed`:反例 effective_asset_kind 从 `icon` 换成仍被拒的 `character-animation`,断言保持 Err,守卫意图(目标图层不能借壳成允许来源)不变
2026-09-11 12:11:37 +08:00
suzmii
a5aba86493
修 rustfmt:editor_project 新增行按仓库格式折行
...
- `ensure_editor_image_edit_source_kind_allowed` 的 `is_none_or(...)` 折叠为仓库 rustfmt 口径的换行
- 白名单用例里 `ensure_editor_image_edit_source_kind_allowed(Some("art-spritesheet"), Some("video"))` 断行
- `is_game_creator_resource_editor_generation(Some(&json!({})))` 断言断行
- `let queued_payload: Value = serde_json::from_str(...)` 折行
- 仅 `server-rs/crates/api-server/src/editor_project.rs` 一个文件,无其他文件被 rustfmt 改动
2026-09-11 12:08:06 +08:00
suzmii
3ed567d99a
运行视图的自动切换只认会话内确认过的预览
...
- index.tsx:自动切运行的那条 effect 从「合并后的预览 URL」收窄为「会话预览 URL」(resolveEmbeddedPreviewUrl(previewOverride))。manifest.preview 是"上次留下的一条落盘记录":预览服务器是进程内线程、非 Linux 端口还是随机临时端口,客户端退出后记录仍会写着 running,照着它自动切视图就是把用户丢进一个打不开的运行界面。运行入口(运行 tab、播放按钮)与 runAvailable 一行未动,PRD §4.1「运行入口不可用时仍允许点击…但不切换状态」继续成立。
- useHomeProjectCreation.ts:enterProjectDevelopment 不再把 context.manifest.preview 播种成本次会话的预览(改为 null)。会话预览此后只由活体确认(下一提交)与本次会话里 preview.start / preview.status 的返回值经 onPreviewChange 回流两处写入。
- 有意接受的代价:「回到仍在运行的预览」从自动变成用户点一下「运行」;下一提交会把"确实还在跑"这条路径按活体确认接回自动进入。
- project-development.suite.ts:新增两条用例——① 仅 manifest.preview 为 running(不传 preview)时初始仍是「资源管理」、运行 tab 仍可用、点一下仍能进运行视图;② 会话预览为 running 时自动切到运行表现层。
- 变异验证:把这条 effect 还原成读合并后的 URL(即撤掉本次收窄),用例①立即红灯(已实测)。
2026-09-11 12:07:44 +08:00
suzmii
95c5418c0f
合并 master(#318 写锁等待与可诊断)入 V3 分支
...
Project CI / Repository checks (pull_request) Failing after 1m3s
Project CI / Frontend tests (pull_request) Failing after 2m48s
Project CI / Backend tests (pull_request) Failing after 4m27s
Project CI / Native shell tests (pull_request) Successful in 17m21s
- 三个文档冲突按两边都保留解决:decision-log.md、pitfalls.md、实施计划技术方案;两边追加的是不同主题(资源画布/预览/聊天区 vs 写锁),语义无冲突
- Rust 侧 direct_runtime.rs、direct_tool_bridge.rs、project_gates.rs、project.rs 自动合并成功,无手工介入
- 冲突处仅移除 Git 标记行,未删改任何一方内容(每个文件恰好减少 3 行)
2026-09-11 11:33:12 +08:00
suzmii
28bb5800ea
资源总览去掉大标题旁的副标题
...
- 删除资源总览标题栏里那颗副标题的**两个分支**:`${canvasResources.length} 项正式与候选资源` 与空项目时的 `从资源栏目开始整理资源`
- 位置:`apps/ai-game-creator-shell/src/view/project-development/index.tsx` 的 `<header className="game-resource-book-main-heading">`(基线 364492de3 的 5867-5871 行那颗 `<span>`,标题栏自 5863 行起)
- 同步删除只服务于它的 `.game-resource-book-main-heading > span` 样式,模块内不再留墓碑规则
- 该文案没有承载 `aria-label` 等语义(区域语义一直在容器的 `aria-label="资源总览"` 上),因此不需要把语义迁移到容器,也没有改成"更短的说明"
- 全量计数没有丢:同一次改动后由总览第 0 张「所有资源」卡的计数徽标承载,仍是同一份画布投影
- 卡片内部的说明/装饰文案(「打开 UI 交互」「打开角色与对象」「1 个直接子版本」等)保持不动
- 断言:资源总览标题栏整段 `textContent` 恰为「资源总览」(精确相等,不放宽成 `not.toContain`),并复核总览第 0 张卡与「文档」栏目卡的内部文案仍在
- 既有用例没有任何一条断言过这段副标题文案(全仓检索只命中源文件),因此没有"按文案已删更新"或"按四不写删除"的对象;本用例是补上的正向合同断言
2026-09-11 11:28:59 +08:00
suzmii
1cc9a23815
资源总览新增「所有资源」汇总卡与全部资源页
...
- 渲染层新增 `RESOURCE_BOOK_ALL_TARGET = 'all'` 特殊项:跨端契约 `ProjectResourceCanvasCategory` 不加 `'all'`,sidecar schema 不升版,落盘布局的 `section` 也不会出现它
- 资源总览第 0 张卡即「所有资源」:排在全部栏目卡之前,复用同一套缩略图类名/圆角/底色/阴影与栏目标题栏组件,不新增卡片样式
- 该卡的计数徽标取全量资源数,口径等于各栏目计数之和(同一份画布投影,不另算一套)
- 画本场景的栏目顺序与资源分组各多一个渲染层入口;`buildResourceBookScenePlan` 对特殊项只出计数与标题栏,不铺卡片,避免同一张资源卡在总览里挂载两份(`data-resource-card-id` 查询与 FLIP 的 `card:*` 键都会撞车)
- 新增「所有资源」页:栏目大纲 + 收起资源按钮 + 按栏目分组的滚动卡片网格;卡片复用栏目页同一颗渲染器与卡宽高,容器与网格样式补齐在 styles.css
- 该页的卡片显式关掉拖拽(卡片坐标不属于任何栏目画布,写回会污染布局 sidecar),保留选中/播放/菜单交互,并把光标与 `touch-action: pan-y` 交给滚动容器
- 栏目大纲抽成 `ResourceBookOutlineNav`,栏目页与全部资源页共用同一条入口带;渲染出的 DOM 与抽取前一致
- `renderResourceBookCard` 增加可选 `draggable` 参数,`ResourceCard` 的三个移动端指针回调改为可选
- 断言:总览存在「所有资源」卡且为第 0 张、计数等于全量资源数且等于各栏目计数之和、点它进入的页面按栏目分组且每组都挂真实资源卡、场景计划里特殊项不出卡片且整份计划无重复卡片键、全部资源页分组只保留非空栏目且保持总览顺序
- 既有「N 项」徽标断言从全文档文本查找收窄到 character 栏自己的标题栏(新增第 0 张卡后同文案会撞车,收窄而非放宽)
2026-09-11 11:21:03 +08:00
suzmii
364492de37
Revert "文档同步:资源管理页改为栏目分页纵向滚动网格"
...
This reverts commit c2b851cc36 .
2026-09-11 11:07:59 +08:00
suzmii
c2b851cc36
文档同步:资源管理页改为栏目分页纵向滚动网格
...
- PRD §3.3:栏目页改为纵向滚动网格,顺序由 sidecar 记录的 (y, x, resourceId) 读序推出,新增列数控件与栏目内拖拽排序条文
- PRD §3.3.1:三阶段改写为当前形态(本体卡保留;阶段二改为栏目分页网格;阶段三改为未排序栏目的初始顺序派生)
- PRD §3.3.2:可见性预取口径改为以栏目滚动容器为交叉根
- PRD §5.2:实现状态与字段语义改为「x / y 只承载栏目内顺序」,新增顺序阶梯、已排序栏目新资源追加末尾、列数偏好与关系说明条文
- PRD §5.2.4:删除 viewport、wheel、拖动改写坐标等画布条文,改为网格、列数与拖拽排序
- PRD §5.2.5:手动拖动合同改为拖拽排序合同
- PRD §5.2.6:删除资源依赖关系图层整节
- PRD §7.2:验收改为顺序持久化;§7.3 依赖关系图验收整节删除;§7.5 重写为栏目分页纵向网格验收,新增「纵向滚动无横向溢出」与「列数被记住」两条判据
- PRD §6/§8:分阶段范围与非目标同步
- 技术方案:原《GameAgent资源自由画板与快速编辑》改名为《AGC资源管理页纵向网格与排序》,重写为当前形态(页面形态、栏目内顺序、列数偏好、拖拽排序、关系说明),保留权威数据、焦点竞态与派生编辑条文
- 实施计划:资源卡与资源管理页边界改为栏目网格、顺序落盘、列数偏好与滚动容器可见性
- decision-log:新增 2026-09-11 决策(含用户明确判断优于 PRD 的事实依据,以及有意推翻 1da7dc62a)
- pitfalls:整体改写「AGC 资源管理页真正自制的交互面」条目
- docs/README.md 与 document-map.md:更新改名后的专题文档入口
2026-09-11 11:00:31 +08:00
suzmii
6cc929e47d
修复陶泥儿对话外框没把输入区包住:外框底边不再与输入区重合
...
- 根因:`.project-supervisor-message-list` 在文件末尾还留着一条同选择器、同权重的
`bottom: 156px`("列表在上、输入区在下"那版两盒布局的残留)。它按"后写胜出"把上一轮
bdb07c141 改的 `bottom: 0` 悄悄顶掉,外框底边落在输入区腰上、输入区下半截露在框外,
真机上看到的就是"消息区外框底边与输入区压在一起、外框没把输入区完整包住"。
- styles.css:把那条残留规则换成对话框盒子的最终几何(top/right/bottom/left 全 0,
`padding-bottom` 与 `scroll-padding-bottom` 都是 256px)。它位置在文件靠后,同权重后写
胜出,顺带把 `:has(.plan-gdd-surface, .planning-lane-runtime-strip)` 给列表留的
`padding-bottom: 12px` 压回去,滚到底时最后一条消息不会被输入区盖住。
- styles.css:输入区补上第四条边——`max-height: calc(100% - 24px)`(24px = 上下各 12px)。
左右下三边仍显式内缩 12px,上边由 max-height 兜底,于是外框完整包住输入区:四条边都不
与外框描边重合,底边留出 12px 边距(外框底边 0 / 输入区底边 12px)。
- styles.css:窄屏(≤760px)改成一个模型——外框画在列表与输入区共同的父节点
`.project-supervisor-conversation` 上,列表撤掉自己那只框(框里不套框),输入区回到
文档流,靠外框 12px 内边距四周留白、随列高增长不溢出。原来那条窄屏输入区规则权重低于
`.project-supervisor-composer.is-direct-codex` 那条,其实一直是死声明,这次才真正生效。
- tests/chatDialogFrameLayout.test.ts:新增用例,先按真实层叠(媒体查询是否命中 -> 特异性
-> 源码顺序)求生效值,再断言外框四边归 0、输入区四边内缩同一个值、底边与左右留白严格
大于 0、留白 256 = 12px 内缩 + 228px 输入区最高高度 + 16px 间距(228 由编辑器
max-height 140、输入框行距 8、操作排 28px 方钮、输入框下内边距 4、输入区上下内边距 16、
操作条 2 + 30 方钮逐项从真实声明里算出来),以及窄屏下外框/列表/输入区各自落位、输入区
仍在外框节点子树里且交互控件原位。
- tests/appSurface/project-development.suite.ts:把那条按"第一条匹配规则"取值、用 230 估
算的留白断言同步成按声明算出的 228 与实际间距 16,并注明层叠生效值的守卫在新用例里。
- 变异验证:输入区 `bottom: 12px -> 0`(还原"贴死重合")时新断言失败;外框
`bottom: 0 -> 156px`(还原上一轮残留)时"外框底边必须严格低于输入区底边"失败(-144)。
- 说明:本机无无头浏览器、vitest 未开 `css: true`,像素级观感只能真机复核;这里钉的是
层叠生效的声明级几何关系与"输入区仍在外框节点的子树里"。
2026-09-11 10:36:45 +08:00
suzmii
1da7dc62a0
fix(资源画布): 拖拽写入不再触发其它自动卡重派生补位
...
- useProjectResourceCanvasLayout 新增 AutomaticPositionPolicy(rederive / preserve),取代原先裸布尔 rederiveAutomaticPositions 传参
- 拖拽(manual 意图)写链固定用 preserve:不再丢弃其它自动坐标,其余自动卡原地不动,也不再补位到被拖走的空位
- 资源集合与拓扑身份签名变化仍按 PRD 用 rederive 重派生,关系图就绪后的深度修正不受影响
- 新增 automaticCoordinatesMatch(忽略数组顺序的坐标比较):手动写入后只在坐标真的变化或有新资源需要落位时才继续排一次资源同步,避免只由排序归一触发的第二次 CAS 写入再次把其它卡补位
- 写入后的 updated / conflict 分支统一按 writePolicy 计算 reconciledAfterWrite,并据此判定是否需要资源同步
- rebuildOptimisticLayout 改为接收策略参数,手动写入后的会话布局同样保持其它自动卡不动
- 新增用例:拖走一张后其余自动卡在所有写入里坐标逐项不变、视图里也不补位;变异验证(把拖拽路径改回 rederive)后该断言失败
- 副作用(已确认接受):把卡正好丢在另一张卡上时不再自动挪开它,直到下一次资源集合或拓扑变化触发重派生
- 门禁:AGC 1178 passed / 4 skipped / 0 failed,共享组件 1385 passed,typecheck exit 0,编码检查 4374 通过
2026-09-11 10:27:32 +08:00
suzmii
921d86ed44
feat(资源画布): dependency 默认铺排改为层内网格平面,不再退化成一列
...
- 新增 RESOURCE_CANVAS_DEPENDENCY_LAYER_MAX_COLUMNS = 6 与槽位宽高比常量,作为层内网格列数上限
- 新增 normalizedDependencyDepth:落位、层带与层内网格共用同一深度归一,避免同一深度被当成两层
- 新增 dependencyLayerColumnCount:列数 = clamp(floor(sqrt(卡数 × 槽位宽高比)), 1, 6),是卡片数量的纯函数
- 新增 dependencyLayerGrid:层内网格几何,行高统一取该层最高卡,使层高与层内顺序无关(中位数扫描重排后几何不抖)
- 用 dependencyColumnGeometryByDepth 取代 dependencyColumnXByDepth:x 仍只由 dependencyDepth 决定层带基址(depth 仍是唯一横向层级权威),层带宽度 = 列数 × 列间距;全部层为单列时与旧值逐值一致
- 层内按行优先落位,层内排序(稳定 ID 初序 + 两轮左至右/右至左中位数扫描)与深度层级语义不变;网格之外仍按既有向下找空位回避手动坐标与饱和层带
- 移除 dependencyBucketHeight,簇高、簇行数与层内 rank 改用层内网格行数
- 同步 resourceCanvasLayoutModel 测试:新增层内网格平面(12 张同深度 → 4 列 3 行)、重复计算与输入顺序稳定、层带随深度单调且不与换行层重叠、列数封顶 6、手动坐标在自动网格重派生前后逐项不变;同层 3 张卡的环连续性用例改为行优先网格口径
- 影响面:既有项目里已落盘的自动坐标(manuallyPlaced=false)会在下次协调时按新口径一次性重排成平面;manuallyPlaced=true 的历史手动坐标不删除、不迁移、不被自动排序覆盖
- 不新增持久化字段、sidecar schema 不升版,ProjectResourceCanvasSection/Position 契约与 RESOURCE_CANVAS_INITIAL_FIT_MAX_SCALE 均未改动
2026-09-11 10:16:01 +08:00
suzmii
dcb750c318
补记跨层字段名静默忽略的排障口径,并把逐栏目用例提为首选证据
...
- `pitfalls.md` 新增「manifest 资产分类字段写错名会被静默忽略,跨层字段名相近时尤其危险」:manifest 上的字段名是 `category`,而 `assetCategory` 是前端投影后 `ProjectResource` 的字段名,写错层不报错也不告警,本文档记录现象、原因、处理与通用规则(「设置无效但没有任何报错」时第一优先怀疑字段名或层级错配)。
- 同文件「预览 Hook 的资源入参收窄会连带收窄 identity map」那条的验证行改为以新用例 `mounts a real card body in every non-empty resource section overview` 为首选证据:它逐栏目覆盖五个非空栏目并含变异验证;既有 `uses one full-page canvas per resource section with dependency-only guide lines` 降为补充(只覆盖一两个栏目)。
- 只追加与就地更正该条验证行,未重排任何既有条目。
2026-09-11 02:00:38 +08:00
suzmii
e3616a44cc
补逐栏目断言:资源总览每个非空栏目都必须挂载真实卡片本体
...
上一轮把「总览其它栏目不画卡片」的回归结论建立在推理上(identity map 由全量投影构建 ⇒ 不会有卡片因身份缺失而不挂载)。本轮把它变成实测。
- 新增 `appSurface > mounts a real card body in every non-empty resource section overview`:自带 manifest,把 `category` 显式写死,让 `character` / `audio` / `document` / `unclassified` / `version` 五个栏目同时非空(外加空的 `ui-interaction` / `scene`),再逐栏目断言 `.game-resource-book-scene-card[data-resource-book-category=…]` 内存在 `.game-resource-card` 本体,并用 `.game-resource-card` 的 `data-resource-card-id` 回查投影结果,证明卡片确实落在被断言的栏目(不是靠「有子节点」这种恒真守卫蒙过去)。`audio` 刻意保持 `idle`(音频不接受可见性预取),用来证明卡片挂载不依赖预览是否已就绪。
- 自带 manifest 而不是改共用 fixture:`addSectionResources` 的四个资产被同一测试后续多处断言引用(例如 `选中资源:待归类 section.md`),给它补 `category` 会把 `section.md` 从「待归类」挪进「文档」,连带打挂那些既有断言。新用例因此只新增、不改动既有断言。
- 分类字段名踩坑记录:manifest 资产上的字段名是 `category`,不是 `assetCategory`(`assetCategory` 是前端投影后的 `ProjectResource` 字段)。先写成 `assetCategory` 时它被静默忽略,`gameCreationAppAssetCategory` 只能按 `kind` 派生,`design-document` / `game-code` 都不是 canonical kind,于是 `section.md` 落在「待归类」、`document` 栏目为空。
- 变异验证(本断言的价值所在):把 `resources` 改回 `activePageResources`(即回到回归状态)后,本用例与既有 `uses one full-page canvas per resource section with dependency-only guide lines` **双双失败**(`expected null not to be null`);恢复后两者通过。断言确实守住了这条回归。
- 验证:`npm run test -- apps/ai-game-creator-shell/tests` 81 files passed,1172 passed / 4 skipped / 0 failed;typecheck exit 0;eslint 与 prettier 干净;check:encoding 4374 文件;`git diff --check` 干净。本轮只改测试文件,`src/**` 与 HEAD 逐字节一致(变异验证后已还原并核对)。
2026-09-11 01:59:21 +08:00
suzmii
84b8f5130b
修复资源总览只画当前栏目卡片的问题:拆开身份口径与热预取口径
...
前一次改动(60d8b8fbb)把 `useProjectResourceCardPreviews` 的 `resources` 从全量投影收窄成当前分页栏目,造成产品回归:该入参不只喂热预取,它同时决定返回的 `identityByResourceId`,而 `renderResourceBookCard` 在身份缺失时 `return null`,于是资源总览(main 态)只有当前分页栏目画出真实卡片,其余栏目只剩栏目标题栏加空的层叠占位。
- 拆成两个入参:`resources` 恢复全量资源投影语义(决定 `identityByResourceId`、缓存与卡片挂载),新增 `eagerResources` 只用于 `eagerPreviewLimit` 计数的热预取,缺省回退 `resources`。两个入参的语义写进 Hook 参数注释,调用方 `index.tsx` 在传参处注明「收窄 `resources` 会让其它栏目只剩标题栏」。
- 纠正前一次提交的说法:**identity map 必须保持全量**,不能跟着热预取一起收窄。热预取可以只喂当前栏目(上一个提交的意图保留、`A → B → 回 A` 会重读 A 可见卡的已知代价也保留),但身份 / 渲染口径收窄会让总览其它栏目不再挂载卡片——技术方案要求「主画布展示各子画布的缩略入口,内部按资源类型显示有限层叠卡片……主画布预览和子画布展开态复用同一套卡片视觉」,这是产品回归而非可接受的行为变更。
- 不使用「身份未知时用 idle 占位兜底渲染」这条备选:它会让总览卡片失去真实预览,观感更差。
- `pitfalls.md` 追加同题排障口径,含通用规则:凡 Hook 入参同时参与「身份 / 缓存 key」与「调度 / 预热」,就不能为优化调度去收窄它,应先确认它还有没有别的消费者。
- 回归用例 `appSurface > uses one full-page canvas per resource section with dependency-only guide lines` 已自行变绿(未改该断言)。验证:`npm run test -- apps/ai-game-creator-shell/tests` 1171 passed / 4 skipped / 0 failed;`appSurface.test.ts` + `useProjectResourceCardPreviews.test.ts` 415 passed;`src/components/image-editor` 1385 passed;typecheck exit 0;check:encoding 4374 文件;`git diff --check` 干净。
2026-09-11 01:47:04 +08:00
suzmii
7fa61231ae
AGC 资源画布两条过期断言跟上新合同,并补项目切换的预览缓存清理行为断言
...
- appSurface > renders one body-first card system:把原先钉「全局只读 1 次」的断言收窄成「同一身份不因重复请求新增物理读取」——热预取之后先让 IntersectionObserver 再报一次可见、再打开一次详情,读取次数必须与快照一致;并先钉住快照非空且读取目标都是 assets/hero.png,避免空集恒真。60d8b8fbb 把热预取改成只喂当前栏目后,用例里每进出一次「角色与对象」都会重读该栏目的可见卡(该 commit 已明确接受这个代价),全局总次数会随进出次数漂移;「同一身份同时只读一次」是 PRD 里真实存在的合同,比总次数更精确,没有放宽。
- appSurface > keeps the resource preview version cache wired and cleared on project switch:60d8b8fbb 删掉了从未被写入的 resourcePreviewVersionByResourceId 死接线(只被 new Map() 初始化与清空,previewVersionByResourceId 恒为空串),断言守的 prop 与其清空语句都已不存在,按「四不写」删除这条形态断言;用例改名 clears the resource preview cache and cancels the old preview scope on project switch。
- 同用例把意图从源码正则换成可执行行为断言(原断言只证明接线存在,不证明缓存真被清):渲染 A 项目并等卡片预览落到 Blob URL 后切到 B 项目,断言 ① 旧卡片预览的 Blob URL 被撤销、② 旧 scope 的在途读取按旧 scopeId 取消、③ 同一资源以新项目身份与新 scopeId 重新读取。
- 变异验证在 %TEMP% 下的独立 worktree 沙箱里做(未改本工作树产品代码):去掉预览 Hook 里 loaded 早退 → 第二条用例失败(同身份读取 6→7);去掉 cancelLocalProjectResourcePreviewScope(previousScopeId) → 第三条 ② 失败;切项目不复用新 scopeId → ③ 失败;拆掉两条撤销 Blob URL 的路径 → ① 失败。
- 未改 uses one full-page canvas per resource section with dependency-only guide lines:沙箱实验证明只把预览 Hook 入参从 activePageResources 换回 canvasResources,该用例即整体通过。它守的「总览逐栏绘制各栏目真实卡片」是被 60d8b8fbb 意外收窄的(renderResourceBookCard 在 identityByResourceId 缺该资源时返回 null,而该 map 从该 commit 起只覆盖当前栏目;其 commit message 只声明了预取口径与重读代价,未声明总览不再绘制其它栏目卡片),属产品回归,已上报,不以改断言掩盖。
- 门禁:ai-game-creator-shell:typecheck exit 0;apps/ai-game-creator-shell/tests 1 failed / 1170 passed / 4 skipped(唯一失败即上面上报的回归;改前 3 failed / 1168 passed);src/components/image-editor 1385 passed;check:encoding 4374 文件;git diff --check 干净。
2026-09-11 01:33:10 +08:00
suzmii
1ac8cc3eca
补记本轮 AGC 修复的排障口径与既有约定
...
- pitfalls.md 新增「资源搜索栏改成临时叫出的浮层」条目:写清"回到资源总览点不动"的两层成因(横跨整行、z-index 40 的透明工具条带盖在 z-index 30 的栏目标题栏上吃掉命中区域;管理区 padding-top 与场景 inset 只为给搜索框腾带子)、浮层的几何口径(bottom: 58px = Dock 14px + 34px 高 + 10px 间隙,刻意不写 top;提示层 top: 58px = 标题栏 42px + 16px)、必须钉住的两条(提示层 pointer-events: none + 提示条 auto;收起不清搜索条件、由 Dock 按钮 is-active 表达),以及门禁为什么抓不到(jsdom 不做命中判定)。
- pitfalls.md 新增「画布侧分类筛选条已移除」条目:记录用户口径、只移除画布这一处用法而保留共享组件、随它删掉的画布筛选轴,以及"不要顺手改分区、将来恢复要重新设计入口"。
- pitfalls.md 新增「项目对话输入区必须留在对话框内部」条目:记录两只绝对定位盒子上下紧贴的成因、对话框=消息列表盒子 + 输入区三边内缩 12px 的做法,以及列表留白 256px 与编辑器 min/max 高度必须成对维护。
- 本次只补文档,不改代码;编码检查 4374 文件通过,文件保持 LF。
2026-09-11 01:24:17 +08:00
suzmii
60d8b8fbb2
资源卡异步解码、热预取只喂当前栏目,并删掉未接线的预览版本 map
...
- 资源卡 `<img>` 补 `decoding="async"`,把真机 37.2 MPx 量级的 PNG 解码移出主线程。刻意不加 `loading="lazy"`:卡片已经由资源画本的 `IntersectionObserver`(`rootMargin: 160px`,root 指向真正包含卡片的容器)精确门禁,只对进入可见区及预取边界的卡片发 IPC;再叠一层浏览器视口懒加载会让「预取边界 + 热预取 12 张」读到的视口外卡片被压住不解码,等于白预取。`decoding="async"` 不改变何时加载,与既有调度正交。
- 卡片预览的热预取改为只喂当前分页栏目:原先传的是 61 项全量投影,前 12 张可能落在别的栏目,用户看不到的卡片先占满全局 3 个物理读取槽,看得见的卡片反而要排队。
- 为此把 `projectResourcesByCategory`、`resourcePageCategoryKey`、`resourcePageCategories`、`activePageCategory`、`activePageResources` 整块上移到 `useProjectResourceCardPreviews` 之前并删除原位置定义;`projectResourcesByCategory` 只依赖 `canvasResources` 与 `categoryOrder`,其余只在既有依赖之上派生,上移不引入前向引用。`activePageResources` 合并为单一声明(原先在 `activePageLayoutReady` 之前另有一份同定义局部变量)。
- 已知副作用并接受:Hook 的 `identityByResourceId` 只覆盖当前栏目,因此「A 栏目 → B 栏目 → 回到 A」会重新读取 A 的可见卡。这正是「栏目级热预取」的定义,也符合 PRD §3.3.2「项目 / mode 切换必须清理预览缓存」的口径;代价是来回切换栏目各重读一次可见卡,单张实测 1–7 ms 且仍受全局 3 槽限制。
- 删除 `resourcePreviewVersionByResourceId` 的三处引用与 `useState` 声明。它从未被写入过:只被 `new Map()` 初始化和清空,`previewVersionByResourceId` 恒为空串,属死代码。
- 选择「删」而不是「填真值」:填真 manifest revision 会让每次 manifest 变更把全部缓存 identity 失效并触发全量重读;而现有 identity(`projectPath` / `projectId` / `id` / `category` / `path` / `mediaType`)对不可变素材已经足够——路径变了就是另一个资源。本轮不新增失效判据。
- 遗留:`appSurface > keeps the resource preview version cache wired and cleared on project switch` 断言的是刚被删除的 prop 接线,需要同步删掉该断言;该测试文件当时正被另一个 Agent 在途编辑,按分工不在本次改动内,已上报由主人处理。
2026-09-11 01:04:06 +08:00
suzmii
bdb07c141b
聊天输入区收回对话框内部
...
- 根因:`.project-supervisor-surface.is-direct-codex` 下消息列表与输入区是两只各自带边框、
各自绝对定位的盒子——列表 `bottom: 104px`、输入区 `bottom: 0; left/right: 0`,两盒上下
紧贴。输入区自己那只盒子的左右描边与列表的左右描边接成两条贯穿整栏的竖线,加上列表
只留 24px 底部内边距,最后一条消息还会被不透明的输入区盖住。观感就是"输入框紧挨着
对话框、两侧有突兀竖条"。
- styles.css:消息列表(direct-codex)改为铺满整个会话区(`bottom: 104px` → `0`),它自己
那只带描边和圆角的盒子就是"对话框";`padding-bottom` 与 `scroll-padding-bottom` 由 24px
提到 256px,给框内输入区留出位置(256 ≈ 输入区最高 230px + 12px 内缩 + 约 14px 间距)。
- styles.css:输入区(direct-codex,含同类选择器共两条绝对定位规则)由贴边改为框内内聚
区块:左右下三边各内缩 12px,圆角 14px 收到与外框同一档 12px;边框、底色、阴影继续用
既有 token(`--platform-surface-border` / `--platform-input-fill`),不新增配色。
- 不改交互语义:输入区仍是同一棵 DOM(编辑器、@ 引用、AI 润色、模型选择、提交按钮全部
原位),只改它在对话框里的落点与留白。
- project-development.suite.ts:新增守卫——对话框盒子四边归 0、输入区三边内缩同一个值、
仍是绝对定位且保留边框与底色、消息列表留白 ≥ 输入区最高高度 + 内缩且与
`scroll-padding-bottom` 同值、编辑器 min/max 高度就是留白算式的来源;并同步既有那条
钉 `bottom: 104px` 的断言为 `bottom: 0`。
- 说明:本机无无头浏览器、vitest 未开 `css: true`,像素级观感只能靠真机复核;这里钉的是
声明级几何关系与"输入区仍在同一棵渲染树里"。
2026-09-11 01:00:10 +08:00
suzmii
3bd4daf5d5
补「回到资源总览」命中区域的守卫断言
...
- 成因回填:分页态标题栏右端的「资源总览」(回到资源总览)按钮点不动,是常驻工具条带 `.game-resource-book-tools` 造成的——它是横跨整行、`z-index: 40` 的绝对定位层,正好盖在栏目标题栏那条带(`z-index: 30`)上,把按钮的命中区域整段吃掉。上一提交撤掉这条带后问题已消失,本次只补守卫,不改实现。
- project-development.suite.ts:新增声明级守卫,钉住浮层提示层(`.game-resource-book-notices`)与返回按钮所在标题栏的层级关系——提示层 `z-index` 高于标题栏(提示要看得见),因此容器必须 `pointer-events: none`、只有提示条自己 `pointer-events: auto`;提示条顶边 ≥ 标题栏 `min-height`,连视觉重叠都不发生;并反向断言常驻工具条带在 styles.css 与 index.tsx 里都已不存在(变异实测:把容器改回 `pointer-events: auto` 该用例立即红灯)。
- project-development.suite.ts:新增渲染级守卫——附件导入失败条在场(提示层挂载)时进入分页态,断言返回按钮不在提示层容器内、不是 disabled,点击后 `data-resource-book-view` 回到 `main` 且「资源总览」region 在场。
- 说明:jsdom 不做布局命中判定,像素级"是否被盖住"只能由声明级的层级/命中声明 + 真机复核确认;渲染级用例钉的是"提示层在场时返回入口仍然渲染、可点、并真的接在返回总览上"。
2026-09-11 00:57:52 +08:00
suzmii
5e29b1bb57
预览链去掉无消费者的摘要计算,并为预览读取加进程内 manifest 缓存
...
- 资源卡预览不再计算 SHA-256:`AgentRuntimeInspectionImage.sha256` 改为 `Option<String>`,读取函数新增 `include_sha256` 开关,门禁、分块读取、漂移与重开身份复核、签名与尺寸校验仍只有一份实现,只在末尾按调用方决定是否算摘要。预览路径传 `false`(它的 `LocalProjectImagePreview` 从来不消费摘要),Agent `image.inspect` 路径继续传 `true`。
- 取摘要改为 `sha256_digest() -> Result`,缺摘要失败关闭;`project_gates.rs` 提前算成 `image_sha256` 再进判定闭包,避免退化成「空摘要 == 记录里的空摘要」而静默通过视觉检查复核;`runtime_tools/media.rs` 改用仓库既有的 `match { Err => return failed observation }` 风格,不引入新的 panic 面。
- 新增 `read_manifest_cached_for_preview`,只接到 `read_local_project_image_preview_at`、`read_local_project_text_preview_at`、`read_local_project_media_preview_at` 三个预览命令,消掉一次画布装载中「每张卡片各读并解析一遍同一份 manifest」的重复开销。`read_manifest` 本体、`read_manifest_for_project` 和写入路径的安装后回读一字未动。
- 缓存命中判据每次重新获取当前文件身份:路径复核 + 非符号链接或 reparse point + 普通文件 + 长度 + mtime + 文件身份(Windows `(volume serial, file index)`,Unix `(dev, ino)`);失败一律不入缓存,错误语义与 `read_manifest` 完全一致。为此放开 `metadata_is_windows_reparse_point` 为 `pub(crate)` 并新增跨平台 `open_file_identity_key`。
- 写入侧硬做失效:`write_manifest_with_lock_hook` 成功写入后调用 `forget_preview_manifest`。只靠长度 + mtime + 身份堵不住同长度原地改写,显式失效后正确性不再依赖时间戳粒度,读取侧身份复核保留为兜底。
- 收益如实记录:真机项目实测 52 次 manifest 读加解析约 10 ms 量级,并省下约 3.15 MiB 重复磁盘读取。这是消除重复工作的正确改动,但不是性能救命项;用户感知的加载耗时大头仍在资源卡图片解码。
- 决策记录补「AGC 资源卡预览维持 data URL 加纯内存 LRU,不引入 Tauri asset 协议」:正式否决该候选路径,写明原始合同原文(不向 WebView 暴露任意本机文件协议或绝对路径)、打通所需配置(`assetProtocol` 加 `protocol-asset` feature 加 scope 只能 `**/*`)、会绕过的全部门禁(`file.read` 权限、项目边界、登记复核、敏感路径、父目录链接、硬链接、读取漂移与重开身份、按魔术字类型校验、尺寸上限、取消语义与全局 3 permit),以及收益与代价不成比例;同时否决磁盘缩略图缓存。
- `pitfalls.md` 补同题排障口径,含判据陷阱:把「每次启动重读」当成本瓶颈是错的,真机 52 张 PNG 分层实测 Rust 加 JS 合计仅约 0.3 s。
2026-09-11 00:57:33 +08:00
suzmii
f7831348c6
搜索栏改成「临时叫出」的浮层,并撤掉为它引入的工具条带
...
- index.tsx:搜索框不再常驻。常态只在右下角缩放 Dock 末尾留一颗搜索按钮(复用 `game-resource-book-zoom-button`),`Ctrl/Cmd+F` 或点它把浮层叫出来;关闭走本仓既有浮层口径——直接复用美术画布的 `useImageCanvasFloatingOptionDismiss`(Esc / 点外部,Escape 在 document 上截断,不会连带触发画布清选中)。
- index.tsx:浮层打开后自动聚焦搜索框,`resourceSearchRef` 不再是死 ref(PRD「焦点落到资源搜索框」的入口接上了)。
- index.tsx:搜索语义零改动——`setSearchText`、`visibleResources` 过滤、「清除搜索并定位」原样保留;浮层收起不清条件(`type=search` 的原生 Esc 清空被 preventDefault 挡掉),条件生效时 Dock 搜索按钮带 `is-active` 高亮,用户看得出"当前有搜索"。
- index.tsx:撤掉常驻搜索条连带的那条排布带——删除 `resourceBookToolsRef`、`resourceBookToolsHeight`、`resourceCanvasSceneSize()`、ResizeObserver 测高 effect,以及缩放锚点 / 滚轮锚点里减掉工具条带的两处算式;`resourceBookSceneSize` 重新等于管理区盒子。
- index.tsx:状态提示与附件导入失败条移出排布带,落到新的浮层容器 `game-resource-book-notices`(顶部绝对定位,不占流内高度)。
- styles.css:`.game-resource-manager` 去掉 `padding-top: var(--game-resource-book-tools-height)`,`.game-resource-book-scene` 恢复 `inset: 0`,删除 `.game-resource-book-tools` 规则与窄屏 560px 那条只为常驻搜索框写的宽度规则;搜索框改为贴右下角 Dock 向上展开的浮层(`bottom: 58px` = Dock 的 14px + 34px 高 + 10px 间隙,`z-index: 40`)。
- styles.css:新增 `.game-resource-book-notices` 浮层与 `.game-resource-book-zoom-button.is-active`(复用 Dock 按钮的 hover 色,不新增配色 token)。
- tests/appSurface/harness.ts:新增 `openResourceSearch()`——按产品入口打开浮层再返回输入框,`getByLabelText` 在浮层未打开时直接抛错,堵掉"元素在但点不到"那类假绿。
- tests/appSurface/project-development.suite.ts:重写搜索可见性守卫为「浮层不落在标题栏那条带上」(管理区不再有 padding-top、场景 `inset: 0`、浮层底边 ≥ Dock 底边 + Dock 高度、浮层不带 top、提示层顶边 ≥ 标题栏高度),新增浮层开合用例(按钮 / Ctrl+F 打开、焦点落在输入框、Esc 与点外部收起都不清条件),并把既有 5 处搜索用例改为先叫出浮层。
- tests/projectResourceLiveIntegration.test.tsx:「清除搜索并定位」用例改为重新叫出浮层读条件与清空后的值。
- 验证:新增的两条断言已用变异实测不是恒真守卫——去掉自动聚焦、或让关闭顺手清条件,对应用例都会红灯。
2026-09-11 00:56:52 +08:00
suzmii
bb48345206
移除资源画布上的分类筛选条
...
- index.tsx:删掉画布侧 PlatformResourceFilterBar 的用法(「全部 / UI 交互 / 角色与对象 / 场景与环境 / 音频 / 文档 / 待归类」分类 chip 与画布标签 chip);@ 素材面板与参考图弹窗继续用同一个共享组件,共享组件本身不动。
- index.tsx:随筛选条一起摘掉只为它存在的画布筛选轴——resourceCanvasCategoryFilters / showResourceCategoryFilter / resourceCanvasActiveTags / resourceTagLibrary,并把 visibleResources 里「分类不等于 all 才过滤」「标签必须命中已选标签」两个此后恒真的条件删掉,画布可见资源只由搜索框收窄。
- index.tsx:移除只被筛选条用到的导入(PlatformResourceFilterBar、RESOURCE_REFERENCE_FILTERS、type ResourceReferenceFilter、assetTagsMatchSelection、buildGameCreationAppAssetTagLibrary)与 ResourceCanvasCategoryFilterBySortMode 类型及其默认值构造函数。
- styles.css:删除只服务画布筛选条的 .game-resource-category-filter 规则。
- 不动分区栏目:栏目大纲、栏目标题栏、categoryOrder、projectResourcesByCategory 与「资源总览」入口保持原样。
2026-09-11 00:38:02 +08:00
suzmii
30acd9552c
写入侧产出 canonical kind,读取侧读时重派生自愈存量分类
...
- 写入侧:infer_canvas_export_asset_kind 直接返回 canonical kind(animation → character-animation、ui → ui-design、asset → image),不再让别名表替写入侧兜底
- 写入侧补防御性归一,并新增 canvas_export_asset_kind_is_always_canonical 逐分支钉死返回值为 canonical、且不再写回 ui / animation / asset
- 读取侧:gameCreationAppAssetCategory 加收窄覆盖规则——落盘 category 为 unclassified 且 kind 能派生出明确非 unclassified 分类时采用派生值
- 该规则不写迁移脚本、永久自愈:真机 57 条 ui 资产待归类从 58 降到 1,UI 交互从 2 升到 59,仅剩 code 类 game-entry 在待归类(分类表设计口径)
- 收窄条件把覆盖窗口压到最小:落盘值本身是明确分类时仍信任落盘值(保留用户在分类与标签面板手动设置的权威性)
- kind 派生结果本身即 unclassified 的 image / video / code / publication-material 不受影响,补断言钉住
- resourceCardPreviewRealManifest 由「记录缺陷」改为「守住修复」:断言归位后的 58 → 1 分布与 57 条 ui 全部落 UI 交互
- PRD 与 pitfalls 补记分类取值优先级、读时自愈规则、唯一盲区(手动把可明确分类的资产设为待归类会被覆盖)及写入侧 canonical 化
2026-09-10 23:15:04 +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
suzmii
b87120445c
Merge remote-tracking branch 'origin/master' into feat/agc-canvas-resource-workbench-v3
2026-09-10 21:24:05 +08:00
suzmii
df9c32b5ea
记录 kind 别名只救新登记不救存量 category 的陷阱
...
- 补记 ui 资产落待归类的完整成因链:kind 兜底 image 再经 image → unclassified 误分
- 写明 register_local_asset_entry 命中同路径时不重算 category,故存量 57 条无法自愈
- 写明读取侧必须信任落盘 category 的原因:存在用户手动改分类的正式链路
- 列出三个根治选项供拍板:读时重派生 / 一次性回填 / 只改写入侧
- 记录别名表在 TS 与 Rust 各有一份实现、必须成对维护,以及交叉守卫位置
2026-09-10 21:19:19 +08:00
suzmii
c5df56d855
补齐资源 kind 别名表:ui 归 UI 交互,game-* 归代码,animation 归角色
...
- TS 侧 GAME_CREATION_APP_LEGACY_ASSET_KINDS 补 5 条别名:ui → ui-design、game-entry/game-script/game-style → code、animation → character-animation、asset → image
- Rust 侧 canonical_game_creation_app_asset_kind 同步补齐同一批别名,两侧必须成对维护
- 按拍板口径不往 GAME_CREATION_APP_CANONICAL_ASSET_KINDS 加新 kind,避免出现 ui 与 ui-design 两个同义 kind
- 保持 art-spritesheet-slice → icon → ui-interaction 不动
- 补注释写明别名表的职责是「线上值 → canonical」而非仅收历史遗留,画板导出等现役写入侧同样要在这里收口
- 新增 assetKindCanonicalMapping.test.ts:解析 Rust 源码交叉钉住两侧 canonical 目录与别名映射逐条一致,并逐条断言已拍板的 kind → canonical → 栏目口径
- 新增 resourceCardPreviewRealManifest.test.ts:按真机 manifest 逐条形状可执行地数出预览分支与栏目分布(raster-image 52 / placeholder 8 / code 1;unclassified 58 / ui-interaction 2 / scene 1)
- 真机取证用例同时钉住「别名只救新登记、不救存量」:57 条 ui 的落盘 category 仍是 unclassified,需读时重派生或一次性回填才能归位
- 修正两条按旧错误栏目断言的既有用例:kind=ui 的上传图归「UI 交互」、animation 视频归「角色与对象」
2026-09-10 21:18:55 +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
suzmii
2fefb373d1
修复 AGC 资源搜索框与栏目标题栏挤在同一水平带的重叠
...
- styles.css:新增 `.game-resource-book-tools` 工具条带,搜索框、筛选条与状态提示在里面按流式排布;`.game-resource-search` 去掉 `margin: 10px 12px 0`,尺寸与间距交给工具条带。
- styles.css:`.game-resource-manager` 加 `padding-top: var(--game-resource-book-tools-height, 0px)`,`.game-resource-book-scene` 的 `inset: 0` 改成同一变量让出顶边;管理区与画本场景共用一条实测高度,两者不再落在同一条排布带上(总览态标题栏与分页态栏目标题栏都整体下移)。
- styles.css:`@media (max-width: 560px)` 下搜索框独占整行,窄屏筛选条换行时工具条带变高、场景按实测高度继续下移,不靠 z-index 硬压。
- styles.css:更新工具条带注释,说明 `z-index: 40` 仍保留(高于场景的 20),作用只剩"工具条内容溢出时不被画本盖住"。
- index.tsx:把画本场景以外的流式工具条包进 `game-resource-book-tools`,搜索框挂 `resourceBookToolsRef`,用 ResizeObserver 实测 `offsetTop + offsetHeight` 写入 `--game-resource-book-tools-height`;搜索、筛选、「清除搜索并定位」与 `resourceSearchRef` 全部零改动。
- index.tsx:新增 `resourceCanvasSceneSize()`,视口居中、「适应内容」、总览入场中心、滚轮与缩放锚点都按"管理区盒子减掉工具条带"计算,不再按"场景一直顶到管理区顶端"排布;`handleResourceBookWheel` 与 `zoomResourceBookBy` 补上新增依赖。
- index.tsx:`measureResourceBookOverview()` 改用画本场景自己的 rect 作为总览栏目矩形原点,场景盒子上移后栏目矩形与世界坐标仍严格同源。
- project-development.suite.ts:在既有 CSS 声明级守卫里补断言——管理区 `padding-top` 与场景 `inset` 必须指向同一个 `--game-resource-book-tools-height` 变量,工具条带是绝对定位的独立排布行,栏目标题栏 z-index 低于工具条带;选择器加行首断言,避免误取 `.game-workbench-stage > .game-resource-manager`。
- project-development.suite.ts:在栏目大纲用例里补真实渲染的 DOM 归属断言——搜索框的父链不得命中画本场景或资源总览层,工具条带是管理区直接子节点;该断言在改动前失败、改动后通过,已用"把工具条带类名改掉"的变异验证它不是恒真假守卫。
2026-09-10 21:12:30 +08:00
suzmii
df4168f71f
记录资源预览读取分支与版本时间的排查口径
...
- PRD 明确队列身份用的 category 是资源分区栏目、只用于前端去重与布局,不作为 IPC 入参
- PRD 明确 read_local_project_media_preview 的线上 category 是原生读取分支,只接受 art / audio,须由卡片预览类型派生
- pitfalls 新增「媒体预览 category 是读取分支而非栏目」:记录阶段二把用例一起改成错误行为导致门禁失守,并写明现有守卫位置与实测失败口径
- pitfalls 新增「versions[].createdAt 是 Unix 秒」:记录夹具与实现一起错导致门禁失真,以及已知秒值断言年月日的验收口径
2026-09-10 21:05:30 +08:00
suzmii
14d1635858
修复游戏版本时间显示 1970 年:createdAt 按 Unix 秒换算成毫秒
...
- 写入侧真实单位是 Unix 秒:project/manifest.rs 的 GameIterationVersion.created_at 赋值为 unix_timestamp(),该函数返回 duration.as_secs()
- formatIterationVersionLabel 原来把秒值直接交给 new Date(),被当成毫秒解释,真机因此显示 1970/1/22(1788075047 毫秒 = 1970/1/22 00:41:15,与截图逐秒吻合)
- 显示侧改为 new Date(version.createdAt * 1000),与 ResourceAssetDeleteDialog 和待确认资源编辑创建时间标签的既有秒口径一致
- 给 GameIterationVersion.createdAt 补契约注释,写明单位是 Unix 秒及换算要求,避免后续再按毫秒消费
- resourceCanvasVersionBindingModel 夹具由毫秒改为真实秒值,并用真机取值 1788075047 补断言:年月日必须是 2026/8/30 而不是 1970
- resourceVersionSwitch 夹具同步改为真实秒值,避免继续沿用误导性的毫秒夹具
2026-09-10 21:00:54 +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
dde860716e
修复资源卡片媒体预览发不出请求:线上 category 改回原生读取分支
...
- 新增 projectResourceMediaPreviewCategory:从卡片预览类型派生原生侧线上 category(art / audio),与画布分区栏目轴解耦
- read_local_project_media_preview 调用点不再传 job.resource.category:该字段自 6 类资产分类轴落地后是画布栏目(unclassified / ui-interaction / …),传给原生侧会被 read_local_project_media_preview_at 以「媒体预览类别只支持 art 或 audio」直接拒绝
- 该回归导致所有走媒体分支的卡片(GIF / SVG / AVIF / BMP / MP4 / WebM / MOV 与音频)读不出预览,只显示占位图标
- previewReadErrorMessage 与 resourceReadKindLabel 改用卡片预览类型判定文案,不再依赖已换语义的 category
- 废弃 useProjectResourceCardPreviews 对 projectResourceDisplayKind 的引用,错误文案与读取路由共用同一分类口径
- 预览 Hook 用例补「扩展名图片按 art 分支发出请求」与「音频仅在播放意图后按 audio 分支发出请求」两条断言,直接钉住原生侧线上取值
- 应用层媒体用例补 icon.svg 的 category 必须是 art 的断言,并修正原先描述「媒体读取改传画布栏目」的过期注释
2026-09-10 20:59:22 +08: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
2f8753f597
AGC 资源画布切换为 6 类资产分类加项目版本栏目(阶段二:投影轴与栏目表落地)
...
- 契约层把 ProjectResourceCanvasPosition.section 加宽为 PersistedProjectResourceCanvasSection 并删除旧 ProjectResourceCanvasSection 联合
- 七个分区类型消费点改用 ProjectResourceCanvasCategory:投影、布局模型、布局 Hook、分区高度、依赖图层与画布历史
- RESOURCE_CANVAS_SECTION_ORDER 改为 PROJECT_RESOURCE_CANVAS_SECTIONS,删除 RESOURCE_CANVAS_VISIBLE_SECTION_ORDER
- reconcileResourceCanvasLayout 接入读时归一化:旧栏目值按资源当前分区改写 section,坐标与手动标记原样保留
- 归并后的布局与原布局逐项不同,由既有协调路径判定 changed 并写回一次新分区,不引入迁移脚本
- 投影层五个资源入表点统一走 projectResourceCanvasCategory:项目版本独立成栏、Agent 回执归文档、其余按资产分类
- 新增 projectResourceDisplayKind 收敛 manifest 资产 subtype 即 kind 的显示类型口径,projectResourceTypeLabel 不再依赖旧栏目
- 卡片预览、编辑分流、媒体工具条、预览文案与画布历史快照改用显示类型与新分区,历史快照入栈时收窄到现行分区
- index.tsx 删除可见栏目导入与 visibleCategoryOrder,栏目标签由资源筛选唯一中文口径派生并补齐 7 栏
- index.tsx 补齐 7 栏默认视口与 7 个栏目图标(新增 LayoutGrid、Users、PackageOpen,移除已无用的 Code2)
- index.tsx 删除 canvasResources 的 code 过滤:只登记游戏代码的项目现在落在待归类栏目并正常显示卡片
- 新增只登记游戏代码项目的 UI 回归用例,覆盖栏目大纲、默认落地栏目与代码卡片渲染
- 测试夹具按新分区轴迁移,新增旧栏目 sidecar 读时归并用例与栏目顺序用例
- 共享测试 harness 的资源卡查询正则允许栏目标签自带空格(UI 交互)
- 同步 PRD 与共享记忆决策记录的栏目口径描述
2026-09-10 20:41:19 +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
eda34187fc
修复 AGC 资源栏目大纲常态不可读:恢复 Dock 底板、栏目图标与完整文字
...
- styles.css:`.game-resource-outline` 常态从 `opacity: 0.68` + `scale(0.86)` + 透明底 + 无阴影,改回完整尺寸(`opacity: 1`、`transform: translateY(-50%)`)并给现有视觉语言的 Dock 底板(`--platform-subpanel-border` 边框 + `--platform-nav-fill` 背景 + 与右下角缩放 Dock 同款阴影 + `blur(6px)`)。
- styles.css:`.game-resource-outline button` 常态列宽由 `0 minmax(0,1fr)` 改为 `18px minmax(0,1fr)`、`gap: 6px`,栏目图标常态 width 14px / opacity 1,不再只在悬停时才出现。
- styles.css:栏目文字 11px → 12px;当前栏目(`.is-active`)常态就带 `--platform-nav-active-*` 的边框、底色和阴影,用户一眼能认出当前分区。
- styles.css:悬停/键盘聚焦保留为同一套 token 的加强(更深的边框、`--platform-nav-active-shadow`、`blur(10px)`),不再靠"常态缩到只剩文字"表达层级。
- 不改交互语义:大纲仍然是 `openResourceBookChild` 的入口,按钮 key、aria-label、aria-current 与未读小圆点全部保持原样。
- 测试:新增 CSS 声明级断言,钉住常态不降透明度、不 scale、有底板,图标常态 14px 且文字 12px(jsdom 不加载 styles.css,可见性只能钉声明)。
- 测试:新增 DOM 用例,断言每条栏目入口同时具备图标与栏目文字,且切换栏目后当前项带 `aria-current="page"`。
- 文档:同步《GameAgent资源自由画板与快速编辑》的「操作边界」与「验收」两条,把"常态缩小、只露栏目文字"改成"常态即可读可点",并同步 pitfalls 里的对应口径。
2026-09-10 20:11:09 +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
bf63766d88
给 SpacetimeDB 冒烟用例的杀进程断言加局部有界超时:只改这一条,不动全局预算
...
- spacetime-editor-idempotency-smoke.test.ts:terminates a live standalone-shaped child process 补第三参 20_000,并加注释写明这是负载敏感的局部超时。
- 性质说明:这是局部有界超时,不是放宽判据。断言 child.exitCode !== null || child.signalCode !== null 一字未动,全局 testTimeout 与 maxThreads 也未动。
- 为什么不加注入桩:该用例的存在意义就是验真实杀进程路径(spawn 真实常驻 node → stopStandalone → Windows 上 spawn taskkill /PID /T /F 杀进程树并等退出)。加桩等于把被测对象换掉,比放宽断言更隐蔽,因此明确不采用注入桩。
- 为什么需要:这两个真实进程的启动与回收在全并行负载下会明显超过默认 5000ms;单独跑实测 167ms,全仓并行时曾撞满 5000ms 上限。
- 上限仍具约束力:stopStandalone 自身对 SIGTERM → SIGKILL 只有 5s 有界等待,而 runTaskKill 与 SIGKILL 之后的 once(child, 'exit') 都没有内部超时,20s 外层上限仍能抓住真实挂死。
- 已实测第三参在当前 vitest 0.34.6 生效:临时把该值改成 1 时复现 Test timed out in 1ms,改回 20_000 后该文件 4 passed。
2026-09-10 20:00:58 +08:00
suzmii
9196ba3c96
修复 AGC 资源画本框选没有任何颜色:给画本场景根补共享画布根类
...
- index.tsx:`ResourceBookScene` 的场景根 `.game-resource-book-scene` 补上 `genarrative-image-canvas` 类,让共享 `SelectionOverlay` 的框选 token 有定义它的祖先。
- 根因:共享选择框的 `border: 1px solid var(--genarrative-image-canvas-selection-border)` / `background: var(--genarrative-image-canvas-selection-fill)` 没有 fallback,这两个 token 只声明在 `packages/image-canvas-react/src/styles.css` 的 `.genarrative-image-canvas` 根类里,而该根类由共享 `CanvasViewport` 渲染;AGC 只渲染 `SelectionOverlay`、从不渲染根类,声明在计算值阶段被整条丢弃,用户框选时看不到任何选择框。
- 安全性:该根类只有 3 条自定义属性声明、无布局副作用,加 className 不改布局。
- 测试:新增真实 `pointerdown` / `pointermove` 框选用例,断言选择框存在、内联几何非空,且最近的 `.genarrative-image-canvas` 祖先就是画本场景根;去掉根类后该用例失败(已实测)。
- 测试:新增 CSS 声明级断言,钉住根类的描边/底色 token 存在且非透明,消费端仍按 var() 取值(jsdom 拿不到计算色,这里只能钉声明)。
- pitfalls.md:补记"复用共享画布子组件要自己渲染根类"的排查口径。
2026-09-10 20:00:42 +08:00
suzmii
7e6f7555eb
修复 AGC 资源搜索框被 display: none 误关导致的搜索链路死代码
...
- styles.css:`.game-resource-search` 的 `display: none` 恢复成 `display: flex`(原始提交 3a8dff140 里就是 flex,PR #193 重排工作台时被改成 none),并补 `position: relative; z-index: 40`、常态 `align-self: center`、与右下角缩放 Dock 同款的浮层阴影。
- styles.css:`.game-resource-live-notice` 同样补 `position: relative; z-index: 40`;「清除搜索并定位」按钮只在这条提示条里,提示条被画本场景盖住时搜索链路依旧是断的。
- 根因(堆叠顺序):资源卡与栏目标题栏都画在 `.game-resource-book-scene`(absolute + z-index 20,子画布态还有一层不透明点阵底)里,而搜索框与提示条是 `.game-resource-book-manager` 的流式子节点;定位元素按绘制顺序整体盖在流内内容之上,所以只放开 display 等于"画了但看不见、点不到"。
- 可见性口径:AGC 的 vitest 没开 `css: true`、不加载 styles.css,`toBeVisible()` 在这里是恒真的假守卫;新增的守卫按本仓既有口径读 CSS 源文件做声明级断言(不是 display:none、z-index 高于画本场景)。
- 行为用例:总览态输入即过滤总览摞上的卡片;分页画布态同一搜索条件继续生效、清空后卡片恢复,证明这条链路确实由搜索框驱动。
- 端到端用例:搜索条件挡掉刚提交的新素材时保留条件并提示,点「清除搜索并定位」后清空搜索并定位选中新素材。
2026-09-10 19:59:52 +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
suzmii
6f09bf3a00
AGC 资源画布分区轴改为 6 类资产分类加独立项目版本栏目(阶段一:契约与读时映射)
...
- 契约层新增 PROJECT_RESOURCE_CANVAS_SECTIONS:6 类资产分类加末尾独立的项目版本栏目,并补齐分区类型
- 契约层新增旧四 / 五栏目取值白名单、Persisted 联合类型与两个类型守卫
- Rust 契约 ProjectResourceCanvasSection 增补 7 个现行 variant 并保留 Code / Art 旧值,新增同名分区常量
- Rust 契约不升 game-creator-resource-layout.v1 版本、不给未知 section 加兜底,损坏 payload 继续失败关闭
- 新增 resourceCanvasSectionMapping.ts:旧栏目到现行分区的映射表、回落栏目与读时归一化
- 读时归一化只改写 section,x / y / manuallyPlaced 原样保留,无法归并时沿用既有丢弃行为
- resourceProjectionModel 把扩展名分类器更名为 projectedResourceKind 并收敛为准入与显示类型
- resourceProjectionModel 新增 projectResourceCanvasCategory:项目版本独立成栏、Agent 回执归文档、其余按资产分类
- Rust resource_layout 测试夹具改用现行分区值,并新增既有旧 section sidecar 仍可读取的用例
- 新增 resourceCanvasSectionMapping 测试:旧值乘目标栏目矩阵覆盖坐标保留、section 改写、changed 判定与回落列不变量
- projectResourceProjectionModel 测试新增 7 栏分区投影、项目版本独立成栏与只登记游戏代码项目落在待归类
- 同步 PRD、GameAgent 资源自由画板技术方案、AGC 实施计划与共享记忆决策记录的分区口径
2026-09-10 19:57:34 +08:00
suzmii
180a157982
同步 pitfalls 中失效的 ACL 桩名称并补注入点说明
...
- pitfalls.md:把「测试超时补充」里引用的 persistenceOptions 改为当前实际使用的 skippedWindowsAclOptions,避免文档指向已不存在的名称。
- pitfalls.md:补一句 prepareSwarmTestRuntimeConfig 暴露的可选 secureWindowsPath 注入点、默认 null 走真实实现,以及单次调用最多加固 3 次的事实。
2026-09-10 19:56:02 +08:00
suzmii
a698c9170c
AGC 配置向导与隔离配置用例统一改传 ACL no-op 桩
...
- agentSwarmTestEntry.test.ts:新增模块级 skippedWindowsAclOptions,仅 win32 下为 { secureWindowsPath: async () => {} },其它平台为空对象。
- agentSwarmTestEntry.test.ts:atomically replaces a private AppData config file 的两次 writeGameCreatorConfigAtomically 传入该桩,3663ms → 24ms,不再只剩 27% 超时余量。
- agentSwarmTestEntry.test.ts:moves the default LLM to primary config and lets later GUI saves win 原本的局部 persistenceOptions 收敛为同一份模块级常量,去掉重复声明。
- agentSwarmTestEntry.test.ts:isolated Swarm runtime config 的三处 prepareSwarmTestRuntimeConfig 传入该桩,privately copies 1948ms → 84ms,refuses to delete 1331ms → 79ms。
- 断言零改动:这几条用例在 win32 下本就不校验 ACL(mode / dev / ino 断言全部在 process.platform !== 'win32' 分支内),非 win32 下该常量为空对象、行为逐字不变。
- 实测:该文件 13.59s → 1.35s,文件内最慢用例从 3663ms 降到 84ms。
2026-09-10 19:55:58 +08:00
suzmii
ec6973605b
给隔离测试配置加上可选的 Windows ACL 加固注入点:默认真实实现
...
- agent-swarm-test-chat.mjs:secureWindowsPrivateRuntimePath 增加可选第三参 secureWindowsPath,传入时直接调用它,不传时完整保留原有的 await import + secureWindowsGameCreatorPathForCurrentUser 调用。
- agent-swarm-test-chat.mjs:copyPrivateRuntimeConfigEntry 增加可选第五参 secureWindowsPath,并透传给上面的加固函数。
- agent-swarm-test-chat.mjs:prepareSwarmTestRuntimeConfig 增加可选第三参 { secureWindowsPath = null } = {},透传给运行配置目录加固与两次配置文件复制。
- 生产路径行为逐字不变:默认值为 null 时 if 分支不进入,执行的原语句与改动前完全一致;唯一生产调用点仍按单参调用(prepareSwarmTestRuntimeConfig(sourceConfigDir))。
- 加这个接缝的原因:Windows 上每次私有路径加固都要拉起一个真实 powershell.exe(本机实测约 0.6 秒 / 次),一次 prepareSwarmTestRuntimeConfig 在双配置文件场景最多加固 3 次,只校验隔离与清理语义的用例不该为此耗掉 vitest 的 5000ms 默认预算。
2026-09-10 19:55:52 +08:00
suzmii
fc5adf48aa
记录 AGC 配置向导单测的 Windows DACL 子进程超时坑
...
- pitfalls.md:在「终端真实测试不能混用配置参数、stdin EOF 和持续预览」下补一条测试超时补充,紧接既有的 Windows PowerShell 参数条目。
- 内容:配置向导读路径与写路径都会加固私有目录与配置文件,没拿到 secureWindowsPath 桩时 Windows 上每次调用各拉起一个真实 powershell.exe(本机实测约 0.6s / 次);只桩写不桩读会累计 9 次加固、约 5.5s,稳定撞上 vitest 默认 5000ms 并报 Test timed out in 5000ms。
- 结论口径:只校验配置分层优先级、不校验 ACL 的用例,读写路径必须带同一份 persistenceOptions;确实要覆盖私有 ACL 的用例才保留真实加固并自行留足超时预算。
2026-09-10 19:34:04 +08:00
suzmii
2570831779
修复 AGC 配置向导持久化用例在 Windows 上稳定超时:读路径补上 ACL 桩
...
- agentSwarmTestEntry.test.ts:readGameCreatorWizardConfigState 的三处调用补传 persistenceOptions,读路径不再拉起真实 powershell.exe 去加固私有 DACL。
- agentSwarmTestEntry.test.ts:在 persistenceOptions 定义处补注释,说明读路径同样会加固、读写都要带桩,避免后续再漏。
- 失败形态:单跑该文件稳定 1 failed | 124 passed,报错为 Test timed out in 5000ms,不是 expected / actual 断言不符。
- 根因:该用例只校验配置分层优先级(local 覆盖 primary → 向导写入后剥离 local 的 llm → GUI 后写 primary 获胜),但三处读路径都没传桩;每次 readGameCreatorWizardConfigState 会加固目录、主配置、本地配置各一次,三处读累计 9 次 powershell.exe 子进程。逐段实测 5474.9ms / 5494.9ms,正好压过 vitest 默认 5000ms。
- 基线定性:8f96b05f6 上同一用例同样失败(连续两次 1 failed | 124 passed,同样报 5000ms 超时),且该用例与 game-creator-config-wizard.mjs、agent-swarm-test-chat.mjs 在本批前后逐字节一致(blob 相同),故不是本批引入的回归。
- 未放宽任何断言:补桩后该用例 5500ms → 39ms,本文件 13.6s → 8.7s,断言与断言语义均未改动。
2026-09-10 19:33:58 +08:00
suzmii
cb76aadb48
AGC 输入区三处观感修复:AI 润色归位、@ 面板筛选条单行、引用 chip 原子化
...
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 3m5s
Project CI / Native shell tests (pull_request) Successful in 18m26s
- styles.css:把 direct-codex composer 下广播式的 `.project-supervisor-composer button` 规则
收窄到 `.project-supervisor-submit-button`(含 svg 那条与 media query 里那条),
并给 `.resource-reference-input-actions` 补 `grid-column: 1 / -1` 让输入区操作排独占一行
- styles.css:`.resource-reference-input-actions` / `.resource-reference-input-at` 撤掉绝对定位,
操作排回到网格文档流,与输入框右下角对齐,不再浮在文本区中间
- styles.css:`.resource-reference-input-polish` 与 `.resource-reference-input-restore` 并入
`@` 按钮同一条尺寸规则(28px 方钮、8px 圆角、同 hover/disabled 观感)
- styles.css:输入区状态行(润色中/润色失败)改为与应用排同一行,不再单独占一行顶高 22.8px
- styles.css:direct-codex 输入框 padding 收为 `12px 15px 6px`,窄屏 `10px 12px 6px`
- styles.css:`.resource-reference-chip` 的 `×` 删除按钮不再被 broadcast 规则摘出 chip
- PlatformSegmentedTabs.tsx:分段页签 item 加 `whitespace-nowrap`,中文不再逐字竖排
- packages/shared/styles.css:补 `.scrollbar-hide` 实现(该类名一直被 `layout="scroll"` 引用但仓库未定义)
- ResourceReferenceNode.tsx:`getTextContent()` 改为单个 U+FFFC 占位符并显式实现
`getTextContentSize()`,引用成为真正的原子内联节点(1 个引用 = 1 个字符)
- tests/resourceReferenceInput.test.tsx:新增「1 个引用 = 1 个字符」与「chip 自带删除、一次删净」两条断言
- tests/appSurface/project-development.suite.ts:把 composer 按钮样式断言收窄到提交按钮,
并新增一条反向断言,钉住「广播到 composer 下所有 button」的规则不再出现
2026-09-10 19:05:57 +08:00
suzmii
c20e28bed0
修正 AGC 快速编辑 4xx 失败原因取值:优先 details.message 并附 provider 与素材类型上下文
...
- `editor_api_rejection_reason` 取值顺序改为 `error.details.message` → `details.message` → `error.message` → `error` 文本 → 顶层 `message`
- 平台把所有 4xx 兜底成「请求参数不合法」,真实原因写在 `details.message`,原实现只读 `error.message` 导致用户永远看不到原因
- `details` 有值时附带 `provider`,并透出 `assetKind` / `mediaType`,非 BAD_REQUEST 的稳定错误码照旧透出
- 抽出同步函数 `editor_api_rejection_reason_from_body` 并补定向用例,钉住取值顺序、截断与兜底行为
2026-09-10 19:01:09 +08:00
suzmii
8c74e5f97c
修正 AGC 图片快速编辑的 400 判据测试:补 art-spritesheet / ui 正向用例并钉住请求级链路
...
- 服务端白名单用例改为按静态图集合断言,新增 `art-spritesheet` / `ui` / `ui-prototype` / `game-art` / `game-background` / `art-spritesheet-slice` 正向用例
- 保留 `future-kind` / `video` / `audio` / `image-sequence` / `character-animation` / `document` / `code` 负向用例,并补 mediaType AND 门用例
- 新增请求级回归用例 `game_creator_client_quick_edit_accepts_local_manifest_static_image_kinds`,按 AGC 客户端真实请求体(source 已改写为 ai-game-creator-client)覆盖放行与拒绝两侧
- 新增 `game_creator_client_source_is_recognized_as_game_creator_resource_editor`,把 source 别名与队列 consumer 判定钉在同口径
- 修正 icon 相关旧断言:`icon` 已是共享契约静态图类型,改断言 non-static 媒体仍被拒
2026-09-10 19:01:04 +08:00
suzmii
9e59abde53
修复 AGC 图片快速编辑被平台 400 拒绝:来源类型表改为与共享契约对齐的静态图集合
...
- `ensure_editor_image_edit_source_kind_allowed` 的白名单换成静态图类型表 `EDITOR_IMAGE_EDIT_STATIC_IMAGE_ASSET_KINDS`(canonical 静态图类型 + 合法 legacy 类型)
- 保留 `mediaType == image` 的 AND 门,视频 / 音频 / 序列帧等非静态媒体照旧拒绝
- 覆盖实测被拒的 `art-spritesheet` / `ui`,以及 canonical 映射输入域 `art-spritesheet-slice` / `ui-prototype` / `game-art` / `game-background` / `character-art` / `illustration`
2026-09-10 19:00:52 +08:00
suzmii
6a11032084
修复 AGC 图片快速编辑被平台 400 拒绝:服务端认 ai-game-creator-client 来源别名
...
- `is_game_creator_resource_editor_generation` 增加 `GAME_CREATOR_CLIENT_GENERATION_SOURCE` 别名,与 `from_job` 的队列 consumer 判定同口径
- AGC 客户端发送前会把 `generationInputs.source` 改写成 `ai-game-creator-client`,原来只认 `game-creator-resource-editor`,导致该分支对真实请求永远不生效
2026-09-10 19:00:44 +08:00
suzmii
7d0f5c68fe
快速编辑浮层样式照搬美术画布:逐条搬真实规则,补回共享组件的 Tailwind 来源
...
- resourceCanvasChrome.css:删掉手写的近似样式,从网页端 src/index.css 逐条搬入 AGC 实际用到的 image-canvas-editor__* 规则——生成 composer 基座(grid 布局、42rem 宽、1.45rem 圆角、双阴影)、generation-prompt(--auto-grow-editor-* 变量 + 聚焦态)、composer-footer 五列网格(修掉底部一行挤在一起、对齐混乱)、option-cluster / option-popover-anchor 及其 --dimensions / --model 变体、option-popover 与它的 sections / section / title / items / items--card / items--model、option-popover-choice 及 --ratio / --model 与 aria-pressed 选中态、ratio-wireframe 六个比例线框、option-selected-check、mud-point-inline、generation-submit 三态、quick-edit-panel / --quick-edit / quick-edit-footer / quick-edit-prompt / quick-edit-submit 这一组面板专属覆盖。
- resourceCanvasChrome.css:补入提示词输入框依赖的 auto-grow-text-area 一族规则(外层尺寸变量、content 内边距、placeholder、viewport 与 OverlayScrollbars 竖条),原来只给了裸边框和 padding,所以输入框看着很素。
- resourceCanvasChrome.css:保留/新增的宿主规则只有美术画布没有的那几项——工具条与面板的层级、锚点 transform、窄屏宽度;面板的 overflow 由 auto 改成 visible,因为 AGC 的下拉弹层是就地渲染、没有 portal,滚动容器会把它裁掉。
- styles.css:新增 @source 指向 src/components/image-editor 与 src/components/common。这两个目录不在 AGC app 根下,Tailwind 自动探测扫不到,组件自带的工具类(h-3 / rounded-full / inline-flex / text-slate-700 …)在 AGC 里根本没生成,是「样式和美术画布对不齐」的另一半根因。
- 选中工具条上一轮已按真实规则改好的部分原样保留,未回退。
2026-09-10 18:59:33 +08:00
suzmii
f49ff61ddc
资源画布浮层接上美术画布的关闭时机:空白/Esc 清焦点,快速编辑点外部即收
...
- 新增 resourceCanvasFocusModel:把「这次 pointerdown 要不要清画布焦点」「快速编辑浮层是否接管点外部关闭」「宿主 Escape 是否归资源画布」抽成纯判据,逐条对齐美术画布 clearCanvasFocus() / closeTransientEditorPanels() / clearCanvasSelection()。
- index.tsx 画布空白左键 pointerdown 调 clearResourceCanvasFocus():清空选中(选中工具条随之收起)并关闭快速编辑浮层,与美术画布 useImageCanvasStageInteractions 的空白分支一致;中键/空格平移分支不清,避免平移顺手丢选中。
- 快速编辑浮层复用共享 hook useImageCanvasFloatingOptionDismiss:document 上接管 click 与 Escape,点整个资源画布以外即关,点边界内(含模型/比例下拉 .image-canvas-editor__portal-menu)保留;宿主弹窗(资源面板/生成素材/分类与标签/重命名/恢复队列)开着时不接管,避免清掉资源面板共用的多选。
- 选中工具条补 window 级 Escape:与美术画布 clearCanvasSelection() 同口径清空选中;下拉弹层打开时共享 hook 在 document 上截断,浮层优先收内层。
- 生成为中的快速编辑面板不关(status === 'generating'),保留「修改中」状态与失败重试入口。
- 新增定向测试:交互目标判据、生成中不关、宿主弹窗让位、点边界外关闭、Esc 两态关闭、只有工具条时点外部不清选中、模型/比例下拉点外部与 Esc 关闭。
2026-09-10 18:58:15 +08:00
suzmii
8f96b05f6e
资源画布工具条接回下载按钮:走资源面板同一条真链路并收紧放行判据
...
- index.tsx 把资源面板的保存流程抽成共用 saveProjectResourcesToDisk(原生保存对话框 + save_local_project_asset_file),资源面板改为委派调用,不再有第二份保存实现
- index.tsx 工具条 onDownloadLayer 由空回调改为调用该共用 handler,回执写进 resourceWorkbenchNotice;不可导出的资源仍直接返回
- resourceCanvasToolbarModel.ts 把 download 加回 supportedActions,判据是 isResourceCanvasExportable(拿不到本地文件路径就不渲染),不按媒体类型放行
- resourceCanvasToolbarModel.test.ts 期望值随判据重算为 [quick-edit, download] 或 [download],并补 download 放行与拒绝两侧用例(空 path、虚拟版本条目)
- project-development.suite.ts 音频工具条按钮集合断言更新为 [分类与标签, 重命名, 下载按钮],并新增两条真链路断言:工具条下载打到 save_local_project_asset_file、资源面板下载仍打到同一命令
- appSurface.test.ts 在入口文件 mock 原生对话框,只替代用户选择目标路径这一步;放别处注册会晚于真实模块实例化
2026-09-10 18:05:15 +08:00
suzmii
93ddb841cd
抽出资源落盘判据 isResourceCanvasExportable,资源面板与工具条共用一条口径
...
- resourceCanvasAssetTransferModel.ts 新增 isResourceCanvasExportable:只有拿得到可落盘本地文件路径的资源(version 为空且 path 非空)才允许保存
- resolveResourceCanvasPanelEntries 的 downloadable 改为调用该判据,去掉内联的同一段表达式
- 纯重构,资源面板行为不变;目的是让画布工具条的下载放行判据与资源面板使用同一个权威口径,不再写第二份
2026-09-10 18:05:02 +08:00
suzmii
c9413fae0c
补资源画布工具条动作模型定向测试,把放行判据钉在测试里
...
- 新增 tests/resourceCanvasToolbarModel.test.ts:直接覆盖 resolveResourceCanvasToolbarActions,此前该模型零直接覆盖
- 逐条钉住当前真实接通的动作集合:栅格图片与角色资源只放行 quick-edit,音频/视频不再放行 redraw,角色资源不再放行 character-animation
- 覆盖派生门禁:未登记 manifest 资产且无已完成任务产物背书不放行、只认已完成任务的栅格产物、非栅格图片不放行
- 判据出处为 docs/project-memory/shared-memory/pitfalls.md 的「渲染出来的动作必须真的能跑通」
2026-09-10 17:53:25 +08:00
suzmii
ecca7050b5
音频资源工具条断言改判据:不再要求渲染空回调的改造按钮
...
- project-development.suite.ts 的音频工具条断言由「必须存在改造按钮」改为「不得存在改造按钮」+「按钮集合精确等于分类与标签、重命名」
- fed17ea08 已按共享记忆 pitfalls.md 的判据(渲染出来的动作必须真的能跑通)把 redraw 与 character-animation 移出 supportedActions,音频分支只剩宿主编排层真实接通的分类与标签、重命名,原断言断言的是被该提交推翻的旧合同
- 新断言比旧断言更严:除钉住音频分支仍在渲染,还钉住整条工具条的按钮集合,避免再出现点了没反应的假按钮
2026-09-10 17:53:15 +08:00
lhk229
89447ed432
按评审意见强化回退模板读取通道回归测试
...
Project CI / Repository checks (pull_request) Successful in 2m47s
Project CI / Frontend tests (pull_request) Successful in 3m44s
Project CI / Backend tests (pull_request) Successful in 7m1s
Project CI / Native shell tests (pull_request) Successful in 18m11s
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
- tests/configuration.rs 回退模板测试改用与模板无关的 runtime dir,分类断言覆盖按路径归属而非 runtime dir 为 None 的恒真分支,并补充 runtime dir 内路径的 managed 正向断言
- tests/mod.rs 移除不再使用的 clear_test_runtime_config_dir 辅助
2026-09-10 09:46:48 +00:00
suzmii
7fe1fd9b64
Merge branch 'feat/agc-v3-canvas-generation-entry' into feat/agc-canvas-resource-workbench-v3
2026-09-10 17:40:49 +08:00
suzmii
94fc4c6779
Merge branch 'feat/agc-v3-c7-version-switch' into feat/agc-canvas-resource-workbench-v3
2026-09-10 17:40:46 +08:00
suzmii
994209fc33
Merge branch 'feat/agc-canvas-art-editor-port' into feat/agc-canvas-resource-workbench-v3
2026-09-10 17:40:43 +08:00
suzmii
fed17ea08c
工具条只渲染真实接通的动作,去掉两个点了没反应的按钮
...
- resolveResourceCanvasToolbarActions 不再把 redraw 与 character-animation 放进支持集合:这两个动作在宿主编排层仍是空回调,放进去会让工具条渲染出点了没反应的按钮
- 判据收敛为一条:放进来就必须真能跑通,当前真实接通的只有快速编辑(normalize → derive(editKind='image-reference'))
- 补注释写明接上真实链路后再放回来
2026-09-10 17:39:17 +08:00
lhk229
3ebfcc0c2f
修正新增配置读取回归测试的 Rust 格式
...
Project CI / Repository checks (pull_request) Successful in 2m16s
Project CI / Frontend tests (pull_request) Successful in 3m8s
Project CI / Backend tests (pull_request) Successful in 7m2s
Project CI / Native shell tests (pull_request) Successful in 18m27s
- tests/configuration.rs 按 cargo fmt 调整两个 assert! 宏换行
2026-09-10 09:03:19 +00:00
lhk229
9b5d1fe107
修复仓库回退配置模板被读取通道私有化 ACL 锁定
...
Project CI / Frontend tests (pull_request) Successful in 3m30s
Project CI / Backend tests (pull_request) Successful in 6m27s
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
- config.rs 新增 game_creator_config_path_is_runtime_managed 判定,read_game_creator_config_file 按路径归属分流:AppData 托管目录内的真实凭据维持私有加固读取,仓库旁边的回退模板与 local 覆盖改用 open_project_snapshot_regular_file 非变异快照通道
- 根因:开发 CLI 无 AppHandle 时回退读取 worktree 内 git 跟踪模板,私有读通道在 Windows 上无条件收紧 DACL 为仅当前进程用户,导致其他账号与 cargo include_str! 全部 Access Denied
- tests/mod.rs 新增 clear_test_runtime_config_dir 辅助
- tests/configuration.rs 新增两个回归测试锁定快照 / 私有两条读取通道的分流
- pitfalls.md 记录该排障经验与读取通道副作用白名单教训
2026-09-10 08:57:31 +00:00
suzmii
4ecab19429
修正 CI 权限用例在 root 容器下的前提并补平台无关的分类判据
...
Project CI / Repository checks (pull_request) Successful in 3m5s
Project CI / Frontend tests (pull_request) Successful in 4m2s
Project CI / Backend tests (pull_request) Successful in 6m51s
Project CI / Native shell tests (pull_request) Successful in 19m16s
- project_write_lock_does_not_project_permission_denial_as_contention 不再用 expect_err 断言“只读目录必须挡住取锁”:CI 容器以 root 运行,0o500 不生效,取锁会正常成功;此时跳过端到端前提
- 新增平台无关用例 project_write_lock_classifies_by_whether_the_target_exists:目标存在才是争用、目标不存在却创建失败是权限拒绝、NotFound 归其它
- 让权限分类判据在不依赖 ACL 环境的条件下也有回归护栏,避免只靠会被 root 绕过的端到端用例
2026-09-10 16:52:30 +08:00
suzmii
9ce31f905e
沉淀 AGC 画布现状与取数约束到共享记忆
...
- pitfalls.md 追加「AGC 走不了网页端 /api/editor 的取数链」:Tauri asset 协议 + CSP connect-src 未放行平台域名,且 dev 的 vite /api 代理会造成「能跑」假象
- pitfalls.md 追加「ImageCanvasStageView 是硬组合容器」:132 props(57 数据 + 75 回调)、无条件渲染 8 个子视图、83/132 需宿主伪造编辑器状态,且不透传 supportedActions
- pitfalls.md 追加「AGC 资源画布真正自制的交互面」:resourceBookViewport.ts、resourceCanvasLayoutModel.ts 的 fit/normalize、index.tsx 3656-4090 指针段,并记录两条平移路径守卫不一致与右键菜单、chrome 样式缺口
- pitfalls.md 追加「资源画布工具条改造/角色动画按钮点了没反应」:空回调仍留在 supportedActions 里,按钮渲染但无人接
2026-09-10 16:50:02 +08:00
suzmii
746b96e71d
资源编辑 400 同时透出平台错误码
...
- editor_api_rejection_reason 额外读取响应体 error.code,过滤掉等价于通用文案的 BAD_REQUEST 后拼成「原因|错误码 CODE」
- 背景:http_error.rs 把所有 4xx 兜底为同一条「请求参数不合法」,只透 message 会丢掉唯一可用于定位的信息
2026-09-10 16:45:29 +08:00
suzmii
6496601d12
资源画布接入生成素材入口并打通无源新建链路
...
- index.tsx 只做导入、一个生成入口按钮、一处浮层渲染与提交回调;无 invoke 桥或项目未就绪时入口不渲染
- 提交走 derive_local_project_resource 的 create 模式:sourceResourceId 为 create:<operationId>,sourceAssetId / sourcePath / sourceSubtype / producerTaskId / sourceVersionId 全为 null
- 产出后经 pendingResourceFocusRef 定位并选中新素材卡,并写入生成资源已保存提示
- projectResourceLiveIntegration 补入口可见性、create 入参、重试复用 operationId 与新卡定位 2 条用例
- 实施计划文档补 C3 生成入口口径、图片无源生成未完成项与本轮验证数字
2026-09-10 16:37:52 +08:00
suzmii
0035d16efa
AGC 资源画布新增生成素材浮层与生成入口模型
...
- 新增 resourceCanvasGenerationModel:按本地契约锁定无源生成放行的视频 / 音效 / 背景音乐三类,提供 create:<operationId> 源标识、入口渲染门禁与请求身份工厂
- 新增 ResourceCanvasGenerationPanelView:独立浮层面板承载类型选择、草稿与失败重试,失败后锁定原请求并复用同一 operationId / idempotencyKey
- 浮层只呈现三类真实可用类型,不出现图片专属的模型 / 比例 / 尺寸 / 像素艺术与泥点价
- resourceCanvasChrome.css 补浮层宿主样式
- 新增 resourceCanvasGenerationEntry 定向测试 6 条
2026-09-10 16:37:39 +08:00
suzmii
56c6e0fecc
修复工具条折行与资源编辑 400 的错误盲区
...
- resourceCanvasChrome.css:移除我自行添加的 max-width 与 flex-wrap: wrap,按网页端美术画布原始规则改回单行不换行(容器 nowrap + 溢出横向兜底),按钮统一 2.25rem 方块与 0.45rem 圆角,文字键 padding 改回 0 0.62rem,分隔线改回 1.125rem,消除动作变多时折叠成多层与按钮高矮不齐
- resource_editor.rs:新增 editor_api_rejection_reason,在 HTTP 400 分支把服务端响应体的可读原因(兼容 error.message / error 字符串 / details.message / 顶层 message,截断 200 字符)拼进用户可见错误,替换原先只有状态码的笼统提示
2026-09-10 16:33:13 +08:00
suzmii
81c2389132
修复 AGC Direct 写通道项目锁零等待与持锁方不可诊断
...
Project CI / Repository checks (pull_request) Successful in 3m9s
Project CI / Frontend tests (pull_request) Successful in 4m7s
Project CI / Backend tests (pull_request) Successful in 6m54s
Project CI / Native shell tests (pull_request) Failing after 14m11s
- Direct 写路径(agc_write_file)改用统一的有界等待,与 file.write / file.patch / file.delete 同语义,同一轮并行写多个文件按同一把锁串行,不再在 24-42ms 内把重叠判成"项目正在被其他写操作占用"
- create_new 失败拆成争用 / 权限拒绝 / 其它三类:锁文件不存在却仍创建失败不再投影成争用;sharing violation(32) 与 lock violation(33) 恒定归争用
- 争用错误与等待日志带上持锁方身份(commandId / pid / createdAt / ownerIsSelf),锁文件处于删除挂起或未写完时显式表达成"身份不可读"
- ProjectWriteLockSnapshot 补 commandId 与 describe_holder(),沿用既有快照 + 字节 CAS 回收机制,不新增第二套回收判据
- 有界等待预算耗尽记 project.write_lock.wait_exhausted(含等待毫秒数),权限拒绝记 project.write_lock.permission_denied,争用不在零等待入口里逐次记账
- 新增同进程重叠写等待、同轮并行写、活外部进程持锁带身份、权限拒绝分类、ACL 拒绝不投影成争用五条回归用例
- 同步 decision-log、pitfalls 与技术方案文档
2026-09-10 16:30:22 +08:00
suzmii
f09f5f9e9c
补齐 AGC V3 收口阶段的决策记录
...
- decision-log 新增两条 2026-09-10 决策:资源画布基础能力收口(撤销重做只作用于卡片布局、独立资源面板、上传走 upload_local_asset、下载改为显式保存链路 save_local_project_asset_file + dialog:allow-save)
- decision-log 新增:运行模块版本切换(版本状态唯一一份放在 WorkspaceLauncherShell、运行模块右上角 GameRunVersionPicker、切换只重载预览不做运行时资源重映射)、参考图弹窗与共享筛选条、标签库纯派生口径、素材重命名前端接线
- 同步修正上文"重命名只落 Rust 侧"的已知中间状态:前端调用方已落地,该中间状态结束
2026-09-10 16:05:01 +08:00
suzmii
f2f8a9af72
合并 WP4 资源面板与撤销重做:保留 C7 版本入口与资源面板接线
...
- project.rs 冲突:同时保留 mod asset_export(WS-B 下载命令)与 mod asset_rename(WS-D 重命名命令),丢弃已在 WS-A 退役的 asset_usage
- index.tsx 冲突:同时保留 GameRunVersionPicker(C7 版本入口)与资源面板/历史模型导入(WP4)
2026-09-10 15:57:42 +08:00
suzmii
422a71d321
资源画布新增独立资源面板:预览/上传/下载/多选(WP4)
...
新增 features/resource-canvas/resourceCanvasAssetTransferModel:面板网格模型、选中集合解析、默认导出文件名、上传白名单(纯函数)
新增 features/resource-canvas/ResourceCanvasPanelView:独立浮层面板承载预览网格/上传/下载/全选/清空,选中状态直接读写画布同一份 selectedResourceIds,不造第二套选择
下载改为显式保存链路:前端 @tauri-apps/plugin-dialog save() 取目标路径,再调新命令 save_local_project_asset_file 复制素材文件,避免依赖不可靠的 <a download>
Rust 新增 project/asset_export.rs 与命令 save_local_project_asset_file:校验项目根与相对路径、源必须是真实普通文件(拒绝符号链接与目录)、目标路径非空且父目录存在、分块流式复制不进整文件内存,返回目标路径与字节数
Rust 单测覆盖成功复制(内容一致 + byteLen + 源不变)、缺失源拒绝、目录源拒绝、空目标与父目录缺失拒绝、目标为目录拒绝
上传复用现役 upload_local_asset(落 assets/uploads 并登记 manifest 条目)后回读 manifest 刷新,只接受图片/音频/视频
capabilities/main.json 增加 dialog:allow-save;资源画布 chrome 样式补资源面板一套;index.tsx 只做导入/一处按钮/一处渲染/状态透传
2026-09-10 15:56:10 +08:00
agent
00963c5f67
同步 AGC V3 版本切换、参考图弹窗、标签库与素材重命名 UI 的功能文档
...
- 实施计划追加 2026-09-11 条目:标签库派生口径、共享筛选条、C7 版本切换、C9 参考图弹窗、素材重命名 UI 与 allowlist 收敛
- 写明版本切换不做运行时资源重映射的理由与参考图 ID 快照的落库路径
- 记录本次门禁实际数字与 5 条待 C3 侧更新的既有失败用例
2026-09-10 15:50:54 +08:00
suzmii
09cd47748c
Merge branch 'feat/agc-v3-c7-version-switch' into feat/agc-canvas-resource-workbench-v3
2026-09-10 15:49:46 +08:00
agent
3d709ea1db
合并主干 C3 交互改造并接入 C7 版本切换
...
- 合并 feat/agc-canvas-resource-workbench-v3:资源卡改为选中+浮出工具条、支持多选、删除资源详情面板与 resourceEditorRoute
- index.tsx 冲突以 C3 新结构为底:保留本包的素材重命名回调,丢弃被 C3 取消的 focusedResource 详情面板派生状态与浮层 JSX
- 重命名入口从已删除的详情面板搬到选中工具条 extraActions,与「分类与标签」并列
- check-config.mjs 的 allowlist 保持主干版本(normalize_local_project_raster_resource 一行已删)
- 还原 normalize_local_project_raster_resource Tauri 命令与注册:C3 已在前端接回调用方
- C7:新增 GameRunVersionPicker 运行模块右上角版本入口,无版本不渲染
- C7:版本状态收敛到 WorkspaceLauncherShell 一份,透传给资源画布与 @ 面板;换项目或版本消失时清回最新版本
- C7:currentVersionResourceBindingIds 接入 activeVersionId,复用 resolveActiveIterationVersion 口径,资源卡「当前使用」高亮随版本切换
- C7:切换版本时复用既有 onPlay 预览入口重载画面,不新增运行时资源重映射
- 新增 10 条测试覆盖版本判定口径、版本入口与切换、当前使用高亮、素材重命名链路
2026-09-10 15:46:08 +08:00
suzmii
9121e89798
资源画布新增组织操作撤销重做(WP4)
...
新增 features/resource-canvas/resourceCanvasHistoryModel:纯函数有界快照栈(capture/push/undo/redo/clear + 只回写差异位置),快照只含资源卡布局坐标,不回滚素材内容
新增 tests/resourceCanvasHistoryModel.test.ts 覆盖排序稳定、相同快照不入栈、栈上限、push 清空重做分支、撤销重做互逆、空栈返回 null、差异回写与已删除资源不重建
资源卡拖动持久化成功前先落快照,撤销/重做复用现役 commitPosition 手动 CAS 写链
画布缩放集群新增撤销/重做按钮(不可用时禁用),并支持 Ctrl/Cmd+Z 与 Ctrl/Cmd+Shift+Z、Ctrl+Y(输入框内不拦截)
项目切换时清空布局历史,避免跨项目回滚
2026-09-10 15:43:03 +08:00
suzmii
9939a1bca0
Merge branch 'feat/agc-v3-c3-canvas-match' into feat/agc-canvas-resource-workbench-v3
2026-09-10 15:29:41 +08:00
suzmii
f247a5106a
收敛资源画布交互复刻的测试:清理详情面板遗留断言,门禁回到基线
...
删除用例 keeps the resource toolbar and canvas interactive while a non-modal detail card is open:该用例断言的「非模态详情卡」已被 C3 合同取消,按四不写删除
新增用例「资源卡 chrome 只保留选中按钮与当前版本边框」,接住被删用例里仍然有效的卡片 chrome 断言(无基础描边、is-current-version 边框、选中按钮样式)
版本卡与 Agent 回执卡没有美术画布动作,断言改为选中反馈(aria-pressed)而不是工具条
blocked.md 的策略失败提示原本渲染在已删除的详情面板里,断言随之移除
快速编辑测试的 fixture 增加栅格美术资产(includeArt 参数),不改动其它用例的 manifest
2026-09-10 15:29:15 +08:00
agent
f32445d700
补齐 AGC V3 附二素材重命名前端链路
...
- 新增 ResourceRenameDialog:独立重命名面板,只输入新文件名,规则交给 Rust 侧强校验
- 资源详情面板新增「重命名」动作,严格按 deny_unknown_fields 只传 projectPath/assetId/newFileName
- 改名成功后复用 reloadManifestAfterAssetCommand 这条 manifest 重载路径刷新资源卡与 @ 面板显示名
- 删除 check-config.mjs 过渡 allowlist 里的 normalize_local_project_raster_resource,并移除已无调用方的同名 Tauri 命令与注册
- 新增 2 条前端测试覆盖严格入参、manifest 重载与改名后资源卡显示名刷新
2026-09-10 15:24:20 +08:00
suzmii
a74cd6c8b6
Merge branch 'feat/agc-v3-c3-canvas-match' into feat/agc-canvas-resource-workbench-v3
2026-09-10 15:19:53 +08:00
suzmii
bd36587e0a
资源画布交互 1:1 复刻美术画布:点卡选中并浮出工具条,移除资源详情面板与全屏编辑路由
...
新增 features/resource-canvas:资源卡到美术画布 CanvasLayer 的适配、工具条动作可用性判定、C5 当前版本绑定判定、快速编辑草稿工厂与 AGC 宿主 chrome 样式
资源卡点击改为选中(Shift/Ctrl/Meta 多选),选中后在卡片旁复用 ImageCanvasSelectedLayerToolbarView 浮出工具条
快速编辑复用 ImageCanvasQuickEditPanelView 浮层面板,先调 normalize_local_project_raster_resource 正规化任务产物,再走 derive_local_project_resource(editKind=image-reference) 产出新素材,失败重试复用同一 operationId/idempotencyKey
删除 resourceEditorRoute 全链路(ResourceEditSurface 路由、openResourceEditor、handleResourceCardOpenEditor、cancelResourceEditor、submitResourceEdit)与资源详情面板(focusedResource 状态/引用/浮层 JSX/CSS 断言)
分类与标签入口搬到选中工具条;UI 资源保留「UI 编辑器」入口并从工具条打开
移除 apps/ai-game-creator-shell/scripts/check-config.mjs 中 normalize_local_project_raster_resource 的过渡 allowlist 条目
为共享工具条组件新增 opt-in 的 supportedActions/extraActions(默认 null/undefined,网页端行为不变)
AGC vite-env.d.ts 补 wx/ReactNativeWebView/WeixinJSBridge 跨端全局声明;hostBridge fail 回调补显式 unknown 类型
测试:资源卡查询 helper 由资源详情按钮改为选中按钮,清理详情面板断言,画布空白左键改为框选后平移用例改用中键
2026-09-10 15:19:17 +08:00
agent
3508957eda
补齐 AGC V3 C9 参考图选择弹窗与提交快照
...
- 新增 ImageCanvasProjectAssetPickerDialog:独立弹窗,网格卡片、多选、筛选+搜索、清空/确认/取消,筛选状态自持
- 新增 projectAssetReferencePickerModel:素材分类与筛选判据、素材 id 快照引用构造、弹窗引用前缀判定
- 生成 composer 参考图来源菜单新增「从项目素材中选择」,由宿主决定是否出现,不改变原有从画布选择与上传两条路径
- 新增 replaceProjectAssetPickerReferences:确认时整组替换素材库来源的参考图,保留画布点选与上传的参考图
- 素材 id 经 sourceAssetId 走既有 createGenerationInputReference 落进 generationInputs.references,不新增后端接口
- 新增 13 条测试覆盖弹窗交互、筛选叠加、快照落库与整组替换语义
2026-09-10 15:13:40 +08:00
agent
3379e6009e
抽出共享资源筛选条并接入画布标签筛选
...
- 新增 packages/shared 的 PlatformResourceFilterBar:搜索(可选)+ 功能分类 + 标签的受控筛选条,只承载表现与交互
- 资源画布筛选改为复用该组件,去掉画布内联的分类 PlatformSegmentedTabs,搜索框保持原样不动
- 画布新增标签筛选状态与派生标签库,标签与功能分类共存可叠加
- 新增 3 条组件测试覆盖受控渲染、回调转发与缺省行隐藏
2026-09-10 15:02:55 +08:00
suzmii
d851aa83ff
补充 AGC 资源工作台 V3 的实施计划条目
...
- 新增 2026-09-10 条目,写清版本绑定恒等化与撤回运行期资源观察侧车的边界(删 asset_usage 及其 16 条测试、绑定退回恒等映射)
- 写清素材删除三分支语义、deleteReferencedVersions 入参、read_local_project_asset_references 只读命令,以及版本追加唯一例外的放行集合按写入前 manifest 求值
- 写清 agc_list_registered_assets 投影新增 category/tags 且不在投影层重新派生分类
- 写清 rename_local_project_asset 的语义(文件改名 + localPath 更新、id 不变)、校验、写失败回滚与 reconciliation-required 口径,以及"不改游戏源码引用"的已知边界
- 写清 @ 面板两个页签与 activeVersionId/versions 契约、polish_local_project_prompt 的入参与计费口径(不自建计费,走 server-rs 的 LLM 路由)、发送前提醒判据与本机偏好存储
- 记录本次全部门禁数字
2026-09-10 15:02:34 +08:00
suzmii
2c07396ef7
补充 AGC 复用网页端美术画布组件的跨端依赖排障记录
...
- pitfalls 新增一条:AGC 引 src/components/image-editor 组件会经 ImageCanvasGenerationModel 的 ApiClientError 值导入链到 src/services/apiClient.ts 与 host-bridge/hostBridge.ts,而它读的 wx / ReactNativeWebView / WeixinJSBridge 只在主仓 vite-env.d.ts 声明
- 记录处置口径:在 apps/ai-game-creator-shell/src/vite-env.d.ts 的 Window 上补同名同形字段(纯类型声明零运行时影响),不要关闭 AGC 的 noImplicitAny,也不要另写平行组件
- 记录已核实的运行时结论:hostBridge.ts 模块作用域只有常量与缓存声明、无导入即执行副作用,window.wx 仅在函数体内访问且有 typeof window 守卫,故该依赖链编入 AGC bundle 是惰性的
2026-09-10 14:56:45 +08:00
agent
4d0cd425e1
补齐 AGC 标签库聚合派生纯模块
...
- 新增 gameCreationAppAssetTagLibrary:从 manifest assets[].tags 派生去重、稳定排序、含使用计数的标签库
- 标签归一化沿用写入路径 normalizeGameCreationAppAssetTags,同素材重复标签只计一次
- 新增 assetTagsMatchSelection / gameCreationAppAssetMatchesTags 标签筛选判据(AND、空选择不过滤)
- 新增 5 条纯模块测试覆盖去重计数、顺序稳定、空标签与筛选判据
2026-09-10 14:54:06 +08:00
suzmii
30e93c6c43
合并 WS-D 阶段一:新增本地项目素材重命名命令
...
- 解决 main.rs / project.rs / tests/mod.rs 的相邻插入冲突:main.rs 保留 read_local_project_asset_references 与 rename_local_project_asset 两条注册,project.rs 与 tests/mod.rs 只保留 mod asset_rename(asset_usage 已由 WS-A 整体删除)
- 解决 decision-log.md 末尾追加冲突:保留双方条目(WS-A/口径收敛、删除新口径、C3 交互、Agent 投影 + WS-D 素材重命名)
2026-09-10 14:46:15 +08:00
suzmii
26f1a7b19c
Merge branch 'feat/agc-v3-c4-mentions' into feat/agc-canvas-resource-workbench-v3
2026-09-10 14:43:58 +08:00
suzmii
dbbca47078
同步 C4 引用补全与 C8 润色提醒的功能文档
...
- 更新【功能说明】AGC聊天素材引用:补充素材面板双页签、activeVersionId 版本回退与空态口径
- 更新【功能说明】AGC聊天素材引用:把「改名刷新显示名」「跨会话恢复光标位置」从未完成移到已完成
- 新增【功能说明】AGC聊天AI润色与发送前提醒:写明润色回填、原文快照、失败保留原文与提醒面板行为
- 新增文档同时记录提醒判据、不再提醒偏好存本机 localStorage、以及计费仍走平台 LLM 路由的边界
2026-09-10 14:42:40 +08:00
suzmii
b2477c8ca9
新增本地项目素材重命名命令(Rust 侧)
...
- 新增 Tauri 命令 rename_local_project_asset(输入 projectPath / assetId / newFileName),并在 main.rs 的 generate_handler! 中注册
- 新增 project/asset_rename.rs:重命名语义为“磁盘文件改名 + manifest localPath 更新”,资产 id / kind / mediaType / source / category / tags 全部不变,imageSequenceFrames 里指向该文件的本地帧一并对齐
- 校验判据:新名非空、不含路径分隔符(同时保证不跨目录)、不含 ..、通过可移植路径组件校验、扩展名与原文件一致、同目录不得已存在同名文件、assetId 与磁盘文件必须存在
- 事务与回滚:持既有项目写锁,manifest 写入走既有 write_manifest 边界(版本数组校验 + 安装后回读一致性);写失败把文件改回原名,回滚也失败时两个错误都报出并标记 reconciliation-required;同名重命名按空操作处理
- 新增 tests/asset_rename.rs 9 条用例:成功改名与身份不变、同名空操作、空名 / 分隔符 / .. / 跨目录 / 扩展名不一致 / 目标同名冲突 / 资产与文件缺失拒绝、manifest 写失败回滚、同目录帧对齐
- decision-log 记录素材重命名语义、命令边界,以及“前端调用方落地前 ai-game-creator-shell:typecheck 必然失败”的已知中间状态
2026-09-10 14:42:11 +08:00
suzmii
b0d7121265
补充 C4 引用页签与 C8 润色提醒的定向测试
...
- 新增 chatPromptPolish.test.tsx:覆盖提醒判据、草稿指纹、本机偏好读写与润色命令调用
- 覆盖主动润色回填、可重复润色覆盖结果、恢复原文回到最初原文
- 覆盖润色失败保留原文并在提醒面板内给出重试提示
- 覆盖长文本提交被提醒面板拦下、使用原文提交、关闭取消发送、AI 润色后发送
- 覆盖不再提醒偏好落本机 localStorage 后不再拦截,以及挂载时读取该偏好
- 覆盖短文本与命令不触发提醒
- resourceReferenceInput.test.tsx 新增:两个页签的独立搜索与筛选状态
- 新增:activeVersionId、版本回退、悬空绑定过滤与空态
- 新增:资源改名后 chip 与候选列表显示名刷新
- 新增:跨会话恢复草稿后光标落在文本末尾,引用追加在文本之后
2026-09-10 14:38:59 +08:00
suzmii
89678173f5
补齐 AGC V3 C4 聊天通用引用与 C8 AI 润色发送前提醒
...
- @ 面板新增「当前版本素材 / 全部画布素材」两个页签,两个页签各自持有独立的搜索与分类筛选状态
- ResourceReferenceInput 新增可选 prop activeVersionId 与 versions,并把两者透传到 ProjectWorkspaceChatPane、ProjectSupervisorView、SupervisorChatOnlyView 和 App
- 未传 / null 的 activeVersionId 回退到 manifest versions[] 中最新的版本;版本不存在或没有绑定时页签显示空态,不报错也不合成资源卡
- 「当前版本素材」按该版本 resourceBindings 取仍登记在 manifest 的资产,悬空绑定按资源 id 过滤掉
- 资源改名后按资源 id 刷新编辑区已有引用 chip 与候选列表的显示名,并把新显示名同步回父级草稿
- 程序化重建草稿后把光标收回草稿末尾,跨会话恢复草稿时后续引用不再插到已失效的位置
- 新增 Tauri 命令 polish_local_project_prompt(复用短文本生成通道,计费仍由平台 LLM 路由侧完成,未改 server-rs)
- 输入区新增「AI 润色 / 恢复原文」按钮、润色中状态与失败可重试提示,失败、超时或未配置模型时保留原文
- 原文快照只在首次润色成功时落下,反复润色只覆盖结果,「恢复原文」始终回到最初原文
- 新增发送前提醒独立面板:AI 润色先润色再发送、使用原文提交、关闭取消发送、不再提醒
- 提醒判据:纯文本 trim 后不短于 40 字符、不是 / 开头的命令、本轮草稿未确认过、且用户未关闭提醒
- 「不再提醒」偏好写入本机 localStorage,不进 manifest、不进后端
- 补充润色按钮、状态提示、素材页签与提醒面板样式
2026-09-10 14:38:34 +08:00
suzmii
b96f5e1476
Merge branch 'feat/agc-v3-docs' into feat/agc-canvas-resource-workbench-v3
2026-09-10 14:27:53 +08:00
suzmii
f8aa87c71c
Merge branch 'feat/agc-v3-cleanup' into feat/agc-canvas-resource-workbench-v3
2026-09-10 14:27:47 +08:00
suzmii
48700083a3
补齐 AGC V3 资源口径与环境约束的权威文档
...
- PRD §5.4 版本记录补充"只允许追加"的唯一例外:用户显式确认的连带删除,并写明放行集合按写入前 manifest 求值、被放行版本不得进入追加段
- decision-log 新增三条 2026-09-10 定稿:版本绑定恒等化并撤回运行期资源观察侧车;素材删除新口径(三分支 + 可选连带删除版本);资源画布交互 1:1 复刻美术画布(取消资源详情面板与全屏编辑路由、复用共享组件以可选 prop opt-in、AGC 宿主自备 chrome 样式)
- pitfalls 新增四条:新工作树的 cargo 必须在 npm ci 之后跑;残留 dev stack 会拖死 Rust 门禁;改共享美术画布组件时 AGC 门禁覆盖不到它自己的测试;AGC 侧没有 image-canvas-editor__* chrome 样式
2026-09-10 14:26:57 +08:00
suzmii
1c9b92e791
在 Agent 资源检索投影中暴露分类与自定义标签
...
- agent/direct_tool_bridge.rs:bridge_registered_resource 投影新增 category 与 tags,位置固定在 mediaType 之后,保持稳定字段顺序
- agent/direct_tool_bridge.rs:category 直接取 manifest 条目已解析的功能分类(显式合法值原样保留,历史缺字段时已按 kind 派生),tags 缺失时为空数组,不改变 manifest 结构与对外契约
- agent/direct_tools_mcp.rs:agc_list_registered_assets 工具描述补上功能分类与自定义标签,与新增输出字段保持一致
- agent/direct_tool_bridge.rs:既有序列帧投影测试补充 category 与 tags 默认值断言
- agent/direct_tool_bridge.rs:新增 bridge_registered_resource_projects_manifest_classification_verbatim,锁定显式分类与标签原样透出且不泄漏 prompt / model
2026-09-10 14:24:26 +08:00
suzmii
33ed85ba54
AGC 素材删除改为独立确认弹窗并支持勾选连带删除版本
...
- 新增 ResourceAssetDeleteDialog:列出使用该素材的游戏版本(标识 + 创建时间),给出「把相关游戏版本一并删除」勾选,默认不勾
- ResourceClassificationPanel 删除入口改为先读 read_local_project_asset_references,再打开独立确认弹窗,不再用面板内二次确认态
- 确认删除时按勾选状态传 deleteReferencedVersions;未被任何版本引用时不显示连带删除勾选
- styles.css 补删除弹窗、版本列表与勾选行样式
- 重写并扩充 resourceClassificationPanel.test.tsx 的删除用例:确认弹窗才发起删除、未引用时不出现勾选、列出被引用版本且默认不勾、勾选后传 true、客户端拒绝时不报告删除
2026-09-10 14:22:38 +08:00
suzmii
824934df41
收敛 AGC 资源口径:撤掉运行期使用侧车并改为确认式删除
...
- 整体删除运行期资源使用侧车模块 project/asset_usage.rs 与 tests/asset_usage.rs(含 16 条测试),并清理 project.rs、tests/mod.rs 里的 mod / use
- game_iteration_resource_bindings 收敛为纯恒等映射 slotId=asset:{assetId}、resourceId=assetId,不再读取侧车、不再做槽位优先
- assets.rs 删除 GAME_ITERATION_IDENTITY_BINDING_PREFIX、asset_is_bound_to_runtime_slot 与 remove_asset_usage_references,删除不再判定运行槽位、不再清理侧车引用
- manifest 写入层把“版本数组只允许追加”校验改为显式接收放行删除的版本 ID:新增 mutate_manifest_at_allowing_version_removals,其余写入路径继续传空放行集合
- delete_manifest_asset_at 改为三分支语义:无任何版本引用直接删登记、被引用且未确认时只删登记并原样保留悬空绑定、被引用且确认时素材与相关版本在同一次 manifest 写入里一起删除
- DeleteLocalProjectAssetInput 增加 deleteReferencedVersions 入参,commands.rs 与 main.rs 同步
- 新增只读命令 read_local_project_asset_references,列出引用了该素材的版本标识、revision 与创建时间
- 新增 tests/asset_delete.rs,覆盖恒等绑定、无引用删除、未确认保留悬空绑定、确认连带删除、引用投影、只允许追加校验仍拒绝其它路径与 CAS
2026-09-10 14:22:18 +08:00
suzmii
912254afa0
Merge branch 'fix/agc-test-selector-cleanup' into feat/agc-canvas-resource-workbench-v3
Project CI / Repository checks (pull_request) Failing after 18m28s
Project CI / Native shell tests (pull_request) Successful in 25m45s
Project CI / Frontend tests (pull_request) Successful in 53m14s
Project CI / Backend tests (pull_request) Successful in 57m10s
2026-09-10 11:52:23 +08:00
suzmii
53afc85319
修正 AGC 测试按新的 Lexical 聊天输入区驱动与断言
...
- appSurface/harness 补齐三处 jsdom 缺口:ClipboardEvent、DragEvent、Range.prototype.getBoundingClientRect;否则 Lexical 的粘贴通路直接抛 ReferenceError / TypeError
- appSurface/harness 的 submitChat 改为 async:全选并让编辑器吸收选区、清空、走产品真实 paste 通路写入,再让出一帧让 React 追平 draft,最后点发送
- 新增 composerText / composerValue / composerDisabled / setComposerText 助手,按原生控件与 Lexical contenteditable 两种 DOM 口径读写输入区
- 15 个测试文件中 116 处 toHaveProperty('value', …) 断言等义改写为 await composerText() / await composerValue();1 处 placeholder 断言改查输入区占位文案;2 处 disabled 断言改用 composerDisabled(同时覆盖 data-disabled 与 contenteditable=false);9 处 fireEvent.change 写入改用 setComposerText
- 328 处 submitChat 调用补 await,9 个非 async 用例补 async
- Godot 输入区键盘语义用例按 Lexical 实际行为改写:Shift+Enter 与组合态 Enter 由编辑器消化并插入换行、不发送、草稿保留
- 未改动 src 下任何产品代码,未放宽或删除断言
2026-09-10 11:46:02 +08:00
suzmii
e1044546ad
接入素材删除入口并收敛资源命令后的 manifest 重载
...
- ResourceClassificationPanel 增加删除动作:首次点击进入确认态,二次点击才执行,避免误触不可逆操作
- 面板标题与按钮明确写出只移除登记、素材文件保留在磁盘
- 删除失败时把客户端的拒绝原因原样呈现(例如已被运行槽位绑定),并退出确认态
- index.tsx 抽出 reloadManifestAfterAssetCommand:资源分类更新与素材删除共用同一条重载路径,提交标识分别用 asset-classification / asset-delete 前缀
- 补 2 条面板测试:两次点击才删除且入参带 expectedProjectRevision、被运行槽位拒绝时不触发 onDeleted
2026-09-10 10:53:13 +08:00
suzmii
16748821e3
Merge branch 'feat/agc-version-switch' into feat/agc-canvas-resource-workbench-v3
2026-09-10 10:42:20 +08:00
suzmii
69741e5e13
新增素材删除能力与运行槽位绑定判定
...
- project/asset_usage.rs 增加 write_local_project_asset_usage_at:就地改写引用与诊断,保持身份与 revision 不变
- assets.rs 新增 delete_manifest_asset_at:素材不可变,只摘掉 manifest 登记、保留磁盘文件,并清理使用清单里指向它的悬空引用
- 删除判定只承认真实运行槽位绑定:恒等绑定是版本创建时的兼容兜底,若把它也算作被引用,任何在版本创建前登记过的素材都将永远删不掉
- CAS 口径与资源分类更新一致:持项目写锁后校验 expectedProjectId 与当前 revision,失败时 manifest 与 revision 均不变;成功后 revision 推进一格
- 新增 delete_local_project_asset 命令并注册;内联测试换成带 CAS 的公开入口
- 补 4 条删除测试:恒等绑定不阻止删除、真实槽位绑定拒绝删除并报出版本与槽位、删除清理悬空引用、陈旧 revision 与跨项目身份被拒且状态不变
2026-09-10 10:42:02 +08:00
suzmii
c1ffb2386b
资源功能分类与自定义标签:筛选口径收敛为 category 并接入写入 UI
...
- 删除 resourceReferences.ts 中 mediaType 优先的 7 桶筛选口径与 resourceReferenceFilterKind,改由 resourceReferenceCategory / resourceReferenceMatchesCategoryFilter 以 manifest 资产 category 为唯一权威筛选口径
- RESOURCE_REFERENCE_FILTERS 改为 6 类 + 全部(全部 / UI 交互 / 角色与对象 / 场景与环境 / 音频 / 文档 / 待归类),并新增 resourceReferenceCategoryLabel 让中文名只定义一处
- ResourceReference 新增 category / tags,由 resourceReferenceFromAsset 经 gameCreationAppAssetCategory / gameCreationAppAssetTags 从 manifest 资产投影;资源画布 ProjectResource 同步新增 assetCategory / assetTags 投影与 projectResourceAssetCategory 待归类兜底
- 新增 Tauri 命令 update_local_project_resource_classification 与 UpdateLocalProjectResourceClassificationInput/Result,实现落在 project/manifest.rs 的 update_manifest_asset_classification_at,复用既有 mutate_manifest_at manifest 写锁与原子写入
- 命令持项目写锁后按 expectedProjectId / expectedProjectRevision 做 CAS,冲突分别返回 project-identity-conflict 与 project-revision-conflict;category 非 6 个合法值即报错且不回退到 kind 派生;tags 走 normalize_game_creation_app_asset_tags;只改目标条目的 category / tags 并在成功后推进一次项目 revision
- 新增 Rust 定向测试 project/manifest/classification_tests.rs:更新成功、非法分类被拒、tags 归一化、未引用资产更新不影响其它字段、revision/CAS 与既有写入一致、输入拒绝未知字段
- 前端新增 ResourceClassificationPanel(ThemedModal + PlatformSegmentedTabs + PlatformTextField),资源详情面板以「分类与标签」按钮打开独立面板,保存后重读 manifest 并经 onManifestChange 反映到筛选与投影
- @ 面板与资源画布共用 packages/shared 的 PlatformSegmentedTabs 渲染同一组功能分类标签;画布筛选状态与画布视口一样按「按依赖 / 按类型」分别保存,复用既有 sortMode 状态形状
- 更新 resourceReferenceInput.test.tsx 与 projectResourceProjectionModel.test.ts 覆盖新口径,新增 resourceClassificationPanel.test.tsx 覆盖写入命令的输入归一化与失败不回退
- 同步技术方案与 decision-log:记录按 mediaType 分类到按 category 分类的语义变化(图片 / 视频桶消失,image / video / code / publication-material 归待归类)与新写入命令契约
2026-09-10 10:25:22 +08:00
suzmii
691d0a8ce6
修正 AGC 资源卡测试查询的资源详情按钮选择器歧义
...
- appSurface/harness 新增 getResourceDetailButton / findResourceDetailButton / queryResourceDetailButton,按产品可访问名模板「打开资源详情:<分类标签> <资源文件名>」精确匹配,不再用会同时命中 @ 引用按钮的文件名正则
- project-development.suite 的 23 处资源卡按钮查询改用精确查询助手
- home.suite 的 7 处资源卡按钮查询改用精确查询助手
- projectResourceLiveIntegration.test 的 /rules\.md/ 按钮查询改用精确查询助手
- 未改动 src 下任何产品代码,未放宽任何断言
2026-09-10 10:15:50 +08:00
suzmii
d526439508
版本资源绑定升级为真实运行槽位
...
- 新增 game_iteration_resource_bindings:优先使用使用清单里的 slotId 到 resourceId 绑定,再为未被槽位覆盖的资源补 asset:{id} 恒等绑定
- 恒等绑定保留是有意的:历史版本与既有校验语义不受影响,同一资源被多个槽位使用时只取首个槽位,不产生冲突语义
- ensure_initial_game_iteration_version_at 与 append_agent_game_iteration_version_at 共用该构造函数
- 补测试:无使用清单时保持恒等绑定;登记运行槽位后槽位绑定优先且未覆盖资源仍有兜底
2026-09-10 10:13:46 +08:00
suzmii
a571c6e225
新增运行期资源使用归属层(C1 素材使用清单)
...
- 新增 project/asset_usage.rs:运行槽位到资源身份的稀疏归属清单,落在 .agent/workbench/asset-usage/usage.json
- 只保留 manifest 没有的事实(slotId/loadSite/attribution);已登记资源只存身份引用,不复制 path/sha256/kind/mediaType,避免第二份资源清单
- 引用了不存在的资源 ID、未登记素材、文件缺失、槽位重复注册一律只产出 warning 诊断,不阻断运行
- revision 只允许前进;同 revision 重放幂等;projectId 不匹配按未登记处理
- 写入沿用 resource-layouts 同款 flock 独占锁 + 原子替换
- 补 11 条定向测试:稀疏引用、未登记/未知资源 ID、缺文件、重复槽位、无槽位引用、幂等、revision 回退拒绝、projectId 隔离、落盘不含 manifest 字段
2026-09-10 10:05:28 +08:00
suzmii
3f5d3b43af
合并最新 master 到 AGC V3 资源画布分支
...
Project CI / Repository checks (pull_request) Failing after 7m37s
Project CI / Frontend tests (pull_request) Failing after 8m52s
Project CI / Backend tests (pull_request) Failing after 10m24s
Project CI / Native shell tests (pull_request) Failing after 10m36s
- 合入 origin/master 6 个提交(#313 项目写锁残留回收与启动诊断、#315 AGC Ctrl+C 残留后端修复)
- 冲突解决:decision-log.md 保留 V3 两条 2026-09-09 决策与 master 的写锁回收条目
- 冲突解决:pitfalls.md 保留 V3 转场经验条目与 master 的 Ctrl+C 后端残留条目
2026-09-09 21:46:09 +08:00
suzmii
c936268337
Merge branch 'feat/agc-canvas-real-flip' into feat/agc-canvas-resource-workbench-v3
2026-09-09 21:40:37 +08:00
suzmii
4a5b2ad524
修复返回总览时非活动栏目标题栏从屏幕外飞入
...
- begin 只记录当时可见的节点:不可见节点(内联 opacity 0)的屏幕矩形不是可信的 First
- 非活动栏目标题栏在子画布态保留总览布局坐标,却被子画布 world 变换推到屏幕外,返回总览时不再以它作为动画起点
- 没有 First 的节点只走淡入,位置保持不动;活动栏目标题栏仍按原有观感收回到总览位置
- 进入栏目方向不受影响:标题栏当时可见,仍钉在原地淡出
- 新增回归用例:不可见标题栏几何首末相等、活动标题栏仍有几何动画、进入方向标题栏原地淡出
- 同步技术方案转场段与 pitfalls 经验条目
2026-09-09 21:39:20 +08:00
suzmii
4582231b78
合并 C3:资源画本转场改为真实元素 FLIP
...
- 合入 feat/agc-canvas-real-flip(resourceBookController 重写为同节点 FLIP、新增 sync 可中断重基、删除 ResourceBookTransitionLayer)
- 冲突解决:index.tsx 的 resourceBookLayout 导入取 C3 版(buildResourceBookScenePlan 等),去掉已被收进内部的旧 helper 导入避免未使用
- 冲突解决:资源自由画板文档的验证命令合并两侧并去掉已删除的 assetCanvasSurface.test.tsx
2026-09-09 21:24:13 +08:00
suzmii
a23728e6c2
合并 C10:删除 asset-canvas 精修草稿链路
...
- 合入 feat/agc-asset-canvas-removal 5 个提交(前端解耦 / Rust 删除 / 测试 / 文档 / 合同文档退役)
- 冲突解决:asset_canvas.rs、asset_canvas/generation.rs、asset_canvas_tests.rs 按 C10 删除(C2 在其中新增的 category/tags 构造点随之消失)
- 冲突解决:decision-log.md 保留 C2 与 C10 两条 2026-09-09 决策条目
- 该合并吸收 C2 对被删文件的字段改动,无需单独处理
2026-09-09 21:19:52 +08:00
suzmii
f84d0ea4d0
AGC 资源功能分类与自定义标签数据层
...
- manifest 资源条目末尾新增 category(单值 6 类,默认 unclassified)与 tags(字符串数组,默认空数组),两字段始终序列化
- shared-contracts 新增 GameCreationAppAssetCategory 枚举、GAME_CREATION_APP_ASSET_CATEGORIES 与穷举 16 个 canonical kind 的默认映射表 GAME_CREATION_APP_ASSET_CATEGORY_BY_KIND
- 历史 manifest 缺少字段时按 kind 派生分类、tags 取空数组;显式合法分类原样保留,未知分类字符串按前向兼容退回 kind 派生
- packages/shared 同步 TS 契约:分类常量与类型、映射表、gameCreationAppAssetCategory / gameCreationAppAssetTags 取值 helper 与 tags 归一化 helper
- 收编壳内 17 处 Rust 构造点:新建条目写 kind 派生默认值,更新既有条目保留已有 category / tags
- 补契约测试:字段 round-trip、默认值、legacy 兼容、未知分类前向兼容、16 项映射穷举、tags 归一化
- 同步 docs/technical 技术方案与 docs/project-memory decision-log
2026-09-09 21:10:01 +08:00
suzmii
91396f0615
删除已退役的客户端素材创作无限画布阶段一合同文档
...
- `docs/technical/【技术方案】客户端素材创作无限画布阶段一合同-2026-08-05.md` 整篇退役:该文档描述的中央 asset-canvas 状态、草稿 sidecar、Tauri 草稿/媒体/staging 命令、正式资产提交事务、提交事件、画布状态机与图片生成账本已随机制删除,按四不写不留墓碑文档。
- 仍有效内容已迁往:共享画布包目录与依赖方向、禁止复制的验收门、Host Port 边界、共享 chrome 与主题、图片能力与后续分期迁入 `docs/technical/【前端架构】图片画布编辑器前端拆分计划-2026-06-17.md`;成功投影顺序与焦点守卫迁入 `docs/technical/【技术方案】GameAgent资源自由画板与快速编辑-2026-08-20.md`;共享源码与资源派生闭环现状迁入 `docs/technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md`。
- 全类型现有资源非破坏性编辑的现成权威条款为 `docs/technical/【技术方案】AGC资源派生与非破坏性编辑合同-2026-09-09.md`,它是 `project/resource_editor.rs` 的现行合同,已改写为 derive + editKind='image-reference' 口径。
- decision-log 的 2026-09-09 条目改写为决策文体:写清退役理由与现权威口径所在文档,历史条目保留原样。
- 过渡项删除条件:资源画布重建快速编辑后,`normalize_local_project_raster_resource` 重新获得前端调用方,届时删除 `apps/ai-game-creator-shell/scripts/check-config.mjs` 中该 allowlist 条目。
2026-09-09 20:32:38 +08:00
suzmii
4c935ba219
同步 asset-canvas 退役后的文档现状并迁移仍有效合同
...
- 新增 docs/technical/【技术方案】AGC资源派生与非破坏性编辑合同-2026-09-09.md,承接阶段一合同第 16 节与第 5 节的现役条款,改写为 derive + editKind='image-reference' 口径
- 图片画布编辑器前端拆分计划新增"共享画布合同"一节,承接共享包目录与依赖方向、禁止复制的验收门、Host Port 边界、共享 chrome 与主题、图片能力与后续分期
- GameAgent资源自由画板与快速编辑删除精修草稿、最终图事务、精修来源规范化、事务恢复对账、批量导入与失败任务归档等退役章节,改写目标与操作边界,新增"编辑结果投影与焦点竞态"一节,并更新验证命令
- App实施计划删除阶段一至五的草稿画布描述,改写为共享画布源码与资源派生闭环现状,修正主视窗状态、适配器与派生提交条款
- 项目开发工作台 PRD 更新主视窗状态机与 ProjectWorkbenchViewState,移除 asset-canvas 状态
- decision-log 追加 2026-09-09 asset-canvas 整体退役决策(含保留项、路由口径、临时白名单与存量数据处置)
- pitfalls 删除草稿 CAS、素材保存区、正式素材提交原子性、生成账本与 upload ticket 五条退役条目,修正仍有效条目的关联文件与 legacyPrefix 描述
2026-09-09 20:28:22 +08:00
suzmii
4fb0de2c94
C3 资源画本转场改为真实元素 FLIP
...
- resourceBookController 重写为真实元素 FLIP:begin 在提交前记录 First,play 测 Last 后给同一节点加反向 transform,sync 按布局签名做可中断重基
- 转场进行中重基用剩余时长(下限 80ms),空闲布局变化用完整 420ms,预览图尺寸晚到的二次布局变化不再瞬移
- 宿主节点几何基准改存 world 局部坐标,平移和缩放不会让上一次的干净矩形过期
- 不可见节点钉在 First 淡出、挂载节点淡入;搜索/排序导致的卸载保留一帧淡出;返回总览时源栏目未回到摞上的卡片按子画布布局淡出
- 新增 buildResourceBookScenePlan 渲染计划,渲染、转场签名与淡出集合共用同一份数据
- 删除 ResourceBookTransitionLayer 与克隆快照逻辑,清理 styles.css 的转场层和 data-book-motion 隐藏规则
- 重写 resourceBookController.test.ts,补 resourceBookLayout/resourceBookModel 用例与 appSurface 同节点断言
- 同步技术方案转场段与 pitfalls 经验条目
2026-09-09 20:24:10 +08:00
suzmii
a1b9b24891
修复 AGC Ctrl+C 残留上个工作树后端导致切换工作树复用旧后端 ( #315 )
...
Project CI / Frontend tests (push) Successful in 3m14s
Project CI / Backend tests (push) Successful in 8m54s
Project CI / Repository checks (push) Successful in 2m29s
Project CI / Native shell tests (push) Successful in 19m23s
closes #314
## 现象
`npm run agc` 按 Ctrl+C 后有概率残留上个工作树的 `api-server.exe` / SpacetimeDB,切换 worktree 再启动时 AGC 复用旧后端,改过数据库 / schema 的工作树会串库。
## 根因
1. Windows 下长驻服务都经 Node `shell: true` 的 `cmd.exe /d /s /c` 包装层启动,Ctrl+C 先杀包装层(`0xC000013A`);`dev.mjs` 的 `stopProcess` 见到直接子进程已退出就 return,`taskkill /PID <已退出 PID> /T /F` 也只会失败,深处的 `cargo → api-server.exe` 无人清理。
2. 按根 PID 遍历依赖快照里的父子链,中间层先消失时链断,只能拿到根 PID。
3. 复用判据只看 `.app/dev-stack.json` status 与 `/healthz`、`/readyz`、`/v1/ping`,不校验端口上的进程属于哪个工作树,残留后端照样被判为健康并复用。
## 改动
- 新增 `scripts/dev-windows-process.mjs`:按根 PID 遍历 + 按身份匹配(`server-rs/target/debug/api-server.exe` 绝对路径、SpacetimeDB `--data-dir`)两条独立清理路径,带 1s 快照缓存避免清理被拖慢。
- `scripts/dev.mjs`:直接子进程已退出时仍按记录 PID 清理后代;退出时按身份兜底清扫本工作树后端(复用他人 standalone 时跳过);启动前清理旧 api-server 保留 `Wait-Process` 语义,避免 `failed to remove file`。
- `apps/ai-game-creator-shell/scripts/start-dev-stack.mjs`:复用前校验端口监听进程归属,无法证明归属就不复用、改为启动本工作树后端并允许端口漂移;信号与 `finally` 各兜底清扫一次;`taskkill` 失败时降级按 PID 遍历;等待就绪时输出归属校验失败原因,避免静默超时。探测不可用时退化为旧行为,不阻断本地启动。
- 测试与文档:新增 `scripts/dev-windows-process.test.ts`、扩充 AGC 复用门禁用例;同步 `docs/project-memory/shared-memory/pitfalls.md` 与本地开发运维文档。
## 验证
- 伪造 `api-server.exe` 进程:按身份精确命中并杀掉(`matched=[17284] stopped=[17284]`)。
- 3 个真实监听进程下归属判定:`owned` / `api-server-owner-mismatch` / `spacetime-owner-mismatch` 均正确。
- `npx vitest run scripts/dev.test.ts scripts/dev-windows-process.test.ts scripts/dev-stack-port-utils.test.ts apps/ai-game-creator-shell/tests/...`:119 passed(唯一失败为 Windows 文件权限用例,已确认在合并基线 `origin/master` 上同样失败)。
- `node --check`、`eslint --max-warnings 0`、`prettier --check`、`npm run check:encoding`、`git diff --check` 全部通过。
## 备注
Rust 侧 `api-server` 的 `with_graceful_shutdown` 没有超时上限,是「有概率」的来源之一;本次只在 Node 侧收口,是否给优雅退出加 deadline 可另行评估。
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/315
Co-authored-by: Suzumiya <suzmii@qq.com >
Co-committed-by: Suzumiya <suzmii@qq.com >
2026-09-09 20:08:04 +08:00
suzmii
7c49e7e51c
Merge pull request '修复 AGC 项目写锁残留无法回收与启动失败无诊断' ( #313 ) from fix/agc-stale-lock into master
...
Project CI / Backend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Reviewed-on: #313
Reviewed-by: 孔令弘 <ink29535@proton.me >
2026-09-09 20:07:37 +08:00
suzmii
05d4d6d1d3
删除 asset-canvas 测试并同步资源派生测试口径
...
- 删除 tests/assetCanvasSurface.test.tsx(4310 行,63 个用例全部属于草稿画布 Surface)
- projectResourceLiveIntegration.test.tsx 删除 AssetCanvasSurface mock、discover/recover 两个命令 stub、normalize_local_project_raster_resource stub、TaskImageWorkbench 与 4 个草稿精修用例;保留文档资源走资源编辑的用例
- project-development.suite.ts 把 showRunUnavailableHint 源码护栏正则去掉 !assetCanvasRoute,并把"in-place refine 预览失效"用例改写为仍有效的 preview version 装配与项目切换清理
- resourceEditModel.test.ts 把 PNG/WebP 两例从 image-canvas 改为 derive + image-reference,并移除 normalizeSource 断言
2026-09-09 20:05:07 +08:00
suzmii
3ea94b27d4
删除 asset-canvas Rust 草稿存储与生成链路
...
- 删除 project/asset_canvas.rs(4784 行,草稿 sidecar、媒体 staging、正式提交事务与 journal)
- 删除 project/asset_canvas/generation.rs(9514 行,草稿私有生成账本、参考图上传、服务身份确认、候选落盘与内联 63 个测试)
- 删除 project/asset_canvas_tests.rs(2356 行)
- project.rs 移除 mod asset_canvas 与 pub(crate) use asset_canvas::*
- commands.rs 移除 851-1088 共 18 个 Tauri 命令(含 commit_local_project_asset、commit_local_project_asset_canvas_candidate)
- main.rs 从 generate_handler! 移除对应 18 行注册
- 保留 canvas.asset_generate 命令契约(packages/shared 与 shared-contracts 的正式权限合同,Agent Runtime 仍在使用)
- 保留 server-rs 的 asset-canvas-references 上传票据白名单契约(后续项,本次不动服务端)
2026-09-09 20:04:43 +08:00
suzmii
9fd5b99972
删除 asset-canvas 前端精修草稿入口并重接资源派生
...
- 删除 apps/ai-game-creator-shell/src/features/asset-canvas 全部四个文件(AssetCanvasSurface.tsx、assetCanvasNaming.ts、assetCanvasSurface.css、tauriImageCanvasHostAdapter.ts)
- index.tsx 删除 assetCanvasRoute 状态与 ref、beginAssetCanvas/openAssetCanvas/normalizeRasterSourceAndOpen、cancelAssetCanvas/handleAssetCanvasSaveAttempt/handleAssetCommitted 与 game-creator-local-asset-committed 事件监听、中央主视窗渲染分支与 resources.asset-canvas 视图状态
- index.tsx 把 assetCanvasNotice 改名为通用 resourceWorkbenchNotice,保留非草稿流程文案与资源定位按钮
- resourceEditModel.ts 取消 image-canvas 路由,PNG/JPEG/WebP 统一走 derive + image-reference(复用 resource_editor.rs 的 /editor/images/edits)
- styles.css 删除 resources.asset-canvas 两条画布选择器,保留 resources.ui-editor 规则
- check-config.mjs 把 normalize_local_project_raster_resource 加入 native-only 白名单(临时项:C3 快速编辑重建后会重新获得前端调用方,届时删除该 allowlist 条目)
- index.tsx 移除 useMemo 依赖数组里模块级常量 visibleCategoryOrder(基线遗留的 react-hooks/exhaustive-deps warning,会阻断 pre-commit,属通过门禁所需的最小修正)
2026-09-09 20:04:24 +08:00
suzmii
c0ef876b14
修复 AGC 项目写锁回收的并发删除竞争与启动诊断死路径
...
Project CI / Backend tests (pull_request) Successful in 5m56s
Project CI / Repository checks (pull_request) Successful in 2m29s
Project CI / Frontend tests (pull_request) Successful in 3m5s
Project CI / Native shell tests (pull_request) Successful in 17m44s
- 锁文件回收改为单次快照解析:payload 只解析一次,删除前重新核对字节,内容已被并发方替换或文件已消失时返回 false 并重试 create_new,不再无条件 unlink,也不再把 remove_file 的 NotFound 当成硬失败
- mtime 读取失败改用 Option 区分“未知”与“纪元 0”:未知年龄不回收,未知锁创建时间不做 PID 复用推断,避免把保守判定反转成抢走活持有者
- 新增并发替换/已消失、旧格式活持有者、存活未知、mtime 未知四条回归用例
- 启动日志槽优先用已经生效的配置目录(含 --config-dir),否则退到平台配置根(APPDATA / Application Support / XDG_CONFIG_HOME)
- 日志路径未知时 StartupLogSlot::fail 仍然给出用户可见提示,四处 inspect_err 不再被路径判空挡掉
- 同步 check-config 守卫、decision-log、pitfalls 与技术方案文档的用例数与新判据
2026-09-09 19:44:46 +08:00
suzmii
1abbbadb07
合并最新 master 到 AGC V3 资源画布分支
...
- 合入 origin/master 67 个提交(含 #285 无限画布图标模糊修复、#307 客户端常用设置读写卡顿修复等)
- index.tsx 冲突按 V3 画本结构解决:保留 resourceBook 画布场景,未采用 master 的 CanvasWorld 包装
- 原因:game-resource-page-world 现仅承载依赖连线层,CanvasWorld 使用固定 12000 世界尺寸,会破坏按内容自适应的边界
- 保留 AtSign 图标导入(V3 引用输入区使用)
- 合并后 npm run ai-game-creator-shell:typecheck 通过
2026-09-09 18:12:09 +08:00
suzmii
b7f27721c5
修复 AGC 项目写锁回收判据的跨平台 PID 边界
...
Project CI / Repository checks (pull_request) Successful in 3m8s
Project CI / Frontend tests (pull_request) Successful in 4m15s
Project CI / Backend tests (pull_request) Successful in 6m47s
Project CI / Native shell tests (pull_request) Successful in 17m58s
- 项目写锁存活判定把平台不可能分配出的进程号(0 或超出平台 pid 宽度)判为持有者不存在并直接回收,不再落回 600 秒保守分支
- 回归用例的死进程 PID fixture 由 0xFFFF_FFF0 改为 i32::MAX - 1,同时落在两个平台进程号空间之外且在 Unix 有符号 32 位范围内
- 新增 project_write_lock_reclaims_unrepresentable_owner_pid 用例,覆盖 u64::MAX 非法进程号残留锁
- 修正 project_lock_recovery 头部注释,说明这些用例是回归护栏而不是待修缺陷
- 同步 decision-log 的 PID 边界决策与 pitfalls 的跨平台 fixture 经验
2026-09-09 18:00:53 +08:00
suzmii
b460fea02c
移除资源画布加载转圈提示
...
转圈的判定与状态联动引入了多处副作用,按要求整体移除
删除 ResourceBookThumbnail 的 loading 属性与框内转圈、resourceBookIsLoading 判定函数、对应样式和用例
资源画布恢复为不显示加载态
2026-09-09 17:29:47 +08:00
suzmii
78ba9e33b6
修复 AGC 启动诊断守卫用例
...
Project CI / Repository checks (pull_request) Successful in 2m49s
Project CI / Frontend tests (pull_request) Successful in 4m2s
Project CI / Backend tests (pull_request) Successful in 6m45s
Project CI / Native shell tests (pull_request) Failing after 14m22s
- check-config.mjs 启动诊断守卫改按 StartupLogSlot 契约匹配:setup_log.fail 加稳定失败码
- 同时校验 StartupLogSlot 内部仍写有界诊断日志并调用可见提示,避免守卫被绕过
2026-09-09 17:27:30 +08:00
suzmii
91f335468a
修复资源画本动画期间布局变化导致的跳变
...
上一版在布局变化时重启整段动画,导致此前修好的遮挡顺序与加载态全部复现,已回滚该做法
控制器新增 retarget:临时解除场景隐藏后重新测量真实卡片,只把运行中动画的结束帧改成映射到新几何;克隆几何、动画进度与叠加层都不重建
布局变化 effect 在动画期间调用 retarget,空闲时才 settle
补充 resourceBookController 用例:重定向不新建动画,结束帧映射到新目标
2026-09-09 17:24:00 +08:00
suzmii
ed50ad122f
修复资源画本动画结束瞬间的位置跳变
...
动画期间卡片尺寸/位置一变(子画布卡片尺寸要等预览图尺寸到位才算准,通常正好落在动画末尾),原先直接 settle 掉动画,真实场景瞬间接管,表现为结束瞬间跳一下
改为从当前叠加层几何重定向:begin 捕获当前飞行位置,再平滑续到新的目标位置,动画不再被掐断
补充 effect 依赖 resourceBookState.phase
2026-09-09 17:16:38 +08:00
suzmii
cca4881e13
修复部分功能画布不显示加载态
...
原先只在「该栏目有可预览素材且一张都没落地」时转圈;版本、音频这类不请求预览的栏目既不转圈,卡片又要等依赖图就绪才渲染,表现为美术资源转完后项目版本才一起出现
判定改为:有资源且(卡片尚未渲染 或 需要预览但一张都没落地)就转圈,每个栏目各自独立结束
补充 resourceBookModel 用例覆盖卡片未渲染与无需预览两种情况
2026-09-09 17:11:14 +08:00
suzmii
0914703032
修复资源画本飞行期间遮挡沿用错误一侧顺序
...
卡片真正重叠的是堆叠那一侧:进入时重叠在总览摞(来源),返回时重叠在摞(目标)。原先统一按目标顺序排,进入时就用错了顺序,堆叠里下面两张飞到上面,结束才回到下方
play 增加 stacking 参数:进入用来源顺序,返回用目标顺序;不在该侧的卡片压到最底层
补充 resourceBookController 用例覆盖来源顺序
2026-09-09 16:58:44 +08:00
suzmii
3153d4f674
修复 AGC 项目写锁残留无法回收与启动失败无诊断
...
Project CI / Repository checks (pull_request) Successful in 2m50s
Project CI / Frontend tests (pull_request) Successful in 3m30s
Project CI / Native shell tests (pull_request) Failing after 4m30s
Project CI / Backend tests (pull_request) Successful in 6m32s
- .agent/project.lock 新增 processStartedAt,PID 存活时核对进程启动身份,身份不一致判定 PID 复用并回收
- 旧锁缺少 processStartedAt 时退回“进程启动时间晚于锁 createdAt 加 5 秒容差”的 PID 复用推断
- 空锁 / 坏锁(崩溃停在 create_new 与落盘之间)宽限期由 600 秒收紧到 30 秒,无法判定持有者存活时仍保持 600 秒
- 新增 StartupLogSlot,配置目录就绪前后都能写 startup.log,startup.*.failed 与启动错误提示不再是死分支
- Windows 启动失败恢复系统消息框并附诊断日志路径,其它平台写 stderr,同一进程只提示一次
- 新增 project_lock_recovery 6 条回归用例:死 PID、空锁宽限、PID 复用时间推断、PID 复用身份不一致、身份一致不抢锁、新鲜空锁不抢锁
- 同步 decision-log 与 App 实施计划文档
2026-09-09 16:58:41 +08:00
suzmii
a655ee1b1e
修复资源画本转场克隆遮挡顺序的第二次跳变
...
两个场景的 z-index 数值本身不同(总览 1-3、子画布 25),只搬数值无法保证顺序一致;且只存在于来源里的淡出克隆被排在最后会盖住存活卡片,消失时表现为跳变
改为按目标场景的最终绘制顺序(z-index 升序,同值再按 DOM 顺序)给克隆分配单调层级,淡出项统一压到最底层
快照记录 DOM 序号,补充 resourceBookController 用例断言层级单调与标题栏在卡片之上
2026-09-09 16:49:53 +08:00
suzmii
9a3313fe56
修复资源画本转场克隆的遮挡顺序跳变
...
层级相同的卡片由 DOM 顺序决定遮挡,而转场层原先按来源 key 在前追加克隆,和动画结束后的目标场景顺序不一致,结束瞬间会跳变
改为先按目标场景 DOM 顺序排列,再补只存在于来源里的 key
补充 resourceBookController 用例覆盖来源与目标顺序不同时的克隆顺序
2026-09-09 16:43:54 +08:00
suzmii
04ab7ee0da
资源画布加载态改为每栏目框内提示
...
撤销全屏遮罩,改为每个功能画布框内各自转圈:该栏目一张预览都没落地时显示,本栏目加载完立即消失
版本、占位与音频卡片本来不请求卡片预览,不计入等待,避免一直转圈
加载态 pointer-events 为 none,不拦截点击,未加载完也能直接进入栏目
判定函数改为按栏目,补充 resourceBookModel 用例
2026-09-09 16:41:03 +08:00
lhk229
04128eb661
Merge branch 'master' into feat/design_agent_simple
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Repository checks (push) Successful in 2m48s
Project CI / Frontend tests (push) Successful in 3m26s
Project CI / Backend tests (push) Successful in 7m17s
Project CI / Native shell tests (push) Successful in 19m27s
2026-09-09 16:34:16 +08:00
k88936
7288c6f641
Fix/修复无限画布图标文字模糊 ( #285 )
...
Project CI / Repository checks (push) Successful in 2m59s
Project CI / Frontend tests (push) Successful in 3m29s
Project CI / Backend tests (push) Successful in 8m37s
Project CI / Native shell tests (push) Successful in 20m55s
closes #279
closes #284
实现: 从2(暂定)倍放大绘制的画布scale 0.5* 真正的scale
before:


after:


svg看起来stroke窄了一点点, 可以接受
Reviewed-on: #285
2026-09-09 16:32:43 +08:00
suzmii
bafae0f127
资源画布首屏加载增加转圈提示
...
进入资源画布到首屏预览落地之间画布是空的,新增居中加载态:Loader2 转圈加文案,role=status 可被读屏播报
加载判定抽到 resourceBookIsLoading:有资源且布局未就绪或首屏预览一张都没落地时显示;预览失败同样视为落地,避免一直转圈
补充 resourceBookModel 加载态用例
2026-09-09 16:31:02 +08:00
suzmii
985db358a7
修复资源画本转场克隆的层级与静态不一致
...
转场层里的克隆只按自身 DOM 顺序叠放,而静态场景中卡片是 25、标题栏是 30,导致动画期间卡片盖住标题栏、结束后又瞬间跳回下方
快照记录元素自身或最近定位祖先的 z-index,克隆按该值设置层级,保持静态层叠关系
补充 resourceBookController 层级回归用例
2026-09-09 16:22:07 +08:00
suzmii
2c5ad3903e
总览摞按当前视图就近选卡
...
总览原先按资源数组顺序取前 3 张,和进入子画布后视口内最近的卡片不是同一批,FLIP 找不到对应终点就退化成淡入淡出,返回总览时还会跳成另一张图
新增 selectResourceBookOverviewCards:按卡片中心到该栏目当前视口中心的距离选最近的卡片,仍受筛选可见性约束
每栏目视口中心换算到画布坐标后传入资源画本场景
补充 resourceBookLayout 用例覆盖无视图中心、就近排序与筛选过滤
2026-09-09 16:16:16 +08:00
suzmii
85f0f6a57b
修复资源画本入场动画找不到终点卡片
...
进入子画布时若视口停在空白处,目标卡片不在画面内,FLIP 快照找不到终点会整段退化成淡入淡出,只剩标题栏有动画
新增 ensureResourceBookContentVisible:视口内没有可见卡片时,把离画面中心最近的卡片平移到画面中心,保持当前缩放不变
openResourceBookChild 计算入场视口后应用该修正,保证动画终点落在真实卡片上
补充 resourceBookViewport 用例覆盖已可见、就近居中与空栏目三种情况
2026-09-09 16:09:39 +08:00
suzmii
79cf932cba
修复资源画本转场快照丢失卡片预览图
...
快照克隆原先直接复制 blob: 对象 URL,源卡片卸载或预览缓存驱逐后该 URL 被 revoke,克隆里的图片随即失效,表现为进入/退出子画布时卡片框在动而图片不跟着展开和复原
对 blob: 来源且已解码的图片在克隆时栅格化为 data URL 冻结,与既有视频快照处理保持一致
补充 resourceBookController 快照图片冻结回归用例
2026-09-09 15:55:05 +08:00
lhk229
5b82a269e9
修正定向测试 Rust 格式
...
Project CI / Repository checks (pull_request) Successful in 2m47s
Project CI / Frontend tests (pull_request) Successful in 4m3s
Project CI / Backend tests (pull_request) Successful in 6m40s
Project CI / Native shell tests (pull_request) Successful in 18m41s
按 CI rustfmt 规范整理策划会话与视觉提示测试
2026-09-09 07:52:46 +00:00
suzmii
6d3d24df5e
合并 #283 资源画本画布实现
...
合入 feat/game-agent-canvas-resource-workbench-v2 的完整画布实现:资源画本控制器/模型/视口/布局、转场层、资源分页缓存与自动聚焦修复、资源总览卡片预览懒加载
保留本分支已有的聊天素材引用改动(引用输入区、@ 引用按钮、运行画面点选)
解决 index.tsx 状态声明与 pitfalls.md 文档冲突;styles.css 去重后仅保留一份画本视觉层
2026-09-09 15:43:32 +08:00
lhk229
dd0fd5feff
修复合并后的定向测试
...
Project CI / Repository checks (pull_request) Failing after 1m49s
Project CI / Frontend tests (pull_request) Successful in 3m45s
Project CI / Backend tests (pull_request) Successful in 6m23s
Project CI / Native shell tests (pull_request) Successful in 20m16s
移除不再符合 hydrate 锁语义的过时测试
同步视觉 Agent prompt 测试与当前资源合同
2026-09-09 07:41:52 +00:00
suzmii
8ed7e201d1
补齐资源画本迁移遗漏的输入区模型触发器样式
...
用 postcss 精确比对 #283 与当前分支的 CSS 规则集合,补齐唯一缺失的 .project-supervisor-surface.is-direct-codex .conversation-model-trigger
补齐后 #283 的 1057 条规则在当前分支全部存在,postcss 解析通过
2026-09-09 15:32:09 +08:00
suzmii
30580814d7
修复资源画本样式冲突遗留的缺失闭合括号
...
解决 #283 迁移与 master 的冲突时,.conversation-model-select [role='status'] 规则丢失了闭合大括号
导致 Tailwind 生成阶段报 Missing closing },Vite 错误覆盖层阻断页面打开
补齐闭合括号后 postcss 解析与 Vite 转换均恢复正常
2026-09-09 15:23:20 +08:00
suzmii
10e28b038c
Merge remote-tracking branch 'origin/master' into feat/agc-canvas-resource-workbench-v3
2026-09-09 15:14:54 +08:00
suzmii
aba896bf65
迁移资源画本视觉层样式
...
自 #283(V2.0 资源画本)迁入 .game-resource-book-* 视觉层共 523 行
该层作为 V3 资源画布的样式基础,JSX 待画布重写时接入
不包含 V2 主/子画布的行为代码
2026-09-09 15:04:18 +08:00
suzmii
bf03a18676
修复资源依赖本地身份解析
...
资源依赖图同时索引远端资源身份和 local-asset 本地资源身份
本地 canonical 引用与远端候选去重后再建立依赖连线
补充本地身份解析与候选不歧义回归测试
更新资源自由画板技术方案的依赖身份合同
2026-09-09 15:03:54 +08:00
suzmii
57a5b642fc
建立AGC资源语义类型契约
...
共享契约新增 canonical 资源类型目录和历史类型读时映射
角色动画派生结果写入 character-animation 主类型
补充角色动画落盘与 legacy 类型映射回归测试
更新资源自由画板技术方案的类型边界说明
2026-09-09 15:03:54 +08:00
lhk229
852d9af483
合并最新 master
...
Project CI / Repository checks (pull_request) Successful in 2m44s
Project CI / Backend tests (pull_request) Successful in 13m7s
Project CI / Frontend tests (pull_request) Successful in 13m55s
Project CI / Native shell tests (pull_request) Failing after 29m47s
同步远端主线至 b129589e7
保留当前分支的 V1 清理与主线文档和测试更新
2026-09-09 06:06:35 +00:00
lhk229
310091d28e
合并最新 master
...
Project CI / Repository checks (pull_request) Failing after 9s
Project CI / Backend tests (pull_request) Failing after 9s
Project CI / Frontend tests (pull_request) Successful in 6m0s
Project CI / Native shell tests (pull_request) Has been cancelled
同步主线 DirectProject 历史与 Markdown 展示改动
保留策划 V2 退役方案文档索引
2026-09-09 05:49:33 +00:00
lhk229
b129589e75
Merge pull request '修复客户端常用设置读写卡顿' ( #307 ) from fix/config_sl into master
...
Project CI / Repository checks (push) Successful in 4m42s
Project CI / Backend tests (push) Successful in 9m13s
Project CI / Frontend tests (push) Successful in 13m41s
Project CI / Native shell tests (push) Successful in 23m57s
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/307
Reviewed-by: 段舒康 <kdletters@qq.com >
2026-09-09 13:45:26 +08:00
lhk229
6a1e307b4a
合并最新master并协调模型配置保存逻辑
...
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
合入服务端默认模型同步及前端模型选择更新
保留配置覆盖层回滚和设置页无外部诊断行为
同步模型ID与默认模型标记并补充交叉回归验证
2026-09-09 05:36:56 +00:00
suzmii
f7374b2101
fix: 调整 AGC 输入区滚动条显示阈值
...
- 输入编辑器默认高度提高到 96px,超过 140px 后滚动
- 加深并加宽滚动条拇指,避免溢出时不可见
- 同步调整消息列表底部空间
2026-09-09 13:33:13 +08:00
suzmii
a0f3cc21a6
fix: 输入区滚动条改为按内容溢出显示
...
- 移除常驻滚动条和标准 scrollbar 属性
- 保留 WebKit 细滚动条样式,仅在内容超出时出现
2026-09-09 13:33:13 +08:00
suzmii
c82a684004
fix: 收紧 AGC 输入区模型选择布局
...
- 模型选择改为按内容宽度靠右排列
- 取消状态点、名称和箭头之间的异常拉伸
- 拉开模型选择与发送按钮间距
2026-09-09 13:33:12 +08:00
suzmii
08e20dc7c5
fix: 恢复 AGC 输入区模型名称显示
...
- 模型选择设置稳定最小宽度,避免被右侧 flex 压缩
- 提高模型名称文字对比度
- 固定 @ 和发送按钮宽度,保持控制行布局稳定
2026-09-09 13:33:12 +08:00
suzmii
e726dc41b8
fix: 约束 AGC 素材候选弹层到输入框范围
...
- 类型提示改为固定定位并按输入框宽度约束
- 根据上下可用空间选择展开方向
- 避免弹层越过聊天栏覆盖其它区域
2026-09-09 13:33:12 +08:00
suzmii
5f36ab8081
style: 对齐 AGC 输入区参考样式
...
- 输入区外框统一承载编辑器和底部控制行
- @ 放左侧,模型选择和发送放右侧
- 恢复输入编辑器滚动条样式
- 消息列表为底部输入框保留滚动条空间
2026-09-09 13:33:12 +08:00
suzmii
cc569e7e1e
refactor: 统一 AGC 输入区为单框结构
...
- form 作为完整背景框承载输入区和底部控制行
- 输入编辑器在框内透明显示
- 模型选择、@ 和发送按钮位于同一框内底部行
2026-09-09 13:32:41 +08:00
suzmii
664c8fbaf0
refactor: 统一 AGC 输入区底部控件结构
...
- 直接 Codex 输入区改为输入框下方单一控制行
- 模型选择、@ 和发送按钮使用同一 flex 布局
- 通用引用编辑器支持外部触发素材面板
- 移除依赖多个绝对定位拼接的对齐方式
2026-09-09 13:32:41 +08:00
suzmii
a42452106c
fix: 对齐 AGC 输入区 @ 与发送按钮
...
- 覆盖直接 Codex 输入区的全局按钮绝对定位
- @ 按钮改为 actions 容器内静态网格项,与发送按钮保持同一基线
2026-09-09 13:32:10 +08:00
suzmii
b3989b0d5c
fix: 修复 AGC 素材面板预览和按钮重叠
...
- 每个素材缩略图使用独立预览 scope,避免开发模式取消后无法恢复
- 调整模型选择、@ 按钮和发送按钮的底部布局
- 聊天引用候选改为使用完整已登记素材列表
- 补充图片缩略图和 StrictMode 回归测试
2026-09-09 13:32:10 +08:00
suzmii
46f27e2bde
fix: 优化 AGC 素材候选弹层样式
...
- 固定候选弹层宽度并限制高度
- 候选名称和类型标签改为单行省略
- 增加候选弹层层级和滚动条样式
2026-09-09 13:32:10 +08:00
suzmii
b7a659cdfe
feat: AGC 聊天支持素材与运行画面结构化引用
...
- 新增通用素材引用编辑器与结构化引用协议
- 三个聊天入口接入 @ 候选和素材选择面板
- 资源卡新增 @引用 入口
- 运行画面新增区域点选与 runtime-region 引用
- Rust 按 manifest 二次校验并生成安全投影
- 补充前端与 Rust 定向测试
2026-09-09 13:32:10 +08:00
suzmii
672d93015c
Merge pull request '优化AGC客户端同步LLM配置' ( #306 ) from feat/agc-client-sync-llm-config into master
...
Project CI / Repository checks (push) Successful in 2m49s
Project CI / Backend tests (push) Successful in 6m44s
Project CI / Native shell tests (push) Failing after 15m5s
Project CI / Frontend tests (push) Successful in 2m57s
Reviewed-on: #306
2026-09-09 13:19:43 +08:00
suzmii
d9c883675d
补充AGC模型目录异常revision的客户端用例
...
Project CI / Frontend tests (pull_request) Successful in 4m3s
Project CI / Repository checks (pull_request) Successful in 5m35s
Project CI / Backend tests (pull_request) Successful in 8m10s
Project CI / Native shell tests (pull_request) Failing after 17m32s
- 补充旧服务端不返回 revision(两次响应均为 undefined)时仍按目录变化刷新的用例
- 补充服务端目录重建导致 revision 回退(7 到 0)时仍更新界面的用例
- 补充 revision 未变化时不更新界面、沿用已应用目录的用例
2026-09-09 13:03:46 +08:00
lhk229
2757273850
修正配置回滚代码的Rust格式
...
Project CI / Repository checks (pull_request) Successful in 2m51s
Project CI / Frontend tests (pull_request) Successful in 3m18s
Project CI / Native shell tests (pull_request) Successful in 22m8s
Project CI / Backend tests (pull_request) Successful in 8m9s
按rustfmt要求调整错误信息和测试断言换行
通过仓库check:rustfmt、编码和diff检查
2026-09-09 04:40:45 +00:00
lhk229
08c5917490
修复配置覆盖层写入失败后的部分更新
...
Project CI / Frontend tests (pull_request) Successful in 3m5s
Project CI / Backend tests (pull_request) Failing after 3m52s
Project CI / Native shell tests (pull_request) Failing after 4m5s
Project CI / Repository checks (pull_request) Failing after 1m8s
提前序列化配置变更并在多文件写入失败时逆序回滚
保留单文件保存路径且不增加外部诊断或保存后回读
补充覆盖层写入失败回归测试及配置保存文档
2026-09-09 04:34:57 +00:00
suzmii
07fc26953a
修复AGC模型目录同步的加载态与保存竞态
...
Project CI / Repository checks (pull_request) Successful in 2m56s
Project CI / Frontend tests (pull_request) Successful in 3m45s
Project CI / Backend tests (pull_request) Failing after 4m34s
Project CI / Native shell tests (pull_request) Failing after 7m54s
- ConversationModelSelect:目录同步与配置读取/写回失败时统一在 finally 收起加载态,避免选择器永久卡在 busy、无法切换或刷新
- ConversationModelSelect:配置读取失败单独提示「读取客户端配置失败」,不再误报为模型目录加载失败
- ConversationModelSelect:配置写回串行化,发送前校验等待在途保存并读取最新配置,避免保存中放行旧选择、或用旧快照覆盖刚完成的选择
- ConversationModelSelect:服务端未返回 revision 时按目录已变化处理,避免界面停止刷新
- ProjectSupervisorView:提交前模型校验期间禁用输入框与发送按钮,避免重复提交与校验窗口内编辑丢失
- 测试:补充配置读取失败恢复、保存中发送前校验等待、目录请求去重用例;修正依赖配置读取时序的 appSurface 用例
- 文档:修正首页入口「按需加载」与实现不符的描述
2026-09-09 12:00:10 +08:00
lhk229
ff065dbc6c
修复本地Provider冒烟测试的HTML项目夹具
...
Project CI / Repository checks (pull_request) Successful in 3m10s
Project CI / Frontend tests (pull_request) Successful in 4m7s
Project CI / Backend tests (pull_request) Successful in 7m11s
Project CI / Native shell tests (pull_request) Successful in 18m7s
启动 Agent 前准备已有 HTML 入口以符合 JSON Generator 项目契约
失败诊断补齐退出码、终止信号及标准输出和错误输出尾部
同步冒烟测试夹具与诊断约定文档
2026-09-09 03:50:32 +00:00
lhk229
3be91bf283
修复rust格式问题
Project CI / Frontend tests (pull_request) Successful in 3m40s
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Successful in 3m24s
Project CI / Backend tests (pull_request) Failing after 6m14s
2026-09-09 03:44:33 +00:00
lhk229
1b4f0ed203
修复原生应用CI测试与持久化图片生成恢复
...
Project CI / Repository checks (pull_request) Failing after 1m6s
Project CI / Frontend tests (pull_request) Successful in 2m42s
Project CI / Backend tests (pull_request) Successful in 10m7s
Project CI / Native shell tests (pull_request) Failing after 18m54s
将已有 HTML 项目测试夹具与 npm 项目初始化契约对齐
更新图片生成与角色提示词断言,移除已退役视觉门禁测试
按持久化请求快照恢复旧图片生成任务缺省参数
修正运行中生成任务查询的测试路由和响应夹具
同步技术方案与共享开发约定
2026-09-09 03:17:03 +00:00
lhk229
5bee48fede
合并最新master到常用设置修复分支
...
同步远端master的最新修改
2026-09-09 02:15:42 +00:00
suzmii
2942489575
Merge remote-tracking branch 'origin/master' into feat/agc-client-sync-llm-config
...
Project CI / Repository checks (pull_request) Successful in 2m49s
Project CI / Frontend tests (pull_request) Successful in 3m26s
Project CI / Native shell tests (pull_request) Failing after 4m12s
Project CI / Backend tests (pull_request) Failing after 4m13s
# Conflicts:
# apps/ai-game-creator-shell/src/features/project-workspace/ConversationModelSelect.tsx
# apps/ai-game-creator-shell/src/features/project-workspace/ProjectSupervisorView.tsx
# apps/ai-game-creator-shell/tests/conversationModelSelect.test.tsx
# docs/technical/【技术方案】AGC后台模型别名与对话选择-2026-09-05.md
2026-09-09 10:04:05 +08:00
suzmii
a0e6a83691
修复 AGC 模型选择入口、交互与默认模型回退 ( #299 )
...
Project CI / Backend tests (push) Failing after 7m10s
Project CI / Repository checks (push) Successful in 2m19s
Project CI / Frontend tests (push) Successful in 3m32s
Project CI / Native shell tests (push) Failing after 19m48s
### 背景
AGC 后台已支持维护 LLM 模型目录(`agc_model_catalog`),客户端此前只在项目右侧对话浮出模型选择,且存在几个体验问题:
1. 首页聊天框架缺少模型选择入口;
2. 首次进入项目时,右侧模型选择器「点不动」(被 disabled);
3. 模型选择下拉失去焦点不自动收起;
4. 默认模型缺少可视标识;
5. 已保存的选择被后台停用/移除后,客户端显示「请选择模型」,未自动回退默认模型;首页因懒加载在打开前也一直显示「选择模型」。
### 改动内容(完整变更集)
- **首页聊天框架新增模型选择入口**,复用项目右侧对话的 `ConversationModelSelect`;上传按钮在左,模型选择器与发送按钮在右(同一组,模型选择器紧挨发送按钮)。
- **修复首次进入项目时右侧模型选择器点不动**:选择器不再因目录加载(`busy`)或对话进行中(`controlBusy`)被禁用;切换模型只写回客户端配置并作用于后续轮次,发送仍由 `controlBusy` / `modelReady` 把关。
- **模型下拉支持点击外部 / Esc 自动收起**:给组件容器挂 ref,监听 `document` 的 `mousedown` 与 `keydown`,点击容器外或按 Esc 即收起(仅在展开时挂监听)。
- **默认模型增加「默认」标识**:组件记录 `defaultModelId`,在下拉选项中给默认模型显示小标签;亮暗主题自适应。
- **模型选择始终回退默认模型**:已保存选择仍可用时沿用;被停用/移除或从未选择时回退到后台默认模型并写回配置;只有默认模型本身不可用才走错误分流。首页由「懒加载」改为「挂载即加载」,触发按钮直接落在默认模型上,不再出现「选择模型」空态。
- **清理**:移除组件中已无调用方的 `lazy` 加载路径。
- **文档**:同步更新 `【技术方案】AGC后台模型别名与对话选择-2026-09-05.md`(首页入口、对话进行中可切换模型、失焦收起等行为)。
### 关键交互/行为说明
- 触发按钮永远显示模型名(默认或当前选择),不再出现「选择模型」占位,除非默认模型不可用。
- 模型下拉的加载中、刷新、选中态沿用原有交互;默认模型有「默认」标签,便于识别。
- 首页模型选择器不改动「开启创作」门控:目录不可用时仍可创建项目并走后台默认项。
### 验证
- `npm run test -- apps/ai-game-creator-shell/tests/conversationModelSelect.test.tsx` -> 7/7 通过
- `npm run test -- apps/ai-game-creator-shell/tests/appSurface.test.ts` -> 386/386 通过
- `npm run ai-game-creator-shell:typecheck` 通过
- `npm run check:encoding`(4309 文件)通过
- `git diff --check` 通过
### 影响范围与注意事项
- 变更集中在 AGC 客户端(`apps/ai-game-creator-shell`),不涉及 SpacetimeDB schema / 后端接口 / 契约。
- `GET /api/llm/models` 语义不变(仍只返回启用项 + 默认项),本次不改后端。
- 模型下拉在窄屏的换行/遮挡,以及「默认」标签对比度,建议在真机确认一下观感(单测只覆盖逻辑)。
### 关联
- 无关联 Issue;本 PR 独立提交。
---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: #299
Co-authored-by: 董羽秦 <suzmii@qq.com >
Co-committed-by: 董羽秦 <suzmii@qq.com >
2026-09-08 22:05:15 +08:00
k88936
d3f5d0a355
feat/AGC codex的工具调用 持久化处理 ( #282 )
...
Project CI / Repository checks (push) Successful in 2m7s
Project CI / Frontend tests (push) Successful in 2m46s
Project CI / Backend tests (push) Failing after 3m53s
Project CI / Native shell tests (push) Failing after 3m50s
重构directproject的thread持久化, 保存response items用来恢复thread
修改了DirectProject的对话jsonl格式, 不兼容不迁移. (测试需要手动清理旧对话jsonl文件)
AGC显式写入user msg, 对codex 返回的user msg忽略
清理原来的上下文滑动窗口, 因为codex内部会自动compact
工具调用后重启,继续对话:

close #249
close #277
---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: #282
Co-authored-by: 王德宇 <kvtodev@outlook.com >
Co-committed-by: 王德宇 <kvtodev@outlook.com >
2026-09-08 22:04:37 +08:00
k88936
01e057d047
Feat/AGC对话渲染markdown ( #281 )
...
Project CI / Frontend tests (push) Successful in 3m37s
Project CI / Backend tests (push) Failing after 4m13s
Project CI / Native shell tests (push) Failing after 4m11s
Project CI / Repository checks (push) Successful in 3m24s
before:

after:


考虑到在AGC场景下不是很有理由, 暂不实现链接, 图片, 内嵌html
---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: #281
Co-authored-by: 王德宇 <kvtodev@outlook.com >
Co-committed-by: 王德宇 <kvtodev@outlook.com >
2026-09-08 22:03:37 +08:00
kdletters
1f904d28e9
AGC 客户端 MCP 能力暴露 ( #274 )
...
Project CI / Frontend tests (push) Successful in 4m2s
Project CI / Repository checks (push) Successful in 2m16s
Project CI / Backend tests (push) Successful in 10m14s
Project CI / Native shell tests (push) Failing after 19m54s
## 目标
保留现有客户端对话与 Codex app-server 链路,把客户端自身受控业务能力通过 MCP 暴露给 Codex。
## 范围
- 客户端会话、项目文件、资源、画布、生成、预览等稳定能力
- 审核 Skill 的索引与按需指导资源
- 复用现有账号、项目路径、权限、计费、幂等、锁和恢复边界
## 明确不做
- 不替换客户端对话入口或 Codex app-server
- 不让客户端替 Codex 判断高层意图、完成状态或规划
- 不暴露任意 Tauri command、shell、凭据、内部 URL、数据库和管理能力
当前 PR 先建立独立分支与审查边界,后续提交实现与定向验证。
Reviewed-on: #274
2026-09-08 22:01:29 +08:00
lhk229
1cf835418e
修复常用设置状态展示与本地覆盖保存
...
Project CI / Backend tests (pull_request) Successful in 5m43s
Project CI / Repository checks (pull_request) Failing after 24m21s
Project CI / Native shell tests (pull_request) Failing after 14m11s
Project CI / Frontend tests (pull_request) Successful in 28m31s
删除常用设置账号权限状态栏及关联状态传递
复用保存前读取结果并同步冲突覆盖项,模型切换仅同步模型字段
补充配置保存定向测试并更新设置职责文档
2026-09-08 13:45:25 +00:00
lhk229
14d76419b8
修复策划回答身份绑定与迟到恢复结果覆盖
...
Project CI / Repository checks (pull_request) Successful in 2m48s
Project CI / Backend tests (pull_request) Successful in 6m28s
Project CI / Native shell tests (pull_request) Failing after 13m45s
Project CI / Frontend tests (pull_request) Successful in 44m47s
在既有回合锁内核对问题与会话身份,保留已完成回合重放。
前端回答携带卡片问题标识,hydrate 写回前检查请求序列和项目路径。
补充后端与界面回归测试,同步技术合同与项目决策。
2026-09-08 13:25:24 +00:00
lhk229
5efd88cb3e
修复客户端常用设置读写卡顿
...
Project CI / Frontend tests (pull_request) Successful in 2m46s
Project CI / Backend tests (pull_request) Successful in 5m57s
Project CI / Repository checks (pull_request) Successful in 2m30s
Project CI / Native shell tests (pull_request) Failing after 15m32s
移除常用设置读取和保存后的外部诊断调用
减少配置读取时的重复权限修复和保存后的重复回读
补充常用设置无需外部诊断的原因注释
2026-09-08 12:58:29 +00:00
lhk229
8d03b73582
修复 Planning V2 恢复与审批重放
...
Project CI / Frontend tests (pull_request) Successful in 12m56s
Project CI / Backend tests (pull_request) Successful in 22m19s
Project CI / Repository checks (pull_request) Failing after 33m17s
Project CI / Native shell tests (pull_request) Failing after 33m40s
恢复已落盘结构化 question 为成功回合并补齐会话投影
允许审批 receipt 在重启后复用原始 decisionId
恢复旁路不干扰正常 run 并补充设计原则文档
2026-09-08 12:52:18 +00:00
suzmii
36747b3ece
修复资源总览摞堆叠旋转与卡片预览懒加载
...
- 总览每个资源类型最多铺 3 张卡片,其余数量由栏目标题栏的“N 项”表达
- 总览摞旋转角改为固定小角度,素材变多后不再随堆叠下标无限增大
- 总览摞下标小的卡片压在上层,不再被模糊卡遮住最上面那张清晰卡
- 截断前先按搜索可见性过滤,避免搜索结果落在深处时总览显示空摞
- 资源卡片可见性观察改用真正包含卡片的容器,恢复滚动时的预览懒加载
- 补充资源画本布局单测、预览观察根回归用例和总览摞上限用例
2026-09-08 20:23:33 +08:00
suzmii
8a47cdfc1b
Merge remote-tracking branch 'origin/master' into feat/game-agent-canvas-resource-workbench-v2
Project CI / Native shell tests (pull_request) Failing after 15m58s
Project CI / Frontend tests (pull_request) Successful in 3m48s
Project CI / Backend tests (pull_request) Successful in 8m0s
Project CI / Repository checks (pull_request) Successful in 11m18s
2026-09-08 19:48:37 +08:00
lhk229
47a3240e81
按 rustfmt 修正 V1 删除后残留的格式偏差
...
Project CI / Backend tests (pull_request) Successful in 11m23s
Project CI / Native shell tests (pull_request) Failing after 13m38s
Project CI / Repository checks (pull_request) Successful in 4m51s
Project CI / Frontend tests (pull_request) Successful in 7m39s
Repository checks 门禁的 cargo fmt --check 要求,仅格式化、无行为变化
2026-09-08 11:25:17 +00:00
lhk229
c8fec98758
Merge branch 'master' into feat/design_agent_simple
Project CI / Repository checks (pull_request) Failing after 2m8s
Project CI / Backend tests (pull_request) Successful in 17m24s
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
2026-09-08 19:12:36 +08:00
lhk229
55377f9e51
修复 prompt bundle 集成测试夹具残留 V1 planning 形状导致 CI 失败
...
Project CI / Backend tests (pull_request) Failing after 15s
Project CI / Repository checks (pull_request) Failing after 15s
Project CI / Frontend tests (pull_request) Successful in 6m40s
Project CI / Native shell tests (pull_request) Successful in 27m25s
基础夹具 manifest 同步删除 supervisorPlan 组合、planning 目录条目与四个已删 section 登记
roleOverlays 校验测试改为自带合法 overlay 夹具后逐项破坏,与生产 manifest 的空 overlay 形状对齐
2026-09-08 11:11:31 +00:00
lhk229
2fa967a93a
删除策划 V1 的测试脚本入口并同步退役文档
...
Project CI / Repository checks (pull_request) Failing after 12s
Project CI / Backend tests (pull_request) Failing after 9s
Project CI / Frontend tests (pull_request) Successful in 3m15s
Project CI / Native shell tests (pull_request) Failing after 15m21s
删除 agent-swarm-test-chat.mjs 的 --plan 模式、自动 GDD 审批回路与 planning 产物检查
删除根与应用 package.json 的 test:plan / test:plan:manual / agc:test:plan* 四条脚本
同步删除 agentSwarmTestEntry.test.ts 中只覆盖 V1 审批回路与 --plan 参数的用例
GddApprovalCard.tsx 注释改指 planning_gdd_model.rs 的现行路径权威定义
立项策划Agent(Fast GDD)方案文档头部标注已退役,仅作历史推导记录
策划会话 Runtime V2 方案文档状态更新为 P5 已完成并记录源码删除执行清单
Provider 兼容性缺陷文档的缺陷 4 标注相关代码已随 V1 退役删除
decision-log 新增 2026-09-08 策划 V1 链路源码整体退役决策记录
2026-09-08 10:43:38 +00:00
lhk229
78a606ab5e
删除已退役策划能力配置
...
Project CI / Repository checks (pull_request) Failing after 14s
Project CI / Backend tests (pull_request) Failing after 14s
Project CI / Frontend tests (pull_request) Successful in 2m31s
Project CI / Native shell tests (pull_request) Failing after 13m1s
移除 planning.capabilityEnabled,保留其余客户端配置
2026-09-08 10:17:24 +00:00
lhk229
ded3253b08
删除已退役策划 V1 的 Runtime 模块与残留分支
...
按四不写原则移除 PR #159 引入、已被策划 V2 取代的整条 V1 链路
删除 runtime_protocol 下六个 V1 模块(planning_storage/submit/approval/coordinator/hydrate/provider_usage)
V1 与 V2 共用的 GDD 数据模型抽到新模块 planning_gdd_model.rs 供 V2 继续复用
删除 prompt manifest 中 planning Agent 目录、role overlay、plan sections 与 supervisorPlan 组合及对应生成常量
删除四个 V1 提示词文件(roles/project-planning.md、plan/common.md、plan/supervisor-identity.md、plan/supervisor-playbook.md)
删除 game-creator.config.json 与配置代码中的 planning 能力开关
删除 CLI --swarm-chat 的 --plan 入口与 swarm_cli 中的 plan source 分支
删除 provider_retry 的 planning session binding 与 plan 专用请求指纹链路
删除 provider_action_batch 的 plan.submit_gdd v4 批次形状校验与 planning 绑定字段
删除 tool_policy_snapshot / agent_native_tools / tool_plan_protocol 中的 plan 根阶段收窄与 plan.submit_gdd 身份门
删除 main_loop 的 plan_gdd blocker 投影、plan 信封修复回路与 plan submit 业务拒绝限流
删除 pending_recovery 与 recovery_scan 的 plan submit 锚点恢复、planning session 投影恢复与审批投影恢复
删除 acceptance_graph 的 Fast GDD 取证覆盖校验与 plan 根验收前置门
删除 agent_db 的 plan.provider_usage、plan.gdd_decided、plan_submit_gdd.committed 三条专用持久车道及其预留配额
删除 AgentRuntimeState 的 plan_submit_gdd_rejection_count 字段
runtime_tools 的委派、run_status、goal_contract 恢复为通用路径(移除 plan 根对称性守卫与 acceptance gate 钩子)
同步删除只覆盖 V1 行为的测试用例(planning 澄清、锚点恢复、plan 根委派门、plan 提示词组合等)
2026-09-08 09:44:21 +00:00
suzmii
5550a7b28c
修复资源画布文案重命名后的CI失败
...
删除project-development.suite.ts中未使用的resetButton变量,修复ESLint unused-vars错误
将projectResourceLiveIntegration.test.tsx中过期的复位资源画布断言更新为复位资源视图
2026-09-08 16:38:49 +08:00
suzmii
4fc9451492
修复AGC客户端未跟随服务端默认模型
...
Project CI / Native shell tests (pull_request) Failing after 14m52s
Project CI / Repository checks (pull_request) Successful in 5m51s
Project CI / Frontend tests (pull_request) Successful in 6m17s
Project CI / Backend tests (pull_request) Successful in 23m19s
- 客户端配置新增 selectedModelIsDefault,记录当前选择是否来自平台默认项
- 服务端默认项变化时,跟随默认项的选择自动切换并提示,手动选择不受影响
- 所选模型失效回退默认项时标记为默认项选择
- 补充配置读写与客户端定向测试,同步技术方案文档
2026-09-08 16:38:37 +08:00
suzmii
d60c4ce6ec
优化AGC客户端同步LLM配置
...
Project CI / Frontend tests (pull_request) Successful in 3m54s
Project CI / Repository checks (pull_request) Successful in 5m41s
Project CI / Backend tests (pull_request) Successful in 14m56s
Project CI / Native shell tests (pull_request) Failing after 15m10s
- GET /api/llm/models 增加目录 revision,客户端据此做条件刷新
- AGC 客户端在项目切换、对话表面挂载、下拉展开、窗口聚焦时按 revision 条件刷新
- 模型目录请求同一时刻只保留一个在途请求,刷新失败保留上一次有效目录与本地选择
- 发起对话前校验所选模型,已停用或删除时回退默认模型并提示
- 新增模型目录缓存模块与定向测试,同步技术方案与后端架构文档
2026-09-08 16:11:36 +08:00
kdletters
1498247e9f
AGC产物迁移npm与Phaser4
...
Project CI / Repository checks (push) Successful in 2m54s
Project CI / Native shell tests (push) Failing after 16m56s
Project CI / Frontend tests (push) Successful in 3m4s
Project CI / Backend tests (push) Successful in 8m10s
新增 npm + Vite + Phaser 4.2.1 游戏工程脚手架
允许 DirectProject 在项目边界内安装依赖并执行构建
让预览、静态检查、投影和试玩导出统一使用 dist 产物
补充 Phaser Skill、技术方案、项目记忆和定向测试
2026-09-08 15:11:36 +08:00
suzmii
7bd67f2b3a
Merge remote-tracking branch 'origin/master' into feat/game-agent-canvas-resource-workbench-v2
2026-09-08 14:58:58 +08:00
suzmii
ea71540413
Merge branch 'feat/game-agent-canvas-resource-workbench-v2' of https://git.genarrative.world/git/GenarrativeAI/Genarrative into feat/game-agent-canvas-resource-workbench-v2
2026-09-08 14:58:29 +08:00
suzmii
456cc42dd3
优化泥点流水的素材消耗原因展示 ( #302 )
...
Project CI / Repository checks (push) Successful in 1m59s
Project CI / Frontend tests (push) Successful in 3m7s
Project CI / Backend tests (push) Successful in 6m13s
Project CI / Native shell tests (push) Successful in 19m24s
Close #296
## 问题
钱包流水目前只把素材类扣费暴露为 `asset_operation_consume`,共享账单组件统一显示“资产操作消耗”,无法说明本次泥点实际用于哪类素材生成。
## 落地方案
- 在既有钱包流水 metadata 中记录服务端确定的 `assetKind`,不修改 SpacetimeDB schema。
- `api-server` 只将内部素材类型白名单映射为用户可见 `reason`,不暴露原始 metadata、资源 ID 或任务 ID。
- 共享钱包流水契约与组件优先展示具体原因;历史、未知或空 metadata 继续回退为“资产操作消耗”。
- 主站、图片画布与 AGC 继续复用同一共享账单组件。
## 当前进度
- [x] 补充权威后端数据契约
- [x] 写入素材操作类型 metadata
- [x] 扩展钱包流水公开 DTO 与安全映射
- [x] 更新共享账单展示与回归测试
- [x] 完成定向验证与边界检查
## 用户可见映射
- 图片、图标图集、美术规范、UI 设计、发布素材:生成美术素材
- 图片修改:编辑美术素材
- UI 素材提取:提取美术素材
- 角色动画:生成角色动画
- 视频:生成视频素材
- 音效:生成音效素材
- 背景音乐:生成背景音乐
- 历史、未知、空 metadata:资产操作消耗
## 验证
- `cargo fmt --all -- --check`
- `cargo test -p api-server profile_wallet_ledger_reason_only_exposes_known_asset_operations`
- `cargo test -p api-server worker_billing_context_freezes_charge_and_preserves_job_metadata`
- `cargo test -p shared-contracts profile_wallet_ledger_response_uses_camel_case_fields`
- `npx vitest run packages/shared/src/components/PlatformProfileWalletLedgerModal/index.test.tsx`
- `npm run typecheck`
- `npx eslint packages/shared/src/components/PlatformProfileWalletLedgerModal/model.ts packages/shared/src/components/PlatformProfileWalletLedgerModal/index.test.tsx packages/shared/src/contracts/runtime.ts`
- `npm run check:encoding`
- `npm run check:spacetime-schema`
- `git diff --check`
以上均通过;Rust 仅输出仓库已有 dead-code warnings。
## 未验证边界
- 未执行真实登录、生成并读取新钱包流水的端到端联调。本机 `8082/3101` 已由另一套本地栈占用,为避免当前分支挂接同一数据库并带起 worker 处理现有队列,本轮未启动 `npm run dev:api-server`。
- 四项远端 CI 已全部通过,PR 已转为 Ready for review。
## 不变项
- 不修改历史流水数据。
- 不调整泥点价格、扣费顺序、幂等 ledger、失败退款或余额结算。
- 不修改 SpacetimeDB schema。
---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/302
Co-authored-by: Suzumiya <suzmii@qq.com >
Co-committed-by: Suzumiya <suzmii@qq.com >
2026-09-08 14:56:16 +08:00
suzmii
4e0ce1902b
建立AGC资源语义类型契约
...
共享契约新增 canonical 资源类型目录和历史类型读时映射
角色动画派生结果写入 character-animation 主类型
补充角色动画落盘与 legacy 类型映射回归测试
更新资源自由画板技术方案的类型边界说明
2026-09-08 13:41:55 +08:00
suzmii
e2a50088c9
修复资源依赖本地身份解析
...
资源依赖图同时索引远端资源身份和 local-asset 本地资源身份
本地 canonical 引用与远端候选去重后再建立依赖连线
补充本地身份解析与候选不歧义回归测试
更新资源自由画板技术方案的依赖身份合同
2026-09-08 13:29:08 +08:00
suzmii
6de536ecbd
Merge branch 'master' into feat/game-agent-canvas-resource-workbench-v2
Project CI / Repository checks (pull_request) Failing after 1m23s
Project CI / Native shell tests (pull_request) Failing after 4m7s
Project CI / Backend tests (pull_request) Successful in 6m28s
Project CI / Frontend tests (pull_request) Failing after 2m7s
2026-09-08 12:24:11 +08:00
suzmii
1347b4a743
去除资源区滚轮切换栏目
...
Project CI / Frontend tests (pull_request) Failing after 1m49s
Project CI / Native shell tests (pull_request) Failing after 4m32s
Project CI / Repository checks (pull_request) Failing after 9s
Project CI / Backend tests (pull_request) Failing after 9s
删除普通滚轮切页状态、队列与节流控制逻辑
资源区普通滚轮只平移当前视图,缩放继续由 Ctrl 或 Cmd 配合滚轮触发
同步更新 PRD、技术方案与控制器测试
2026-09-08 12:12:29 +08:00
suzmii
d5411eae62
去除资源区主子画布概念文案
...
资源总览、栏目入口、返回与复位文案移除主画布和子画布概念
资源栏目可访问名称改为设计文档、美术资源等名称
同步更新相关界面测试断言
2026-09-08 12:11:09 +08:00
k88936
4db6d28603
UI编辑器一批细节优化 ( #278 )
...
Project CI / Repository checks (push) Successful in 3m6s
Project CI / Frontend tests (push) Successful in 3m44s
Project CI / Backend tests (push) Successful in 8m16s
Project CI / Native shell tests (push) Successful in 20m48s
* 提示词:完善组件建议,增加容器背景与节点大小一致的实现
* 支持Delete删除节点 ctrl + -缩放
* 步骤结束弹窗提醒


* UI 树快捷删除

* zoom滑动条样式
before:

after:

Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/278
Co-authored-by: 王德宇 <kvtodev@outlook.com >
Co-committed-by: 王德宇 <kvtodev@outlook.com >
2026-09-08 11:56:36 +08:00
lhk229
38b4abc403
删除已退役策划 V1 的前端数据通路与命令入口
...
Project CI / Repository checks (pull_request) Failing after 11s
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / Frontend tests (pull_request) Successful in 2m43s
Project CI / Native shell tests (pull_request) Successful in 18m1s
前端 App.tsx 删除 hydrate_game_creator_plan_gdd_state 旧读取与 decide_game_creator_plan_gdd 旧审批分支,策划状态只走 Planning V2 命令
hydratePlanningV2Session 在确认无 V2 会话时清空策划状态,避免残留旧卡片
Tauri 命令层删除 decide_game_creator_plan_gdd 与 hydrate_game_creator_plan_gdd_state 及其注册和输入解析
CLI 删除 --plan-gdd-status 与 --plan-gdd-decide 子命令、stdin 审批意见读取与对应解析测试
测试 harness 删除旧命令 mock 与 planGdd 状态注入,新增 V2 审批失败注入与 decisionId 记录
plan-gdd 测试套件改写为 V2 会话驱动,删除 recoveryPending 与旧 Supervisor 审批等待两个已退役语义的测试
2026-09-08 03:56:16 +00:00
suzmii
0a5080dbd9
Merge remote-tracking branch 'origin/master' into feat/game-agent-canvas-resource-workbench-v2
Project CI / Repository checks (pull_request) Successful in 2m27s
Project CI / Native shell tests (pull_request) Successful in 18m40s
Project CI / Frontend tests (pull_request) Successful in 2m55s
Project CI / Backend tests (pull_request) Successful in 6m32s
2026-09-08 10:45:07 +08:00
lhk229
0fde1912f1
Merge remote-tracking branch 'origin/feat/design_agent_simple' into feat/design_agent_simple
Project CI / Repository checks (pull_request) Successful in 3m10s
Project CI / Frontend tests (pull_request) Successful in 3m24s
Project CI / Backend tests (pull_request) Successful in 6m45s
Project CI / Native shell tests (pull_request) Successful in 19m25s
2026-09-07 10:33:36 +00:00
lhk229
1db5930c9f
修复rustfmt格式检查
...
- planning_session_v2.rs 的 config 加载与 tool_planning.rs 的 final_request 捕获合并为单行
2026-09-07 10:29:13 +00:00
kdletters
29fa20e68d
Merge branch 'master' into feat/design_agent_simple
Project CI / Frontend tests (pull_request) Successful in 3m9s
Project CI / Backend tests (pull_request) Successful in 6m31s
Project CI / Repository checks (pull_request) Failing after 1m6s
Project CI / Native shell tests (pull_request) Successful in 19m54s
2026-09-07 17:16:26 +08:00
suzmii
e15e3b455f
修复AGC大上下文请求体限制 ( #295 )
...
Project CI / Repository checks (push) Successful in 3m12s
Project CI / Frontend tests (push) Successful in 3m21s
Project CI / Backend tests (push) Successful in 7m42s
Project CI / Native shell tests (push) Successful in 20m14s
Project CI / Frontend tests (pull_request) Successful in 50m43s
Project CI / Repository checks (pull_request) Successful in 20m21s
Project CI / Backend tests (pull_request) Successful in 6m18s
Project CI / Native shell tests (pull_request) Successful in 18m19s
## 背景与问题
AGC(AI 游戏创作智能体 App)Direct Codex 模式在携带图片工具结果等大上下文调用 LLM 时,`/api/llm/responses` 与 `/api/llm/chat/completions` 会命中 Axum 默认 **2 MiB** 请求体上限,直接被 413 拒绝,大上下文任务无法执行;同时 Codex app-server 的 failed turn 未把上游 413 映射为稳定错误分类,前端只能显示笼统的“其他错误”,无法引导用户处理。
## 改动内容
**1. api-server(server-rs)**
- 新增常量 `LLM_REQUEST_MAX_BODY_BYTES = 32 MiB`,作为两个 LLM 代理路由的正式请求体上限;
- 两个路由显式配置 `DefaultBodyLimit::max(32 MiB)`,避免 Axum 默认 2 MiB 提前拒绝;handler 内保留超限检查,超过 32 MiB 仍返回 `413 PAYLOAD_TOO_LARGE`;
- 补充回归测试:>2 MiB 大上下文请求不再命中默认限制;超过 32 MiB 仍返回 413。
**2. AGC 壳(apps/ai-game-creator-shell)**
- `codex_app_server` 错误映射:上游/连接层 HTTP 413、`PAYLOAD_TOO_LARGE`、`provider request too large` 等统一映射为稳定分类 `codex-app-server-error:request-too-large`,不再落入 `other` 或误判为权限/安全策略错误;
- 前端新增用户可见文案“模型请求体过大,请减少参考图或上下文后重试”,并补充单测断言。
**3. 文档**
- 【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md 补充“2026-09-06 AGC LLM 代理请求体合同”:明确 32 MiB 上限、必须显式配置 `DefaultBodyLimit`、413 映射规则与用户文案。
## 验证
- `cargo test -p api-server llm_routes_accept_large_context_bodies_beyond_axum_default` 通过
- `cargo test -p api-server llm_responses_rejects_bodies_above_explicit_limit` 通过
- `cargo test ... ai-game-creator-shell ... codex_app_server_failed_turn_maps_request_too_large_details` 通过
- `npm run test -- apps/ai-game-creator-shell/tests/agentRuntimeModel.test.ts`(27 通过)
全量 workspace 测试与 CI 门禁待推送后由 CI 覆盖。
Reviewed-on: #295
Reviewed-by: 段舒康 <kdletters@qq.com >
Co-authored-by: 董羽秦 <suzmii@qq.com >
Co-committed-by: 董羽秦 <suzmii@qq.com >
2026-09-07 17:05:42 +08:00
suzmii
c5bbb864f5
修复资源分页类别缓存回归
...
资源分页复用完整资源签名以识别同数量类别变化
补充同长度类别变化回归测试
2026-09-07 16:26:08 +08:00
lhk229
85de37710b
软化tool_choice兼容性表述为可能不支持
...
Project CI / Repository checks (pull_request) Failing after 44s
Project CI / Frontend tests (pull_request) Successful in 3m9s
Project CI / Backend tests (pull_request) Successful in 7m23s
Project CI / Native shell tests (pull_request) Successful in 21m20s
- 代码注释与策划会话文档改为“部分模型或端点可能不支持”,DeepSeek 仅作示例
2026-09-07 07:38:05 +00:00
lhk229
b5d214cef8
Merge branch 'master' into feat/design_agent_simple
Project CI / Repository checks (pull_request) Failing after 59s
Project CI / Frontend tests (pull_request) Successful in 3m10s
Project CI / Backend tests (pull_request) Successful in 6m9s
Project CI / Native shell tests (pull_request) Successful in 21m10s
2026-09-07 15:34:32 +08:00
lhk229
0ff2c00618
注明思考模式模型不支持tool_choice=required
...
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / Frontend tests (pull_request) Successful in 3m15s
Project CI / Native shell tests (pull_request) Successful in 20m38s
Project CI / Repository checks (pull_request) Failing after 15s
- planning_session_v2 的 Required 设置处补注释:DeepSeek 等思考模式模型会以 400 拒绝该取值,接入新模型需先验证端点支持
- 策划会话 Runtime V2 文档重试规则节补充该限制及其与瞬态重试的边界
2026-09-07 07:30:57 +00:00
k88936
964290c641
优化错误报告 ( #286 )
...
Project CI / Native shell tests (push) Successful in 21m3s
Project CI / Repository checks (push) Successful in 2m37s
Project CI / Frontend tests (push) Successful in 2m41s
Project CI / Backend tests (push) Successful in 7m2s
样式
before:


after:


逻辑:
每次打开报告modal会再次查询队列中的错误
<video src="attachments/6d9d9bd7-5b7b-4a05-a7c3-ca64b6fb77f3" title="2026-09-05 19-46-02.mp4" controls></video>
---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/286
Reviewed-by: 段舒康 <kdletters@qq.com >
Co-authored-by: 王德宇 <kvtodev@outlook.com >
Co-committed-by: 王德宇 <kvtodev@outlook.com >
2026-09-07 15:17:21 +08:00
lhk229
e20ea86ed9
放宽后台Agent工具计划环路测试超时口径
...
- final reply 请求捕获改用 wait_for_captured_mock_request 10 秒轮询预算,取代手写 recv_timeout 2 秒,消除持久化动作批次管线开销导致的单测 flaky
- 收尾等待改用 wait_for_agent_runtime_terminal_and_lane_release,确认 lane 释放、不留僵尸 worker
- 批量并行跑时的跨测试污染为既有系统性问题,本次不处理
2026-09-07 06:57:50 +00:00
lhk229
df6d885d2c
策划会话瞬态Provider故障自动退避重试
...
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
- invoke_provider_v2 错误携带主 Runtime 同款瞬态分类,timeout/connectivity/transport/空响应/反序列化/断流/上游408、429、5xx 不再直接判死
- run_turn_v2 对瞬态故障按 maxRetries 预算指数退避自动重试本回合,耗尽后才投 provider_failed 并附已重试次数,上游 4xx 硬错误仍直接失败
- 同步策划会话 Runtime V2 文档:tool_choice 口径改为 required,补充瞬态故障重试规则
2026-09-07 04:51:12 +00:00
lhk229
8eeaa43081
立项策划会话强制工具调用
...
- planning_session_v2 请求 toolChoice 由 Auto 改为 Required,消除模型跳过 plan_ask_question/plan_submit_gdd 而把 JSON 写进正文导致的 PLANNING_INVALID_OUTPUT 失败
2026-09-07 03:41:58 +00:00
lhk229
a371c60724
Merge remote-tracking branch 'origin/master' into feat/design_agent_simple
2026-09-07 03:07:54 +00:00
lhk229
d7a09276e6
合并 origin/master 到 feat/design_agent_simple
...
- 合入 AGC 官方 LLM Router 账号链路与流式联网输出(#242)
- 新增后台模型别名与对话选择能力及 AGC 模型目录
- 解决 ProjectSupervisorView.tsx 与 decision-log.md 冲突
2026-09-07 03:07:05 +00:00
lhk229
60fbee2353
修复设置页重新出现连接与工具 ( #287 )
...
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / Frontend tests (pull_request) Successful in 3m3s
Project CI / Backend tests (pull_request) Failing after 26s
Project CI / Native shell tests (pull_request) Successful in 20m54s
Project CI / Repository checks (push) Successful in 4m37s
Project CI / Frontend tests (push) Successful in 5m31s
Project CI / Backend tests (push) Successful in 8m38s
Project CI / Native shell tests (push) Successful in 20m0s
移除运行时配置中的连接与工具入口及 External Editor 字段
更新 AppSurface 回归断言,确保普通客户端不展示该入口
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/287
Reviewed-by: 段舒康 <kdletters@qq.com >
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-09-06 19:47:33 +08:00
lhk229
7d54aa6552
放宽策划V2修订续跑合同
...
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 3m10s
Project CI / Native shell tests (pull_request) Successful in 17m23s
允许审批修改后的 continuation 继续问询或直接提交完整 GDD
明确继承已确认问答与问询计数且不新增意图识别调用
2026-09-06 09:49:14 +00:00
kdletters
2975062c69
Merge pull request 'AGC 官方 LLM Router 账号链路与流式联网输出' ( #242 ) from feat/agc-llm-router-official-chain into master
...
Project CI / Repository checks (push) Successful in 3m22s
Project CI / Frontend tests (push) Successful in 3m16s
Project CI / Backend tests (push) Successful in 6m29s
Project CI / Native shell tests (push) Successful in 18m25s
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/242
2026-09-06 16:49:13 +08:00
lhk229
49d814fec1
清理策划V2已退役停止状态
...
Project CI / Repository checks (pull_request) Successful in 3m34s
Project CI / Frontend tests (pull_request) Successful in 4m21s
Project CI / Backend tests (pull_request) Successful in 7m56s
Project CI / Native shell tests (pull_request) Successful in 20m50s
删除 Planning V2 认领逻辑中的 stopped 死分支。
同步技术方案中的状态枚举和状态转移描述。
2026-09-06 08:43:07 +00:00
suzmii
6166094a3c
修复AGC配置测试字段
...
Project CI / Repository checks (pull_request) Successful in 2m46s
Project CI / Frontend tests (pull_request) Successful in 2m55s
Project CI / Backend tests (pull_request) Successful in 7m6s
Project CI / Native shell tests (pull_request) Successful in 18m3s
同步配置测试夹具使用 selected_model_id
移除已删除的 model_profiles 与 selected_model_profile_id 字段
2026-09-06 01:16:48 +08:00
suzmii
736a1b6ac6
接入 LLM Router 累计额度结算
...
Project CI / Repository checks (pull_request) Successful in 2m36s
Project CI / Frontend tests (pull_request) Successful in 3m15s
Project CI / Backend tests (pull_request) Successful in 7m35s
Project CI / Native shell tests (pull_request) Failing after 7m43s
按 Router used_quota 累计值与首次基线结算泥点
新增原子 checkpoint 事务及 llm_router_consume 钱包流水
同步额度查询校验、前端展示、生成绑定和技术文档
2026-09-06 00:36:31 +08:00
lhk229
4efa39420f
清理策划V2无效停止状态
...
Project CI / Repository checks (pull_request) Successful in 2m31s
Project CI / Frontend tests (pull_request) Successful in 2m54s
Project CI / Backend tests (pull_request) Successful in 6m2s
Project CI / Native shell tests (pull_request) Successful in 18m15s
移除没有生产写入路径的 stopped 会话状态
同步清理前端恢复状态映射
2026-09-05 12:51:14 +00:00
lhk229
90eae50dd3
修复策划V2错误结果展示
...
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
展示后端返回的错误回合结果
在缺少会话错误摘要时回填运行时错误
2026-09-05 12:29:18 +00:00
lhk229
e87cb98d3e
Merge branch 'master' into feat/design_agent_simple
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
2026-09-05 12:17:40 +00:00
lhk229
b84c9d4e45
修复策划V2不可变文件失败残留
...
失败时清理已创建的空文件或截断文件
保留已有文件的幂等与内容冲突校验
2026-09-05 12:17:04 +00:00
suzmii
78f547d26d
Merge remote-tracking branch 'origin/master' into feat/agc-llm-router-official-chain
...
Project CI / Repository checks (pull_request) Successful in 2m38s
Project CI / Frontend tests (pull_request) Successful in 3m46s
Project CI / Backend tests (pull_request) Successful in 6m35s
Project CI / Native shell tests (pull_request) Failing after 8m14s
# Conflicts:
# apps/ai-game-creator-shell/tests/appSurface/runtime-settings.suite.ts
2026-09-05 20:08:43 +08:00
suzmii
0b9fb40108
Merge remote-tracking branch 'origin/master' into feat/agc-llm-router-official-chain
...
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
# Conflicts:
# apps/ai-game-creator-shell/scripts/check-config.mjs
# apps/ai-game-creator-shell/src/features/runtime-config/RuntimeConfigDialog.tsx
# apps/ai-game-creator-shell/tests/appSurface/runtime-settings.suite.ts
2026-09-05 20:03:25 +08:00
kdletters
c4f344678f
收窄设置页删除改动
...
Project CI / Repository checks (push) Successful in 2m36s
Project CI / Frontend tests (push) Successful in 3m4s
Project CI / Backend tests (push) Successful in 8m42s
Project CI / Native shell tests (push) Successful in 20m38s
移除多余的页面回归门禁
清理已删除入口的冗余测试断言
2026-09-05 20:01:02 +08:00
lhk229
267c085b57
澄清策划V2流式事件契约
...
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
明确 Provider 流式传输属于底层实现能力
明确 text_delta 是 Runtime 内部事件而非前端业务事件
明确用户可见结果以结构化工具调用为准
补充文档措辞约束避免误读
2026-09-05 11:59:47 +00:00
lhk229
d3a7070bb4
Merge branch 'feat/design_agent_simple' of ssh://genarrative-station:2222/GenarrativeAI/Genarrative into feat/design_agent_simple
Project CI / Frontend tests (pull_request) Successful in 3m20s
Project CI / Repository checks (pull_request) Successful in 2m51s
Project CI / Backend tests (pull_request) Successful in 6m11s
Project CI / Native shell tests (pull_request) Successful in 21m46s
2026-09-05 11:49:35 +00:00
lhk229
6cc70af0a5
Merge branch 'master' into feat/design_agent_simple
Project CI / Repository checks (pull_request) Successful in 2m16s
Project CI / Frontend tests (pull_request) Successful in 3m0s
Project CI / Backend tests (pull_request) Successful in 7m26s
Project CI / Native shell tests (pull_request) Successful in 21m24s
2026-09-05 19:49:29 +08:00
suzmii
34e3f70409
补充服务启动配置校验并优化模型菜单
...
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
启动时校验 LLM Router 地址、模型和相关密钥配置
将刷新操作移入模型展开菜单并修复菜单样式覆盖
更新启动运维文档与定向测试
2026-09-05 19:48:27 +08:00
lhk229
f7b15f124f
修复策划V2澄清历史完整展示
...
统一解析回合结果与持久化历史中的问题结构
恢复历史消息中的问题正文、选项标签和选项说明
2026-09-05 11:38:40 +00:00
lhk229
2d7226dad8
修复策划V2修改意见撞项目锁
...
V2 审批、续跑、落盘、失败投影和 GDD 认领改为完整等待窗口
V2 hydrate 改为短窗口等待
前端 V2 hydrate 忽略瞬时锁争用
补充审批、续跑、hydrate 锁等待测试
同步决策、踩坑和技术方案
2026-09-05 11:28:37 +00:00
suzmii
4f3f0f24ff
接入AGC后台模型目录与对话模型选择
...
新增后台 AGC 模型目录、别名、启停和默认项管理
客户端设置页恢复原状,对话框右下角按别名选择模型
服务端按稳定模型标识映射并校验实际模型白名单
修复 AGC 配套后端端口漂移、启动等待和 SpacetimeDB 版本检查
补充迁移、文档、启动与模型选择测试
2026-09-05 19:10:49 +08:00
lhk229
4127686e18
修复新建项目锁误触发 Windows UAC
...
Project CI / Repository checks (pull_request) Failing after 15s
Project CI / Backend tests (pull_request) Failing after 16s
Project CI / Frontend tests (pull_request) Successful in 2m39s
Project CI / Native shell tests (pull_request) Successful in 17m50s
新建 sidecar 改为本进程收紧 DACL,不再因继承 ACE 自动提权。
项目锁先写入并释放独占句柄后再 harden,回读内容校验,不再对这把新锁走 prepare_for_read。
提权 ArgumentList 改为一条按 Windows 规则加引号的字符串,避免含空格路径被拆开。
补充含空格项目根取锁与 quoted ArgumentList 定向测试。
同步 ACL 提权边界、决策记录和排障记录。
2026-09-05 10:53:15 +00:00
lhk229
1019403f40
修复策划GDD修改后自动续跑
...
审批 revise 后继续同一 V2 Session
避免修订意见重复写入历史
保留独立修订回合身份
2026-09-05 09:41:20 +00:00
kdletters
524e2f0f4f
删除连接与工具设置页
...
Project CI / Repository checks (push) Successful in 2m34s
Project CI / Frontend tests (push) Successful in 3m3s
Project CI / Backend tests (push) Successful in 6m53s
Project CI / Native shell tests (push) Successful in 17m53s
移除运行设置中的连接与工具导航及页面内容
更新运行设置测试以校验该入口已删除
同步配置门禁,防止已删除页面重新出现
2026-09-05 17:39:05 +08:00
lhk229
bd8e33eb60
禁用策划V2失败重试入口
...
Project CI / Frontend tests (pull_request) Successful in 2m53s
Project CI / Native shell tests (pull_request) Successful in 18m26s
Project CI / Repository checks (pull_request) Successful in 2m29s
Project CI / Backend tests (pull_request) Successful in 6m6s
Provider 失败时只展示错误信息
避免误调用通用 Supervisor 重试链路
2026-09-05 09:11:05 +00:00
lhk229
c03d1ef6fc
修复策划Provider失败后的恢复状态
...
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
将 provider_failed 投影为可恢复的 failed 状态
让策划工作台显示重新启动入口
2026-09-05 09:04:15 +00:00
lhk229
d47928ceba
修复策划V2问询交互与历史展示
...
Project CI / Repository checks (pull_request) Successful in 44m58s
Project CI / Frontend tests (pull_request) Successful in 45m27s
Project CI / Backend tests (pull_request) Failing after 48m47s
Project CI / Native shell tests (pull_request) Failing after 5m21s
回答提交后立即收起当前问询卡
保留选项回答和完整选项描述到历史
补充 GDD 历史条目的一句话与决策摘要
2026-09-05 08:26:31 +00:00
lhk229
b1456d9f11
修正策划V2流式交互契约
...
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
明确用户交互以工具调用结果为准
取消逐 delta 投影的业务契约要求
同步技术方案与长期决策记录
2026-09-05 08:17:04 +00:00
lhk229
27246fbc5e
收口P4并关闭旧版策划入口
...
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
旧 project-supervisor-plan 来源统一返回退役错误
避免旧入口启动 Runtime 或 Provider
同步收口 P4 验收状态与最简 P5 方案
记录 V1 不迁移且历史文件只读保留
2026-09-05 08:10:26 +00:00
lhk229
ae700de1dd
修复 Rust 文件格式
...
Project CI / Repository checks (pull_request) Successful in 3m21s
Project CI / Frontend tests (pull_request) Successful in 4m4s
Project CI / Backend tests (pull_request) Successful in 7m38s
Project CI / Native shell tests (pull_request) Successful in 18m42s
删除 planning_session_v2.rs 末尾多余空行
通过 rustfmt、编码检查和 diff 检查
2026-09-05 07:50:46 +00:00
lhk229
573940f1ad
删除多余的测试
Project CI / Repository checks (pull_request) Failing after 52s
Project CI / Backend tests (pull_request) Successful in 5m53s
Project CI / Frontend tests (pull_request) Successful in 3m16s
Project CI / Native shell tests (pull_request) Successful in 17m5s
2026-09-05 07:27:44 +00:00
lhk229
861ed14a6f
补充策划问询不对称设计说明
...
明确模型侧 3 轮策略与 Runtime 侧 8 个问题门禁的分层语义
补充自动评测和代码评审口径,说明两者有意不对称
2026-09-05 07:07:31 +00:00
lhk229
eabd8f393a
将策划决策轮次交由Runtime管理
...
Project CI / Repository checks (pull_request) Successful in 4m24s
Project CI / Frontend tests (pull_request) Successful in 20m53s
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Failing after 13m28s
移除Provider输入中的 decisions.round 字段
由Runtime按决策顺序生成持久化轮次
放宽GDD实际门禁并同步模型数量上限
2026-09-05 06:07:32 +00:00
suzmii
ccb3a3ab6a
修复资源保存后的自动聚焦
...
Project CI / Frontend tests (pull_request) Successful in 3m21s
Project CI / Repository checks (pull_request) Successful in 6m18s
Project CI / Backend tests (pull_request) Successful in 6m46s
Project CI / Native shell tests (pull_request) Successful in 17m19s
将保存后资源卡的 DOM 查找范围改为资源画本管理器\n确保新派生资源和恢复资源在布局就绪后能够进入详情聚焦
2026-09-05 13:04:54 +08:00
lhk229
250360a40a
放宽GDD一句话概念校验范围
...
删除决策首项必须为 confirmed 且 round=0 的阻断校验
将 Runtime 的 oneLiner 实际接受范围调整为 10~160
将模型 schema 提示范围调整为 25~90 并记录有意不对称设计
修复 Planning V2 系统提示词参数占位符
2026-09-05 05:00:32 +00:00
suzmii
879e732b04
完善资源分页依赖
...
Project CI / Frontend tests (pull_request) Failing after 2m32s
Project CI / Repository checks (pull_request) Successful in 2m54s
Project CI / Native shell tests (pull_request) Failing after 6m19s
Project CI / Backend tests (pull_request) Successful in 6m39s
按资源类别签名刷新分页类别\n避免资源数量不变时使用过期类别,同时保持稳定引用避免无关编辑面板重置
2026-09-05 12:20:47 +08:00
suzmii
cac3e19632
修复资源分页类别缓存
...
Project CI / Frontend tests (pull_request) Failing after 2m47s
Project CI / Repository checks (pull_request) Successful in 3m4s
Project CI / Native shell tests (pull_request) Failing after 5m49s
Project CI / Backend tests (pull_request) Successful in 7m12s
资源数组变化时重新计算资源分页类别\n避免资源总数不变但类别更新后继续使用旧分页状态
2026-09-05 11:59:23 +08:00
suzmii
cd17ae8123
修复资源主画布无限平移与滚轮交互
...
分离固定交互视口与可平移缩放的内容层
支持主画布滚轮平移并保留缩放及主子画布视口记忆
补充越界拖动和滚轮回归测试并同步技术文档
2026-09-05 11:41:16 +08:00
suzmii
41c9ee7db4
Merge branch 'master' into feat/game-agent-canvas-resource-workbench-v2
Project CI / Frontend tests (pull_request) Failing after 2m23s
Project CI / Repository checks (pull_request) Successful in 2m34s
Project CI / Native shell tests (pull_request) Failing after 4m58s
Project CI / Backend tests (pull_request) Successful in 6m51s
2026-09-05 11:23:18 +08:00
suzmii
ba718e3d4b
重构资源画本独立转场与中断处理
...
Project CI / Repository checks (pull_request) Failing after 15s
Project CI / Backend tests (pull_request) Failing after 15s
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
使用独立FLIP快照层和Web Animations统一动画收尾
统一分类导航并保留滚轮节流和各画布视口
修复快照缩放与悬停导致的终点偏移
补充动画回归测试并更新资源画本技术文档
2026-09-05 11:21:17 +08:00
suzmii
65ffd4cc69
取消资源画本返回主画布的二次平移动画
...
新增 returning-main 阶段,区分返回主画布与进入子画布的 transform 过渡。
返回期间取消残留分页事件和进行中的子画布切换,避免返回流程被重新改写。
补充状态机与 appSurface 回归测试,并同步技术方案文档。
2026-09-05 09:25:52 +08:00
suzmii
5bcaca7233
重构资源画本画布与转场状态
...
统一主画布与子画布的可见渲染层和 viewport 状态管理。
将子画布改为固定视口加无限平移 world,并保证首次 fit 的可读比例。
补充转场、滚轮、viewport 和资源画本回归测试,更新技术方案文档。
2026-09-05 09:10:56 +08:00
lhk229
d1a8bed685
调整策划问询轮次提示
...
Project CI / Repository checks (pull_request) Successful in 2m27s
Project CI / Frontend tests (pull_request) Successful in 2m59s
Project CI / Native shell tests (pull_request) Failing after 6m11s
Project CI / Backend tests (pull_request) Successful in 5m58s
原型与生产 prompt 统一明确最多提问三轮
允许信息足够时提前出稿并补充重玩动力优先级
不改 Runtime 工作流、schema、校验和持久化逻辑
2026-09-04 14:22:14 +00:00
lhk229
1b764fd878
补充策划 Provider 诊断持久化
...
保存 Planning V2 每次 Provider 尝试的请求、响应和解析分类产物
诊断写入不参与工作流、恢复、重试或 GDD 判断
同步 Planning V2 技术方案与项目决策记录
2026-09-04 13:22:34 +00:00
lhk229
9a692ec543
同步策划 GDD 字段提示
...
将生产 V2 的 GDD 描述与原型统一为按字段填全且不增删改名
不改工作流、schema 或解析逻辑
2026-09-04 12:54:32 +00:00
lhk229
0c7ddf26db
调整策划 V2 决定 ID 由 Runtime 分配
...
删除 plan_submit_gdd Provider schema 中的 decisions[].id 和 prototypeValidationItems[].id
由 Runtime 生成 initial-request 与后续决定 ID,并绑定原型验证项
同步更新 Planning V2 技术方案和项目决策记录
2026-09-04 12:15:45 +00:00
suzmii
76f0c8e58e
Merge branch 'master' into feat/agc-llm-router-official-chain
Project CI / Repository checks (pull_request) Successful in 3m39s
Project CI / Frontend tests (pull_request) Successful in 4m0s
Project CI / Backend tests (pull_request) Successful in 8m3s
Project CI / Native shell tests (pull_request) Successful in 19m58s
2026-09-04 19:07:08 +08:00
lhk229
c454b22428
Merge branch 'master' into feat/design_agent_simple
Project CI / Repository checks (pull_request) Successful in 3m27s
Project CI / Frontend tests (pull_request) Successful in 4m16s
Project CI / Backend tests (pull_request) Successful in 7m21s
Project CI / Native shell tests (pull_request) Successful in 18m19s
2026-09-04 18:48:14 +08:00
lhk229
ca62243628
修复策划 V2 孤儿 GDD 无法恢复
...
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
把 gdd.vN.json 创建成功当作提交点
persist、hydrate 与回合启动认领下一连续版本并补投影
重试不再用新 UUID 覆盖同一版本
补充孤儿认领与下一版本分配测试
2026-09-04 10:47:17 +00:00
lhk229
c1d967b17d
将策划 V2 输出从正文 JSON 改为协议工具
...
Project CI / Backend tests (pull_request) Failing after 14s
Project CI / Repository checks (pull_request) Failing after 14s
Project CI / Native shell tests (pull_request) Successful in 17m12s
Project CI / Frontend tests (pull_request) Successful in 3m43s
挂 plan_ask_question / plan_submit_gdd,tool_choice 固定 auto
删除正文 JSON 解析、骨架提示词和入参 schemaVersion 必填
形状改由工具 schema 承担,既有校验门禁与落盘 plan-gdd.v2 不变
同步技术方案、决策记录和 DeepSeek thinking 排障
2026-09-04 10:10:50 +00:00
suzmii
820fbfd988
修复子画布缩放并支持Ctrl滚轮与右下角缩放控件
...
美术资源初始适配不再放大过头
scene层支持Ctrl滚轮锚点缩放,普通滚轮保留翻页
2026-09-04 16:41:39 +08:00
suzmii
069248b296
子画布展开改用真实坐标与视口承载
...
资源卡拖拽使用模型坐标换算,消除阻力和回弹
子画布空白区域支持画布平移,保持进入退出动画连贯
2026-09-04 16:31:50 +08:00
k88936
f9e1e5d2a7
Fix/修复ui editor选择逻辑 ( #270 )
...
Project CI / Backend tests (push) Successful in 7m35s
Project CI / Repository checks (push) Successful in 3m2s
Project CI / Frontend tests (push) Successful in 3m24s
Project CI / Native shell tests (push) Successful in 18m52s
close #266
当前实现: 按下就重新选择
实际上应该: 松开而且没有发生拖动才重新选择
before:

after:

Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/270
Co-authored-by: 王德宇 <kvtodev@outlook.com >
Co-committed-by: 王德宇 <kvtodev@outlook.com >
2026-09-04 16:30:43 +08:00
lhk229
67c2f85743
精简策划 V2 提示词为形状和策略
...
Project CI / Backend tests (pull_request) Failing after 21s
Project CI / Repository checks (pull_request) Failing after 15s
Project CI / Frontend tests (pull_request) Successful in 2m54s
Project CI / Native shell tests (pull_request) Successful in 19m25s
system prompt 只保留问询/GDD 骨架、同级字段边界和一行易错数量范围
去掉逐字段长度清单和 V1 编排残留说明,校验与重试路径不变
同步 Runtime V2 技术方案和项目决策记录
2026-09-04 08:04:14 +00:00
suzmii
87c0cbd06d
修复 Provider 代理错误外发 AGC 主站客户端标记
...
Project CI / Repository checks (pull_request) Successful in 3m13s
Project CI / Frontend tests (pull_request) Successful in 3m34s
Project CI / Backend tests (pull_request) Successful in 7m43s
Project CI / Native shell tests (pull_request) Successful in 19m55s
仅 PlatformSession 的 /api/llm 主站路由携带 x-genarrative-client 标记
通用 Provider 与第三方凭据桥接不再自动附加该标记
补充主站路由代理的标记回归测试
2026-09-04 15:52:47 +08:00
suzmii
9c85a9501e
调整资源画本hover高亮仅用于未展开主画布
...
Project CI / Repository checks (pull_request) Failing after 2m58s
Project CI / Frontend tests (pull_request) Failing after 2m33s
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
子画布展开态不再显示hover高亮线
未展开缩略卡hover时标题栏三边高亮,底边接缝保持默认色
2026-09-04 15:46:42 +08:00
suzmii
816844065b
拆分子画布标题与本体hover高亮
...
Project CI / Repository checks (pull_request) Failing after 2m52s
Project CI / Frontend tests (pull_request) Failing after 2m17s
Project CI / Native shell tests (pull_request) Failing after 6m15s
Project CI / Backend tests (pull_request) Successful in 6m37s
标题栏与本体分别作为独立对象绑定同一hover源
标题栏底边与本体顶边接缝保持默认色不高亮
2026-09-04 15:42:16 +08:00
lhk229
45568797f9
将策划 V2 既有阻断校验回灌给 Provider
...
把当前 question/GDD 硬校验契约写入 V2 system prompt,不扩大校验范围或新增门禁
校验失败的一次重试改为列出具体阻断原因并要求逐项修复
同步 Runtime V2 技术方案和项目决策记录
2026-09-04 07:40:36 +00:00
suzmii
8323b13fd3
Merge branch 'master' into feat/game-agent-canvas-resource-workbench-v2
Project CI / Frontend tests (pull_request) Failing after 2m29s
Project CI / Repository checks (pull_request) Failing after 2m49s
Project CI / Backend tests (pull_request) Successful in 6m39s
Project CI / Native shell tests (pull_request) Failing after 5m51s
2026-09-04 15:22:34 +08:00
suzmii
13639d9f8c
修复 AGC 运行时配置模型方案测试断言
...
Project CI / Repository checks (pull_request) Successful in 4m23s
Project CI / Frontend tests (pull_request) Successful in 5m11s
Project CI / Backend tests (pull_request) Successful in 7m25s
Project CI / Native shell tests (pull_request) Failing after 15m15s
将推理档断言迁移到模型方案管理面板的推理档位选择器
补充持久化测试 fixture 的 modelProfiles 与选中方案字段
同步保存回写断言中的模型方案结构
2026-09-04 15:19:01 +08:00
suzmii
f883d4bf2e
修复从项目入口首次进入主画布的错位
...
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Failing after 10s
移除主画布入场缩放动画避免测量和终态不一致
无效缩略卡测量结果不再直接展示共享场景
2026-09-04 15:13:19 +08:00
suzmii
019b1761f4
修复资源画本首次布局错位
...
Project CI / Repository checks (pull_request) Failing after 9s
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
首帧测量未完成时隐藏共享场景,避免标题和卡片使用默认坐标
在首帧和资源数量变化后重新校准缩略卡布局
2026-09-04 15:03:28 +08:00
suzmii
020f7d7a7a
修复 Router 凭据并发一致性问题
...
Project CI / Repository checks (pull_request) Failing after 8m28s
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
移除 Router Key 进程内 TTL 缓存,改为每次读取权威账号状态并即时解密当前密文
Router 账号写入改为同主键原地更新,避免 delete+insert 读取缺口
新增 owner/route 映射冲突校验,防止并发写入插入重复账号行
同步更新后端数据契约文档中的凭据读取语义
2026-09-04 14:08:16 +08:00
suzmii
f339b383f5
实现资源画本统一节点转场
...
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
重构主画布与子画布为共享资源卡和标题栏节点
补充缩略堆叠、进入返回动画、遮罩与定位适配
同步更新资源画本 UI 技术方案文档
2026-09-04 14:06:24 +08:00
suzmii
aa47fa833d
Merge remote-tracking branch 'origin/master' into feat/agc-llm-router-official-chain
2026-09-04 13:54:16 +08:00
suzmii
4bbef74859
feat: AGC 支持模型方案选择
...
新增 Router 模型目录接口并返回可用模型列表
客户端配置新增模型方案与当前选中方案字段
设置页新增模型方案卡片和管理弹层,支持方案名称、模型和推理强度
自定义下拉菜单圆角、遮罩层级与窗口边界定位,并隐藏滚动条
AGC 官方路由保留所选模型并携带客户端标记,由服务端校验后转发
补齐配置结构变更后的既有测试初始化字段
2026-09-04 13:52:00 +08:00
lhk229
8d13e868bd
AGC 更新提示增加 X 关闭按钮 ( #276 )
...
Project CI / Frontend tests (push) Successful in 8m49s
Project CI / Repository checks (push) Successful in 8m50s
Project CI / Backend tests (push) Successful in 10m3s
Project CI / Native shell tests (push) Failing after 20m52s
## 变更内容
- 为 AGC 更新提示增加可访问的 X 关闭按钮。
- 复用现有 dismiss 逻辑,手动关闭后立即移除提示。
- 增加关闭按钮的 hover、禁用和图标样式。
## 验证
- npm --prefix apps/ai-game-creator-shell run typecheck
- npm exec vitest run apps/ai-game-creator-shell/tests/appUpdate.test.ts
- npm run check:encoding
- git diff --check
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/276
Reviewed-by: 段舒康 <kdletters@qq.com >
Co-authored-by: 孔令弘 <ink29535@proton.me >
Co-committed-by: 孔令弘 <ink29535@proton.me >
2026-09-04 11:24:21 +08:00
suzmii
938c37ca1b
修复 AGC 本地 Provider Smoke 路由
...
Project CI / Repository checks (pull_request) Successful in 3m54s
Project CI / Frontend tests (pull_request) Successful in 5m1s
Project CI / Backend tests (pull_request) Successful in 8m26s
Project CI / Native shell tests (pull_request) Successful in 18m51s
允许显式 Debug E2E 开关使用 loopback Provider
为 smoke 子进程透传环境并启用 Debug E2E 开关
2026-09-03 23:27:54 +08:00
suzmii
d0d3466a56
修复 Direct MCP 路径文案泄露
...
Project CI / Repository checks (pull_request) Successful in 4m24s
Project CI / Frontend tests (pull_request) Successful in 4m46s
Project CI / Backend tests (pull_request) Successful in 7m44s
Project CI / Native shell tests (pull_request) Failing after 13m40s
平台无关拒绝盘符、绝对路径和上级目录
避免未审核路径出现在 Direct Codex 活动文案中
2026-09-03 21:42:39 +08:00
lhk229
f35ec812d9
完善策划 V2 人工测试与推断语义
...
修复做方案首轮额外命名等待、处理中反馈和重复错误展示
补全 GDD 输出字段提示,避免模型生成非法 decisions 字段
统一 V2 assumption_pending 与 agent_inferred 语义并同步核心闭环问询策略
保持旧 Supervisor/V1 的 default_pending 与 default 语义不变
更新 Runtime V2 技术方案和项目决策记录
2026-09-03 13:15:14 +00:00
suzmii
75da77dcb4
Merge remote-tracking branch 'origin/master' into feat/agc-llm-router-official-chain
Project CI / Repository checks (pull_request) Successful in 2m31s
Project CI / Backend tests (pull_request) Successful in 8m6s
Project CI / Frontend tests (pull_request) Successful in 3m57s
Project CI / Native shell tests (pull_request) Has been cancelled
2026-09-03 20:07:51 +08:00
suzmii
703b90938b
合并 master 并保留 Router 账号链路整改
...
合并 origin/master 最新 UI 编辑器与 AGC 运行时变更
保留 external_api_key 恢复为 master 原始结构
保留 LLM Router 凭据统一存储于 llm_router_account 的整改
解决 App.tsx 与 appSurface 测试冲突并完成定向验证
2026-09-03 20:05:50 +08:00
k88936
f5f94111ca
Feat/图片绑定选择器改用带预览的模态框 ( #269 )
...
Project CI / Native shell tests (push) Successful in 20m12s
Project CI / Repository checks (push) Successful in 2m42s
Project CI / Frontend tests (push) Successful in 3m39s
Project CI / Backend tests (push) Successful in 7m18s
Project CI / Backend tests (pull_request) Failing after 9s
Project CI / Repository checks (pull_request) Failing after 9s
Project CI / Native shell tests (pull_request) Failing after 32m52s
Project CI / Frontend tests (pull_request) Failing after 44m27s
before:

after:

close #268
---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/269
Co-authored-by: 王德宇 <kvtodev@outlook.com >
Co-committed-by: 王德宇 <kvtodev@outlook.com >
2026-09-03 20:02:48 +08:00
suzmii
cbc73f111c
恢复外部 API Key 表并统一 Router 账号存储
...
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
恢复 external_api_key 表及客户端绑定为 master 原始结构
将 LLM Router 凭据、状态、撤销和缓存统一收敛到 llm_router_account
移除后台与契约中的 purpose 字段及 Router 专用撤销 procedure
同步更新架构文档并补齐相关测试契约
2026-09-03 19:43:10 +08:00
lhk229
64105f8259
Merge branch 'master' into feat/design_agent_simple
Project CI / Repository checks (pull_request) Successful in 2m18s
Project CI / Frontend tests (pull_request) Successful in 2m59s
Project CI / Backend tests (pull_request) Successful in 7m37s
Project CI / Native shell tests (pull_request) Successful in 20m49s
2026-09-03 11:42:40 +00:00
k88936
4cd53688e9
Feat/优化UI编辑器inspector offset编辑部分UI ( #265 )
...
Project CI / Repository checks (push) Successful in 2m21s
Project CI / Frontend tests (push) Successful in 3m37s
Project CI / Backend tests (push) Successful in 6m21s
Project CI / Native shell tests (push) Successful in 19m48s
before:

after:

close #267
---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/265
Co-authored-by: 王德宇 <kvtodev@outlook.com >
Co-committed-by: 王德宇 <kvtodev@outlook.com >
2026-09-03 19:36:18 +08:00
lhk229
eecd097117
Merge branch 'master' into feat/design_agent_simple
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
2026-09-03 19:32:23 +08:00
kdletters
cb7bc50ef9
Merge pull request 'UI编辑器撤销回退功能' ( #261 ) from feat/ui-editor-edit-history into master
...
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/261
2026-09-03 19:31:25 +08:00
kdletters
b7641f94b7
Merge branch 'master' into feat/ui-editor-edit-history
Project CI / Repository checks (pull_request) Successful in 2m40s
Project CI / Frontend tests (pull_request) Successful in 3m6s
Project CI / Backend tests (pull_request) Successful in 6m40s
Project CI / Native shell tests (pull_request) Successful in 20m27s
2026-09-03 19:30:43 +08:00
k88936
520b9344ef
Fix/AGC上下文丢失问题 ( #247 )
...
Project CI / Frontend tests (push) Successful in 3m27s
Project CI / Backend tests (push) Successful in 7m20s
Project CI / Repository checks (push) Successful in 3m1s
Project CI / Native shell tests (push) Has been cancelled
权衡之后选择附加历史消息构造一个巨大的prompt
before:
```
1. user: aabb
2. assistant: bbaa 这里codex崩溃了或者重启上下文丢失
```
after:
重启之后发送新消息abab
codex看到:
```
user: aabb
assistant: bbaa
这里崩溃了!
user: abab
```
移除了原来的"会话最后只有用户消息就自动重新发送用户消息"功能, 因为存在冲突: 现在的实现是每次用户手动发送新消息才做以上的步骤
before and after:

Close #249
---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/247
Co-authored-by: 王德宇 <kvtodev@outlook.com >
Co-committed-by: 王德宇 <kvtodev@outlook.com >
2026-09-03 19:30:21 +08:00
lhk229
059808d9e8
接入策划会话 Runtime V2 入口与界面
...
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
做方案入口改用 start/continue/decide_planning_session_v2 命令
新增 V2 Session、问题、GDD 和审批结果的前端适配层
接通 hydrate 会话历史、流式回复、问询卡、审批卡和处理耗时展示
保持做游戏、做素材及无 V2 旧项目读取路径不变
同步策划入口回归测试、Runtime V2 技术方案和项目决策记录
2026-09-03 11:29:55 +00:00
suzmii
270aa38ccb
Merge branch 'master' into feat/agc-llm-router-official-chain
Project CI / Repository checks (pull_request) Successful in 3m32s
Project CI / Frontend tests (pull_request) Successful in 3m40s
Project CI / Backend tests (pull_request) Successful in 7m25s
Project CI / Native shell tests (pull_request) Failing after 13m42s
2026-09-03 19:04:22 +08:00
suzmii
6d41dc2f89
切换 LLM Router 凭据到专用账号表
...
Project CI / Backend tests (pull_request) Failing after 15s
Project CI / Repository checks (pull_request) Failing after 16s
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
- 将 Router 账号、API Key 元数据和密文统一保存到 llm_router_account
- 增加 Router API Key 的进程内缓存并清理旧 external_api_key 兼容路径
- 更新 SpacetimeDB 绑定、后端架构文档和决策记录
2026-09-03 19:03:40 +08:00
lhk229
4d33553466
Merge branch 'master' into feat/design_agent_simple
Project CI / Repository checks (pull_request) Successful in 3m26s
Project CI / Frontend tests (pull_request) Successful in 4m1s
Project CI / Backend tests (pull_request) Successful in 6m33s
Project CI / Native shell tests (pull_request) Failing after 3m40s
2026-09-03 10:14:51 +00:00
lhk229
12da570d28
策划 Agent Runtime V2 完成 P2 产物闭环
...
新增单 Agent GDD 策略、版本产物和审批命令
补齐问询计数、上下文进度和输出校验边界
注册 Planning V2 Tauri 命令并纳入私有产物路径
更新 Runtime V2 技术方案与项目决策记录
2026-09-03 10:04:48 +00:00
kdletters
3e034d681d
修复 master CI 的 Codex CLI 失败状态竞态 ( #273 )
...
Project CI / Frontend tests (push) Successful in 3m0s
Project CI / Backend tests (push) Successful in 6m29s
Project CI / Repository checks (push) Successful in 2m39s
Project CI / Native shell tests (push) Successful in 20m46s
修复 Codex CLI 子进程提前退出时 stdin BrokenPipe 导致未采集真实退出码的问题。\n\n- BrokenPipe 时继续等待并采集脱敏 stderr\n- 非零退出优先返回真实退出码\n- 保留其他 stdin 错误的快速失败行为\n\n已验证:Codex CLI 失败回归测试、cargo fmt、编码检查、git diff --check。
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/273
Co-authored-by: kdletters <kdletters@qq.com >
Co-committed-by: kdletters <kdletters@qq.com >
2026-09-03 17:34:28 +08:00
lhk229
d70f635eae
Merge remote-tracking branch 'origin/master' into feat/design_agent_simple
...
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
2026-09-03 08:41:57 +00:00
k88936
51b7d51d01
Merge branch 'master' into feat/ui-editor-edit-history
Project CI / Backend tests (pull_request) Successful in 7m2s
Project CI / Repository checks (pull_request) Successful in 3m8s
Project CI / Frontend tests (pull_request) Successful in 3m9s
Project CI / Native shell tests (pull_request) Successful in 21m38s
2026-09-03 16:08:23 +08:00
suzmii
c12d744d91
合并master并保留双侧最新决策记录
...
Project CI / Frontend tests (pull_request) Successful in 3m16s
Project CI / Repository checks (pull_request) Successful in 2m37s
Project CI / Backend tests (pull_request) Successful in 7m14s
Project CI / Native shell tests (pull_request) Failing after 21m2s
合入主站 AGC 请求头归属与项目命名链路改动。
保留本分支 Direct 过程卡决策记录。
保留主站登录归属、workspace 边界与 Native shell 决策记录。
2026-09-03 16:04:04 +08:00
suzmii
e34d797336
修复 AGC 确定性 E2E 与 master 合并后的运行链路
...
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / Frontend tests (pull_request) Successful in 2m59s
Project CI / Repository checks (pull_request) Failing after 21s
Project CI / Native shell tests (pull_request) Failing after 16m26s
合并 master 后 isolated AppData 配置改为私有副本,避免 Windows 安全校验拒绝硬链接。
只读 runner 状态命令显式配置 config dir,避免误读为 runner 未启用。
为 debug 构建增加仅 E2E 显式开启的确定性 Provider 路由开关,并补充回归测试。
兼容 Windows 对私有副本权限位的校验差异。
2026-09-03 15:59:19 +08:00
suzmii
d5e05d79fe
优化项目名称显示与命名链路 ( #248 )
...
Project CI / Repository checks (push) Successful in 2m49s
Project CI / Frontend tests (push) Successful in 2m45s
Project CI / Backend tests (push) Successful in 7m4s
Project CI / Native shell tests (push) Failing after 15m31s
## 优化项目名称显示与命名链路
关联:#245
按 Issue 中的需求文档实现:
- 新增项目名称修改入口,保存到本地项目 \.agent/manifest.json\
- 项目页、当前项目上下文、窗口标题在重命名后同步刷新
- 首页自动创建工作区时,根据用户输入用 LLM 提炼项目名
- LLM 命名失败或返回非法内容时,回退现有默认名,不阻断创作流程
---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/248
Co-authored-by: suzmii <suzmii@qq.com >
Co-committed-by: suzmii <suzmii@qq.com >
2026-09-03 15:50:55 +08:00
lhk229
8b4c3792c7
主站对AGC请求头做特殊处理和记录 ( #246 )
...
Project CI / Repository checks (push) Successful in 2m43s
Project CI / Frontend tests (push) Successful in 3m26s
Project CI / Backend tests (push) Successful in 6m23s
Project CI / Native shell tests (push) Successful in 20m45s
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/246
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-09-03 15:33:26 +08:00
lhk229
e38edfb446
冻结策划会话 Runtime V2 P0 合同
...
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
固定 Session、消息、回合结果、GDD 产物和审批记录的 V2 schema。
固定四个 V2 command、输入归一化和 questionLimit=8 语义。
固定 Provider adapter、ContextBuilder、能力快照及未来 MCP/Skill 扩展边界。
固定旧 Supervisor 链路 legacy-cutover 封存和未完成会话强制失败规则。
标记 P0 完成并同步项目决策记录。
2026-09-03 07:25:19 +00:00
lhk229
044c8cfadf
补充策划会话 Runtime V2 接入与旧链路退役方案
...
新增单 Agent PlanningSessionRuntime V2 的目标架构、状态、持久化和未来 MCP/Skill 兼容边界。
补充 P0-P5 阶段任务拆分、阶段目标、依赖和验收条件。
补充问询上限、Provider 失败、审批、恢复和旧链路强制退役的 BDD 场景。
明确 V2 切换时未完成旧 Supervisor 会话统一投影为 legacy_retired 失败,历史文件只读保留。
同步 docs README、文档地图和项目决策记录。
2026-09-03 07:05:11 +00:00
k88936
0c0cad7fa4
Merge branch 'master' into feat/ui-editor-edit-history
Project CI / Repository checks (pull_request) Failing after 1m57s
Project CI / Frontend tests (pull_request) Successful in 4m9s
Project CI / Backend tests (pull_request) Successful in 6m17s
Project CI / Native shell tests (pull_request) Failing after 20m35s
2026-09-03 14:44:36 +08:00
k88936
9fd160efc5
合并批量组件绑定历史记录
...
Project CI / Repository checks (pull_request) Failing after 11s
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / Frontend tests (pull_request) Successful in 3m7s
Project CI / Native shell tests (pull_request) Successful in 22m4s
批处理中的前置绑定批次跳过历史,最后一批使用非跳过替换统一形成撤销边界
为跳过后记录历史的状态基线补充撤销回归测试
2026-09-03 14:42:38 +08:00
suzmii
f86a1320f6
Merge remote-tracking branch 'origin/master' into feat/agc-llm-router-official-chain
2026-09-03 14:41:44 +08:00
suzmii
9ae3aba092
清理已退役工具测试并补充 Router 账号文档
...
Project CI / Repository checks (pull_request) Failing after 11s
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / Frontend tests (pull_request) Successful in 3m26s
Project CI / Native shell tests (pull_request) Has been cancelled
删除已移除 Skill 引用工具的遗留专用测试
补充 llm_router_account 表结构与用途说明
2026-09-03 14:35:22 +08:00
suzmii
8aaa3f5c7b
修复运行时配置诊断阻塞窗口
...
Project CI / Repository checks (pull_request) Failing after 15s
Project CI / Backend tests (pull_request) Failing after 15s
Project CI / Native shell tests (pull_request) Failing after 11m21s
Project CI / Frontend tests (pull_request) Successful in 11m46s
将 Codex CLI 与 app-server 探测移入 Tokio 阻塞线程池
保持 GameAgent 运行时配置读写流程不变
增加异步 LLM 配置诊断回归测试并补充技术方案约束
2026-09-03 14:24:40 +08:00
suzmii
75845bd7e9
Merge remote-tracking branch 'origin/feat/agc-llm-router-official-chain' into feat/agc-llm-router-official-chain
Project CI / Repository checks (pull_request) Failing after 9s
Project CI / Frontend tests (pull_request) Successful in 3m2s
Project CI / Backend tests (pull_request) Failing after 12s
Project CI / Native shell tests (pull_request) Failing after 7m30s
2026-09-03 13:42:19 +08:00
suzmii
4f79a275a8
美化 AGC 客户端设置页
...
收敛账号与角色协作展示文案
增加账号状态检测动画和状态卡片样式
将流式输出与联网检索整理为单列
更新设置页回归测试与配置护栏
2026-09-03 13:39:32 +08:00
k88936
e4680d6f70
统一节点变换实时预览
...
Project CI / Frontend tests (pull_request) Successful in 3m17s
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / Repository checks (pull_request) Failing after 12s
Project CI / Native shell tests (pull_request) Successful in 19m52s
预览拖动和缩放时同步解析保持子节点页面矩形的变换
将检查器的子节点保持选项传入预览交互并补充回归测试
2026-09-03 13:38:19 +08:00
k88936
79d3e5e6de
保留颜色草稿卸载时的修改
...
组件卸载前提交仍未关闭的颜色草稿,避免切换面板或删除组件导致颜色丢失
2026-09-03 13:17:15 +08:00
k88936
08caa1f29f
防止资源比较循环递归溢出
...
为 sameResource 增加对象对访问跟踪,遇到循环结构时安全终止递归
2026-09-03 13:15:49 +08:00
k88936
6b332e8c12
阻止快捷键重复触发历史操作
...
忽略 keydown 重复事件,避免长按撤销或重做键耗尽历史记录
2026-09-03 13:15:17 +08:00
k88936
cb86ab8be9
减少编辑器历史快照复制
...
提交历史时复用已克隆的 nextState,避免每次编辑产生冗余深拷贝
2026-09-03 13:15:01 +08:00
k88936
071998fee9
提取编辑器历史上限常量
...
为撤销历史容量 100 增加命名常量,便于理解和调节内存权衡
2026-09-03 13:14:43 +08:00
k88936
d60d93a327
简化预览变换查找
...
单次读取节点预览变换,移除重复 Map 查找和非空断言
2026-09-03 13:14:18 +08:00
k88936
e75450357d
优化预览变换回退分配
...
复用空的预览变换映射,避免节点递归渲染重复分配
2026-09-03 13:14:00 +08:00
kdletters
025f627297
新增旧玩法表阶段一清空迁移能力 ( #251 )
...
Project CI / Frontend tests (push) Successful in 3m11s
Project CI / Backend tests (push) Successful in 6m52s
Project CI / Repository checks (push) Failing after 53s
Project CI / Native shell tests (push) Failing after 17m50s
阶段一新增受 migration operator 保护的旧玩法表清空 procedure,暂不删除表定义。\n\n固定 63 张旧表,支持 dry-run 与事务 apply;生成 bindings;更新契约和决策记录;保留阶段二删表 TODO。\n\n已完成 cargo check、migration 测试、bindings/schema/encoding/diff 检查;本地 dry-run 返回 63 张表且全为 0 行,未执行 apply。
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/251
2026-09-03 12:57:01 +08:00
k88936
d6f0c2642f
提交颜色选择器结束态草稿
...
Project CI / Repository checks (pull_request) Failing after 19s
Project CI / Backend tests (pull_request) Failing after 19s
Project CI / Frontend tests (pull_request) Successful in 2m41s
Project CI / Native shell tests (pull_request) Successful in 14m54s
使用 RgbaColorPicker 的 onChangeEnd 处理指针与键盘结束\n关闭颜色弹层时提交仍存在的草稿
2026-09-03 12:17:36 +08:00
k88936
074ee615ae
更新节点拖拽提交测试
...
断言 pointermove 仅更新预览\n断言 pointerup 才提交一次节点变换
2026-09-03 12:17:25 +08:00
k88936
d44c924f5e
简化 UI 编辑器历史提交边界
...
移除撤销事务 API 与额外事务状态
让绑定每个 batch 独立提交一条撤销记录
同步更新规格和独立提交测试
2026-09-03 12:14:21 +08:00
k88936
b07c8a5e25
优化编辑器状态相等性检查
...
用可提前退出的递归比较替代完整状态序列化\n减少每次编辑提交的无谓 JSON 字符串构造
2026-09-03 12:00:36 +08:00
k88936
37c465dbc3
稳定编辑器快捷键监听
...
按稳定的撤销重做回调绑定全局监听\n尊重已被其他处理器阻止的键盘事件
2026-09-03 11:54:59 +08:00
k88936
95f5904b92
放宽编辑器快捷键焦点限制
...
仅将文本输入控件视为可编辑目标\n保持工具栏按钮聚焦时仍可使用撤销重做快捷键
2026-09-03 11:54:27 +08:00
k88936
e616e2c899
清理透明度输入的颜色草稿
...
透明度修改提交前显式清除颜色草稿\n避免无效更新后残留未提交颜色
2026-09-03 11:51:58 +08:00
k88936
f79ccccf44
稳定预览手势清理回调
...
通过 ref 读取最新预览回调\n避免回调身份变化时重复取消进行中的手势
2026-09-03 11:51:34 +08:00
k88936
093a2ace76
优化预览变换状态更新
...
仅在预览变换实际变化时创建新 Map\n避免取消不存在手势时触发预览树重渲染
2026-09-03 11:51:07 +08:00
suzmii
1c4a7bd221
Merge branch 'master' into feat/agc-llm-router-official-chain
Project CI / Repository checks (pull_request) Successful in 2m49s
Project CI / Frontend tests (pull_request) Successful in 3m36s
Project CI / Backend tests (pull_request) Failing after 2m51s
Project CI / Native shell tests (pull_request) Failing after 6m42s
2026-09-03 11:42:37 +08:00
kdletters
8ed0626627
恢复预览环境本地配置注入
...
Project CI / Frontend tests (push) Successful in 3m15s
Project CI / Repository checks (push) Successful in 2m12s
Project CI / Backend tests (push) Successful in 7m31s
Project CI / Native shell tests (push) Successful in 20m0s
恢复 API 与 worker 的 .env.local BuildKit secret 挂载
补齐 Jenkins 固定文件校验与预览文档
增加双配置文件构建门禁
2026-09-03 11:38:40 +08:00
suzmii
ac0f6bb783
Revert "恢复 Router provisioning 固定密钥方案"
...
Project CI / Repository checks (pull_request) Failing after 13s
Project CI / Backend tests (pull_request) Failing after 9s
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
This reverts commit 9a06945e44 .
2026-09-03 11:22:29 +08:00
suzmii
9a06945e44
恢复 Router provisioning 固定密钥方案
...
Project CI / Repository checks (pull_request) Failing after 11s
Project CI / Frontend tests (pull_request) Successful in 3m4s
Project CI / Backend tests (pull_request) Failing after 9s
Project CI / Native shell tests (pull_request) Failing after 10m8s
恢复 api-server 内置 provisioning secret,保持现有账号派生兼容
移除 provisioning secret 的环境变量和示例配置入口
补充阶段性取舍而非设计缺陷的代码注释
同步 Router 账号链路架构文档
2026-09-03 11:10:32 +08:00
k88936
90623f136d
登记 UI 编辑器撤销重做规范
...
将撤销重做规格加入文档总览入口
2026-09-03 11:08:52 +08:00
k88936
dc0ea0eda0
接入 UI 编辑器撤销重做入口
...
在编辑器头部增加撤销与重做按钮及禁用态
增加桌面 Cmd/Ctrl 快捷键并保留文本控件原生行为
2026-09-03 11:07:19 +08:00
k88936
0544e78996
修正清空编辑器历史边界
...
清空编辑器时重置撤销与重做栈
补充清空操作不会进入历史的测试
2026-09-03 11:06:47 +08:00
k88936
e379459820
降低 UI 编辑器颜色选择器提交频率
...
颜色拖动期间使用本地草稿预览
指针释放时一次提交最终颜色 State
2026-09-03 11:05:58 +08:00
k88936
15caf1cafc
收敛 UI 编辑器锁与历史事务
...
新增统一的加锁并包裹历史事务操作
将 AI 建议、识别、合并和批量绑定改用统一入口
2026-09-03 11:05:04 +08:00
k88936
f79724cb17
实现 UI 编辑器 State 撤销重做核心
...
在统一 State 提交入口增加 100 条快照历史与 no-op 过滤
提供撤销、重做、事务分组及加载重置历史 API
补充 State 历史、事务回滚和加载清理测试
2026-09-03 11:01:21 +08:00
k88936
c519f65ac2
补充 UI 编辑器撤销重做规范
...
明确撤销与重做的 State 范围、事务边界和生命周期
明确连续控件与节点变换的低频提交规则
明确资产文件、副作用、快捷键和验收标准
2026-09-03 10:58:54 +08:00
k88936
8a18b1b181
调整 UI 编辑器节点变换为松开时提交
...
Project CI / Repository checks (pull_request) Failing after 16s
Project CI / Frontend tests (pull_request) Failing after 2m3s
Project CI / Backend tests (pull_request) Failing after 20s
Project CI / Native shell tests (pull_request) Failing after 4m30s
拖动和缩放期间仅更新预览临时变换
指针松开时提交最终变换,取消操作不写入 State
补充 UI 编辑器拖动变换提交边界文档
2026-09-03 10:51:52 +08:00
kdletters
53070e0390
支持 AGC 多行发布说明
...
Project CI / Repository checks (push) Successful in 2m31s
Project CI / Frontend tests (push) Successful in 3m10s
Project CI / Backend tests (push) Successful in 7m6s
Project CI / Native shell tests (push) Successful in 19m53s
Jenkins 参数改为多行文本输入
客户端更新提示保留换行并支持滚动
增加清单与客户端多行说明测试
同步 AGC 更新发布文档
2026-09-03 10:36:43 +08:00
suzmii
258501918f
修复 AGC 运行预览尺寸抖动 ( #252 )
...
Project CI / Repository checks (push) Successful in 2m42s
Project CI / Frontend tests (push) Successful in 3m18s
Project CI / Backend tests (push) Successful in 6m59s
Project CI / Native shell tests (push) Successful in 17m33s
## 问题
AGC 项目运行页的本地预览会根据 iframe 上报内容尺寸调整 iframe viewport;部分使用 `100vh`、百分比或响应式布局的游戏会把宿主调整后的 viewport 再反映为新的内容尺寸,形成反馈环并在两个缩放档位之间持续抖动。
附件工程和录屏已确认可触发该问题,普通浏览器直接打开不受影响。
## 落地方案
- 补充宿主 viewport 变更与真实内容变更的区分,忽略由宿主首次应用 fit 引起的回灌尺寸;
- 保留同一稳定 viewport 下真实动态内容变化后的重新适配;
- 增加反馈环收敛、动态内容变化和陈旧消息回归;
- 同步 AGC 运行预览权威文档和项目记忆。
## 验证计划
- 附件 `gameagent-2873e5ac` 在 AGC WebView 中稳定显示;
- 相关 TypeScript 单测与类型检查;
- preview Rust 定向测试;
- `npm run check:encoding`、`git diff --check`。
Fixes #250
---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/252
Reviewed-by: 段舒康 <kdletters@qq.com >
Co-authored-by: 董羽秦 <suzmii@qq.com >
Co-committed-by: 董羽秦 <suzmii@qq.com >
2026-09-03 10:35:23 +08:00
suzmii
6bea5bb2b1
合并 master 并整合 Router 安全修复
...
Project CI / Native shell tests (pull_request) Failing after 6m32s
Project CI / Repository checks (pull_request) Successful in 3m5s
Project CI / Backend tests (pull_request) Failing after 3m16s
Project CI / Frontend tests (pull_request) Successful in 3m44s
合入 origin/master 最新提交 a465e481e
保留后台错误报告、AGC 受控搜索与 Router 计费安全修复
同步 SpacetimeDB migration、技能文档和配置契约
2026-09-03 10:28:20 +08:00
suzmii
4b3d27e3d3
修复 AGC Router 计费与登录安全问题
...
绑定 LLM 幂等键与请求指纹,阻止跨请求免扣费
放宽登录对 Router 控制面的依赖并迁移 provisioning secret
加强 AGC 配置文件校验与 SSE UTF-8 处理
同步环境配置、架构文档和回归测试
2026-09-03 10:24:36 +08:00
lhk229
a465e481e3
修复 AGC 本地 BgFilter worker 启动链路 ( #258 )
...
Project CI / Repository checks (push) Successful in 3m14s
Project CI / Frontend tests (push) Successful in 3m18s
Project CI / Backend tests (push) Successful in 6m58s
Project CI / Native shell tests (push) Successful in 18m13s
backend 模式复用 Rust 双进程启动与 watcher
AGC 后端复用门禁增加 BgFilter worker readiness
补充启动编排与 ready 门禁回归测试
同步本地开发运维文档
---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/258
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-09-03 10:15:29 +08:00
kdletters
2079e274b6
修复 AGC 发布清单覆盖
...
Project CI / Repository checks (push) Successful in 3m3s
Project CI / Frontend tests (push) Successful in 3m49s
Project CI / Backend tests (push) Successful in 7m16s
Project CI / Native shell tests (push) Successful in 17m49s
强制覆盖版本安装包与 latest.json
增加 latest 上传覆盖回归检查
同步 AGC 更新发布文档
2026-09-03 10:11:29 +08:00
k88936
422c8931d6
Feat/AGC错误报告 ( #240 )
...
Project CI / Repository checks (push) Successful in 2m45s
Project CI / Frontend tests (push) Successful in 3m22s
Project CI / Backend tests (push) Successful in 5m53s
Project CI / Native shell tests (push) Successful in 16m45s
实现:
在rust内存里维护错误事件队列, webview调用tauri command传入, 后台任务agent工具等直接插入
把rust , webview console的日志统一写到AppData文件夹下的(滚动保存的)日志文件.
rust对传入的错误进行筛选,脱敏, 防抖,后通知前端提醒用户.
用户提醒是一个不阻塞的小UI, 展开后可以选择错误上报, 可以附加文字描述
上传时附带最近日志, 错误堆栈等信息
元数据存在数据库, 考虑到字符串信息很难查询, 所以在api server打包成zip存在OSS.
管理页面新增错误报告的查看页面




---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/240
Co-authored-by: 王德宇 <kvtodev@outlook.com >
Co-committed-by: 王德宇 <kvtodev@outlook.com >
2026-09-03 10:02:05 +08:00
kdletters
aad9be8274
Merge pull request '移除 AGC Skill 读取工具' ( #256 ) from fix/remove-read-skill-tool into master
...
Project CI / Frontend tests (push) Successful in 3m18s
Project CI / Repository checks (push) Successful in 2m37s
Project CI / Backend tests (push) Successful in 6m59s
Project CI / Native shell tests (push) Successful in 19m4s
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/256
Reviewed-by: 段舒康 <kdletters@qq.com >
2026-09-02 20:04:59 +08:00
suzmii
beae1dfe5f
过程卡工具文案改为用户语义
...
- MCP 工具按写入、浏览、读取素材、导入、生成图片等用户动作显示文案
- 写入工具与文件变更统一显示正在写入文件和项目相对路径
- 命令显示具体命令,验证类命令显示正在验证游戏
- 未知工具只显示正在调用工具,不暴露内部工具名和未审核参数
- 工具详情限制路径长度并拒绝绝对路径与上跳路径
- stream=false 时继续保留新的具体工具执行文案
- 补充工具映射、安全边界、命令分类与过程卡心跳回归
- 决策记录同步工具语义文案规则
2026-09-02 19:44:57 +08:00
suzmii
73f5c94de4
合并master并保留双侧决策记录
...
合并 origin/master 的 UI 编辑器、GDD 审批与前端修复。
保留本分支 LLM Router、Direct 过程卡与私有路径相关实现和决策记录。
解决 decision-log 文档冲突,完整保留双方新增决策条目。
2026-09-02 19:31:12 +08:00
k88936
d93dd39e23
Merge remote-tracking branch 'origin/master' into fix/remove-read-skill-tool
Project CI / Repository checks (pull_request) Successful in 3m24s
Project CI / Frontend tests (pull_request) Successful in 3m47s
Project CI / Native shell tests (pull_request) Successful in 17m20s
Project CI / Backend tests (pull_request) Successful in 7m20s
2026-09-02 19:15:44 +08:00
k88936
1e67728953
清理已移除工具名称残留
...
删除 unknown-tool 测试中对旧 AGC 工具名的硬编码引用
2026-09-02 19:12:38 +08:00
k88936
6fe91a169c
移除 AGC Skill 受控引用读取工具
...
删除 agc_read_skill_resource 的实现、MCP 暴露、审计分支与专用测试
将内置 Skill references 改为 Codex 原生相对路径读取
同步 Skill manifest 指纹、Runtime 提示词与 AGC 项目文档
保留既有 references 安装与隔离 HOME 校验
2026-09-02 19:00:31 +08:00
suzmii
8932f0b27c
修复泥点紧凑显示向上舍入 ( #255 )
...
Project CI / Repository checks (push) Successful in 2m59s
Project CI / Frontend tests (push) Successful in 3m15s
Project CI / Backend tests (push) Successful in 7m57s
Project CI / Native shell tests (push) Successful in 17m13s
## 变更内容
- 将泥点紧凑显示从四舍五入改为按一位小数向下截断;
- “万”和“亿”两个紧凑单位分支使用一致规则,不会再显示出高于实际余额的数值;
- `12,999` 由 `1.3万` 改为 `1.2万`,`19,999` 由 `2.0万` 改为 `1.9万`;
- 低于 `1万` 的完整数字显示和非紧凑模式保持不变。
## 前后对照
| 实际泥点 | 修改前 | 修改后 |
| --- | --- | --- |
| `9,999` | `9,999` | `9,999` |
| `12,999` | `1.3万` | `1.2万` |
| `19,999` | `2.0万` | `1.9万` |
## 排查范围
- 仓库内泥点紧凑缩写只有 `formatMudPointCount` 一处;
- 该函数仅包含“万”和“亿”两个单位分支,本次均已修改;
- 其它泥点展示使用完整整数,不存在同类单位舍入问题。
## 验证
- `npm run check:encoding`
- `git diff --check`
- 按需求未新增测试
- 首轮 Frontend CI 唯一失败为 `AdminEditorAssetQueryPage.test.tsx` 既有大量缩略图换签用例超时,与本次格式化改动无关;新提交已触发 CI 重跑
Closes #254
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/255
Reviewed-by: 段舒康 <kdletters@qq.com >
Co-authored-by: suzmii <suzmii@qq.com >
Co-committed-by: suzmii <suzmii@qq.com >
2026-09-02 18:40:17 +08:00
suzmii
5008691975
过程卡思考阶段显示正在思考并保留具体执行命令
...
Project CI / Native shell tests (pull_request) Failing after 12m28s
Project CI / Repository checks (pull_request) Failing after 9s
Project CI / Frontend tests (pull_request) Successful in 3m31s
Project CI / Backend tests (pull_request) Failing after 9s
- preparing 活动词文案由正在理解需求改为正在思考中
- Codex 计划与推理通知只收敛为 thinking 活动,不再把原始推理正文送入 UI
- 推理期 thinking 活动按 1.2 秒限流,避免重复事件刷屏
- command-exec 等执行细节不再依赖回复流开关,stream=false 也保留具体命令
- 同一活动的心跳事件不再用通用文案覆盖正在执行的具体命令
- 补充 Rust 纯函数单测与 AppSurface 思考态、命令心跳回归
- 决策记录同步 thinking 与执行细节展示规则
2026-09-02 18:24:14 +08:00
kdletters
97b0231afc
优化 AGC 会话恢复超时与 Runner 启动校验 ( #253 )
...
Project CI / Frontend tests (push) Successful in 4m33s
Project CI / Repository checks (push) Successful in 4m48s
Project CI / Backend tests (push) Successful in 8m38s
Project CI / Native shell tests (push) Successful in 18m37s
## 变更内容
- 增加启动会话恢复阶段、等待时间和可操作错误提示。
- 为客户端 HTTP 请求增加默认超时、AbortController 取消和可选长请求豁免。
- 会话恢复失败后提供重试,并隔离旧请求的迟到结果。
- 让 Runner 启动探测严格遵守剩余启动时间预算。
- 补充前端、HTTP、Runner 定向测试并同步技术方案。
## 验证
- npm run typecheck --workspace @genarrative/ai-game-creator-shell
- npm run check:encoding
- clientHttp 定向测试
- AuthenticatedClient 定向测试
- Runner 启动探测测试
- cargo fmt --check
- git diff --check
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/253
Co-authored-by: kdletters <kdletters@qq.com >
Co-committed-by: kdletters <kdletters@qq.com >
2026-09-02 18:15:38 +08:00
suzmii
c668964d2f
优化 Direct 流式回复展示
...
将生成中的累计正文直接显示在助手会话气泡中。
过程卡只保留阶段与执行信息,避免工具事件覆盖正文。
展开详情的滚动条轨道与角落改为透明。
补充流式、失败清理与正式消息接管的界面回归验证。
2026-09-02 17:50:17 +08:00
suzmii
8f7017f6c0
Direct 过程卡改为按回合阶段状态驱动并移除合成打字机
...
Project CI / Frontend tests (pull_request) Successful in 3m20s
Project CI / Repository checks (pull_request) Failing after 14s
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / Native shell tests (pull_request) Failing after 13m20s
- DirectProject observer 只把真实回复增量标记 streaming,工具中间文本与活动一律 running
- 删除最终回复的合成打字机回放,改由真实事件驱动流式展示
- App 事件投影新增回合状态与 processKey,小字统一补充正在前缀
- 过程卡标题只由回合状态决定,展开状态在同一回合内保持
- 失败与接受态文案改为当前阶段描述,旧直接活动词映射移除
- AppSurface 回归覆盖接受态、展开保持、流式标题与失败态断言
- 决策记录与 Direct 审计账本同步新的状态口径
2026-09-02 16:49:42 +08:00
k88936
5de9554426
Feat/ui编辑器与code agent整合 ( #237 )
...
Project CI / Repository checks (push) Successful in 3m36s
Project CI / Frontend tests (push) Successful in 4m30s
Project CI / Native shell tests (push) Successful in 18m33s
Project CI / Backend tests (push) Successful in 8m12s
实现:
在ui编辑器保存旁增加一个保存并生成代码(js)
生成的是js字符串形式的html, 在整个js前有文档说明
code agent使用js直接注入已经生成的 export的html片段,
每次保存会直接覆盖这些html片段, 依靠动态注入实现编辑器的微调反映到游戏中.
每个节点提供了稳定的id用于code agent在生成html的基础上进行功能实现, 节点增删
目前是作为一个自说明的文件直接让code agent阅读使用, 都是用户调整保存顺便生成, 不提供工具调用.
希望以skill的形式使用
---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Co-authored-by: 孔令弘 <ink29535@proton.me >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/237
Co-authored-by: 王德宇 <kvtodev@outlook.com >
Co-committed-by: 王德宇 <kvtodev@outlook.com >
2026-09-02 16:49:19 +08:00
suzmii
bbf9500bea
合并最新主线并保留官方路由锁定
...
Project CI / Frontend tests (pull_request) Failing after 3m0s
Project CI / Repository checks (pull_request) Failing after 3m1s
Project CI / Backend tests (pull_request) Failing after 3m52s
Project CI / Native shell tests (pull_request) Failing after 5m55s
合并客户端扩展、应用更新、格式化门禁和后台表查询等主线改动。
运行时设置页保留官方账号服务与安全元数据,同时接入主线扩展管理与更新能力。
DirectProject 文档合并主线第三方 MCP 支持与官方路由、受控搜索边界。
修复合并后的后台 API Key 详情 Eye 图标导入。
2026-09-02 15:34:30 +08:00
kdletters
fe35fcf264
修复 AGC Windows NSIS 打包工具缓存
...
Project CI / Backend tests (push) Successful in 6m48s
Project CI / Repository checks (push) Successful in 2m46s
Project CI / Frontend tests (push) Successful in 3m16s
Project CI / Native shell tests (push) Successful in 15m39s
启用 Tauri 项目级 NSIS 工具缓存,避开 Jenkins systemprofile AppData。
补充 Windows 配置门禁,防止 useLocalToolsDir 回退。
增强 Jenkins 预检与失败诊断,记录实际用户和 makensis 路径。
同步 AGC 发布文档与 NSIS 排障记忆。
2026-09-02 15:24:07 +08:00
suzmii
a30f03a38c
零泥点用户禁止发起 LLM 对话
...
Project CI / Backend tests (pull_request) Failing after 12s
Project CI / Repository checks (pull_request) Failing after 12s
Project CI / Frontend tests (pull_request) Failing after 6m53s
Project CI / Native shell tests (pull_request) Failing after 9m17s
Responses 与 Chat 兼容入口在解析 Router 凭据前读取用户钱包余额。
余额为 0 时直接返回 409 MUD_POINTS_INSUFFICIENT,不创建、续期或访问 Router 账号。
余额读取失败时失败关闭并提示稍后重试。
补充零余额前置门禁回归测试与架构决策记录。
2026-09-02 15:22:51 +08:00
suzmii
44e1e03f2e
格式化 AGC Rust 模块
...
Project CI / Frontend tests (pull_request) Failing after 2m13s
Project CI / Native shell tests (pull_request) Failing after 4m39s
Project CI / Repository checks (pull_request) Failing after 13s
Project CI / Backend tests (pull_request) Failing after 11s
按当前 rustfmt 规则整理 Agent Runtime、配置、预览、会话与相关测试的代码布局。
本提交不改变运行逻辑,保持 AGC Rust 工作区格式门禁可通过。
2026-09-02 14:57:18 +08:00
suzmii
b414f2f5f8
完善 Router 共享账号与订阅契约
...
Router 固定 Token 展示名改为 agc_auto_generate,并同步后台安全查询测试。
文档记录跨独立数据库的稳定账号恢复、default 分组、订阅续期和 best-effort 扣费规则。
调整共享官方 Router 的非生产启动告警,并保留错误 code 构造能力。
2026-09-02 14:56:19 +08:00
suzmii
1c6c499a11
登录返回前同步认证投影
...
新增 create_auth_session_and_sync,统一密码、手机号和微信登录会话的投影同步时机。
避免登录接口签发的新 access token 在下一次请求被当前或其它节点的 SpacetimeDB 校验拒绝。
补充登录投影同步回归测试。
2026-09-02 14:55:52 +08:00
suzmii
e9591c0543
锁定 AGC 官方路由并强化美术素材使用
...
真实 Debug 和 Release 构建都强制通过 API Server 使用官方 LLM Router,仅 Rust 测试构建保留显式 loopback fixture。
清理配置读取中的旧 Provider 凭据入口,并补充配置锁定回归。
code-prototype 任务提示要求实际读取并渲染四类平台美术切片,防止只引用整图或路径。
2026-09-02 14:55:23 +08:00
suzmii
479094ef89
取消 DirectProject 成功回复脱敏
...
DirectProject 流式文本和最终回复只移除 thinking 包装,成功正文按用户项目内容原样展示。
删除路径、链接和凭据占位符替换以及回复长度截断逻辑。
同步删除最终回复必须脱敏的文档要求,并更新回归测试验证项目内容保持原样。
2026-09-02 14:43:54 +08:00
lhk229
65d7a57eb7
AGC对主站的请求添加header ( #241 )
...
Project CI / Frontend tests (push) Successful in 4m0s
Project CI / Repository checks (push) Successful in 4m4s
Project CI / Backend tests (push) Successful in 8m40s
Project CI / Native shell tests (push) Successful in 17m56s
Project CI / Frontend tests (pull_request) Successful in 5m16s
Project CI / Repository checks (pull_request) Successful in 6m57s
Project CI / Backend tests (pull_request) Successful in 6m31s
Project CI / Native shell tests (pull_request) Successful in 16m57s
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/241
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-09-02 14:39:01 +08:00
suzmii
529a1a0a77
格式化 AGC Agent 既有代码
...
修正 generation 与 runtime_state 两个文件的 rustfmt 布局,使工作区格式门禁可通过。
2026-09-02 14:27:08 +08:00
suzmii
2e15289264
补齐 AGC 直连活动状态与泥点错误映射
...
Codex app-server 将文件、命令、验证、搜索等 item/started 事件映射为具体活动标题和安全短详情。
泥点不足错误映射为稳定 409 上游错误并在 DirectProject 显示明确充值引导,不再落到 other。
官方平台会话保持 Provider Proxy 链路,测试专用 API Key/AuthBridge 逻辑仅保留在 cfg(test)。Codex 子进程清理代理环境,确保 loopback SSE 不被系统代理劫持。
补充活动投影、错误映射、流式配置和敏感内容脱敏回归测试。
2026-09-02 14:26:00 +08:00
suzmii
69c11c3285
调整 LLM 泥点后置扣费与执行状态展示
...
LLM Router 计费改为每开始 10000 token 扣 1 点且至少 1 点。
钱包在同一事务内按可消费余额扣光并记录赠送差额,成功响应不再因余额不足中断。
Responses 流式终态延后到结算后发送,泥点不足映射为稳定错误。
执行状态改为具体工具标题,详情默认单行折叠并增加扫过高亮动画。
补充计费公式、幂等扣费与状态展示回归测试。
2026-09-02 14:17:27 +08:00
suzmii
700d7940a7
修复 Router 分组与账号凭据契约
...
- 固定 Router 用户为 taonier、Token 为 default 并确保订阅
- 复用本地账号 Key,禁止无管理员令牌绕过订阅校验
- LLM 转发只读取服务端已验证的 Router 凭据并保持请求流式参数
2026-09-02 12:06:31 +08:00
kdletters
a75dc94f20
稳定 GDD 审批响应标识测试
...
Project CI / Repository checks (push) Successful in 3m2s
Project CI / Frontend tests (push) Successful in 3m46s
Project CI / Backend tests (push) Successful in 7m10s
Project CI / Native shell tests (push) Successful in 16m58s
等待审批提交按钮恢复可用后再触发重试
消除慢环境下 React 状态更新未完成导致的偶发红灯
2026-09-02 11:36:00 +08:00
kdletters
4a2f5be6c5
同步 AGC 更新下载域名门禁
...
Project CI / Repository checks (push) Successful in 3m2s
Project CI / Backend tests (push) Successful in 7m7s
Project CI / Frontend tests (push) Failing after 2m54s
Project CI / Native shell tests (push) Successful in 17m15s
允许受信任 OSS 更新资源域名
保持客户端更新网络范围与运行时配置一致
2026-09-02 11:14:47 +08:00
kdletters
cb737cae94
修复 AGC Jenkins 空参数处理
...
Project CI / Repository checks (push) Successful in 3m44s
Project CI / Frontend tests (push) Successful in 4m34s
Project CI / Backend tests (push) Successful in 6m55s
Project CI / Native shell tests (push) Failing after 16m37s
COMMIT_HASH 为空时按空字符串处理
OSSUTIL_BIN 为空时按默认命令处理
补充 Windows 构建节点参数行为说明
2026-09-02 11:02:30 +08:00
kdletters
eb14cec0b8
修复客户端更新代码格式
...
Project CI / Frontend tests (push) Successful in 4m4s
Project CI / Backend tests (push) Successful in 8m3s
Project CI / Repository checks (push) Successful in 2m48s
Project CI / Native shell tests (push) Failing after 17m21s
同步 Rust 更新下载与重启逻辑的 rustfmt 输出
2026-09-01 20:17:42 +08:00
kdletters
89e021f52b
补齐 H5 导航静态断言格式兼容
...
兼容原生页面 URL 调用对象被格式化拆行
2026-09-01 20:16:51 +08:00
kdletters
3e8e238286
统一原生壳静态断言格式兼容
...
所有源码片段断言统一兼容格式化拆行
保留严格语义匹配并归一化空白与标点
2026-09-01 20:16:51 +08:00
lhk229
b14e42d9bb
AGC支持安装扩展skill、MCP ( #233 )
...
Project CI / Repository checks (push) Failing after 1m45s
Project CI / Frontend tests (push) Successful in 4m1s
Project CI / Backend tests (push) Successful in 6m55s
Project CI / Native shell tests (push) Failing after 16m22s
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/233
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-09-01 20:13:48 +08:00
kdletters
a7e810b999
添加 AGC 客户端更新检查与下载能力 ( #230 )
...
Project CI / Backend tests (push) Successful in 7m40s
Project CI / Native shell tests (push) Failing after 18m53s
Project CI / Repository checks (push) Failing after 1m11s
Project CI / Frontend tests (push) Failing after 2m27s
实现 AGC 启动版本检测与 OSS 安装包下载。
- 每次客户端打开时从 OSS latest.json 检查新版本
- 新版本提示支持 releaseNotes,并通过 Tauri 命令下载到系统下载目录
- 下载地址限制受信任 OSS、HTTPS、大小与可选 SHA-256 校验
- 补充 Tauri capability/CSP、单测和发布文档
Closes #224
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/230
2026-09-01 19:23:55 +08:00
kdletters
59a76be3c4
补齐微信认证静态断言格式兼容
...
Project CI / Native shell tests (push) Failing after 19m0s
Project CI / Repository checks (push) Successful in 2m57s
Project CI / Frontend tests (push) Successful in 3m24s
Project CI / Backend tests (push) Successful in 7m56s
兼容认证边界测试被格式化拆行后的源码匹配
2026-09-01 19:17:06 +08:00
kdletters
a187d78a1c
修复原生壳静态断言格式兼容
...
Project CI / Repository checks (push) Successful in 4m5s
Project CI / Frontend tests (push) Successful in 4m59s
Project CI / Backend tests (push) Successful in 8m12s
Project CI / Native shell tests (push) Failing after 18m0s
放宽能力文档方法表的 Markdown 空白解析
统一源码片段断言的空白、括号与尾逗号归一化
2026-09-01 18:37:41 +08:00
kdletters
80f34d062d
修复原生壳能力检查换行解析
...
Project CI / Repository checks (push) Successful in 2m40s
Project CI / Frontend tests (push) Successful in 4m2s
Project CI / Backend tests (push) Successful in 7m43s
Project CI / Native shell tests (push) Failing after 20m9s
允许能力数组导出等号后的格式化空白
2026-09-01 17:28:30 +08:00
kdletters
b489244e03
修复原生壳 CI 格式化兼容
...
Project CI / Frontend tests (push) Successful in 3m44s
Project CI / Repository checks (push) Successful in 3m1s
Project CI / Backend tests (push) Successful in 7m54s
Project CI / Native shell tests (push) Failing after 17m32s
放宽移动壳能力数组导出解析的空白匹配
兼容格式化后的移动壳源码断言换行
放宽桌面壳能力数组导出解析的空白匹配
2026-09-01 17:00:44 +08:00
kdletters
669405c8b8
忽略所有 Rust target 目录
...
Project CI / Repository checks (push) Successful in 3m35s
Project CI / Frontend tests (push) Successful in 4m21s
Project CI / Native shell tests (push) Failing after 3m19s
Project CI / Backend tests (push) Successful in 7m56s
将 target 忽略规则扩展到仓库任意层级
2026-09-01 16:30:15 +08:00
kdletters
071faa482c
统一 Rust 与 TypeScript 格式化门禁
...
纳入 AGC Cargo workspace 的统一 rustfmt 检查与格式化入口
完成项目 TypeScript/Prettier 与 Rust 全量格式化
修复 Pingora expected executable 门禁的空白敏感误报
同步开发运维文档与 AGC skill pack 格式化忽略规则
2026-09-01 16:28:34 +08:00
k88936
ae79d50b14
Fix/修复ui-editor调用llm与实际配置不一致 ( #235 )
...
Project CI / Repository checks (push) Successful in 2m54s
Project CI / Frontend tests (push) Successful in 4m56s
Project CI / Backend tests (push) Successful in 6m39s
Project CI / Native shell tests (push) Successful in 14m28s
复用统一的LLM调用, 原来的方法内部会默认不stream传输,
一些上游要求流式传输会出现问题
---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/235
Co-authored-by: 王德宇 <kvtodev@outlook.com >
Co-committed-by: 王德宇 <kvtodev@outlook.com >
2026-09-01 14:35:45 +08:00
suzmii
f0142f7019
Close213/215 本地资源注册与后台表查询 ( #232 )
...
Project CI / Repository checks (push) Successful in 4m8s
Project CI / Frontend tests (push) Successful in 4m52s
Project CI / Backend tests (push) Successful in 6m35s
Project CI / Native shell tests (push) Successful in 16m33s
## 关联 Issue
- Close #213:补充本地资源注册类型
- Close #215:后台表查询添加字段查询
## 背景
本 PR 合并处理两个规模较小、已完成统一 review 的客户端与后台能力改动,整体已基于远端最新 master。
## 本地资源注册(#213)
- AGC 本地项目资源支持图片、字体、音频、视频、文档和代码类型。
- 支持 PNG/JPEG/WEBP/GIF/SVG/AVIF/BMP、TTF/OTF/WOFF/WOFF2、MP3/WAV/OGG/FLAC/M4A/AAC/OPUS、MP4/WEBM/MOV,以及常见文本、配置和源码扩展名。
- 同步更新 Direct Tool Bridge、MCP schema、Runtime/Provider Prompt、AGC Skill 文档和技术方案。
- 保留项目相对路径、敏感目录、符号链接、文件大小、字体解析、UTF-8、项目锁、manifest/revision 和幂等语义。
- 修复从 game 等目录复制到 assets/uploads 时扩展名退化为 .bin 的问题。
## 后台表查询(#215)
- 使用结构化筛选条件替换手写筛选 JSON。
- 支持多条件、比较、包含、前后缀、列表、空值和旧 JSON object 兼容。
- 优化预览表格、详情复制、Toast、JSON 预览和排序交互。
- 修复数字范围筛选,包括数据库字符串化数字的数值比较。
- 补充前后端回归测试与文档。
## 验证
- AGC 本地资源导入测试:6/6
- AGC Direct/MCP 工具测试:8/8
- 本地资源扩展名与 Prompt 映射回归测试通过
- 后台 admin 数据库测试:17/17
- 后台页面 Vitest:16/16
- `npm run admin-web:typecheck`
- `npm run admin-web:build`
- `npm run check:encoding`
- `git diff --check`
- `rustfmt --edition 2024 --check server-rs/crates/api-server/src/admin.rs`
## 限制
- 未执行真实生产 SpacetimeDB、OSS 或其它付费服务验证。
- Native shell CI 及其它 PR CI 以最新 head 的远端结果为准。
- 当前 PR 保持 WIP,待 reviewer 基于最新 head 重新 review。
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/232
Co-authored-by: 董羽秦 <suzmii@qq.com >
Co-committed-by: 董羽秦 <suzmii@qq.com >
2026-09-01 14:27:39 +08:00
suzmii
c0694ceedd
Merge remote-tracking branch 'origin/master' into feat/hide-llm-router-and-stream-transport
...
Project CI / Repository checks (pull_request) Failing after 8s
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
# Conflicts:
# apps/ai-game-creator-shell/src-tauri/src/config.rs
2026-09-01 12:15:24 +08:00
suzmii
c2354f855f
收敛 AGC 官方 LLM Router 账号链路
...
新增 llm_router_account 表、procedures 与客户端绑定
api-server 改为 New API 管理员流程签发独立 Router 账号
Router 成功后执行幂等后置泥点扣费
生产外锁定非生产 Router 控制面为 loopback
AGC 正式模式清除手工 Provider 凭据并锁定官方代理
AGC 状态面只返回账号凭据与官方路由安全元数据
后台数据库表查询适配账号凭据状态展示
补充 AGC 与后端测试、环境示例和架构文档
修正 dev-stack 状态路径按仓库脚本位置解析
2026-09-01 12:03:07 +08:00
lhk229
933da91fa3
清除策划agent不可达分支 ( #234 )
...
Project CI / Repository checks (push) Successful in 3m37s
Project CI / Frontend tests (push) Successful in 4m28s
Project CI / Backend tests (push) Successful in 7m31s
Project CI / Native shell tests (push) Successful in 17m25s
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/234
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-09-01 10:30:23 +08:00
lhk229
d7fc4c5b6f
让 Direct 首轮带上本轮附件的项目路径映射 ( #223 )
...
Project CI / Repository checks (push) Successful in 3m4s
Project CI / Frontend tests (push) Successful in 3m24s
Project CI / Backend tests (push) Successful in 6m10s
Project CI / Native shell tests (push) Successful in 15m8s
抽出 Home/Project 共用的 DirectCodexTurnAttachment 与渲染函数
Direct command 在进 Codex 前拼接有界 sidecar,jsonl 与气泡仍写用户原文
首页建项 latch 把导入附件传给 Direct 首轮,后续手打消息不带 attachments
做方案首轮仍走 Supervisor,不注入 sidecar
补齐 Rust 渲染测试与 home.suite 附件断言
记录路径映射合同与决策
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/223
Co-authored-by: 孔令弘 <ink29535@proton.me >
Co-committed-by: 孔令弘 <ink29535@proton.me >
2026-08-31 19:47:23 +08:00
k88936
6d2c275d32
修复项目页布局高度 ( #228 )
...
Project CI / Repository checks (push) Successful in 2m18s
Project CI / Frontend tests (push) Successful in 4m11s
Project CI / Backend tests (push) Successful in 6m17s
Project CI / Native shell tests (push) Successful in 14m19s
项目页父级改为纵向 flex 并填满可用高度
项目列表容器与表格占满剩余空间
before:


after:


---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/228
Co-authored-by: 王德宇 <kvtodev@outlook.com >
Co-committed-by: 王德宇 <kvtodev@outlook.com >
2026-08-31 18:58:54 +08:00
suzmii
80b8238d0a
修复 AGC Windows ACL 提权与文件访问边界 ( #211 )
...
Project CI / Frontend tests (push) Successful in 4m30s
Project CI / Repository checks (push) Successful in 2m26s
Project CI / Backend tests (push) Successful in 8m12s
Project CI / Native shell tests (push) Successful in 17m46s
### 背景
Windows 下 AGC 读取配置目录、项目文件和本地资源时,可能先于 ACL 校验阶段就因继承权限、错误 owner 或拒绝访问而失败,表现为 `拒绝访问。 (os error 5)`。
此前自定义 `--config-dir` 场景还存在 scope 无法传递到提权子进程的问题;native picker 路径也缺少进程内来源证明,递归索引可能跟随 junction/reparse point,新建文件在权限加固失败时可能留下残留文件。
### 本次变更
1. 修复自定义 `--config-dir` 的 `managed / user-selected` scope 传递与提权票据校验。
2. 增加 native picker 文件/目录路径的短期 provenance 授权;未经过 picker 授权的任意 IPC 绝对路径不能触发 `user-selected` 自动提权。
3. 项目文件列表和索引递归改用 `symlink_metadata()`,拒绝 symlink、junction 和 Windows reparse point。
4. 统一在 metadata/read/open 前完成 ACL 准备,对 ACL 导致的 metadata 失败执行一次受控修复和重试。
5. 新建 conversation、导出包、Agent DB、资源、字体等文件在 harden 失败时关闭句柄并清理刚创建的文件。
6. 修复 UAC 提权授权票据以 `share_mode(0)` 独占打开后与 `GetNamedSecurityInfoW/SetNamedSecurityInfoW` 产生共享冲突的问题。
7. 同步 AGC Windows ACL 技术方案与安全回归测试。
### 安全行为
- UAC 取消返回 `1223`,不会被当作成功。
- 提权子进程重新校验目标路径、scope、当前用户 SID、nonce、有效期和票据一次性消费。
- symlink、junction、reparse point 和非普通文件对象保持失败关闭。
- 自定义配置目录可以位于用户 profile 外部,但仍受 owner、DACL 和路径类型校验。
### 验证结果
已执行并通过:
```
cargo check --locked --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml
cargo test --locked --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml private_path_elevation_policy_tests -- --nocapture
# 10 passed
cargo test --locked --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml local_project -- --nocapture
# 20 passed
cargo test --locked --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml checkpoint::security_tests -- --nocapture
# 10 passed
cargo test --locked --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml private_file_write_tests -- --nocapture
# 2 passed
npm run check:encoding
# 5554 files passed
git diff --check
# passed
```
另外确认:
- `origin/master` 是当前分支祖先。
- 交接文档已删除,且原本不在 Git 跟踪列表中。
- 全量 `cargo test` 未作为通过依据;此前存在与 ACL 无关的失败项。
- `cargo fmt --check` 仍受仓库已有格式漂移影响,本次未执行全仓库格式化。
- 真实 Windows UAC 点击“Yes”的手工回归仍需在目标机器上确认。
### 手工验收
使用:
```powershell
& "C:\Users\dongy\workspace\Genarrative\.worktrees\agc-windows-acl-fix\apps\ai-game-creator-shell\src-tauri\target\debug\genarrative-ai-game-creator-shell.exe" `
--config-dir "C:\Users\dongy\AppData\Local\Temp\agc-acl-live-20260830\deny-config-2"
```
验收标准:
1. 选择“否”:进程返回 `exit code 1223`。
2. 重新启动并选择“Yes”:不再返回 `exit code 1`,ACL 修复完成后继续启动。
3. 再次启动同一配置目录:不应重复弹出修复。
4. 检查目录 owner 和 DACL,确认归当前用户所有且为私有权限。
---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/211
Co-authored-by: 董羽秦 <suzmii@qq.com >
Co-committed-by: 董羽秦 <suzmii@qq.com >
2026-08-31 14:37:34 +08:00
lhk229
aa0e0ce5fa
批准 GDD 回填做游戏入口 ( #210 )
...
Project CI / Repository checks (push) Successful in 2m51s
Project CI / Backend tests (push) Successful in 6m32s
Project CI / Native shell tests (push) Successful in 17m8s
Project CI / Frontend tests (push) Successful in 4m4s
新增批准态 GDD 的做成游戏按钮与 Launcher 回调链
读取 game/fast_gdd.md 并回首页预填做游戏参考附件
补充不触发创建项目和 Runtime 的 appSurface 回归
同步 Fast GDD 技术方案与共享决策记录
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/210
Co-authored-by: 孔令弘 <ink29535@proton.me >
Co-committed-by: 孔令弘 <ink29535@proton.me >
2026-08-31 14:37:16 +08:00
suzmii
1c2f82e246
优化 Game Agent 资源画布展示与默认缩放 ( #208 )
...
Project CI / Backend tests (push) Successful in 9m53s
Project CI / Repository checks (push) Successful in 3m11s
Project CI / Frontend tests (push) Successful in 4m59s
Project CI / Native shell tests (push) Successful in 19m18s
## 变更内容
### 1. 普通资源画布隐藏游戏代码
- 资源画布的大纲、分页和卡片展示不再显示“游戏代码”栏目。
- 保留内部完整的五栏目布局契约,避免已有代码资源坐标被重写。
- 补充回归测试,确认游戏代码不会出现在普通资源画布中,且代码端点不可见时不会渲染对应依赖边。
### 2. 增加资源类型角标
- 资源卡右上角增加类型角标,用于快速识别资源类型。
- 类型从既有资源投影字段推导,覆盖图片、SVG、视频、音频、文档、任务产物、Agent 回执、项目版本等类型,并为未知类型兜底。
- 该能力仅用于前端展示,不新增后端字段或修改资源投影契约。
### 3. 限制默认自动适配缩放
- 画布首次自动适配和显式复位时的默认最大缩放统一限制为 `1.5`,避免内容较少或只有一个资源时卡片被放得过大。
- 该限制对设计文档、美术、音频、游戏代码、项目版本全部资源栏目生效。
- 用户主动缩放仍沿用现有上限,不受默认适配上限影响。
- 用户调整后的画布缩放会按排序模式和栏目保留;切换到其他栏目再返回后,仍恢复用户调整后的 viewport,而不是重新自动放大。
## 兼容性
- 不修改后端 API、SpacetimeDB schema 或 `/api/external/v1`。
- 资源类型角标是展示层推导逻辑,不改变资源数据结构。
- 内部布局仍保留游戏代码栏目契约,已有布局数据不需要迁移。
## 验证
- `resourceCanvasLayoutModel.test.ts`
- `project-development.suite.ts` 相关 App Surface 用例
- `npm run typecheck`
- `npm run check:encoding`
- Prettier 相关文件检查
- `git diff --check`
历史分支检查不替代最新 head CI;PR 更新后将以最新 CI 结果为准。
---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/208
Co-authored-by: 董羽秦 <suzmii@qq.com >
Co-committed-by: 董羽秦 <suzmii@qq.com >
2026-08-31 14:36:58 +08:00
kdletters
c5200c7d45
补齐共享 UI 组件库与展示页交互 ( #202 )
...
Project CI / Backend tests (push) Successful in 8m31s
Project CI / Repository checks (push) Successful in 14m14s
Project CI / Frontend tests (push) Successful in 13m2s
Project CI / Native shell tests (push) Successful in 21m30s
## 变更内容
- 新增基于 shadcn open-code 模式的共享 UI canonical 组件、样式与导出。
- 新增 `/components` 共享组件展示页,并覆盖平台组件、Token、状态和移动端布局。
- 补齐平台展示页的筛选、排序、上传预览、标签、开关和异步状态交互。
- 修复排序导致预览主题变化、筛选弹窗误关闭和入口状态不更新的问题。
- 同步网站与客户端构建别名、依赖、路由测试和项目文档。
## 验证
- `npm run test -- src/components/shared-components/SharedComponentsShowcasePage.test.tsx`
- `npm run typecheck`
- `npm run check:encoding`
- `npm run build:raw`
- `git diff --check`
- pre-push 门禁通过
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/202
Co-authored-by: kdletters <kdletters@qq.com >
Co-committed-by: kdletters <kdletters@qq.com >
2026-08-31 14:10:44 +08:00
suzmii
26e4eab6b6
对齐主线ACL文件边界
...
将AGC Rust源码中的ACL专用实现恢复为主线版本
移除本分支内的Windows ACL提权命令与私有路径调用
保留Router、联网搜索和流式传输改动在后续stash中继续处理
2026-08-31 13:09:29 +08:00
suzmii
c3c572dbac
合并最新 Agent 编排基线
...
合并 origin/master 的 Agent Runtime 编排依赖与测试门禁
恢复 platform-agent 的任务图校验与动态编排实现
为后续 AGC Router 流程调试提供可启动的最新基线
2026-08-31 11:54:18 +08:00
suzmii
cc6211fd41
修复 Backend 与 Native shell CI 回归并恢复完整测试门禁 ( #209 )
...
Project CI / Repository checks (push) Successful in 7m49s
Project CI / Backend tests (push) Successful in 9m56s
Project CI / Frontend tests (push) Successful in 8m24s
Project CI / Native shell tests (push) Successful in 19m18s
## 背景
这是一个独立的 CI 修复 PR,针对 Backend 与 Native shell 测试失败进行修复,不包含资源画布功能变更。
此前 CI 失败主要集中在:
- 后台精选素材契约测试初始化缺少来源素材字段。
- `spacetime-module` host 测试因缺少 SpacetimeDB WASM 宿主 ABI 符号而无法链接。
- Native shell 自主创作模式、runtime action、provider batch 和测试初始化之间存在状态机断言不一致。
- 部分失败测试曾被临时绕过,本 PR 恢复这些测试门禁。
## 变更内容
### Backend
- 补齐后台精选素材 payload 测试所需的来源素材字段。
- 增加 camelCase 序列化断言,防止 snake_case 字段泄漏。
- 调整 server-rs workspace 测试拆分:
- 普通 workspace host 测试继续排除 `spacetime-module`,避免其 `spacetime-types` feature 污染其他领域 crate 的 host 链接。
- 新增独立的 `spacetime-module` 单元测试步骤,不再跳过该模块自身测试。
- 为 host 测试构建提供仅测试期的 SpacetimeDB ABI 链接支持。
- 同步更新 CI workflow 断言、开发流程文档和运维验证文档。
### Native shell
- 恢复被临时跳过的 Native shell 失败测试门禁。
- 修复自主创作模式下的完成条件、runtime action 执行、provider batch 和 finalization 状态流转。
- 修正 Tauri/native 测试初始化、恢复流程及断言,使测试与实际运行时协议保持一致。
- 保持自主创作模式的宽松行为,不通过忽略测试规避失败。
## 验证
当前提交已完成以下本地验证:
- `cargo test --locked -p spacetime-module --no-fail-fast`
- 259 个测试
- 258 个通过
- 0 个失败
- 1 个已有的外部 fixture 测试 ignored
- `cargo check --locked -p spacetime-module --target wasm32-unknown-unknown`
- `cargo build --locked -p spacetime-module --target wasm32-unknown-unknown`
- `cargo check --locked -p api-server --all-targets`
- `npm run check:server-rs-ddd`
- `npm run check:spacetime-schema`
- `npm run check:encoding`
- `npm run test -- scripts/project-ci-workflow.test.ts`
- `cargo fmt --manifest-path server-rs/Cargo.toml --all -- --check`
- `git diff --check`
没有新增 `#[ignore]` 来规避失败。
## 测试边界说明
`spacetime-module` 的 host ABI 链接支持仅用于执行纯单元测试,不是 SpacetimeDB runtime 替身。Reducer、procedure 和真实数据库事务行为仍需要通过真实 SpacetimeDB runtime/integration harness 验证。
本机 Windows 上完整 workspace 测试中的 `wallet_refund_outbox` 测试仍有 11 项因 `os error 5(拒绝访问)`失败,表现为临时文件权限/锁定问题;该问题与本 PR 的 SpacetimeDB 模块测试改动无关,也没有通过忽略这些测试来掩盖。
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/209
Co-authored-by: suzmii <suzmii@qq.com >
Co-committed-by: suzmii <suzmii@qq.com >
2026-08-31 10:53:30 +08:00
kdletters
d2254d1e8c
抽取多 Agent 编排 crate 并支持运行中自主扩图 ( #207 )
...
Project CI / Repository checks (push) Successful in 2m16s
Project CI / Frontend tests (push) Successful in 6m37s
Project CI / Backend tests (push) Failing after 7m45s
Project CI / Native shell tests (push) Failing after 7m6s
## 概要
- 抽取通用 `agent-runtime-orchestration` crate,承接多 Agent DAG 的构图校验、ready/wave、下游闭包和全量/返工选择。
- 保留 `platform-agent` 的游戏领域任务与语义路由,避免把 Runtime、Provider、ToolHost 和持久化职责下沉到公共编排层。
- 增加 `GraphProposal` / `TaskProposal` / `GraphEdge` / `GraphLimits`,允许宿主在执行中安全应用 LLM 提出的新增节点和边。
- 扩图采用候选图原子校验:未知 Agent/端点、重复边、自依赖、环及节点/边/深度/扇出预算都会拒绝,失败时原图保持不变;新增节点默认为 `Pending`。
## 验证
- `npm run agent-runtime-orchestration:check`(15 项通过)
- `cargo test --manifest-path server-rs/crates/platform-agent/Cargo.toml`(19 项通过)
- `npm run agc:skill-pack:check`
- `npm run check:encoding`
- `git diff --check`
前端 typecheck 本轮未执行:当前工作树未安装 `node_modules/tsc`,命令会报 `tsc is not recognized`。
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/207
2026-08-31 10:51:11 +08:00
suzmii
7132ce543e
修正Responses流式结算事件顺序
...
延迟透传上游 [DONE],确保扣费失败时客户端先收到 error 事件
补充 SSE done 标记边界解析回归测试
2026-08-30 16:18:19 +08:00
suzmii
9f832ee96a
完善AGC Router代理与后置计费
...
修正无 provisioning 时仅使用服务端 fallback Key,禁止生成 Router 不认识的随机 Key
补齐 AGC 凭据元数据脱敏、失效复用保护与 SpacetimeDB 字段映射
让 Responses 与 Chat 流式调用在成功后按 usage 幂等扣除泥点
同步 schema 迁移、环境变量示例、后端架构和决策文档
2026-08-30 16:14:10 +08:00
suzmii
e2689b4be5
调整配置默认值回归断言
...
移除已不再存在的前端 Agent 推理映射源码断言
保留 Rust 侧规范 Agent 默认映射和配置模板验证
2026-08-30 14:43:06 +08:00
suzmii
ddb668710e
补回联网搜索测试依赖导入
...
保留 DirectToolBridge 测试路由使用的 Query 和 get
2026-08-30 14:36:41 +08:00
suzmii
b27df8dfab
修正配置迁移测试可见性
...
开放 AGC 配置迁移测试所需的 crate 内函数
清理受控联网搜索合并后的未使用导入
2026-08-30 14:35:24 +08:00
suzmii
8d6b923607
合并AGC流式输出与受控联网搜索
...
保留官方路由锁定、账号凭据状态和 Windows 私有路径安全边界
合入 DirectProject 流式可见文本投影与受控联网搜索
同步配置 schema 迁移、状态输出和回归测试
2026-08-30 14:32:35 +08:00
suzmii
68dfd2c24f
补齐AGC流式输出与受控联网搜索
...
增加 DirectProject 流式可见文本投影和敏感内容过滤
接入受控 web search 工具及参数、网络边界测试
补充配置迁移和运行时回归覆盖
2026-08-30 14:22:03 +08:00
suzmii
93477f2b1b
重整AGC官方路由与安全文件链路
...
记录当前 AGC 客户端、Tauri、API Server、后台查询和契约改动
保留后续按新 Router 后端方案重构的检查点
2026-08-30 14:21:18 +08:00
kdletters
63abea0b3e
阻止命令输出污染 AGC 文件写入
...
Project CI / Repository checks (push) Successful in 3m22s
Project CI / Frontend tests (push) Successful in 4m2s
Project CI / Backend tests (push) Failing after 4m21s
Project CI / Native shell tests (push) Failing after 7m10s
明确 agc_write_file 只接受原始 UTF-8 文件正文
拒绝 Exit code、Wall time、Output 包装并补充回归测试
2026-08-29 00:49:53 +08:00
Git Hooks Test
5460c13216
提升 AGC 版本至 0.1.12
...
Project CI / Backend tests (push) Failing after 5m11s
Project CI / Native shell tests (push) Failing after 6m28s
Project CI / Repository checks (push) Successful in 3m37s
Project CI / Frontend tests (push) Successful in 4m3s
同步 npm、Tauri、Cargo 与锁文件版本
更新 workspace 和 release 版本校验
2026-08-28 21:44:20 +08:00
kdletters
58db9fa637
后台详情弹窗展示原图
...
Project CI / Frontend tests (push) Successful in 4m30s
Project CI / Repository checks (push) Successful in 5m13s
Project CI / Native shell tests (push) Failing after 7m38s
Project CI / Backend tests (push) Failing after 6m11s
素材查询详情弹窗并列展示原图与当前结果
精选审核详情弹窗保留原有元信息并补充原图
管理快照与后台 DTO 传递源资源媒体字段
限制源资源字段仅在后台审核读取路径回填
更新后台素材预览的架构踩坑说明
2026-08-28 21:36:22 +08:00
Git Hooks Test
dcf01f5681
合并远端 0.1.11 基线并保留本地 AGC 全流程改动
Project CI / Repository checks (push) Successful in 3m49s
Project CI / Frontend tests (push) Successful in 4m54s
Project CI / Backend tests (push) Successful in 8m50s
Project CI / Native shell tests (push) Failing after 12m12s
2026-08-28 21:03:15 +08:00
Git Hooks Test
1ba34b8e25
放开 AGC 自主创作流程并补齐全流程执行能力
...
新增 agc_write_file 直写工具并放宽自主构建执行路径
移除固定任务依赖与确认门槛对并行创作的阻塞
同步 DirectProject、预览、运行状态和 E2E 测试调整
2026-08-28 20:55:23 +08:00
kdletters
fc75363da4
提升 AGC 版本至 0.1.11
...
Project CI / Repository checks (push) Successful in 3m36s
Project CI / Frontend tests (push) Successful in 3m55s
Project CI / Backend tests (push) Successful in 6m10s
Project CI / Native shell tests (push) Successful in 15m10s
同步 npm、Tauri、Cargo 与锁文件版本
更新 workspace 和 release 版本校验
2026-08-28 20:05:54 +08:00
kdletters
116bce6b68
修复客户端预览根入口 404
...
Project CI / Repository checks (push) Successful in 3m8s
Project CI / Frontend tests (push) Successful in 3m50s
Project CI / Backend tests (push) Successful in 6m47s
Project CI / Native shell tests (push) Successful in 14m54s
允许项目根布局的 index.html 和网页资源通过预览服务访问
保留 game/ 与 assets/ 旧布局路径支持
增加根入口、资源和控制目录隔离回归测试
2026-08-28 19:22:35 +08:00
kdletters
e52f43485a
修复客户端预览根入口 404
...
允许项目根布局的 index.html 和网页资源通过预览服务访问
保留 game/ 与 assets/ 旧布局路径支持
增加根入口、资源和控制目录隔离回归测试
2026-08-28 19:17:50 +08:00
lhk229
e31d8a2a5b
修复链路上存在的若干阻塞性漏洞 ( #199 )
...
Project CI / Backend tests (push) Successful in 6m48s
Project CI / Repository checks (push) Successful in 4m0s
Project CI / Frontend tests (push) Successful in 4m34s
Project CI / Native shell tests (push) Successful in 16m12s
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/199
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-08-28 17:09:02 +08:00
suzmii
7d4c47ec0c
修复 API Key app-server 认证重试循环 ( #205 )
...
Project CI / Repository checks (push) Successful in 3m15s
Project CI / Frontend tests (push) Successful in 3m50s
Project CI / Backend tests (push) Successful in 7m49s
Project CI / Native shell tests (push) Successful in 15m43s
## 修复摘要
Close #187
Issue #187 的根因是:API Key/provider-proxy 模式使用隔离 `CODEX_HOME`,其中没有 ChatGPT `auth.json`;Codex app-server 默认启动 remote-control 后,会在 `desired_state=Unknown` 时每约 1 秒重试认证,形成持续的认证日志循环。
本 PR 的最终修复是启动级禁用,而不是单纯屏蔽日志:
- API Key 和 provider-proxy 会话在启动 Codex app-server 子进程前设置 `CODEX_INTERNAL_APP_SERVER_REMOTE_CONTROL_DISABLED=1`,使 remote-control 从启动时即处于 `desired_state=Disabled`。
- 删除此前握手后调用 `remoteControl/disable` 的方案;真实 smoke 证明该 RPC 在无 ChatGPT 登录态时本身会返回 `remote control requires ChatGPT authentication`,无法阻止认证循环。
- 真实 AuthBridge 登录态不设置该变量,保持原有 remote-control 行为。
- API Key 子进程额外设置 `RUST_LOG=warn`,仅收敛剩余预期噪音,不承担修复职责。
- 更新 Unix fake app-server fixture、JSON-RPC 响应 ID 序列和凭据边界回归测试。
- 同步更新技术方案,明确启动环境变量、认证边界和验证结论。
## 真实 smoke
使用临时 API Key、隔离 `CODEX_HOME` 和 Codex `0.150.0-alpha.8`:
- 未设置启动变量时:出现 `remote control requires ChatGPT authentication`,并持续输出 `Reloading auth` / `Reloaded auth`。
- 设置 `CODEX_INTERNAL_APP_SERVER_REMOTE_CONTROL_DISABLED=1` 后:状态为 `desired_state=Disabled`,5 秒观察窗口内不再出现认证重试循环,仅剩少量启动/退出生命周期日志。
- `--disable remote_control` 与 `-c features.remote_control=false` 未达到同等效果。
## 验证
- `cargo test --bin genarrative-ai-game-creator-shell codex_app_server`:36 passed,1 ignored,0 failed
- `cargo check --bin genarrative-ai-game-creator-shell`:通过
- `rustfmt --edition 2021 --check src/agent/codex_app_server.rs`:通过
- `npm run ai-game-creator-shell:typecheck`:通过
- `npm run check:encoding`:通过
- `git diff --check`:通过
Windows 本机不会执行 Unix-only fake app-server 分支;相关 fixture 已更新,交由 Linux CI 覆盖。真实 smoke 只验证启动与认证循环,没有执行模型请求。
安全说明:临时 API Key 仅用于本次隔离 smoke,未写入仓库、提交或 PR;测试完成后应立即撤销/轮换该 Key。
---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/205
Co-authored-by: 董羽秦 <suzmii@qq.com >
Co-committed-by: 董羽秦 <suzmii@qq.com >
2026-08-28 15:06:10 +08:00
kdletters
19a32f537b
补齐 AI 任务与历史清理的内存边界 ( #206 )
...
Project CI / Frontend tests (push) Successful in 19m8s
Project CI / Backend tests (push) Successful in 27m3s
Project CI / Repository checks (push) Successful in 15m42s
Project CI / Native shell tests (push) Successful in 29m15s
基于当前 master(含 #204)移植未进入 #203 的内存边界修复。
- 补齐外部生成历史清理 procedure 的 SATS tuple 解析与回归测试
- 限制 AI 流式文本每阶段 chunk 数量并分批释放明细
- 修正进程内失败收口的容量检查顺序
- 分批删除外部生成审计事件并同步更新契约文档
验证:
- cargo test -p module-ai -p spacetime-module
- cargo check -p api-server
- npm run test -- scripts/spacetime-migration-common.test.ts
- npm run check:spacetime-schema
- npm run check:production-ops
- npm run check:encoding
- git diff --check
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/206
Co-authored-by: kdletters <kdletters@qq.com >
Co-committed-by: kdletters <kdletters@qq.com >
2026-08-27 22:18:16 +08:00
kdletters
458371a73d
将退款 outbox 主路径迁入 SpacetimeDB ( #204 )
...
Project CI / Repository checks (push) Successful in 4m11s
Project CI / Frontend tests (push) Successful in 8m38s
Project CI / Backend tests (push) Successful in 10m42s
Project CI / Native shell tests (push) Successful in 32m11s
## 变更内容
- 新增 `profile_wallet_refund_outbox` 表与 enqueue/process procedure,退款主路径进入 SpacetimeDB。
- 外部生成失败事务、inline 资产失败和跨节点 worker 统一使用库内 outbox,按 ledger 幂等并在事务内完成退款与删除。
- SpacetimeDB 完全不可达时才写本机 emergency spool,恢复时重新入库;兼容旧 spool 文件并保留 attempt 追踪。
- 更新 SpacetimeDB migration、生成 bindings、架构文档、运维恢复说明和项目决策记录。
## 验证
- `cargo check -p spacetime-module -p spacetime-client -p api-server --manifest-path server-rs/Cargo.toml`
- api-server / spacetime-client / spacetime-module / module-runtime 定向测试
- `npm run check:spacetime-schema`
- `npm run check:spacetime-runtime-access`
- `npm run check:server-rs-ddd`
- `npm run check:encoding`
- `git diff --check`
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/204
Co-authored-by: kdletters <kdletters@qq.com >
Co-committed-by: kdletters <kdletters@qq.com >
2026-08-27 22:04:50 +08:00
kdletters
a7337c67a1
修复生产发布内存持续增长 ( #203 )
...
Project CI / Backend tests (push) Successful in 10m5s
Project CI / Native shell tests (push) Successful in 15m8s
Project CI / Repository checks (push) Successful in 3m24s
Project CI / Frontend tests (push) Successful in 4m40s
修复 release 内存持续增长问题。
本次范围:
- 收口备份扫描与历史维护的内存峰值。
- 限制外部生成 worker 脱管任务的实际并发。
- 为 API 内存态和历史数据增加有界留存。
验收:
- 定向测试、cargo 检查和生产运维门禁通过。
- 备份不再触发全局 OOM。
- worker/API/SpacetimeDB 内存曲线在空闲期停止单调增长。
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/203
Co-authored-by: kdletters <kdletters@qq.com >
Co-committed-by: kdletters <kdletters@qq.com >
2026-08-27 21:46:56 +08:00
suzmii
94521af890
升级 SpacetimeDB 工具链到 2.8.3 ( #200 )
...
Project CI / Repository checks (push) Successful in 2m52s
Project CI / Frontend tests (push) Successful in 10m40s
Project CI / Backend tests (push) Successful in 6m26s
Project CI / Native shell tests (push) Successful in 18m17s
将 spacetimedb、SDK、lib 精确升级到 2.8.3 并更新 Cargo.lock。
用 2.8.3 CLI 重新生成 spacetime-client Rust bindings。
同步本地 dev、生产 provision、容器镜像和事务 smoke 的版本与 commit 门禁。
更新后端契约、开发运维、项目记忆和 SpacetimeDB skills 的 2.8.3 口径。
---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/200
Co-authored-by: suzmii <suzmii@qq.com >
Co-committed-by: suzmii <suzmii@qq.com >
2026-08-27 17:10:17 +08:00
suzmii
d24321d657
修复第三方 Provider 流式工具计划请求 ( #201 )
...
Project CI / Frontend tests (push) Successful in 4m12s
Project CI / Repository checks (push) Successful in 4m19s
Project CI / Native shell tests (push) Successful in 16m14s
Project CI / Backend tests (push) Successful in 16m25s
## 变更摘要
- 当 Provider 配置 `llm.stream=true` 时,Provider tool-plan 请求改为使用 `stream_run`,由后端聚合完整响应;关闭流式时继续使用 `run`。
- 补充 Anthropic 原生 SSE 工具调用、原生最终回复和 OpenAI 响应流测试夹具。
- 新增流式原生函数工具计划回归测试,覆盖请求 `stream=true`、工具调用聚合、respond_to_user 收束和最终回复请求。
- 修复共享 Provider 测试夹具对 `stream=true` 的 Responses / Chat Completions 请求返回正确 SSE,避免时序测试误报 Timeout。
- 修正自主构建截断 scaffold 修复分支的错误前缀匹配,并补齐最终回复失败审计夹具的流式 planning 响应。
- 同步第三方 Provider 兼容性技术说明,记录缺陷 5 已修复。
## 验证
已通过:
- 5 个 Provider handoff/retry/restart 回归用例(逐项运行)
- `autonomous_game_build_repairs_truncated_scaffold_into_bounded_patch`
- `background_agent_runtime_asset_generation_respects_project_policy`
- `background_final_reply_failure_keeps_private_conversation_and_hashes_public_audits`
- `npm run ai-game-creator-shell:typecheck`
- `npm run check:encoding`
- `git diff --check`
说明:Provider handoff 重启用例在并发启动时曾出现一次时序失败,单独串行复跑通过;当前提交已通过 pre-push 检查。`cargo fmt --check` 仍会报告基线其他文件已有格式差异,本 PR 未改动这些无关文件。
Close #186
---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/201
Reviewed-by: 段舒康 <kdletters@qq.com >
Co-authored-by: suzmii <suzmii@qq.com >
Co-committed-by: suzmii <suzmii@qq.com >
2026-08-27 17:08:47 +08:00
kdletters
5942ff25e7
修复生产角色动作抽帧临时目录
...
Project CI / Repository checks (push) Successful in 3m40s
Project CI / Frontend tests (push) Successful in 4m44s
Project CI / Backend tests (push) Successful in 5m54s
Project CI / Native shell tests (push) Failing after 9m50s
Project CI / Repository checks (pull_request) Successful in 2m42s
Project CI / Frontend tests (pull_request) Successful in 3m54s
Project CI / Native shell tests (pull_request) Failing after 10m46s
Project CI / Backend tests (pull_request) Successful in 5m24s
生产动作抽帧改用服务目录,绕开失效的 PrivateTmp 挂载
补充生产运维文档中的临时目录约定
2026-08-27 15:08:19 +08:00
kdletters
9476ff7648
迁移仓库工具资源到 Codex 并固化执行边界
...
Project CI / Frontend tests (push) Successful in 4m5s
Project CI / Repository checks (push) Successful in 4m23s
Project CI / Backend tests (push) Successful in 5m1s
Project CI / Native shell tests (push) Failing after 10m54s
将 .hermes 工具资源迁移至 .codex
同步代码、文档与 RAG 路径引用
补充任务范围、验收与时间盒执行规则
2026-08-27 13:55:25 +08:00
kdletters
b07fccb9ae
收敛 SpacetimeDB 项目指导 skill
...
新增 Genarrative 单一 SpacetimeDB 项目适配 skill
删除重复的 CLI、Rust、Concepts 项目 skill
更新 AGENTS 与协作工作流入口
同步项目决策记录和官方插件路由
2026-08-27 13:55:25 +08:00
kdletters
f1605de4d4
补齐 DirectProject 项目根工作区的 MCP 桥与试玩提示词
...
Project CI / Repository checks (push) Successful in 3m32s
Project CI / Backend tests (push) Successful in 5m32s
Project CI / Frontend tests (push) Successful in 6m7s
Project CI / Native shell tests (push) Failing after 12m24s
agc_tools MCP 工作目录校验改为直接把当前目录作为项目根解析,不再假设 game/ 子目录或反推 parent。
直连浏览器证据提示词同步为项目根 cwd,并更新对应断言与测试。
2026-08-27 10:14:53 +08:00
kdletters
6d36d625ad
DirectProject 工作区改为项目根并站内化编辑器资源生成
...
Project CI / Repository checks (push) Successful in 10m0s
Project CI / Frontend tests (push) Successful in 10m20s
Project CI / Native shell tests (push) Failing after 13m58s
Project CI / Backend tests (push) Successful in 14m9s
DirectProject 的 Codex cwd、sandbox writable root 与文件变更批准根统一为用户选择的整个项目根,不再强制 game/ 子目录;assets/、game/ 与项目文件均可写,.agent/、.git/、密钥和 Runtime 控制面仍由项目文件层拒绝。
更新 direct 运行时提示词与内置 agc-project-structure Skill,明确项目根即工作区,路径相对项目根,game/ 仅兼容旧结构,并同步 Skill 清单指纹到 2026-08-26.4。
预览与自主构建入口支持项目根 index.html 与旧 game/index.html 双布局,入口解析、静态 smoke、试玩回执与完成门全部自适应。
客户端资源编辑(音频、视频、图片、角色动画)端点统一改为站内 /api/editor/... 路由并复用平台登录态,不再走 External v1;历史 external 账本仍可兼容重放,外部开发者模式保留 External v1。
同步 AGC 实施计划中项目根工作区与站内 API 口径。
2026-08-27 00:40:44 +08:00
kdletters
30e6c309ae
修复自绘标题栏让位后底部内容超出可视框
...
Project CI / Backend tests (push) Successful in 13m29s
Project CI / Repository checks (push) Successful in 14m56s
Project CI / Frontend tests (push) Successful in 21m28s
Project CI / Native shell tests (push) Successful in 14m6s
window-chrome 下 launcher-main 移除旧版悬浮账户条的 42px padding-bottom,页面容器填满内容区。
首页根容器统一按 platform-theme 覆盖高度与内部滚动,覆盖 h-screen 与 h-[calc] 变体,避免高度基于视口导致底部溢出。
固定弹层样式静态守门补充 launcher-main 与首页容器断言。
2026-08-27 00:12:57 +08:00
kdletters
7c11235612
网页内标题栏下统一预留内容与弹层空间
...
Project CI / Repository checks (push) Successful in 3m25s
Project CI / Frontend tests (push) Successful in 5m57s
Project CI / Backend tests (push) Successful in 14m45s
Project CI / Native shell tests (push) Successful in 22m42s
自绘标题栏改为悬浮覆盖,内容容器用 padding-top 预留标题栏高度,页面内容始终从标题栏下方开始。
全屏固定弹层(设置、通知、审批、GDD 审批及 portal 到 body 的通用弹层)统一从标题栏下方开始,避免与自绘标题栏重叠。
标题栏高度提升到 :root CSS 变量,portal 弹层与页面共用同一偏移,移动端同步缩为 46px。
恢复设置保存提示的右上角定位,由遮罩整体下移承载,并新增固定弹层样式静态守门测试。
2026-08-26 23:59:06 +08:00
kdletters
0f35dc33af
Windows release 安装包只生成 NSIS
...
Project CI / Repository checks (push) Successful in 16m40s
Project CI / Frontend tests (push) Successful in 17m31s
Project CI / Native shell tests (push) Successful in 22m11s
Project CI / Backend tests (push) Successful in 26m46s
tauri.windows.conf.json 固定 bundle.targets 为 nsis,不再生成 MSI 安装包。
同步 AGC 实施计划中 Windows x64 release 打包口径。
2026-08-26 23:30:55 +08:00
kdletters
d75547b36d
自动化 Skill 指纹同步并发布 AGC 0.1.10
...
新增 skill-pack-manifest 脚本统一计算并校验内置 AGC Skill 内容摘要,--write 模式自动递增清单版本并同步 SHA-256。
新增 check-skill-pack 只读门禁与 Node 回归测试,无参数默认只读,只有单个 --write 才进入写入模式。
AGC typecheck 与 release build 接入 Skill 清单指纹校验,内容漂移时直接列出 Skill 与实际摘要阻断构建。
修正 agc-client-projection 清单指纹并升级 Skill pack 版本到 2026-08-26.3。
升级 AGC 标准版到 0.1.10,同步 package、Cargo、Tauri 与 npm 工作区锁文件。
首页空输入占位符锚定到编辑区,避免整页滚动后占位文本脱离输入框。
更新 AGC 实施计划中 Skill 指纹同步与只读门禁说明。
2026-08-26 23:23:24 +08:00
kdletters
92165a36ae
发布 AGC 标准版 0.1.9
...
Project CI / Frontend tests (push) Successful in 3m57s
Project CI / Repository checks (push) Successful in 4m8s
Project CI / Native shell tests (push) Failing after 10m0s
Project CI / Backend tests (push) Successful in 4m55s
同步 AI 游戏创作器的 package、Cargo、Tauri 与锁文件版本。
更新版本一致性脚本及其测试夹具。
2026-08-26 21:39:52 +08:00
kdletters
170b988fcd
Merge remote-tracking branch 'origin/master'
2026-08-26 21:34:40 +08:00
kdletters
e5424cbf7b
完善陶泥儿桌面窗口外壳与素材导入
...
新增自绘标题栏、窗口控制和项目标题同步
将泥点账户入口接入标题栏并调整面板描边
收紧本地图片导入类型约束并同步契约文档
补充窗口外壳与泥点面板测试
2026-08-26 21:34:04 +08:00
kdletters
16a5d28ed3
修复 release 默认网页右键菜单
...
release 客户端关闭 WebView 默认上下文菜单
保留 contextmenu 事件供业务组件处理
补充 release/debug 行为测试与技术方案约定
2026-08-26 21:19:39 +08:00
kdletters
d41aaddd0e
修复灵感图测试数量耦合
...
Project CI / Repository checks (push) Successful in 4m3s
Project CI / Frontend tests (push) Successful in 4m13s
Project CI / Backend tests (push) Successful in 5m8s
Project CI / Native shell tests (push) Successful in 13m48s
改为校验内置灵感图片非空,避免测试绑定具体资源数量。
2026-08-26 20:30:14 +08:00
kdletters
1ba0eaf59c
Merge remote-tracking branch 'origin/master' into codex/push-master-20260826
Project CI / Frontend tests (push) Failing after 3m33s
Project CI / Repository checks (push) Failing after 3m42s
Project CI / Native shell tests (push) Failing after 4m39s
Project CI / Backend tests (push) Successful in 5m30s
2026-08-26 20:20:27 +08:00
kdletters
b15cd2a5d6
开放客户端图片创作能力
...
新增普通图片、角色图、视觉规范图、UI 设计图和发布宣传图生成工具
新增已登记图片精修工具并复用客户端授权、幂等、下载和资源登记链路
修正图片生成账本对普通图路由与新类型的恢复识别
同步 AGC Skill、DirectProject 提示词和技术方案说明
2026-08-26 20:03:13 +08:00
kdletters
c1f32d230f
修复客户端资源画布图片预览
...
限制美术资源总览初次适配倍率,避免位图插值放大
扩大美术资源聚焦态原图预览区域
补充布局模型测试与技术方案验收口径
2026-08-26 19:08:33 +08:00
kdletters
d585ad93d5
修复 AGC 直连工具授权路由
...
普通客户端沿用当前 AGC 登录会话和账号路由
ExternalDeveloper 模式保留客户端内部私有凭据隔离
补齐系统提示词、工具描述、Skill 与技术方案的 API Key 边界
更新 Skill 清单版本和内容指纹
2026-08-26 18:33:01 +08:00
kdletters
1768989d38
修复开发态 AGC 工具进程启动路径
...
避免 Cargo 热重载后 current_exe 路径指向已删除旧二进制
Linux 开发态通过当前客户端进程的稳定 executable 引用启动 agc_tools
补充 DirectProject MCP 可执行路径回归测试
2026-08-26 17:42:43 +08:00
kdletters
1460f9be08
恢复 AGC 受控 Skill 与联网工具注入
...
恢复 DirectProject 隔离 Skill Pack 注入与启动校验
恢复 agc_tools STDIO MCP 及浏览器、美术、资源工具桥接
恢复按配置启用的 agc_web_search 与安全结果过滤
同步更新美术与试玩 Skill 的 MCP 使用契约
2026-08-26 17:33:31 +08:00
wuxiangwanzi
aad9d064fc
新增首页灵感推荐瀑布流 ( #196 )
...
Project CI / Native shell tests (push) Failing after 3m55s
Project CI / Backend tests (push) Successful in 4m55s
Project CI / Repository checks (push) Failing after 2m38s
Project CI / Frontend tests (push) Failing after 3m7s
新增 23 张内置灵感图片素材
实现响应式瀑布流和纵向滚动
支持图片全屏预览与遮罩关闭
补充首页交互测试和技术文档
---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Co-authored-by: kdletters <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/196
Co-authored-by: 五香丸子 <15518898337@163.com >
Co-committed-by: 五香丸子 <15518898337@163.com >
2026-08-26 16:56:03 +08:00
kdletters
a8d4aae390
新增 AGC 设置关于页并展示客户端版本
...
Project CI / Frontend tests (push) Successful in 6m41s
Project CI / Repository checks (push) Successful in 6m43s
Project CI / Backend tests (push) Successful in 7m44s
Project CI / Native shell tests (push) Successful in 15m49s
增加独立关于页并使用品牌 Logo
从客户端 package.json 自动读取版本号
补充设置页回归测试、样式与技术方案
2026-08-26 16:22:30 +08:00
kdletters
c7442663f2
修复原生壳CI的Cargo依赖锁定
...
Project CI / Repository checks (push) Successful in 4m12s
Project CI / Native shell tests (push) Successful in 14m45s
Project CI / Frontend tests (push) Successful in 5m6s
Project CI / Backend tests (push) Successful in 6m6s
Native shell job 预取 server-rs、桌面壳和 AGC 壳依赖
AGC 的 platform-llm、shared-contracts 与壳测试统一使用 --locked
补充 workflow 回归断言及 CI 排障文档
2026-08-26 15:53:51 +08:00
suzmii
2407295363
修复资源管理滚轮翻页偶发失效 ( #197 )
...
Project CI / Repository checks (push) Successful in 2m58s
Project CI / Frontend tests (push) Successful in 3m23s
Project CI / Backend tests (push) Successful in 5m0s
Project CI / Native shell tests (push) Successful in 13m37s
## 变更背景
资源管理画布在连续滚轮翻页时,可能出现偶发失效或中间栏目被逐页渲染,导致后续滚轮输入被资源渲染阻塞;同时,缩放、手动切页、排序和拖拽过程中还可能执行已经过期的翻页任务。
本 PR 将翻页意图与资源渲染提交解耦,并补齐交互取消边界,让连续输入始终基于最新逻辑目标栏目计算。
## 主要修改
- 滚轮分页改为同步维护逻辑目标栏目,可见栏目通过 React transition 异步提交;渲染尚未完成时,新滚轮事件仍基于最新逻辑目标继续计算,不逐页加载中间栏目。
- 待执行翻页队列改为有界合并与延迟 flush,修复旧定时器清理不完整的问题。
- Ctrl/Meta 缩放、触控板缩放手势、手动点击切页、切换排序、开始画布空白拖拽或资源卡拖拽时,取消尚未执行的过期翻页任务。
- viewport 更新显式携带目标栏目,画布拖拽记录发起时的栏目,避免过渡渲染期间把旧栏目 viewport 写入新栏目。
- 每个排序模式和栏目继续保留独立 viewport,复位、首次 fit 与保留用户当前平移缩放的路径统一使用同一套数据流。
- 依赖浮层的 ResizeObserver、scroll 和 resize 监听只在挂载时建立一次;viewport / 几何 revision 变化时通过 ref 合并调度一帧测量,避免连续输入时重复重建观察器。
- 更新资源自由画板技术方案,并补充回归测试覆盖连续滚轮、缩放取消、大步跳转、切页边界和依赖浮层观察器生命周期。
## 验证
- `npm run test -- apps/ai-game-creator-shell/tests/ResourceDependencyOverlay.test.ts apps/ai-game-creator-shell/tests/appSurface.test.ts --run`
- 2 个测试文件通过
- 393 / 393 tests passed
- `npm run agc:typecheck`
- `npm run lint:eslint -- apps/ai-game-creator-shell/src/view/project-development/index.tsx apps/ai-game-creator-shell/src/view/project-development/ResourceDependencyOverlay.tsx apps/ai-game-creator-shell/tests/ResourceDependencyOverlay.test.ts apps/ai-game-creator-shell/tests/appSurface/project-development.suite.ts`
- `npm run check:encoding`
- `git diff --check`
以上均为合并 `origin/master@2f3c578db` 后在 `b5c98af42` 上执行。
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/197
Co-authored-by: suzmii <suzmii@qq.com >
Co-committed-by: suzmii <suzmii@qq.com >
2026-08-26 15:29:35 +08:00
suzmii
92425dfea2
修复 AGC 运行时测试回归与 Provider 错误分类问题 ( #198 )
...
Project CI / Repository checks (push) Successful in 4m7s
Project CI / Frontend tests (push) Successful in 5m57s
Project CI / Backend tests (push) Successful in 6m55s
Project CI / Native shell tests (push) Successful in 16m41s
## 背景
本 PR 修复了最新 master 基线上发现的 AGC 测试失败,包括 Direct Runtime Skill 契约、敏感信息脱敏、外部生成 5xx 结果未知、Provider transport 错误分类,以及本地 mock 请求体读取问题。主要集中在:
- Direct Runtime 提示词和 Skill 索引契约未同步;
- 浏览器诊断、委派回执和 Runtime 失败投影的敏感信息脱敏回归;
- macOS 临时目录路径被误判为不安全链接祖先;
- 流式和画布 mock 服务只读取请求头,导致请求体断言失败;
- 本机 HTTP 代理将 loopback 连接关闭改写为 HTTP 502,导致 transport 错误分类错误;
- 平台图片生成收到 5xx 时,无法正确区分确定拒绝和结果未知。
本 PR 不包含资源管理滚轮分页相关前端改动。
## 修复内容
### Direct Runtime 与 Skill 契约
- 补齐审核 Skill 索引及 manifest 指纹。
- 恢复 Direct Runtime 提示词相关测试。
- 保持系统提示词长度、审核索引范围和敏感信息边界不变。
### 敏感信息投影
- 浏览器诊断在进入同线程修复前统一脱敏。
- 委派回执严格隔离敏感上下文。
- Runtime 失败投影不再泄漏命令行密码参数或旧计划明细。
### 外部生成与 Provider 错误分类
- 平台图片生成提交收到 5xx 时统一返回“结果未知”。
- 保留本地恢复账本,禁止将 5xx 当作确定拒绝。
- `platform-llm` 对 `localhost`、IPv4/IPv6 loopback 地址禁用环境代理,避免代理伪造 502,恢复真实 transport/stream 错误分类。
### 测试与 macOS 边界
- 流式 LLM、External Canvas mock 服务改为读取完整 HTTP 请求体。
- 允许 macOS `/var` 到 `/private/var` 的系统临时目录祖先链接。
- 继续拒绝用户项目中的链接祖先。
- macOS 下跳过不满足平台前提的大小写敏感路径和非 UTF-8 文件名测试。
## 影响范围
- AGC Direct Runtime
- Provider Runtime
- External Canvas 生成恢复
- `platform-llm` loopback HTTP 客户端
- 相关 Rust 测试基础设施
不改变公网 API、SpacetimeDB schema、资源管理滚轮分页行为或外部生产 Provider 的代理策略。
## 验证结果
- AGC Rust 完整测试:`2303 passed, 0 failed, 14 ignored`
- `platform-llm` 测试:`132 passed, 0 failed`
- `npm run check:encoding`:通过
- `git diff --check`:通过
## 分支与提交
- 分支:`codex/fix-agc-runtime-test-regressions`
- 基线:`origin/master`
- 最新提交:`94c5443a2 修复AGC运行时测试与本地请求回归`
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/198
Co-authored-by: suzmii <suzmii@qq.com >
Co-committed-by: suzmii <suzmii@qq.com >
2026-08-26 15:29:28 +08:00
kdletters
2f3c578db4
发布 AGC 标准版 0.1.8
...
Project CI / Repository checks (push) Successful in 3m46s
Project CI / Frontend tests (push) Successful in 11m26s
Project CI / Native shell tests (push) Failing after 6m54s
Project CI / Backend tests (push) Successful in 17m1s
同步 AI 游戏创作器的 package、Cargo、Tauri 与锁文件版本。
更新版本一致性脚本及其测试夹具。
2026-08-26 10:43:29 +08:00
kdletters
5c416ce5b5
Merge remote-tracking branch 'origin/master' into codex/docs-current-master
Project CI / Repository checks (push) Successful in 12m13s
Project CI / Frontend tests (push) Successful in 13m20s
Project CI / Backend tests (push) Successful in 23m7s
Project CI / Native shell tests (push) Failing after 31m49s
2026-08-26 10:12:00 +08:00
kdletters
969dcc0272
整理项目文档并统一当前口径
...
- 删除过时 PRD、设计、计划和退役文档
- 收口文档索引、产品基线、玩法链路和共享记忆
- 清理历史决策重复内容、断链和本机路径
- 更新 AGC Runtime、Provider、后端与运维当前约束
2026-08-26 10:11:46 +08:00
kdletters
2ac97b3f5e
退役客户端 MCP 约束与运行链路
...
Project CI / Repository checks (push) Successful in 3m50s
Project CI / Frontend tests (push) Successful in 4m41s
Project CI / Backend tests (push) Successful in 5m35s
Project CI / Native shell tests (push) Failing after 9m59s
删除客户端 MCP 配置、Runtime 工具和安全门禁
移除 MCP E2E 套件、测试夹具和测试辅助代码
清理 MCP 依赖及 Skill/Prompt 中的 MCP 约束
2026-08-26 02:32:05 +08:00
kdletters
a8c7cd2f2b
修复导入素材后资源画布不刷新
...
支持账户素材和项目内 PNG/JPEG/WEBP 本地素材导入后的 manifest 失效通知
增加资源画布导入图片回归测试并扩展素材发现上下文
同步更新 Agent 导入契约说明
2026-08-26 02:32:04 +08:00
kdletters
6b947c5430
修复 AGC 项目素材发现与受控导入
...
发现项目内未登记媒体并保持正式素材身份边界
新增 Runtime 与 Direct MCP 素材查询和导入工具
支持图片素材在 AssetImporter 中受控登记
补充路径安全、契约测试和技术文档
2026-08-26 02:32:04 +08:00
kdletters
990b71965c
修复陶泥儿错误诊断脱敏与资源参数提示
...
分离普通 Prompt 与错误诊断脱敏,保留安全 HTTP 字段并隐藏敏感值
补充 assetName 必填说明与 schema 回归测试
增加前端错误标记过滤及 HTTP 诊断回归测试
同步更新 AI 游戏创作智能体实施方案
2026-08-26 02:32:04 +08:00
lhk229
05e11b11ca
恢复被 #193 误删的策划前端全部样式,并加上组件到样式的守门测试 ( #195 )
...
Project CI / Repository checks (push) Successful in 4m6s
Project CI / Frontend tests (push) Successful in 4m26s
Project CI / Backend tests (push) Successful in 5m33s
Project CI / Native shell tests (push) Successful in 13m50s
症状:立项策划界面整体裸奔——审批卡、阶段进度条、交付行没有任何框和布局,
「查看 GDD 正文」弹层因 backdrop 丢掉 fixed 定位而内联平铺进消息流。
成因:策划前端经 squash PR #159 完整进入 master,组件(TSX)至今与源分支最终态
逐字节一致;随后 #193「Codex/agent chat layout fix」重写聊天区样式时,把
styles.css 里策划前端的选择器整段删除——gdd-approval-card 34 条、plan-gdd* 17
条、planning-lane-runtime-strip 上限——未搬往任何其他文件(全仓检索为 0)。同一
个 PR 把 project-development.suite.ts 大幅重写,原有的 CSS 守门断言一并消失,
所以没有任何测试变红。
修复:从 5802048c3^ 原样取回全部 42 个规则块,整段追加在 styles.css 末尾并注明
来历。这些选择器在当前文件中出现次数为 0,纯加法、零冲突,不触碰 #193/#194 有意
重构的聊天区规则;追加在末尾也保持了原有的同权重覆盖关系(策划窄条的上限仍压过
调试面板的 240px 天花板)。
守门:plan-gdd.suite.ts(两轮样式重构都未被触碰的文件)新增一条测试,类名清单
直接从 GddApprovalCard / PlanningLaneRuntimeStrip 源码推导,逐个断言 styles.css
里有对应规则,另单独锁弹层 backdrop 的 fixed 定位。A/B 验证:抽掉恢复段即红,报
「styles.css 缺少 .plan-gdd-surface 的规则」。组件加新类而样式缺失、或样式再次
被顺手清理,这条都会拦住。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/195
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-08-25 18:45:17 +08:00
kdletters
7cb79e3aa4
发布 AGC 标准版 0.1.7
...
Project CI / Repository checks (push) Successful in 3m59s
Project CI / Frontend tests (push) Successful in 4m42s
Project CI / Backend tests (push) Successful in 5m9s
Project CI / Native shell tests (push) Successful in 13m42s
同步 AI 游戏创作器的 package、Cargo、Tauri 与锁文件版本。
更新版本一致性脚本及其测试夹具。
2026-08-25 16:08:54 +08:00
kdletters
c09a511aaa
Codex/fix pr188 191 ci ( #194 )
...
Project CI / Repository checks (push) Successful in 2m24s
Project CI / Frontend tests (push) Successful in 2m54s
Project CI / Backend tests (push) Successful in 4m33s
Project CI / Native shell tests (push) Successful in 14m29s
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/194
Co-authored-by: kdletters <kdletters@qq.com >
Co-committed-by: kdletters <kdletters@qq.com >
2026-08-25 15:41:55 +08:00
kdletters
a265a0ff92
AGC 标准版升级至 0.1.6
...
Project CI / Repository checks (push) Failing after 4m14s
Project CI / Frontend tests (push) Failing after 5m8s
Project CI / Backend tests (push) Failing after 5m11s
Project CI / Native shell tests (push) Failing after 5m25s
统一 AI 游戏创作器的 package、Cargo 与 Tauri 版本号。
隔离 Developer Key 与 GUI 平台会话,并约束 DirectProject 原生 patch 路径。
补充对应回归测试与项目决策记录。
2026-08-25 15:18:01 +08:00
lhk229
31ebe4c78c
修复残留问题 ( #192 )
...
Project CI / Repository checks (push) Failing after 3m37s
Project CI / Frontend tests (push) Failing after 5m42s
Project CI / Backend tests (push) Failing after 5m40s
Project CI / Native shell tests (push) Failing after 5m27s
agent.db 是纯 append、全仓没有 rotation,而有界尾窗的记录数上限(16384)比写侧
的扫描上限(100 万)低两个数量级。截断掐掉的永远是更旧的记录,所以「命中」与截
断无关;只有「没命中」时才真的分不清「没写过」和「没看见」。
- plan_gdd_decision_audit_state_locked:截断判断从遍历前的无条件 Err 挪到遍历后、
且只在没命中时报。原先任何写够记录的项目都会永久停在 needs-reconciliation——
audit 明明就在窗口里,函数照样报错,文案还指向「identity 不一致」。
- approval_terminal_observation_exists_locked:不再把截断位丢给 `_`。没命中且截
断时返回 Err 而不是 Ok(false),交给调用方既有的具名 projection gap 分支,不再
让一次视野缺失冒充恢复缺口被反复重放。
- 收束闸 Err 分支标题改为「Fast GDD decision audit 无法确认」。Err 现在有 identity
冲突和尾窗截断两种来源,具体原因由 detail 里的 error 原文给出。
- AGENT_DB_MAX_BOUNDED_RECORDS 改 pub(crate),让回归测试能精确把 fixture 撑过截
断线,不必在测试里埋魔数。
新增 truncated_tail_scan_still_confirms_records_inside_the_window 钉住这两处:把
任一处改回旧行为都会让它失败。
recovery_scan.rs 的七槽审计是同样的形状,但它断言的是精确基数而非存在性,截断确
实证不了基数,另行处理。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/192
Co-authored-by: 孔令弘 <ink29535@proton.me >
Co-committed-by: 孔令弘 <ink29535@proton.me >
2026-08-25 14:27:31 +08:00
kdletters
96c2e4be44
发布AGC标准版0.1.5
...
Project CI / Frontend tests (push) Failing after 4m48s
Project CI / Repository checks (push) Failing after 5m3s
Project CI / Native shell tests (push) Failing after 5m48s
Project CI / Backend tests (push) Failing after 5m50s
同步Node、Tauri与Cargo版本
更新workspace与配置版本门禁
2026-08-25 14:26:36 +08:00
kdletters
c6a9c00439
同步远端主线并发布 UI 工作流修复
...
Project CI / Repository checks (push) Failing after 4m16s
Project CI / Backend tests (push) Failing after 5m3s
Project CI / Frontend tests (push) Failing after 5m4s
Project CI / Native shell tests (push) Failing after 5m48s
- 合并远端客户端布局与版本修复
- 保留多模态 UI 工作流与鉴权错误分类
2026-08-25 13:57:01 +08:00
kdletters
96c5444972
修复 Codex app-server 鉴权错误分类
...
- 识别 401/403 上游鉴权失败并归类为 unauthorized
- 增加错误分类回归测试并保持敏感诊断脱敏
- 更新 UI 工作流 Runtime 鉴权失败门禁说明
2026-08-25 13:47:35 +08:00
kdletters
10786c9672
打通多模态 UI 工作流与 Agent Runtime 路由
...
- 接入 Codex app-server 原生图片输入与隔离暂存
- 统一 UI 识别、合并、绑定到 Agent Runtime Provider
- 增加页面自动发现、UI 资源桥接与阶段持久化
- 同步画布编辑器投影、测试与技术文档
2026-08-25 13:06:46 +08:00
wuxiangwanzi
5802048c30
Codex/agent chat layout fix ( #193 )
...
Project CI / Repository checks (push) Failing after 4m12s
Project CI / Frontend tests (push) Failing after 4m18s
Project CI / Native shell tests (push) Failing after 5m9s
Project CI / Backend tests (push) Successful in 5m45s
Co-authored-by: kdletters <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/193
Co-authored-by: 五香丸子 <15518898337@163.com >
Co-committed-by: 五香丸子 <15518898337@163.com >
2026-08-25 12:36:51 +08:00
kdletters
23ea6d4906
升级AGC标准发行版patch版本
...
Project CI / Repository checks (push) Failing after 4m43s
Project CI / Frontend tests (push) Failing after 3m36s
Project CI / Backend tests (push) Successful in 8m28s
Project CI / Native shell tests (push) Failing after 6m43s
将AI游戏创作壳版本升级到0.1.4
同步Tauri、Cargo及版本校验门禁
2026-08-25 10:49:15 +08:00
wuxiangwanzi
07afb6d753
增加资源页签新资源红点 ( #191 )
...
Project CI / Native shell tests (push) Failing after 5m3s
Project CI / Backend tests (push) Successful in 6m1s
Project CI / Repository checks (push) Failing after 3m53s
Project CI / Frontend tests (push) Failing after 3m20s
按项目会话追踪非当前栏目新增资源并在切换后清除
为页签名称添加红点样式和无障碍标识
补充资源页签行为测试及工作台文档
---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/191
Co-authored-by: 五香丸子 <15518898337@163.com >
Co-committed-by: 五香丸子 <15518898337@163.com >
2026-08-25 10:48:12 +08:00
wuxiangwanzi
77b090fc77
隐藏首页模糊项目提示 ( #188 )
...
Project CI / Frontend tests (push) Failing after 3m2s
Project CI / Backend tests (push) Successful in 4m40s
Project CI / Repository checks (push) Failing after 2m37s
Project CI / Native shell tests (push) Failing after 4m13s
首页默认项目状态改为空
移除最近项目标题下的解释性副标题
补充首页视觉规则并更新界面测试
---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Co-authored-by: kdletters <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/188
Co-authored-by: 五香丸子 <15518898337@163.com >
Co-committed-by: 五香丸子 <15518898337@163.com >
2026-08-25 10:47:20 +08:00
kdletters
9f8a24fc23
解锁AGC直连Codex原生工具
...
Project CI / Backend tests (push) Successful in 4m6s
Project CI / Repository checks (push) Successful in 3m31s
Project CI / Frontend tests (push) Successful in 4m5s
Project CI / Native shell tests (push) Successful in 14m2s
精简DirectProject系统提示词与浏览器证据回传
开放受沙箱约束的原生文件搜索命令和Skill
通过本地凭据代理隔离Provider真实密钥
保留agc_tools账本与Runtime持久化权威
同步更新AGC技能包指纹和架构文档
2026-08-24 22:21:23 +08:00
kdletters
4b35a0cabd
Merge pull request '恢复资源排列胶囊分段按钮' ( #190 ) from codex/restore-resource-sort-segmented-control into master
...
Project CI / Repository checks (push) Successful in 3m24s
Project CI / Frontend tests (push) Successful in 3m35s
Project CI / Native shell tests (push) Successful in 17m42s
Project CI / Backend tests (push) Successful in 4m58s
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/190
2026-08-24 21:56:53 +08:00
wuxiangwanzi
84f993260a
恢复资源排列胶囊分段按钮
...
Project CI / Repository checks (pull_request) Successful in 3m0s
Project CI / Frontend tests (pull_request) Successful in 3m39s
Project CI / Backend tests (pull_request) Successful in 4m51s
Project CI / Native shell tests (pull_request) Successful in 19m37s
将依赖与类型恢复为同一胶囊内的左右分段按钮。
保留按依赖与按类型的无障碍名称并恢复可见短文案。
新增真实 DOM 结构回归,防止后续合并再次拆散按钮组。
2026-08-24 21:51:25 +08:00
lhk229
3d8e0211db
5分钟策划agent ( #159 )
...
Project CI / Repository checks (push) Successful in 3m54s
Project CI / Frontend tests (push) Successful in 4m20s
Project CI / Backend tests (push) Successful in 4m33s
Project CI / Native shell tests (push) Successful in 16m31s
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/159
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-08-24 21:44:44 +08:00
suzmii
532c6d51fd
完善 Game Agent 资源画布与图片精修生成事务 ( #181 )
...
Project CI / Repository checks (push) Successful in 4m5s
Project CI / Frontend tests (push) Successful in 4m48s
Project CI / Backend tests (push) Successful in 6m6s
Project CI / Native shell tests (push) Successful in 15m24s
## 背景
本合并请求整合 Game Agent 资源管理的栏目分页自由画布,以及图片持续精修、候选生成和本地恢复事务。
当前远端比较基线:
- base:`master` @ `b00a3f80576949567bf3320f0c6c92b4ed0a649d`
- head:`codex/game-agent-resource-section-pages` @ `5795d2f9b8797c342dcf2920ccefec2a3ff3f472`
- 相对 base:28 commits、33 files(`+3746 / -1333`)
## 主要改动
### 资源管理分页自由画布
- 固定展示“设计文档 → 美术资源 → 音乐音效 → 游戏代码 → 项目版本”五个栏目;空栏目仍可从悬浮 Dock 打开空画布。
- `按依赖` 与 `按类型` 共用栏目分页画布;每个“排序模式 + 栏目”组合独立保存 viewport。
- 普通滚轮使用有界意图队列切换栏目;Ctrl/Meta + 滚轮以指针为锚点缩放;空白拖拽可沿 x/y 无限平移,不以资源 extent 作为导航边界。
- 资源卡支持拖拽布局与一次 CAS 持久化;切页、排序切换和卸载会统一取消拖拽及 pointer capture。
- 资源详情为非模态独立卡片:打开、切换或关闭详情不卸载背景画布、资源卡或依赖连线,也不重置 viewport、搜索或排序状态。
- 顶部已移除“生成视频 / 生成音效 / 生成背景音乐 / 新增 UI 设计”的手动入口;保留播放、未完成编辑恢复、排序和画布复位,以及资源详情中的既有编辑动作。
### 图片持续精修与生成事务
- 图片资源可进入唯一活动精修草稿,支持原生批量导入、图片下方快速编辑卡、候选图层、任务侧栏和“设为最终图”。
- 生成成功只合并候选图层和 generation 权威事实,不以全量 hydrate 覆盖生成期间的本地编辑。
- 候选媒体、图层和公开 generation 记录写入并回读成功后,才推进私有 `candidate-ready`。
- 候选确认接入 Surface 保存 FIFO 与重新打开 hydrate;revision-sensitive 操作等待确认屏障。
- 失败归档和正式图提交采用可恢复中间态,避免中断后出现幽灵任务、重复 revision 或不一致的正式资产。
### 合同与文档
- `acknowledgeCandidateLayers`、`importLocalImages`、`archiveFailedGeneration` 为必选 Host Port;不支持的宿主返回结构化 `unsupported-capability`。
- 同步更新 TypeScript / Rust 合同、Tauri command 可达性、PRD、技术方案与项目共享记忆。
- 明确资源栏目无限画布合同:普通平移不夹取;资源 extent、图片测量、布局变更和 resize 不得重置用户 viewport;仅首次可测量布局与显式复位按真实卡片包围盒适配内容。
## 验证
CI run [#1290 ](https://git.genarrative.world/git/GenarrativeAI/Genarrative/actions/runs/1290 ) 针对当前 head 已完成且四项均成功:
- [x] Repository checks
- [x] Frontend tests(235 test files、3166 tests passed;App Surface 410 tests)
- [x] Backend tests
- [x] Native shell tests
另有本地定向检查:
- [x] `npm run agc:typecheck`
- [x] 资源画布、App Surface、Asset Canvas 与资源实时集成定向回归
- [x] Rust 候选确认、候选中断恢复、失败归档与恢复定向测试
- [x] `cargo fmt --check`
- [x] `npm run check:encoding`
- [x] `git diff --check`
## 评审 provenance
- review #247、#248、#252 都针对旧 head,当前在 Gitea 中均标记为 stale;不将其写作“已处理 #247”或当前 head 的评审结论。
- review #253 针对旧 `5456a1d…` head,提出 PRD 退役入口、共享 pitfalls 的 extent 旧合同和 PR 正文事实更新三项 P2;对应文档已在 `5795d2f…` head 修复并推送。
- 早期由 PR #176 引入的候选持久化、归档、Host Port 与快速编辑卡问题,当前已在 base/head 中具备对应修复,不作为本轮重复阻断项。
- 当前 head 仍需新的、针对最新提交的审批;历史 stale review 不能替代当前 head approval。
## 影响范围
- 修改 AI 游戏创作 App 的资源管理、图片精修、Tauri 本地持久化与恢复语义,以及共享合同和权威文档。
- 会调整本地资源布局、精修 draft 和私有 generation ledger 的状态机。
- 不修改 SpacetimeDB schema,不新增或变更 `/api/external/v1` 路由。
---------
Co-authored-by: kdletters <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/181
Co-authored-by: suzmii <suzmii@qq.com >
Co-committed-by: suzmii <suzmii@qq.com >
2026-08-24 20:42:58 +08:00
kdletters
b00a3f8057
移除资源画布顶部手动生成入口
...
Project CI / Repository checks (push) Successful in 6m9s
Project CI / Frontend tests (push) Successful in 6m19s
Project CI / Backend tests (push) Successful in 7m23s
Project CI / Native shell tests (push) Successful in 15m50s
删除资源画布顶部的生成视频、生成音效、生成背景音乐和新增 UI 设计按钮
移除仅服务于这些入口的前端 handler 与入口配置
保留 Agent 语义生成、已有资源编辑、生成动画和未完成任务恢复能力
补充顶部入口消失与画布级操作保留的定向回归测试
同步更新 AGC 配置白名单、技术方案与项目决策记录
2026-08-24 18:29:43 +08:00
suzmii
15a524e6e0
Feat: 完善 Game Agent 资源画板与图片精修链路 ( #176 )
...
Project CI / Native shell tests (push) Successful in 13m19s
Project CI / Repository checks (push) Successful in 3m31s
Project CI / Frontend tests (push) Successful in 4m16s
Project CI / Backend tests (push) Successful in 5m7s
## 摘要
本 PR 将 Game Agent 资源管理页升级为真实自由画板,并打通图片资源的快速编辑、候选生成、导入、失败归档与正式图提交流程。
同时补齐图片精修的事务恢复、候选身份校验、生成中任务恢复、鉴权重试,以及“设为最终图”后游戏运行资源的稳定刷新链路。
## 主要变更
### 1. 资源管理页自由画板
- “按依赖”视图改为统一自由画板:
- 支持指针拖拽平移
- 滚轮平移
- `Ctrl / Meta + wheel` 以指针为锚点缩放
- 支持复位和全量资源适配
- 增加隐藏导航边界:
- 边界由全量资源世界范围加安全留白决定
- 搜索过滤不会缩小边界
- 用户不能把全部资源拖出可视区域
- 图片资源卡按真实宽高比展示:
- 预览读取真实 `pixelWidth / pixelHeight`
- 布局碰撞、世界范围、依赖连线共同消费同一资源矩形
- 非图片资源保持固定卡片尺寸
- 点击资源改为非模态详情卡:
- 背景画板不卸载
- 顶部工具栏、搜索、排序、缩放状态不重置
- 图片详情不再进入全屏页
### 2. 图片资源快速编辑与精修画布
- 点击图片资源后直接显示快速编辑卡。
- 图片精修顶栏收敛为紧凑操作:
- 返回
- 导入
- 定位当前最终图
- 撤销 / 重做
- 删除、修改、设为最终图进入选中图片的上下文卡片。
- 快速编辑生成不再阻塞整张画布:
- 立即创建生成占位卡
- 占位卡可拖动并持久化位置
- 右上任务列表显示排队 / 生成中 / 完成 / 失败状态
- 任务列表可折叠
- 生成失败只影响当前任务:
- 保留失败占位
- 可显式归档失败任务
- `reconciliation-required` 任务不允许删除
- 原生多选图片导入:
- 使用 Tauri 原生文件选择
- 后端批量安全读取
- 一次推进草稿 revision
- 失败不留下半导入状态
### 3. 候选图与正式图事务
- 生成成功只加入草稿私有候选层,不直接修改 manifest。
- “设为最终图”是唯一正式资源切换入口。
- refine 保持原 asset ID 和来源身份,不追加新的业务资产身份。
- 正式文件使用不可变路径:
```text
assets/canvas/<name>--<commitId>.png
---------
Co-authored-by: kdletters <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/176
Co-authored-by: suzmii <suzmii@qq.com >
Co-committed-by: suzmii <suzmii@qq.com >
2026-08-24 16:27:33 +08:00
kdletters
e6105cdcf9
提升AGC标准安装包patch版本
...
Project CI / Repository checks (push) Successful in 4m31s
Project CI / Frontend tests (push) Successful in 5m9s
Project CI / Backend tests (push) Successful in 6m8s
Project CI / Native shell tests (push) Successful in 14m34s
同步标准客户端版本到0.1.2
更新workspace与配置版本门禁
2026-08-24 15:34:57 +08:00
kdletters
c59b8d4a1e
接入 External v1 抠图工具
...
Project CI / Frontend tests (push) Successful in 4m34s
Project CI / Repository checks (push) Successful in 4m38s
Project CI / Backend tests (push) Successful in 5m24s
Project CI / Native shell tests (push) Successful in 14m14s
将 agc_remove_background 切换到 External v1 异步契约
补齐稳定幂等身份、画布目录上下文与有界队列投影
同步 Skill、技术方案与项目决策记录
2026-08-24 15:16:02 +08:00
kdletters
03add97d30
Merge remote-tracking branch 'origin/master'
2026-08-24 15:04:12 +08:00
kdletters
275cab876c
开放受控抠图语义工具
...
新增 agc_remove_background 工具目录与客户端桥接
绑定登录账号、画布目录、稳定任务身份与有界队列结果
同步 Skill、技术方案和项目决策记录
补充工具参数、队列投影与内容指纹测试
2026-08-24 15:03:37 +08:00
wuxiangwanzi
1334648246
优化客户端登录界面视觉 ( #185 )
...
Project CI / Repository checks (push) Successful in 2m28s
Project CI / Frontend tests (push) Successful in 3m28s
Project CI / Backend tests (push) Successful in 4m41s
Project CI / Native shell tests (push) Successful in 14m6s
登录检查、登录页和错误页统一使用陶泥儿产品形象与平台浅色主题。
优化登录卡片、输入控件、切换按钮及窄屏布局。
补充认证界面测试并同步更新客户端技术方案。
---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Co-authored-by: kdletters <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/185
Co-authored-by: 五香丸子 <15518898337@163.com >
Co-committed-by: 五香丸子 <15518898337@163.com >
2026-08-24 14:38:15 +08:00
suzmii
aa8e3507d1
新增 External v1 去背景生成链路 ( #184 )
...
Project CI / Repository checks (push) Successful in 4m20s
Project CI / Frontend tests (push) Successful in 4m31s
Project CI / Backend tests (push) Successful in 5m45s
Project CI / Native shell tests (push) Successful in 14m53s
新增外部去背景 API、MCP 工具与异步队列契约
补齐来源归属、媒体类型、幂等重放和画布原子持久化校验
修复 provenance 重建、assetKindOverride 门禁与 revision retry 竞态
同步 Python helper、Skill、OpenAPI 及项目文档
---------
Co-authored-by: kdletters <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/184
Co-authored-by: suzmii <suzmii@foxmail.com >
Co-committed-by: suzmii <suzmii@foxmail.com >
2026-08-24 14:37:32 +08:00
kdletters
042eb05b0e
提升AGC标准安装包patch版本
...
Project CI / Repository checks (push) Successful in 3m24s
Project CI / Frontend tests (push) Successful in 4m5s
Project CI / Backend tests (push) Successful in 5m4s
Project CI / Native shell tests (push) Successful in 13m0s
同步Tauri、Cargo与Node版本到0.1.1
更新AGC配置检查门禁
2026-08-24 12:42:56 +08:00
kdletters
299b52d71b
Merge remote-tracking branch 'origin/master'
...
Project CI / Repository checks (push) Successful in 4m6s
Project CI / Frontend tests (push) Successful in 4m51s
Project CI / Backend tests (push) Successful in 6m15s
Project CI / Native shell tests (push) Successful in 15m50s
# Conflicts:
# apps/ai-game-creator-shell/src-tauri/src/project/resource_editor.rs
2026-08-24 12:21:29 +08:00
kdletters
46053832fd
补齐 Codex 语义媒体资源能力
...
新增登记资源查询与媒体创建/派生工具
接入画布上下文、幂等账本与 warning 回放
更新客户端 Skill、技术方案与决策记录
补充资源生成与传输失败回归测试
2026-08-24 12:05:27 +08:00
kdletters
2449e77461
修复切换账号后画布资源不可编辑 ( #182 )
...
Project CI / Frontend tests (push) Successful in 5m10s
Project CI / Backend tests (push) Successful in 5m37s
Project CI / Repository checks (push) Successful in 4m24s
Project CI / Native shell tests (push) Successful in 13m9s
## 变更
- 新增按服务 origin、平台 userId / Developer Key 摘要和本地 projectId 分区的 External Editor 项目绑定
- 新增按当前 principal、远端项目、本地 assetId、源 SHA-256、媒体类型和 canonical kind 分区的资源绑定
- manifest 中的 canvasProjectId / resourceId / assetObjectId 仅保留来源信息,不再作为当前账号的可编辑授权
- 切换账号后从本地正式资源重新上传、confirm、登记;图片、视频、角色动画、素材画布参考、art-spec 派生和 Direct 恢复统一使用当前账号绑定
- prepared / accepted / running 账本继续冻结原 principal;账号变化或远端结果不确定时停止补偿并保留现场等待对账
- 同步技术方案、decision log 和 pitfalls
## Review 结论
- 两路独立代码 review 均未发现剩余 P0-P2
- Review 发现并关闭了 max-pass 测试误放宽问题,恢复为绑定最大轮次的强断言
- 首轮 CI 暴露两处本 PR import 排序错误,已在独立提交 09486f142 中修复并复核
## 验证
- Rust 完整测试:2301 passed,0 failed,16 ignored
- Rust 集成与构建测试:5 + 2 + 14 passed
- repository-ci 本地同构门禁通过:lint、typecheck、139 表 SpacetimeDB schema guard、403 个 appSurface 测试、web/admin-web build
- External Editor procedure 真实 smoke 通过:精确重放、冲突、删除 fail-close、并发和孤儿检查
- Encoding check:5594 files
- git diff --check 通过
- Gitea Project CI run 1253:Repository checks、Frontend、Backend、Native shell tests 全部通过
- 当前 head a0b8415be 已合并 origin/master 44ee28c43,PR 无冲突
## 后续依赖
PR #176 暴露了这一公共账号身份缺陷。该 PR 合并后,#176 需要 rebase,并删除或接入其局部 canonical cache,不能保留第二套账号绑定系统。
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/182
Co-authored-by: kdletters <kdletters@qq.com >
Co-committed-by: kdletters <kdletters@qq.com >
2026-08-24 11:33:37 +08:00
wuxiangwanzi
44ee28c43f
让运行视窗按内容自适应 ( #180 )
...
Project CI / Repository checks (push) Successful in 3m38s
Project CI / Frontend tests (push) Successful in 3m55s
Project CI / Backend tests (push) Successful in 4m7s
Project CI / Native shell tests (push) Failing after 9m31s
为本地预览注入只读尺寸桥并校验 iframe 消息来源
按可用区域等比缩放完整游戏画面并移除横纵滚动条
补充前端与 Rust 回归测试并同步运行视窗文档
---------
Co-authored-by: kdletters <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/180
Co-authored-by: 五香丸子 <15518898337@163.com >
Co-committed-by: 五香丸子 <15518898337@163.com >
2026-08-24 10:54:06 +08:00
kdletters
0b546c9e4c
完善AGC受控客户端能力
...
Project CI / Repository checks (push) Successful in 4m44s
Project CI / Frontend tests (push) Successful in 6m6s
Project CI / Backend tests (push) Successful in 6m8s
Project CI / Native shell tests (push) Failing after 12m41s
补齐美术复用与显式重生成模式、稳定回合身份和幂等补偿恢复
收紧付费授权、四切片资源身份及告警投影边界
限制Direct Codex仅写真实game目录并接入受控联网搜索
持久化Direct用户与助手消息并修复同进程恢复竞争
同步审核Skill、技术文档、项目记忆和回归测试
2026-08-23 22:34:16 +08:00
wuxiangwanzi
e3b229ac78
调整 Agent 对话栏 Logo 与工作台布局 ( #183 )
...
Project CI / Repository checks (push) Successful in 5m34s
Project CI / Frontend tests (push) Successful in 6m5s
Project CI / Backend tests (push) Successful in 12m14s
Project CI / Native shell tests (push) Successful in 22m32s
放大 Agent 栏产品 Logo 并接入正式钱包入口
移除工作台外层卡片圆角与间距,改用区域底色和竖向分隔
将资源依赖/类型切换整理为联通分段按钮
---------
Co-authored-by: kdletters <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/183
Co-authored-by: 五香丸子 <15518898337@163.com >
Co-committed-by: 五香丸子 <15518898337@163.com >
2026-08-23 22:09:47 +08:00
Git Hooks Test
8fe439feba
修复AGC资源生成的序列帧持久化与画布完成上下文
...
Project CI / Repository checks (push) Successful in 4m20s
Project CI / Frontend tests (push) Successful in 4m35s
Project CI / Backend tests (push) Successful in 6m59s
Project CI / Native shell tests (push) Successful in 17m52s
- 本地manifest资产新增imageSequenceFrames和imageSequenceDurationMs,角色动画完成后随账本恢复并写回manifest
- 新建视频、音效和背景音乐时创建或复用同名画板项目与素材库目录,并携带projectId、assetFolderId和canvasCompletion
- 资源编辑请求指纹纳入generationMode,旧账本继续通过legacy指纹兼容
- 同步更新共享契约、前端资源投影、实施计划文档与定向测试
2026-08-23 21:37:27 +08:00
Git Hooks Test
e0319e80f0
补齐AGC资源生成能力并接入视频动画与音频生成
...
- 资源编辑命令新增create生成模式,支持无源视频、音效和背景音乐生成
- 图片聚焦态新增角色动画生成入口,提交角色动画接口并下载预览视频登记为本地媒体
- 资源页新增生成视频、生成音效、生成背景音乐入口
- 统一资源编辑面板按生成模式区分新建媒体资源与编辑现有资源
- 补充资源生成与角色动画定向测试,并更新AI游戏创作App实施计划文档
2026-08-23 21:37:27 +08:00
wuxiangwanzi
b1ee6d816d
优化Agent对话用户消息气泡 ( #179 )
...
Project CI / Repository checks (push) Successful in 3m42s
Project CI / Frontend tests (push) Successful in 4m19s
Project CI / Backend tests (push) Successful in 5m16s
Project CI / Native shell tests (push) Successful in 15m27s
将用户消息改为右侧气泡显示。
统一项目对话、Agent聊天页和Agent对话弹窗样式。
补充消息宽度、换行、圆角和移动端友好布局。
---------
Co-authored-by: kdletters <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/179
Co-authored-by: 五香丸子 <15518898337@163.com >
Co-committed-by: 五香丸子 <15518898337@163.com >
2026-08-23 19:06:05 +08:00
wuxiangwanzi
814fc343e2
优化客户端主界面表现 ( #177 )
...
Project CI / Repository checks (push) Successful in 4m11s
Project CI / Frontend tests (push) Successful in 5m52s
Project CI / Backend tests (push) Successful in 5m59s
Project CI / Native shell tests (push) Successful in 12m34s
调整首页品牌区、创作类型按钮和输入框视觉比例。
重做最近项目横向信息卡并展示类型、更新时间和进度。
补充本地项目修改时间只读字段及首页回归测试。
同步更新 GameAgent 客户端实施文档。
---------
Co-authored-by: kdletters <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/177
Co-authored-by: 五香丸子 <15518898337@163.com >
Co-committed-by: 五香丸子 <15518898337@163.com >
2026-08-23 16:50:14 +08:00
Git Hooks Test
c98bf4a17a
新增AGC受控联网搜索工具
...
Project CI / Native shell tests (push) Failing after 2m9s
Project CI / Repository checks (push) Successful in 4m23s
Project CI / Frontend tests (push) Successful in 4m34s
Project CI / Backend tests (push) Successful in 5m59s
在DirectProject的agc_tools MCP中按webSearchEnabled开关新增agc_web_search工具。
通过客户端loopback工具桥固定访问Bing RSS并返回有界公开HTTPS结果。
保持Codex原生webSearch禁用,并同步搜索开关到系统提示词与连接池隔离边界。
补充MCP目录、参数校验、结果过滤、真实搜索链路和配置回归测试,并更新技术文档。
2026-08-23 16:04:25 +08:00
kdletters
1a909704aa
预览镜像同时内置本地环境配置
...
Project CI / Repository checks (push) Successful in 2m52s
Project CI / Native shell tests (push) Failing after 2m50s
Project CI / Frontend tests (push) Successful in 4m11s
Project CI / Backend tests (push) Successful in 4m44s
预览 API 与 worker 通过 BuildKit secret 内置 .env.local
补齐预览控制面固定 .env.local 校验与文档
更新 Docker 构建边界测试
2026-08-23 14:29:46 +08:00
kdletters
78ebe063f3
修复Jenkins Web构建npm版本漂移
...
Project CI / Native shell tests (push) Failing after 2m18s
Project CI / Repository checks (push) Successful in 4m7s
Project CI / Frontend tests (push) Successful in 4m35s
Project CI / Backend tests (push) Successful in 5m30s
新增 Jenkins 用户级 npm 10.9.7 版本隔离引导
在 Web Build 各独立 shell 复用固定 npm 后执行 workspace 安装与门禁
收紧生产运维检查并同步 npm workspaces 文档与共享决策
2026-08-23 04:11:18 +08:00
kdletters
5c58539052
修复AGC配置脚本导入顺序
...
Project CI / Native shell tests (push) Failing after 2m49s
Project CI / Repository checks (push) Successful in 3m57s
Project CI / Frontend tests (push) Successful in 4m50s
Project CI / Backend tests (push) Successful in 5m31s
按仓库 ESLint 规则整理 TypeScript 导入分组,解除 master 推送门禁
2026-08-23 01:59:21 +08:00
kdletters
d8a7e814f2
实现AGC直连增量进度反馈
...
新增 direct turn update 事件与安全活动、正文增量、序号及终态生命周期
接入 Codex app-server 活动观察并限制高频活动通知
在 AGC 项目聊天渲染过程卡并保护项目与回合隔离、乱序门禁和自动跟随
补齐 direct 增量反馈的前端、Rust 回归测试与 Direct Interaction Event v1 文档
2026-08-23 01:54:28 +08:00
kdletters
01b10aafb2
修复素材画布生成恢复与模态交互
...
素材生成凭据失败保留原幂等身份并支持登录后恢复
素材生成在远端提交、下载暂存和正式提交前复验会话与草稿状态
稳定 staging token 支持半提交修复并对冲突和文件系统异常失败关闭
素材画布三类模态框增加焦点圈闭、背景隔离和焦点恢复
Tauri 命令可达性改为 TypeScript AST 扫描并收紧 allowlist
补充生成恢复、取消态、staging 与模态交互回归及项目决策记录
2026-08-23 01:54:28 +08:00
Git Hooks Test
32da013545
修复AGC Skill跨平台指纹漂移
...
Project CI / Native shell tests (push) Failing after 2m5s
Project CI / Repository checks (push) Successful in 3m34s
Project CI / Frontend tests (push) Successful in 4m14s
Project CI / Backend tests (push) Successful in 5m58s
统一以UTF-8 LF规范化内容计算Skill与清单指纹
安装隔离Skill时写入规范化文本避免Windows混合换行
增加LF与CRLF等价及安装结果回归测试
同步Skill Pack版本与实施文档、技术方案和踩坑记录
2026-08-23 01:20:28 +08:00
JenkenB
b7a6f853d5
修复 AGC 内置 Skill 内容指纹 ( #175 )
...
Project CI / Repository checks (push) Successful in 3m50s
Project CI / Native shell tests (push) Failing after 1m36s
Project CI / Frontend tests (push) Successful in 3m55s
Project CI / Backend tests (push) Successful in 4m30s
## 变更
- 重算并修正三项内置 AGC Skill 的内容指纹
- 将审核 Skill Pack 版本提升至 2026-08-22.2
- 补充指纹回归防范记录
## 验证
- AGC Skill Pack Rust 单测 4/4 通过
- npm run check:encoding 通过
- git diff --check 通过
---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/175
Co-authored-by: 高物 <253518756@qq.com >
Co-committed-by: 高物 <253518756@qq.com >
2026-08-22 16:53:36 +08:00
kdletters
8cc1432b86
修复完整容器数据库内存上限
...
Project CI / Repository checks (push) Successful in 3m52s
Project CI / Frontend tests (push) Successful in 4m0s
Project CI / Backend tests (push) Successful in 5m26s
Project CI / Native shell tests (push) Failing after 1m56s
将完整容器 SpacetimeDB 内存上限提升到 2 GiB
增加基础 Compose 内存门禁
同步容器运维文档与项目长期记忆
2026-08-22 16:22:55 +08:00
kdletters
d631253c34
将预览密钥内置到API镜像
...
Project CI / Repository checks (push) Successful in 4m32s
Project CI / Frontend tests (push) Successful in 4m34s
Project CI / Backend tests (push) Successful in 5m18s
Project CI / Native shell tests (push) Failing after 1m37s
固定Jenkins预览密钥宿主路径并收紧文件校验
通过BuildKit secret向API和工作进程镜像安装密钥文件
增加摘要缓存门禁和普通无密钥构建兼容验证
同步预览部署文档、安全边界与排障记忆
2026-08-22 15:45:40 +08:00
kdletters
27de28a487
迁移 npm workspaces 统一依赖边界
...
根目录统一管理九个 workspace 与唯一 lockfile
迁移 CI、Jenkins 和容器的根目录单次 npm ci
补齐 hoist 兼容、版本校验与 workspace 门禁
同步依赖边界方案、运维文档和长期记忆
2026-08-22 13:17:26 +08:00
Git Hooks Test
00b78c9701
治理Rust构建缓存膨胀
...
Project CI / Repository checks (push) Successful in 3m40s
Project CI / Backend tests (push) Successful in 4m9s
Project CI / Frontend tests (push) Successful in 4m10s
Project CI / Native shell tests (push) Failing after 11m55s
关闭测试 profile 的增量编译并对齐 AGC 开发调试配置
新增受控缓存审计和显式 incremental 清理命令
补齐安全测试、开发运维说明与团队踩坑记录
2026-08-22 11:52:14 +08:00
Git Hooks Test
d83551dd65
恢复AGC首页三类创作入口
...
Project CI / Repository checks (push) Successful in 3m28s
Project CI / Backend tests (push) Successful in 4m3s
Project CI / Frontend tests (push) Successful in 4m6s
Project CI / Native shell tests (push) Failing after 12m2s
恢复做游戏、做素材、做方案的类型状态与分类提示
将受限 creationType 作为结构化首轮上下文传入项目内 Codex,保持用户原文不变
修正三项内置 Skill 指纹并补齐前端、Rust 与文档回归
2026-08-22 10:46:33 +08:00
Git Hooks Test
2d99a12196
修正首页自动建项目后进入项目对话
...
Project CI / Frontend tests (push) Failing after 3m35s
Project CI / Repository checks (push) Successful in 3m52s
Project CI / Backend tests (push) Successful in 4m22s
Project CI / Native shell tests (push) Successful in 15m1s
恢复首页自动项目创建并移除无项目对话入口
首条正文与附件在新项目工作台内交给直连 Codex
补充 Tauri 命令、配置门禁、AppSurface 测试与迁移计划
2026-08-21 17:48:01 +08:00
kdletters
e8d9367df7
修复AGC依赖锁文件缺失 ( #174 )
...
Project CI / Repository checks (push) Successful in 3m30s
Project CI / Backend tests (push) Successful in 4m14s
Project CI / Frontend tests (push) Successful in 4m16s
Project CI / Native shell tests (push) Successful in 15m42s
## 问题
合并后的 `master` 连续暴露了三个既有的 AGC 原生构建 blocker:
1. `npm ci --prefix apps/ai-game-creator-shell` 因 lockfile 缺少 `@emnapi/core` / `@emnapi/runtime` 嵌套节点而失败。
2. 修复安装后,Linux Tauri build 又因通用配置无条件引用未生成的 Windows Codex 侧车而失败。
3. Native shell 全量测试继续暴露三项内置 Skill 指纹从初次提交起即与最终文件字节不一致,以及 Linux 会把 Windows 路径语法误判为普通相对路径。
这些问题都在画布优化合并前的 AGC 集成提交中已经存在;画布优化未修改 AGC manifest、lockfile、Tauri 配置或 Skill Pack。
## 修复
- 使用子包 manifest 重新生成独立 package-lock 元数据
- 恢复 Tailwind oxide WASM bundled `@emnapi` 节点并保留 npm 元数据规范化
- 把 Codex Windows x64 侧车映射从通用配置迁到 `tauri.windows.conf.json`
- 配置门禁同时约束通用配置无 Windows resource、Windows 配置保留完整白名单
- 重算三项内置 Skill 内容指纹并提升审核包版本
- Skill 引用路径按平台无关规则拒绝反斜杠、盘符、UNC、绝对路径和父目录段
- 补充 MCP 回归,并同步技术方案、迁移计划和长期排障记录
## 验证
- npm 10.9.7 / npm 9.2.0:`npm ci --prefix apps/ai-game-creator-shell` 通过
- Linux:`npm run ai-game-creator-shell:build -- --no-bundle` 通过
- Skill 指纹 5/5 复算匹配;Skill / MCP 定向测试通过
- `npm run check:native-shells` 完整通过:AGC Rust `2159 passed / 0 failed / 15 ignored`,最终输出 `[check:native-shells] OK`
- `npm run check:encoding`、`npm run check:rustfmt`、本次目标文件 Prettier、`git diff --check` 通过
- AGC、desktop、server-rs Cargo.lock 与两份 package-lock 均无漂移
Reviewed-on: #174
Co-authored-by: kdletters <kdletters@qq.com >
Co-committed-by: kdletters <kdletters@qq.com >
2026-08-21 17:38:58 +08:00
kdletters
c39d63b65f
优化图片画布拖动性能 ( #173 )
...
Project CI / Frontend tests (push) Failing after 45s
Project CI / Native shell tests (push) Failing after 46s
Project CI / Repository checks (push) Failing after 47s
Project CI / Backend tests (push) Successful in 3m25s
## 修改
- 按动画帧合并高频拖动更新,结束时持久化最终状态
- 对未移动图层子树做 memo,保留并发资源与业务字段更新
- 补充拖动合帧、最终 flush、并发状态和图层渲染回归
- 同步真实位图性能验收与排障文档
## 验证
- 8 个相关测试文件 202/202 通过
- TypeScript typecheck、编码检查、Prettier、git diff --check 通过
- 12000×12000 画布、360 张独立 512×512 PNG:有效位置更新 23.44/s → 58.18/s,gap p95 119.8ms → 32.9ms,>50ms 停顿 32 → 0,持久化快照 240 → 1
- 可信 CDP 输入最终运动观测约 46.9 FPS,不以空转 rAF 代替拖动帧率
Reviewed-on: #173
Co-authored-by: kdletters <kdletters@qq.com >
Co-committed-by: kdletters <kdletters@qq.com >
2026-08-21 15:33:02 +08:00
Git Hooks Test
f25fb2a768
合并远端 master 更新
...
Project CI / Frontend tests (push) Failing after 47s
Project CI / Repository checks (push) Failing after 48s
Project CI / Native shell tests (push) Failing after 53s
Project CI / Backend tests (push) Successful in 3m32s
保留远端 UI 编辑器与门禁清理改动
合入本地 AGC 直连 Codex 长任务修复
# Conflicts:
# apps/ai-game-creator-shell/package-lock.json
# apps/ai-game-creator-shell/src-tauri/Cargo.lock
# apps/ai-game-creator-shell/src/view/project-development/index.tsx
# apps/ai-game-creator-shell/tests/appSurface/home.suite.ts
2026-08-21 15:07:29 +08:00
Git Hooks Test
9d73f9a157
修复直连 Codex 长任务验收等待
...
扩大 DirectProject 基础、MCP 与整回合有界等待并统一工具超时
明确禁用 shell 时使用文件快照和结构化试玩证据,避免误报能力阻断
同步真实陶泥儿生图、幂等复用与双视口浏览器验收记录
2026-08-21 13:30:06 +08:00
kdletters
46baebbc10
清理过期测试与门禁
...
Project CI / Repository checks (push) Successful in 3m8s
Project CI / Frontend tests (push) Successful in 3m26s
Project CI / Backend tests (push) Successful in 3m58s
Project CI / Native shell tests (push) Successful in 15m16s
删除退役内容校验、视觉小说墓碑脚本和旧玩法门禁文档
移除死别名与退役分支触发并同步当前文档入口
为Gitea和Jenkins补齐可信SpacetimeDB schema比较基线
补充workflow、schema和生产运维防回归测试
2026-08-21 12:20:43 +08:00
menghao
e4e3cab559
修复画布参考图上传删除链路 ( #164 )
...
Project CI / Repository checks (push) Successful in 3m3s
Project CI / Frontend tests (push) Successful in 3m32s
Project CI / Backend tests (push) Successful in 5m45s
Project CI / Native shell tests (push) Successful in 16m17s
主站规范生成支持多张参考图
修复普通生成参考图删除与提交状态不同步
优化触屏设备删除按钮可达性并补充回归测试
---------
Co-authored-by: kdletters <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/164
Co-authored-by: 孟豪 <mh18530625731@163.com >
Co-committed-by: 孟豪 <mh18530625731@163.com >
2026-08-21 11:55:32 +08:00
lhk229
7e3adc38b9
完美像素产物会缩放到与原图相近的尺寸;提高识别小网格的倾向 ( #172 )
...
Project CI / Frontend tests (push) Successful in 4m6s
Project CI / Repository checks (push) Successful in 4m14s
Project CI / Backend tests (push) Successful in 5m2s
Project CI / Native shell tests (push) Successful in 17m6s
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/172
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-08-21 11:19:17 +08:00
Git Hooks Test
bacd7a9da7
完成 AGC 直连 Codex 与审核 Skill 工具链
...
收口首页和项目聊天为唯一 Direct Codex thread
内置五项审核 Skill Pack 与受控 MCP、浏览器及美术工具桥
补齐 Codex Windows 侧车组件、Provider 代理和凭据幂等边界
同步客户端资源投影、交互测试及技术文档
2026-08-20 23:55:00 +08:00
k88936
0797410eef
Feat/UI自动识别和布局编辑器简化版 ( #170 )
...
Project CI / Repository checks (push) Successful in 3m18s
Project CI / Frontend tests (push) Successful in 3m32s
Project CI / Backend tests (push) Successful in 4m24s
Project CI / Native shell tests (push) Successful in 15m34s
* 支持从项目, 本地电脑, 主站导入/引用素材.
* 页面复杂, 需要足够空间, 作为资源打开时会占满右侧
* 编辑结果作为一种新的美术资源.
* 新增素材按钮现在是空的实现, 临时在旁边加了一个新增UI设计的按钮
临时入口:

简化:
* 组件实现了最基本的图片和文本
* 容器式布局未接入llm编辑
* 不同阶段统一维护一个状态State, 任何阶段都可以人工调整, 不设单独的步骤
* 多图的UI合并功能暂时不要求, 隐藏入口
* 因为生成工具尚未从主站迁移, 主站地图子画布未实现, 以tab栏的形式容纳素材的子画布需求搁置
* 未实现llm绑定字体功能
* 识别会替换现有UI树, 暂时不是增量的
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/170
Co-authored-by: 王德宇 <kvtodev@outlook.com >
Co-committed-by: 王德宇 <kvtodev@outlook.com >
2026-08-20 19:07:25 +08:00
kdletters
4bf6c50a56
修复AGC开发者凭据目录权限初始化
...
Project CI / Repository checks (push) Successful in 2m22s
Project CI / Frontend tests (push) Successful in 2m52s
Project CI / Backend tests (push) Successful in 3m38s
Project CI / Native shell tests (push) Successful in 14m13s
允许客户端自动收紧当前用户持有目录的继承 ACL
保留 foreign owner 与异常路径的失败关闭边界
补充 Windows 回归测试并同步实施决策文档
2026-08-20 14:11:59 +08:00
kdletters
341761ee3b
同步AGC单窗口原生门禁
...
Project CI / Repository checks (push) Successful in 2m21s
Project CI / Frontend tests (push) Successful in 3m0s
Project CI / Backend tests (push) Successful in 4m5s
Project CI / Native shell tests (push) Successful in 14m20s
禁止普通启动自动打开开发窗口
2026-08-19 19:03:54 +08:00
kdletters
4ba1859f10
修复AGC原生HTTP能力门禁
...
Project CI / Repository checks (push) Successful in 2m48s
Project CI / Frontend tests (push) Successful in 3m9s
Project CI / Backend tests (push) Successful in 4m15s
Project CI / Native shell tests (push) Failing after 15m21s
同步登录服务器切换后的受控HTTP allowlist
记录Native门禁的现役能力边界
2026-08-19 16:56:16 +08:00
kdletters
925aefd934
修复AGC Native测试夹具
...
Project CI / Repository checks (push) Successful in 2m46s
Project CI / Frontend tests (push) Successful in 3m10s
Project CI / Backend tests (push) Successful in 4m21s
Project CI / Native shell tests (push) Failing after 14m44s
固定普通 JSON Provider mock 为非流式
为平台账号画布与视觉门禁测试安装隔离会话
同步现役路由、默认配置与提示词断言
2026-08-19 14:42:41 +08:00
kdletters
9fe800da80
修复AGC Native测试认证与阻断
...
Project CI / Repository checks (push) Successful in 2m33s
Project CI / Frontend tests (push) Successful in 2m55s
Project CI / Backend tests (push) Successful in 3m58s
Project CI / Native shell tests (push) Failing after 16m33s
- 为画布与资源编辑 loopback fixture 增加 task-local External Editor 凭据
- 为平台账号语义测试安装隔离会话并修正资源编辑错误分类断言
- 为 Windows mock listener 增加有界 accept 与 blocking stream 恢复
- 同步 autonomous main-loop、completion fixture 与项目决策记录
2026-08-19 03:24:29 +08:00
kdletters
0fc69c620a
修复Gitea仓库门禁依赖安装
...
Project CI / Repository checks (push) Successful in 2m21s
Project CI / Frontend tests (push) Successful in 3m6s
Project CI / Backend tests (push) Successful in 3m30s
Project CI / Native shell tests (push) Failing after 3h0m0s
- Repository checks 在运行 AGC AppSurface 前安装子包依赖
- 补充工作流依赖准备契约测试
2026-08-18 22:35:36 +08:00
kdletters
b8dc3fe1b1
修复AGC登录网络错误与构建门禁
...
Project CI / Repository checks (push) Failing after 1m3s
Project CI / Frontend tests (push) Successful in 3m3s
Project CI / Backend tests (push) Successful in 4m3s
Project CI / Native shell tests (push) Failing after 3h0m0s
- 登录页归一网络错误并避免暴露底层 transport 文本
- 补充拒绝连接提示与错误信息脱敏回归测试
- master 推送门禁增加 AGC AppSurface 验证
2026-08-18 22:15:49 +08:00
kdletters
fe69a49a9c
修正AGC主分支门禁
...
Project CI / Repository checks (push) Successful in 1m23s
Project CI / Frontend tests (push) Failing after 2m8s
Project CI / Native shell tests (push) Failing after 3m5s
Project CI / Backend tests (push) Successful in 3m43s
- 修正直连 Codex 烟测脚本导入排序
- 修正播放请求回调依赖并稳定调用最新动作
2026-08-18 21:18:39 +08:00
kdletters
3cda3f3e33
合并AGC直连运行时可靠性修复
...
- 合并登录服务器切换与本地资源请求修复
- 合并已有游戏意图分流与同线程试玩链路
- 合并直连运行时素材验收与真实浏览器证据改进
2026-08-18 20:58:14 +08:00
kdletters
64310b3719
Merge remote-tracking branch 'origin/master' into codex/agc-runtime-generation-reliability
2026-08-18 20:54:01 +08:00
kdletters
f9ee0d5ac7
恢复直连已有游戏意图分流
...
- 已有游戏默认进入同一 Codex thread 编辑与试玩链路
- 仅明确新建或重做美术请求触发平台素材准备
- 补充已有游戏编辑与外部美术生成意图分流测试
2026-08-18 20:53:13 +08:00
kdletters
9070c0760b
修复登录服务器切换与本地资源请求
...
- 允许 release 客户端安全访问 custom HTTPS 与本机 loopback HTTP
- 修复 Tauri WebView 请求传输与无效 URLPattern
- 按服务器 origin 隔离本机 External Editor 凭据
- 保留登录请求底层错误并补充路由与凭据隔离测试
2026-08-18 18:32:49 +08:00
kdletters
1e9d74fa4a
增加登录服务器选择
...
- 登录页支持 release、dev 和 custom 服务器
- 持久化服务器选择并统一登录与平台会话请求地址
- 校验自定义服务器 origin 与 HTTPS 安全边界
- 补充前端、AppSurface 和 Rust 平台会话测试
2026-08-18 13:46:03 +08:00
kdletters
bdf7ed288a
放宽直连游戏验收并增加运行时素材证据
...
- 将固定四切片与固定 drawImage 降为推荐路径
- 在导航前注入 Canvas/WebGL 平台素材运行时观测
- 对缺少核心素材渲染证据的 desktop/mobile 视口回灌同一 Codex thread 整改
- 补充直连验收、浏览器脚本与真实 Chrome fixture 测试
- 同步 AGC 直连 Runtime 实施计划
2026-08-18 13:14:45 +08:00
kdletters
7f60a00c84
修复预览镜像认证入口
...
Project CI / Repository checks (push) Successful in 1m23s
Project CI / Frontend tests (push) Successful in 2m59s
Project CI / Backend tests (push) Successful in 4m3s
Project CI / Native shell tests (push) Successful in 14m7s
为分支预览启用首次密码登录自动注册
为预览短信入口配置隔离 mock 验证码
补充预览部署门禁和认证验收文档
2026-08-17 22:55:27 +08:00
kdletters
94200a3cdb
修复AGC直连聊天持久化与生成竞态
...
持久化直连用户消息和最终安全回复,并在重开项目时恢复
补充直连聊天与工作台验收回归测试
直连美术生成和版本登记等待项目写锁,避免首轮生成被聊天保存阻断
同步直连 Runtime 实施计划
2026-08-17 20:11:22 +08:00
kdletters
286c402a4b
修复运行时设置弹窗背景与滚动
...
设置弹窗打开时锁定页面滚动并在关闭后恢复原状态
将弹窗、提示条和底部状态区改为不透明实色背景
补充设置弹窗滚动锁定与恢复的界面回归测试
2026-08-17 19:03:50 +08:00
kdletters
f30e6e9f33
修复智能创作鉴权提示可读性
...
分隔产品名称与直连运行时错误原因
同步更新直连错误投影测试
2026-08-17 15:35:13 +08:00
kdletters
7ecc9f4971
合并平台账号编辑器 API 分支
...
登录态接入平台编辑器生成接口
普通用户隐藏外部编辑器高级配置
保留陶泥儿直连运行时生成反馈
2026-08-17 15:20:19 +08:00
kdletters
836d599a98
Merge remote-tracking branch 'origin/master' into codex/agc-runtime-generation-reliability
...
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
2026-08-17 15:12:43 +08:00
kdletters
5ea453d5d1
收口AGC单窗口启动
...
取消开发态自动打开 Agent 聊天窗口
统一客户端可见标题为陶泥儿
同步启动守卫、测试与技术文档
2026-08-17 14:32:13 +08:00
kdletters
08bca001a2
修复AGC直连创作反馈与资源预览
...
直连运行时推送陶泥儿美术、代码与版本登记阶段进度
资源管理首屏预取可预览资源并补齐回归测试
同步直连运行时实施计划和团队决策记录
2026-08-17 13:17:14 +08:00
kdletters
e455cd593c
兼容历史预览构建记录
...
Project CI / Repository checks (push) Successful in 1m2s
Project CI / Frontend tests (push) Successful in 2m58s
Project CI / Native shell tests (push) Successful in 14m17s
Project CI / Backend tests (push) Successful in 3m56s
启动时回填旧记录的 Jenkins 构建编号
将旧 loopback 构建详情转换为局域网地址
补充历史记录迁移测试
2026-08-17 12:52:40 +08:00
kdletters
38ae9d7d07
完善预览发布记录管理
...
Project CI / Frontend tests (push) Successful in 2m55s
Project CI / Backend tests (push) Successful in 3m53s
Project CI / Native shell tests (push) Successful in 15m2s
Project CI / Repository checks (push) Successful in 1m6s
发布记录改用 Jenkins 构建编号并展示
失败与停止记录增加自动清理期限
构建详情改为局域网 Jenkins 地址
同步测试、部署配置和运维文档
2026-08-17 12:42:29 +08:00
kdletters
abb3912530
增加分支与提交搜索校验
...
Project CI / Frontend tests (push) Successful in 2m54s
Project CI / Native shell tests (push) Successful in 14m0s
Project CI / Repository checks (push) Successful in 1m6s
Project CI / Backend tests (push) Successful in 3m54s
增加分支和 commit 的输入搜索下拉构建前复核固定仓库中的分支与 commit 归属补充预览控制面接口合同、配置和测试
2026-08-17 12:04:31 +08:00
kdletters
91c333ea4a
修复 Windows 微信支付测试的 OpenSSL 构建依赖
...
移除 platform-wechat 的 openssl 测试依赖
使用固定 RSA PEM fixture 保持签名与解析测试语义
记录 Windows MSVC 原生 OpenSSL 测试依赖陷阱
2026-08-17 11:34:15 +08:00
kdletters
ced4b56dee
优化预览发布记录展示
...
Project CI / Repository checks (push) Successful in 1m22s
Project CI / Frontend tests (push) Successful in 2m55s
Project CI / Backend tests (push) Successful in 3m56s
Project CI / Native shell tests (push) Successful in 14m7s
发布记录增加后端校验后的 Web 端口号
列表隐藏已成功卸载的容器记录
兼容恢复旧运行记录并回填 Web 端口
补充后端、前端测试和技术说明
2026-08-17 10:47:58 +08:00
kdletters
81a35e0bff
让AGC登录后直接使用平台编辑器API
...
普通客户端使用陶泥儿登录态访问站内编辑器、素材与生成状态路由
隔离standalone高级模式的External URL与Developer API Key配置
同步GUI与Runner的平台会话、可信服务origin和鉴权代际
绑定生成账本owner并阻断登出或换号后的旧请求落盘
修正本地图片上传确认、项目资源登记和sourceReferenceId链路
区分401登录刷新与403权限不足并保留原幂等恢复语义
补充后端客户端幂等命名空间、稳定结果投影和图集请求头
更新AGC界面测试、Rust契约测试及项目技术文档
2026-08-17 10:43:08 +08:00
kdletters
647cf82cec
实现AGC直连运行时与陶泥儿美术闭环
...
新增直连 Codex 项目聊天、会话恢复与可读错误反馈
接入陶泥儿规范图、背景、固定四切片并校验实际渲染
同步游戏代码资源分类、项目版本 revision 与外部编辑器契约
2026-08-17 09:57:31 +08:00
kdletters
080c3ebc4f
修复预览部署结果字段冲突
...
Project CI / Frontend tests (push) Successful in 3m49s
Project CI / Backend tests (push) Failing after 3m50s
Project CI / Repository checks (push) Successful in 1m11s
Project CI / Native shell tests (push) Successful in 14m44s
使用权威 branch 和 resolvedCommit 字段解析 Jenkins 产物
移除与附加 source 字段冲突的旧别名
保留状态解析错误上下文以便安全排障
2026-08-15 19:18:49 +08:00
kdletters
c75fcbf023
修复预览构建状态解析与工作进程恢复
...
Project CI / Repository checks (push) Successful in 55s
Project CI / Frontend tests (push) Successful in 3m35s
Project CI / Backend tests (push) Successful in 4m38s
Project CI / Native shell tests (push) Successful in 15m53s
限制 Jenkins 状态接口只返回监控所需字段
避免完整构建 JSON 触发反序列化递归深度限制
让预览外部生成工作进程在身份初始化后自动重启
补充定向测试、防回归检查和技术说明
2026-08-15 18:52:10 +08:00
kdletters
cf5eac1c63
修复Jenkins成功收尾状态竞态
...
Project CI / Repository checks (push) Successful in 53s
Project CI / Frontend tests (push) Successful in 3m36s
Project CI / Native shell tests (push) Successful in 15m35s
Project CI / Backend tests (push) Successful in 4m19s
为队列、构建状态和部署产物查询增加有限重试
避免 Jenkins 瞬态无效响应永久覆盖成功部署状态
增加构建收尾竞态回归测试和技术说明
2026-08-15 18:38:59 +08:00
kdletters
ea81d8ebb5
修复预览数据库容器内存不足
...
Project CI / Native shell tests (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Successful in 1m20s
将分支预览 SpacetimeDB 内存上限覆盖为 2 GiB
保留生产与压测 Compose 的原有资源基线
增加预览内存覆盖防回归检查和故障说明
2026-08-15 18:33:30 +08:00
kdletters
d0a8f254b3
修复预览环境非交互发布
...
Project CI / Repository checks (push) Successful in 1m0s
Project CI / Backend tests (push) Successful in 4m16s
Project CI / Frontend tests (push) Successful in 3m27s
Project CI / Native shell tests (push) Successful in 17m18s
允许 SpacetimeDB 向受控容器网络地址非交互发布
固定预览结果使用内网主机地址
补充发布参数与内网地址防回归检查和文档
2026-08-15 18:30:08 +08:00
kdletters
a312ee20b5
修复预览流水线空提交参数
...
Project CI / Repository checks (push) Successful in 56s
Project CI / Frontend tests (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
允许 Jenkins 检出阶段安全读取未导出的可选参数
显式使用 bash 执行源码检出脚本
增加空提交参数与脚本执行方式防回归检查
2026-08-15 18:17:21 +08:00
kdletters
1a61c0bea7
修复Jenkins构建地址归一化
...
Project CI / Repository checks (push) Successful in 59s
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
将 Jenkins 返回的外部构建路径重绑定到受信本机 origin
增加外部 Jenkins URL 的状态与产物轮询回归测试
2026-08-15 18:12:39 +08:00
kdletters
7cd8b39593
Revert "修复预览部署可选提交参数"
...
Project CI / Repository checks (push) Successful in 1m2s
Project CI / Frontend tests (push) Successful in 3m46s
Project CI / Backend tests (push) Successful in 4m22s
Project CI / Native shell tests (push) Failing after 13m9s
This reverts commit d2366bc40a .
2026-08-15 18:09:04 +08:00
kdletters
5e7ff450b6
Revert "修复预览部署脚本执行方式"
...
This reverts commit 7fc739fad0 .
2026-08-15 18:09:04 +08:00
kdletters
7fc739fad0
修复预览部署脚本执行方式
...
Project CI / Repository checks (push) Successful in 1m23s
Project CI / Frontend tests (push) Successful in 4m28s
Project CI / Backend tests (push) Successful in 4m22s
Project CI / Native shell tests (push) Successful in 17m7s
通过 bash 显式调用 Jenkins 源码检出脚本
增加脚本执行方式防回归门禁
同步预览部署执行合同文档
2026-08-15 18:03:49 +08:00
kdletters
d2366bc40a
修复预览部署可选提交参数
...
Project CI / Repository checks (push) Successful in 1m40s
Project CI / Frontend tests (push) Successful in 2m59s
Project CI / Backend tests (push) Successful in 4m5s
Project CI / Native shell tests (push) Successful in 18m44s
修复 Checkout 阶段在严格 shell 下展开未定义 COMMIT_HASH 的失败
增加预览流水线参数归一化防回归门禁
同步预览部署参数合同与项目决策文档
2026-08-15 18:00:05 +08:00
kdletters
7400c706f8
修复预览流水线空参数校验
...
Project CI / Repository checks (push) Successful in 50s
Project CI / Frontend tests (push) Successful in 3m14s
Project CI / Backend tests (push) Successful in 4m5s
Project CI / Native shell tests (push) Successful in 15m22s
在严格 shell 模式下归一化首次触发的空参数
避免 STATUS 与未指定 commit 的请求误报未定义变量
2026-08-15 17:39:07 +08:00
kdletters
6befa3c33a
补全预览流水线首次触发参数
...
Project CI / Repository checks (push) Successful in 1m13s
Project CI / Frontend tests (push) Successful in 4m7s
Project CI / Backend tests (push) Successful in 5m4s
Project CI / Native shell tests (push) Failing after 12m44s
在 Jenkins Job 配置中预声明部署参数
增加 buildWithParameters 首次触发合同检查
2026-08-15 17:29:25 +08:00
kdletters
1746c77cb1
修复预览控制台子路径静态资源
...
Project CI / Repository checks (push) Successful in 1m3s
Project CI / Frontend tests (push) Successful in 3m1s
Project CI / Backend tests (push) Successful in 3m46s
Project CI / Native shell tests (push) Failing after 12m48s
让控制服务原生托管 /build 页面与静态资源
保持内网 Nginx 路径透传并补充部署合同检查
2026-08-15 17:25:40 +08:00
kdletters
41874ab391
新增内网容器预览部署控制面
...
Project CI / Repository checks (push) Successful in 1m16s
Project CI / Frontend tests (push) Successful in 3m1s
Project CI / Backend tests (push) Successful in 4m2s
Project CI / Native shell tests (push) Successful in 17m2s
新增分支与指定提交的预览部署 SPA 和 Jenkins 代理服务
新增多实例 Docker 预览流水线、端口租约、实时健康状态和卸载能力
新增 /build 内网路由、systemd 部署资产和运维文档
修正容器 Nginx 健康检查探针
2026-08-15 17:18:10 +08:00
kdletters
f69d9a2e11
Merge remote-tracking branch 'origin/master' into codex/agc-runtime-generation-reliability
...
# Conflicts:
# apps/ai-game-creator-shell/src-tauri/src/project/manifest.rs
# apps/ai-game-creator-shell/src/features/app-shell/useHomeProjectCreation.ts
# apps/ai-game-creator-shell/tests/appSurface/project-development.suite.ts
2026-08-15 15:20:30 +08:00
kdletters
dedff81475
修复AGC无人值守生成阻断的交付收口与验收
...
- 可信 code-prototype 父 Run 认领并观察直属美术 delivery,普通失败立即收束,合法安全默认 marker 由 Runtime 确定性执行唯一同合同返工
- 补齐 suppressed 无 child 与父身份链丢失时的 completion 失败关闭边界
- 修复 Windows project.lock delete-pending 竞争并收紧 HTML 内联 JS 语法 fail-open
- 同步技术方案、决策记录与实施计划,并完成确定性及真实 Provider 分层验证
2026-08-15 15:12:05 +08:00
kdletters
aa5221abcf
修复Jenkins Web依赖安装
...
Project CI / Repository checks (push) Successful in 1m8s
Project CI / Frontend tests (push) Successful in 3m0s
Project CI / Backend tests (push) Successful in 3m40s
Project CI / Native shell tests (push) Successful in 13m52s
Web构建同时安装根目录与AGC独立lockfile依赖
Full流水线同步RUN_NPM_CI参数说明
生产运维门禁锁定双依赖安装顺序
运维文档补充故障原因与依赖边界
2026-08-15 14:15:03 +08:00
kdletters
9f5c84ee71
重构AGC项目管理界面
...
Project CI / Repository checks (push) Successful in 1m40s
Project CI / Frontend tests (push) Successful in 3m27s
Project CI / Native shell tests (push) Successful in 14m20s
Project CI / Backend tests (push) Successful in 4m17s
参考成熟桌面项目管理器重构紧凑项目表、搜索和行尾菜单
支持Windows路径及Godot根目录和一层子目录工程识别与导入
修复1280×720页面溢出、列表滚动和末行菜单裁切
补充项目页回归测试、PRD、技术方案和项目记忆
2026-08-15 11:43:58 +08:00
kdletters
578f8019fc
优化AGC项目入口并识别Godot工作区
...
Project CI / Repository checks (push) Successful in 1m14s
Project CI / Frontend tests (push) Successful in 3m9s
Project CI / Native shell tests (push) Successful in 14m6s
Project CI / Backend tests (push) Successful in 3m58s
项目页只保留打开项目和新建项目并统一原生目录选择
按根目录及一层子目录识别project.godot并记录相对Godot根
保持.agent位于用户选择的工作区根并补齐Windows构建门禁
补充响应式布局、测试、技术方案和共享项目记忆
2026-08-14 21:53:43 +08:00
lhk229
4d3f87cd39
修复完美像素无法识别自身产物的网格 ( #169 )
...
Project CI / Repository checks (push) Successful in 1m21s
Project CI / Backend tests (push) Successful in 3m57s
Project CI / Frontend tests (push) Successful in 2m54s
Project CI / Native shell tests (push) Successful in 14m7s
边缘 profile 用的是跨度 2 的中心差分,硬块边界落在列 b-1|b 之间时
profile[b-1] 与 profile[b] 逐位相等:两者跨的是同一条边,逐行被加数
相同、求和顺序相同。峰值判定两侧都用严格大于,会把这个 2 宽平台的
两端一起丢掉,于是最干净的输入反而 0 个峰、被判为未识别到网格——
完美像素处理不了自己的输出。
estimate_step_size 左邻比较放宽为 >=,右邻保持严格 >:平台只保留
一个索引,且是右端,正好是左闭右开语义下的真实块边。两侧都放宽则
会把长度 K 的常数段整段判为峰。
walk 与 snap_uniform_cuts 的 argmax 同样改为 >=,取等值段的最后一
个索引。取第一个会让每条切线落在真实边界左边 1px,每个 cell 因此
混进 1/4 的邻块。实测在 266x253 的最近邻放大像素画上,切线命中真实
块边从 2.6% 升到 98.5%,左右镜像、上下翻转、180° 旋转下一致;龙图
内容区内 134/134 全中。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/169
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-08-14 20:42:58 +08:00
k88936
d901945c77
移除视频快速编辑支持 ( #157 )
...
Project CI / Repository checks (push) Successful in 1m20s
Project CI / Backend tests (push) Successful in 3m56s
Project CI / Native shell tests (push) Successful in 14m1s
Project CI / Frontend tests (push) Successful in 2m53s
当前实现: 视频快速编辑错误地复用了图片快速编辑的panel, 然后发起一个实际是生成视频的请求
策划建议删除.
因为后端没有实际意义上的视频快速编辑, 所以api 后端代码没有改动, 只在前端删除入口和处理
---------
Co-authored-by: kdletters <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/157
Co-authored-by: 王德宇 <kvtodev@outlook.com >
Co-committed-by: 王德宇 <kvtodev@outlook.com >
2026-08-14 18:52:56 +08:00
kdletters
d155e303bd
实现AGC回车自动创建工作区
...
Project CI / Repository checks (push) Successful in 1m3s
Project CI / Frontend tests (push) Successful in 3m9s
Project CI / Backend tests (push) Successful in 4m17s
Project CI / Native shell tests (push) Failing after 11m3s
首页普通回车自动分配系统文档目录下的唯一工作区并启动项目总控
保留加号按钮手动选择目录和Shift回车换行语义
统一Windows Linux与macOS默认项目路径解析并移除产品态tmp默认值
补充自动工作区安全测试 首页交互回归与技术方案说明
2026-08-14 17:45:27 +08:00
kdletters
02fff8f308
修复AGC无人值守游戏生成阻断
...
普通Web工作台默认使用单Supervisor自主生成链路
补齐安全默认返工、结构化诊断与同Run恢复
绑定当前revision、入口摘要和双视口试玩完成凭证
增强Runner跨boot单飞恢复与game-chat来源隔离
新增真实Provider验收入口及确定性回归
同步更新技术方案、开发流程和共享决策
2026-08-14 07:14:25 +08:00
kdletters
7774642365
文档:制定AGC无人值守游戏生成修复计划
...
明确普通GUI单主快车道路由与无人值守安全边界
定义验证自修复、产物完成门和Runner恢复对账合同
补充端到端验收矩阵、验证命令与回滚边界
2026-08-13 22:21:59 +08:00
kdletters
8e78be766e
修复AGC运行与首板版本登记
...
Project CI / Repository checks (push) Successful in 55s
Project CI / Frontend tests (push) Successful in 3m26s
Project CI / Backend tests (push) Successful in 3m59s
Project CI / Native shell tests (push) Failing after 11m44s
修复旧模型定价覆盖缺少ElevenLabs音效模型导致启动恢复持续失败
支持对话框回车发送并保留Shift换行和输入法组合态
重试受理后立即清理旧失败投影并展示新Run状态
阻止Windows后台Codex探测反复弹出控制台窗口
首板试玩持久回执通过后幂等登记初始项目版本
补充定价、交互、Windows与版本登记回归测试和文档
2026-08-13 20:11:51 +08:00
kdletters
7052d3e692
修复Windows维护页门禁执行
...
Project CI / Repository checks (push) Successful in 1m21s
Project CI / Frontend tests (push) Successful in 3m2s
Project CI / Backend tests (push) Successful in 4m1s
Project CI / Native shell tests (push) Failing after 10m34s
转换WSL bash所需的脚本、参数和环境路径
在POSIX平台校验实际0644权限并在Windows校验安装源码契约
保留维护页原子替换与符号链接防护测试
2026-08-13 14:01:34 +08:00
kdletters
1b4cb3c45e
修复Windows下Git钩子回归测试
...
统一比较Git恢复文件时的换行符
将WSL bash测试使用的临时工具路径转换为可执行路径
确保master推送门禁在Windows与Unix环境下均可重复验证
2026-08-13 13:50:27 +08:00
kdletters
15c227cebf
修复AGC Windows运行与全量测试稳定性
...
完善Codex CLI、App Server、ConPTY与进程会话在Windows下的发现、启动、恢复和退出行为
修复Agent Runtime、Provider重试、项目写锁及工具交接账本的并发与跨测试串线问题
补齐配置目录、路径脱敏、原子写入、浏览器探测和本地Provider smoke的跨平台兼容
增强Goal Contract、自动策略、资源生成及运行态恢复的契约和回归测试
更新AI游戏创作智能体App技术文档中的Windows稳定性说明
验证AGC开发态、Release打包、打包后GUI运行及完整agc:check门禁
2026-08-13 13:36:21 +08:00
lhk229
21137f676b
修复issue160 ( #166 )
...
Project CI / Repository checks (push) Successful in 1m16s
Project CI / Frontend tests (push) Successful in 3m14s
Project CI / Backend tests (push) Successful in 4m6s
Project CI / Native shell tests (push) Successful in 14m16s
#160
---------
Co-authored-by: kdletters <kdletters@qq.com >
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/166
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-08-13 13:28:45 +08:00
kdletters
f395a6ed36
稳定Agent失败审计时序测试
...
Project CI / Repository checks (push) Successful in 1m1s
Project CI / Frontend tests (push) Successful in 2m58s
Project CI / Backend tests (push) Successful in 4m0s
Project CI / Native shell tests (push) Successful in 14m15s
等待 Runtime 失败后的审计记录有界落盘
保持 final-reply-failed 审计最终存在的强断言
连续五次验证流式连接中断回归
2026-08-12 22:38:59 +08:00
kdletters
da7c4dc71c
修正Agent失败关闭回归语义
...
Project CI / Repository checks (push) Successful in 1m0s
Project CI / Frontend tests (push) Successful in 3m4s
Project CI / Backend tests (push) Successful in 3m44s
Project CI / Native shell tests (push) Failing after 10m20s
将流式连接中断断言为 Runtime 失败
禁止 transport 错误提交 planning fallback 冒充成功
保留安全失败消息与 final-reply-failed 审计验证
2026-08-12 22:24:17 +08:00
kdletters
fd423770d8
根治Repository checks本地漏检
...
Project CI / Repository checks (push) Successful in 1m18s
Project CI / Frontend tests (push) Successful in 3m1s
Project CI / Backend tests (push) Successful in 4m17s
Project CI / Native shell tests (push) Failing after 12m32s
修复 Agent 失败展示变更中的 import 排序错误
统一 CI 与 master pre-push 的 Repository checks 入口
让 staged JS 和 TS 自动执行 ESLint 修复与 Prettier
补充部分暂存、忽略文件和待推 SHA 回归测试
同步分支保护与本地门禁流程文档
2026-08-12 22:06:35 +08:00
kdletters
794f3d4cf8
修复Agent失败原因丢失与成功误判
...
Project CI / Repository checks (push) Failing after 45s
Project CI / Frontend tests (push) Successful in 3m39s
Project CI / Backend tests (push) Successful in 4m44s
Project CI / Native shell tests (push) Failing after 13m11s
解析 Codex app-server 稳定失败分类并生成安全可行动摘要
统一 Runtime 事件、任务、阶段记录和各 Agent 状态面的失败展示
限制自主构建最终回复 fallback,避免鉴权与网络错误被提交为成功
补充失败分类、防泄漏、待核对和 fallback 回归测试
同步技术方案与共享决策记录
2026-08-12 21:35:11 +08:00
kdletters
e04a8310a0
重做AGC智能体设置界面
...
Project CI / Repository checks (push) Successful in 1m32s
Project CI / Frontend tests (push) Successful in 3m2s
Project CI / Backend tests (push) Successful in 4m5s
Project CI / Native shell tests (push) Successful in 14m27s
将常用设置、Agent 模型、连接工具和高级参数分层展示
补充保存中、保存成功和失败状态反馈
更新设置页测试与项目决策记录
2026-08-12 21:04:30 +08:00
kdletters
82957fe1d4
修复子 Agent 澄清回执中转 ( #165 )
...
Project CI / Repository checks (push) Successful in 1m14s
Project CI / Frontend tests (push) Successful in 3m2s
Project CI / Backend tests (push) Successful in 4m5s
Project CI / Native shell tests (push) Successful in 14m31s
Closes #163
实现 child 澄清回执到 Supervisor 的 needs-user-input 中转。
- child 返回结构化问题回执,Runtime fail-closed 校验问题和 SHA-256。
- Supervisor 创建自己的 durable user.input_request,重复唤醒复用同一 action。
- 用户回答沿用 same-run 回灌,后续 continuation 绑定原 delegation。
- 补充 Rust 定向测试、技术方案和共享排障记忆。
验证:
- cargo check --tests
- cargo test ... claimed_needs_user_input_delivery_becomes_one_supervisor_wait
- cargo test ... static_delegate_user_input
- git diff --check
注:npm run check:encoding 在当前受限执行环境中因 spawnSync git EPERM 未能运行。
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/165
Co-authored-by: kdletters <kdletters@qq.com >
Co-committed-by: kdletters <kdletters@qq.com >
2026-08-12 20:07:59 +08:00
kdletters
5e16837f3d
恢复游戏创作 External Editor 配置入口
...
Project CI / Repository checks (push) Successful in 1m34s
Project CI / Frontend tests (push) Successful in 3m5s
Project CI / Backend tests (push) Successful in 4m12s
Project CI / Native shell tests (push) Failing after 10m55s
普通 Launcher、开发工作台和独立 game-chat 统一显示 External Editor 配置。
补齐配置可见性、密码输入和持久化回归测试。
同步配置静态门禁、PRD、技术合同与共享决策。
2026-08-12 18:43:55 +08:00
kdletters
effdaefc63
修复游戏智能体计划拒绝后的重复规划
...
Project CI / Repository checks (push) Successful in 1m5s
Project CI / Frontend tests (push) Successful in 3m22s
Project CI / Native shell tests (push) Failing after 12m42s
Project CI / Backend tests (push) Successful in 3m55s
在 runtime.plan_update 被拒绝后按角色收窄下一轮工具目录
恢复 Supervisor 首次项目修改的活性门禁
补充请求目录与活性门禁回归测试
同步更新游戏创作智能体实施规则
2026-08-12 17:00:50 +08:00
k88936
8abeb333bb
统一画布快速编辑白名单与入口行为 ( #140 )
...
Project CI / Repository checks (push) Successful in 56s
Project CI / Frontend tests (push) Successful in 4m1s
Project CI / Backend tests (push) Successful in 4m26s
Project CI / Native shell tests (push) Successful in 15m12s
- 使用白名单控制快速编辑功能的显示
- 同步浮动工具栏、右键菜单、打开入口和提交门禁
- 禁用角色动作序列帧(整体)、音频和单个图标(explain: backend reject)的快速编辑
- 把快速编辑api改为只接受resource Id | asset Id,删除 image_src 参数, 以保证校验
其中包含生产数据迁移。迁移用于清理历史普通图片错误持久化的 assetKind="image",覆盖 asset → project-resource → showcase → canvas 四个作用域,并包含 operator 鉴权、分批 dry-run、批次 SHA-256 绑定 apply、active 结构化画
> 布迁移摘要同步及最终零残留复核。
---------
Co-authored-by: kdletters <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/140
Co-authored-by: 王德宇 <kvtodev@outlook.com >
Co-committed-by: 王德宇 <kvtodev@outlook.com >
2026-08-12 14:46:24 +08:00
kdletters
4c3c0e9cd4
修正GameAgent灵感区数据接入
...
Project CI / Repository checks (push) Successful in 1m24s
Project CI / Frontend tests (push) Successful in 3m31s
Project CI / Backend tests (push) Successful in 4m22s
Project CI / Native shell tests (push) Successful in 15m18s
保留灵感推荐空态展示
移除主站精选接口与素材类型接入
补充无数据状态回归测试与产品边界文档
2026-08-12 14:17:47 +08:00
k88936
e3d28c50af
修复陶泥儿精选点赞刷新状态 ( #156 )
...
Project CI / Frontend tests (push) Successful in 3m25s
Project CI / Repository checks (push) Successful in 1m12s
Project CI / Backend tests (push) Successful in 3m54s
Project CI / Native shell tests (push) Successful in 15m9s
原实现:
用户对某个精选素材点赞与否, 后端没有发送这部分数据
修复:
后端刷新精选素材列表(校验可选的auth信息, 不影响未登录状态的查看) , 根据这部分信息每个素材多查询一下用户是否点赞
---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/156
Co-authored-by: 王德宇 <kvtodev@outlook.com >
Co-committed-by: 王德宇 <kvtodev@outlook.com >
2026-08-12 13:53:30 +08:00
menghao
8e3d9991fa
完成资源管理的功能修复 ( #154 )
...
Project CI / Repository checks (push) Successful in 1m5s
Project CI / Frontend tests (push) Successful in 3m0s
Project CI / Backend tests (push) Successful in 4m4s
Project CI / Native shell tests (push) Successful in 14m17s
实现资源卡本体化与图片视频音频预览播放
实现四个资源分区独立高度与内外滚动
实现依赖视图确定性聚类与拓扑变化重排
补齐布局、SVG、AppSurface、性能和媒体回归
同步工作台PRD、技术方案与项目共享记忆
---------
Co-authored-by: kdletters <kdletters@qq.com >
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/154
Co-authored-by: menghao <mh18530625731@163.com >
Co-committed-by: menghao <mh18530625731@163.com >
2026-08-12 13:14:55 +08:00
kdletters
51e35468a5
修复自主构建测试项目锁竞态
...
Project CI / Repository checks (push) Successful in 1m21s
Project CI / Frontend tests (push) Successful in 3m8s
Project CI / Backend tests (push) Successful in 4m24s
Project CI / Native shell tests (push) Successful in 16m33s
将纯继续契约测试改为异步并等待子任务持久化终态。
等待 Agent lane 释放后再执行后续 manifest 写入,避免后台终态投影竞争项目锁。
2026-08-12 11:42:49 +08:00
menghao
03a4410272
game agent无限画布开发 ( #136 )
...
Project CI / Native shell tests (push) Failing after 11m56s
Project CI / Repository checks (push) Successful in 1m5s
Project CI / Frontend tests (push) Successful in 3m20s
Project CI / Backend tests (push) Successful in 4m1s
主要工作是共享同一套“画布内核与通用 UI 源码”,网站和 Tauri 只分别实现宿主适配层。
---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Co-authored-by: kdletters <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/136
Co-authored-by: menghao <mh18530625731@163.com >
Co-committed-by: menghao <mh18530625731@163.com >
2026-08-12 10:54:16 +08:00
kdletters
e118d66699
增加提交前 TypeScript 自动格式化
...
Project CI / Repository checks (push) Successful in 53s
Project CI / Frontend tests (push) Successful in 3m9s
Project CI / Backend tests (push) Successful in 4m19s
Project CI / Native shell tests (push) Successful in 16m9s
接入 Husky 与 lint-staged,仅格式化暂存的 TS/TSX 文件
补充部分暂存和未暂存内容隔离回归测试
更新共享开发工作流中的提交前格式化规则
2026-08-12 10:43:29 +08:00
kdletters
1363b9374c
引入游戏智能体动态目标验收图 ( #161 )
...
Project CI / Repository checks (push) Successful in 1m14s
Project CI / Frontend tests (push) Successful in 3m16s
Project CI / Backend tests (push) Successful in 4m26s
Project CI / Native shell tests (push) Successful in 16m2s
## 变更
- 冻结根 Supervisor 的 Goal Contract
- 引入动态 Acceptance Graph 并传播到专业 Agent
- 使用当前 revision 的真实动作回执作为完成证据
- 安全处理 steer 后旧根任务树替换
## 验证
- `npm run check:native-shells`
- `npm run agc:typecheck`
- `npm run check:encoding`
- `cargo fmt --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml -- --check`
- `git diff --check`
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/161
Co-authored-by: kdletters <kdletters@qq.com >
Co-committed-by: kdletters <kdletters@qq.com >
2026-08-12 10:34:20 +08:00
lhk229
3c457feb4c
完美像素功能回归逻辑分辨率 ( #155 )
...
Project CI / Repository checks (push) Successful in 1m7s
Project CI / Frontend tests (push) Successful in 3m2s
Project CI / Backend tests (push) Successful in 4m8s
Project CI / Native shell tests (push) Successful in 13m48s
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/155
Reviewed-by: 段舒康 <kdletters@qq.com >
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-08-11 15:58:31 +08:00
kdletters
aa5c857060
修复 Godot 项目提交后的 CI 门禁
...
Project CI / Repository checks (push) Successful in 1m8s
Project CI / Frontend tests (push) Successful in 2m59s
Project CI / Backend tests (push) Successful in 4m0s
Project CI / Native shell tests (push) Successful in 13m41s
移除根 H5 包中冗余的 Tauri HTTP 依赖并同步锁文件
修正客户端错误边界测试的 import 顺序
固定两项后台 Runtime 恢复测试使用 Provider 模式
补充 AGC 原生 HTTP 依赖归属约束
2026-08-11 14:34:42 +08:00
kdletters
755bf80858
支持 AI 游戏创作打开现有 Godot 项目
...
Project CI / Repository checks (push) Failing after 44s
Project CI / Native shell tests (push) Failing after 1m42s
Project CI / Frontend tests (push) Successful in 2m50s
Project CI / Backend tests (push) Successful in 3m41s
新增 Godot 项目选择、校验、导入和项目上下文切换入口。
只在所选项目根保留 .agent 元数据,并让总控使用标准运行档。
修复发布版原生 API 访问和 React runtime 重复加载问题。
收紧 Provider 工具 Schema 子集并增加回归门禁。
补充 Rust、前端测试及 PRD、技术方案和共享决策记录。
2026-08-11 13:25:29 +08:00
k88936
4c0fdf1806
修正画布改造工具恢复链路 ( #158 )
...
Project CI / Repository checks (push) Successful in 1m4s
Project CI / Frontend tests (push) Successful in 2m54s
Project CI / Backend tests (push) Successful in 3m52s
Project CI / Native shell tests (push) Successful in 14m46s
在文档中明确改造特殊情况的处理
修复fallback到快速编辑的行为:
旧版图片按 assetKind 与 mediaType 选择工具,未知图片回落默认生成工具并保留旧版告警,而不是all in fallback到快速编辑
清理冗余代码:
移除 QuickEditPanelState 的 redraw 模式、旧提交分支及无调用结果层构造器
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/158
Co-authored-by: 王德宇 <kvtodev@outlook.com >
Co-committed-by: 王德宇 <kvtodev@outlook.com >
2026-08-11 12:36:30 +08:00
kdletters
7f129ddd6e
修复 Native CI 的 Agent 模式测试隔离
...
Project CI / Repository checks (push) Successful in 1m10s
Project CI / Frontend tests (push) Successful in 2m52s
Project CI / Backend tests (push) Successful in 3m53s
Project CI / Native shell tests (push) Successful in 14m31s
为 Provider handoff 与 mock 请求测试显式固定 Provider 模式
同步 Goal steer 测试到条件中断语义
补充模拟 Provider 测试不得依赖本机 Codex 的排障约束
2026-08-11 11:14:38 +08:00
kdletters
4d79971d6b
修复多模式 Provider 请求栈溢出
...
Project CI / Repository checks (push) Successful in 57s
Project CI / Frontend tests (push) Successful in 2m51s
Project CI / Backend tests (push) Successful in 3m36s
Project CI / Native shell tests (push) Failing after 10m48s
装箱持久重试与非持久压缩的完整 Provider 请求 future
补充默认 Tokio worker 栈溢出排障经验
同步 AI 游戏创作 Runtime 的异步装箱约束
2026-08-11 10:24:58 +08:00
kdletters
5550e24f83
接入 Codex 节点 Agent 并完善总控交互
...
Project CI / Repository checks (push) Successful in 1m13s
Project CI / Frontend tests (push) Successful in 2m54s
Project CI / Backend tests (push) Successful in 3m57s
Project CI / Native shell tests (push) Failing after 6m11s
新增 Codex app-server 与 CLI 节点执行模式并保留 Provider 回退
加固节点凭据隔离、终态未知回收、进程生命周期与持久恢复边界
修复资源画布等价刷新闪烁
为 Supervisor steer 增加 LLM 回复与条件中断
补齐配置界面、测试和技术文档
2026-08-10 20:58:43 +08:00
kdletters
a4ead1a5d6
合并主线并同步四不写约定
...
Project CI / Repository checks (push) Successful in 1m16s
Project CI / Frontend tests (push) Successful in 3m0s
Project CI / Backend tests (push) Successful in 4m15s
Project CI / Native shell tests (push) Successful in 13m48s
合入最新远端主线且保留退役对象四不写规则
同步团队约定中的公开契约与正式迁移例外
保持原工作树其他已暂存和未暂存修改不变
2026-08-10 20:16:21 +08:00
kdletters
5949c2fd58
规范退役对象四不写原则
...
明确无现役依赖对象不写历史兼容代码与退役行为测试
禁止墓碑注释和墓碑文档并要求权威文档表达当前状态
保留公开契约、持久化数据和正式迁移的必要兼容边界
2026-08-10 20:14:30 +08:00
lhk229
bcff8f1957
修复 SFX 音效信息页元数据整块丢失 ( #153 )
...
Project CI / Native shell tests (push) Successful in 13m23s
Project CI / Repository checks (push) Successful in 1m12s
Project CI / Frontend tests (push) Successful in 2m55s
Project CI / Backend tests (push) Successful in 4m0s
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
读边界的内联媒体脱敏在每层对象上无差别删除 null 值,把 SFX 自动时长 metadata 里
合法的 requestedDurationSeconds: null 一并删掉;客户端据此判定整份 soundEffect 非法,
音频信息页的「生成输入」退化成空,Task 也被截成 0 这类误导值。手动指定时长的音效不受
影响,图片路径的 generationInputs 没有可为 null 的字段,所以只有部分 SFX 可见。
- sanitize_editor_payload_media_value 改为返回「是否被抹除」,只删除本次抹掉的内联
媒体,调用方原有的显式 null 保留;脱敏强度不变,内联媒体与保留字段仍连键消失
- SFX 自动时长的 requestedDurationSeconds 接受显式 null 与整个键缺失两种同义形态
- 音频信息页 Task 按图层 assetKind 判定,不再随 soundEffect 元数据缺失降级成截断值
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/153
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-08-09 13:47:16 +08:00
kdletters
dfcd67bd05
修复进程会话终止清理竞态
...
Project CI / Repository checks (push) Successful in 52s
Project CI / Frontend tests (push) Successful in 2m46s
Project CI / Backend tests (push) Successful in 4m6s
Project CI / Native shell tests (push) Successful in 14m34s
在发布终态通知前先移除 live registry 会话\n避免取消清理瞬时误判仍有未收束进程
2026-08-08 22:33:55 +08:00
kdletters
8d4d7ecc95
兼容历史 UI 规范的统一图标入口
...
Project CI / Repository checks (push) Successful in 59s
Project CI / Frontend tests (push) Successful in 3m36s
Project CI / Backend tests (push) Successful in 4m20s
Project CI / Native shell tests (push) Successful in 16m1s
将历史 spec.generate 的 ui 类型映射到 icon\n补充 GenerationInputs V2 恢复回归测试
2026-08-08 22:25:28 +08:00
kdletters
0a6d550d73
修复双 PR 合并后的持续集成问题
...
Project CI / Repository checks (push) Failing after 51s
Project CI / Frontend tests (push) Successful in 3m27s
Project CI / Backend tests (push) Successful in 4m8s
Project CI / Native shell tests (push) Successful in 16m0s
补齐生成引用槽位参数并恢复 source 稳定标识\n恢复画布导出元数据格式化函数导入\n同步图标规范 GenerationInputs V2 测试契约\n修正音效提交并发测试的画布落层断言\n统一 Rust 格式以通过仓库门禁
2026-08-08 22:21:57 +08:00
kdletters
2412700e66
同步 PR 137 最新测试修复
...
Project CI / Repository checks (push) Failing after 27s
Project CI / Backend tests (push) Failing after 2m4s
Project CI / Frontend tests (push) Failing after 2m10s
Project CI / Native shell tests (push) Failing after 11m20s
纳入 PR 137 最新 head badb886790\n保留 simple-import-sort 导入顺序
2026-08-08 22:11:56 +08:00
kdletters
fb558baa8d
同步 PR 137 最新主分支合并
...
纳入 PR 137 最新 head bb16c41938\n保留 PR 135、PR 137 与 master 的既有冲突解法
# Conflicts:
# server-rs/crates/api-server/src/external_generation_worker.rs
# src/services/image-editor/editorProjectClient.test.ts
2026-08-08 22:10:23 +08:00
k88936
badb886790
修复编辑器客户端测试导入排序
...
Project CI / Repository checks (pull_request) Successful in 1m3s
Project CI / Native shell tests (pull_request) Successful in 15m17s
Project CI / Frontend tests (pull_request) Failing after 2m1s
Project CI / Backend tests (pull_request) Successful in 4m0s
按 simple-import-sort 规则调整合并后的导入顺序
保留远端合并提交历史并避免强制推送
# Conflicts:
# src/services/image-editor/editorProjectClient.test.ts
2026-08-08 22:08:03 +08:00
kdletters
0a11507266
同步图标规范内联引用校验
...
合入 PR 137 最新提交的 owner 引用预校验
保留合并后的 SFX V2 稳定字段恢复回归测试
2026-08-08 22:04:42 +08:00
kdletters
a27798be77
合并生成参数恢复与改造入口修复
...
合入 PR 135 的 GenerationInputs V2 稳定字段与严格恢复链路
统一缺失来源时保留改造入口并在点击后复检拒绝
保留主分支 SFX V2 自动时长、Loop 与权威元数据语义
将队列引用槽位与场景配方修复移植到 PR 137 的模块结构
2026-08-08 22:03:50 +08:00
k88936
0723df0e6d
合并远端主分支更新
...
同步主分支音效生成与External v1契约更新
保留图标规范与图集生成链路
适配VectorEngine LLM客户端命名并解决前端提交语义冲突
2026-08-08 22:03:26 +08:00
k88936
bb16c41938
合并远端主分支更新
...
Project CI / Repository checks (pull_request) Failing after 54s
Project CI / Frontend tests (pull_request) Successful in 3m30s
Project CI / Backend tests (pull_request) Successful in 4m21s
Project CI / Native shell tests (pull_request) Has been cancelled
同步主分支音效生成与External v1契约更新
保留图标规范与图集生成链路
适配VectorEngine LLM客户端命名并解决前端提交语义冲突
2026-08-08 21:54:30 +08:00
kdletters
3c00bcd2e0
合并图标规范与图集生成优化
...
合入 PR 137 的图标规范生成、稳定引用与图集提示词链路
保留主分支现行音效提交、Prompt 模块与结果压缩逻辑
解决 External Worker、生成提交和客户端测试冲突
2026-08-08 21:44:15 +08:00
k88936
c188accafb
修复图标规范内联引用校验
...
Project CI / Repository checks (pull_request) Failing after 13s
Project CI / Backend tests (pull_request) Failing after 13s
Project CI / Frontend tests (pull_request) Successful in 2m35s
Project CI / Native shell tests (pull_request) Has been cancelled
在共享执行入口转换 referenceId 前校验引用 ID 与 owner。
新增调用顺序回归测试并同步决策记录。
2026-08-08 21:37:36 +08:00
kdletters
a2fc6054e3
Merge pull request '音效生成路径优化' ( #145 ) from feat/sound_opt into master
...
Project CI / Repository checks (push) Successful in 1m16s
Project CI / Frontend tests (push) Successful in 3m4s
Project CI / Backend tests (push) Successful in 4m9s
Project CI / Native shell tests (push) Successful in 13m49s
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/145
2026-08-08 21:30:49 +08:00
lhk229
5736ad62b4
调整BGM提示词助手Token预算
...
Project CI / Repository checks (pull_request) Successful in 1m6s
Project CI / Frontend tests (pull_request) Successful in 2m50s
Project CI / Backend tests (pull_request) Successful in 3m49s
Project CI / Native shell tests (pull_request) Successful in 13m17s
AI补全使用2048 completion tokens
AI简化两轮均使用8192 completion tokens
同步设计文档并补充请求预算断言
2026-08-08 12:53:31 +00:00
lhk229
2d82ac55e4
补齐音频响应脱敏回归测试
...
Project CI / Repository checks (pull_request) Successful in 1m9s
Project CI / Frontend tests (pull_request) Successful in 2m50s
Project CI / Backend tests (pull_request) Successful in 3m52s
Project CI / Native shell tests (pull_request) Successful in 13m15s
更新 Agent 音频结果紧凑化断言
同步画板音乐成功响应契约文档
2026-08-08 12:41:05 +00:00
lhk229
dea6576f89
修复音频生成响应泄露 Provider
...
Project CI / Repository checks (pull_request) Successful in 1m6s
Project CI / Frontend tests (pull_request) Successful in 2m52s
Project CI / Backend tests (pull_request) Failing after 3m1s
Project CI / Native shell tests (pull_request) Failing after 9m54s
收紧音频公开 DTO 与前端响应类型
统一清理 inline 和 Agent 队列结果中的 Provider
覆盖嵌套快照脱敏与历史 Agent 回填兼容
2026-08-08 12:26:41 +00:00
k88936
02b4b6955d
补齐图标规范生成持久化白名单
...
Project CI / Repository checks (pull_request) Successful in 1m21s
Project CI / Frontend tests (pull_request) Successful in 2m49s
Project CI / Backend tests (pull_request) Successful in 3m46s
Project CI / Native shell tests (pull_request) Successful in 13m17s
SpacetimeDB生成结果白名单加入独立图标规范任务
新增icon-spec durable result shape回归测试
同步后端数据契约与长期决策记录
2026-08-08 19:38:12 +08:00
k88936
a43c84fd75
修正AGC图集规范引用字段
...
AI游戏创作图集请求改用External v1必填referenceId
持久生成账本兼容回读旧本地sidecar并补充请求断言
同步Agent提示合同与项目文档
2026-08-08 19:08:29 +08:00
k88936
9a326c940a
统一缺失来源的改造入口合同
...
Project CI / Repository checks (pull_request) Successful in 52s
Project CI / Frontend tests (pull_request) Successful in 3m37s
Project CI / Backend tests (pull_request) Successful in 3m28s
Project CI / Native shell tests (pull_request) Successful in 13m25s
明确不可替换 source 缺失时保留改造按钮并在点击后报错
同步现役设计文档、后端契约与长期决策记录
补齐角色动作和 UI 素材提取的按钮与失败回归测试
2026-08-08 19:01:03 +08:00
lhk229
0edefc67ec
修复 Agent 音频失败脱敏
...
Project CI / Repository checks (pull_request) Successful in 1m19s
Project CI / Frontend tests (pull_request) Successful in 2m59s
Project CI / Backend tests (pull_request) Successful in 3m57s
Project CI / Native shell tests (pull_request) Successful in 13m28s
复用外部生成任务的用户可见错误投影
按 Agent 工具名称映射音效任务并在回填前脱敏
补充音效和背景音乐失败回归测试
2026-08-08 10:26:38 +00:00
k88936
c1342910c5
补齐场景生成的持久计费边界
...
场景 inline 路由建立稳定 operation 身份并延迟退款决策至持久化完成
更新图标图集与场景路由的生产调用计数
静态计数排除测试模块并校验场景调用顺序
2026-08-08 18:16:31 +08:00
k88936
ae78e3bd5b
拒绝未完整结束的图标规范元数据
...
图标规范元数据解析统一检查 OpenAI Chat finish_reason
length 与 content_filter 结果进入既有重试循环
新增完整 JSON 仍被不完整原因拒绝的回归测试
2026-08-08 18:13:06 +08:00
k88936
84ec79a8bb
统一队列生成的冻结价格与资产成本
...
worker 优先读取任务 billing context 中的入队价格
扣费与 generationCostMudPoints 共用同一有效价格
新增冻结价格显式数据流回归测试
2026-08-08 18:10:17 +08:00
k88936
92832e56c2
恢复可选目录生成器的默认素材目录
...
角色图片生成在入队与同步执行预检前恢复 project 默认目录
UI 设计素材提取在入队与 worker 执行预检前恢复 project 默认目录
新增默认目录策略及四条调用路径回归测试
2026-08-08 18:06:04 +08:00
k88936
18ae260069
补全视频快速编辑来源配方
...
将源视频写入 V2 videoReference 引用列表
补充提交与改造水合回归测试及契约说明
2026-08-08 18:03:36 +08:00
lhk229
6a6d1f85d6
合并 master 的 AGC 启动脚本导入顺序修复
Project CI / Repository checks (pull_request) Successful in 55s
Project CI / Frontend tests (pull_request) Successful in 3m27s
Project CI / Backend tests (pull_request) Successful in 4m27s
Project CI / Native shell tests (pull_request) Successful in 15m25s
2026-08-08 09:53:17 +00:00
k88936
f30a55069a
修复媒体生成配方时长字段
...
保留 V2 durationSeconds 字段标识和数值类型
补充回归测试与改造契约说明
2026-08-08 17:52:54 +08:00
lhk229
d58e5cbebd
修复 inline 泄露 provider问题
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
2026-08-08 09:52:18 +00:00
k88936
9e70f7a07c
再次合并远端主分支更新
...
同步 AGC 启动脚本导入顺序修复
2026-08-08 17:37:43 +08:00
k88936
dc3e92433f
合并主分支并同步AGC启动脚本修复
...
调整开发端口与启动栈模块的导入顺序
保持启动脚本符合ESLint导入顺序规则
2026-08-08 17:37:35 +08:00
k88936
cef79f629a
合并远端主分支更新
...
修复 AGC 实时清单测试竞态
同步实时清单测试约束与项目记忆
2026-08-08 17:32:45 +08:00
kdletters
6cb13b3884
修复AGC启动脚本导入顺序
...
Project CI / Repository checks (push) Successful in 1m32s
Project CI / Frontend tests (push) Successful in 4m3s
Project CI / Backend tests (push) Successful in 4m13s
Project CI / Native shell tests (push) Successful in 16m47s
按ESLint规则调整开发端口与启动栈模块的导入顺序
2026-08-08 17:30:51 +08:00
lhk229
a9575f0f04
合并 master 的 AGC 实时清单测试竞态修复
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
2026-08-08 09:25:56 +00:00
k88936
ae174ecb06
合并主分支并同步AGC开发端口修复
...
统一AGC开发端口分配与旧注册记录迁移逻辑
修复AGC实时清单测试竞态
补齐相关测试、开发文档与共享记忆
2026-08-08 17:23:08 +08:00
lhk229
4024ea53ed
移除 External v1 完成结果联合的 discriminator
...
Project CI / Repository checks (pull_request) Failing after 9s
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
BGM 回 audioKind=background-music 无映射,图片、视频与历史结果没有
audioKind,fallback 分支又不可能把 audioKind 声明为必填,任何映射都覆盖
不全合法结果。oneOf 加 not 本已精确互斥,删掉 discriminator 不改变校验
语义,只恢复依赖它的客户端生成
契约测试反向锁定 discriminator 缺席,并锁定 fallback 只排除 SFX 一种
audioKind
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-08-08 09:20:42 +00:00
kdletters
5393ef8720
修复AGC实时清单测试竞态
...
Project CI / Backend tests (push) Successful in 4m21s
Project CI / Repository checks (push) Failing after 45s
Project CI / Frontend tests (push) Successful in 3m28s
Project CI / Native shell tests (push) Successful in 16m15s
等待最近项目目录检查完成后再触发清单失效事件
收紧事件后只重读清单且不重新检查目录的断言
同步实时清单测试时序约束文档
2026-08-08 17:16:00 +08:00
k88936
7ce7c11ca4
合并主分支并解决编辑器冲突
...
保留图片生成 V2 配方中的像素艺术风格断言
合并 AGC 统一端口段、文本编辑器与移动端欢迎页改动
合并 Jenkins 产物权限门禁并同步项目共享文档
2026-08-08 17:15:07 +08:00
k88936
9820203597
避免图标图集入队重复下载规范图
...
抽取图标规范 metadata-only 解析器。
队列提交只校验 owner、类型、对象元数据与游戏类型。
worker 执行阶段复用元数据校验后单次读取 OSS 正文。
补充无正文读取回归测试与契约说明。
2026-08-08 17:14:15 +08:00
k88936
78675326c7
补齐图标规范入队目标预检
...
在参考资源解析和定价前校验项目与素材目录。
将预检返回的规范化目标写入队列任务。
拆分本地字段与远端引用校验并补充顺序回归测试。
2026-08-08 17:11:00 +08:00
k88936
b91350f3f2
避免重复完成图标规范队列任务
...
共享原子持久化成功后 worker 直接返回成功。
移除仅用于二次 completion 的响应包装 helper。
补充 lease 完成职责回归测试与契约说明。
2026-08-08 17:05:10 +08:00
k88936
5379e038f6
恢复图标图集目标预检
...
入队前预检并回写规范化项目与素材目录。
worker 执行前再次预检最终写入目标。
补充默认目录及副作用顺序的回归测试和契约说明。
2026-08-08 17:02:13 +08:00
k88936
57c825089b
修复图标规范内联生成计费上下文
...
为 inline 图标规范生成初始化稳定 operation。
使用 durable billing 边界包裹共享执行器。
补充调用顺序回归测试与图标生成契约说明。
2026-08-08 16:58:41 +08:00
lhk229
0073fbd188
修正音效提交守卫的注释
...
Project CI / Repository checks (pull_request) Failing after 32s
Project CI / Frontend tests (pull_request) Successful in 3m56s
Project CI / Backend tests (pull_request) Successful in 4m35s
Project CI / Native shell tests (pull_request) Failing after 11m25s
改正 soundEffectDialog 的描述:它只是类型收窄,不做 canonical 化。
说明 canGenerate 守卫与 disabled 同源,是防止未来移除 disabled 后漏发付费请求的冗余防线。
2026-08-08 08:56:12 +00:00
lhk229
299cfdcd5e
Merge remote-tracking branch 'origin/feat/sound_opt' into feat/sound_opt
Project CI / Repository checks (pull_request) Failing after 38s
Project CI / Frontend tests (pull_request) Successful in 2m48s
Project CI / Backend tests (pull_request) Successful in 3m57s
Project CI / Native shell tests (pull_request) Successful in 16m1s
2026-08-08 08:51:52 +00:00
lhk229
52fbdb29f7
Merge remote-tracking branch 'web/master' into feat/sound_opt
2026-08-08 08:42:07 +00:00
kdletters
83f07fc58d
统一 AGC 开发端口分配
...
Project CI / Repository checks (push) Failing after 1m2s
Project CI / Frontend tests (push) Successful in 3m19s
Project CI / Backend tests (push) Successful in 4m18s
Project CI / Native shell tests (push) Failing after 11m47s
将 AGC Vite 纳入 Linux 用户端口段第六槽位
同步 Tauri devUrl、Vite 监听和配套后端端口预留
兼容迁移旧五端口注册记录并阻止重复分配
补齐动态配置顺序、跨平台和进程生命周期回归测试
更新开发运维文档、端口 skill 与项目共享记忆
2026-08-08 16:18:45 +08:00
kdletters
1bbb6b7e1b
合并主分支并同步生产构建产物权限
...
为Stdb、API、Web与数据库导出任务精确授权产物消费者
增加Copy Artifact Production模式权限静态门禁
补充跨任务产物复制排障与生效流程文档
2026-08-08 16:11:34 +08:00
kdletters
e536882479
Merge branch 'master' into feat/sound_opt
Project CI / Backend tests (pull_request) Successful in 4m40s
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Successful in 47s
Project CI / Frontend tests (pull_request) Successful in 3m42s
2026-08-08 16:11:17 +08:00
kdletters
6b1dfc77d9
修复Jenkins跨任务产物复制权限
...
Project CI / Repository checks (push) Successful in 45s
Project CI / Frontend tests (push) Successful in 3m6s
Project CI / Backend tests (push) Successful in 3m31s
Project CI / Native shell tests (push) Has been cancelled
为Stdb、API、Web与数据库导出任务精确授权产物消费者
增加Copy Artifact Production模式权限静态门禁
补充跨任务产物复制排障与生效流程文档
2026-08-08 16:09:54 +08:00
k88936
6d1937e6ff
合并主分支
...
Project CI / Repository checks (pull_request) Successful in 59s
Project CI / Frontend tests (pull_request) Successful in 3m10s
Project CI / Backend tests (pull_request) Successful in 3m46s
Project CI / Native shell tests (pull_request) Successful in 16m15s
解决合并冲突
2026-08-08 16:04:11 +08:00
k88936
3451c17142
修正图标规范主参考权威校验
...
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
规划与确认时从 SpacetimeDB 重建工具上下文
仅允许 icon-spec 作为精灵图主规范并完善提示
补充普通图片拒绝与图标规范通过测试
同步后端数据契约文档
2026-08-08 16:02:47 +08:00
kdletters
6db06b6c97
合并远端master更新
...
Project CI / Repository checks (push) Successful in 51s
Project CI / Frontend tests (push) Successful in 3m7s
Project CI / Backend tests (push) Successful in 3m32s
Project CI / Native shell tests (push) Successful in 16m20s
融合移动端提示恢复与远端钱包刷新改动
# Conflicts:
# src/components/platform-entry/PlatformEntryActiveFlowShell.test.tsx
# src/components/platform-entry/PlatformEntryActiveFlowShell.tsx
2026-08-08 15:56:47 +08:00
lhk229
bae124a054
合并 master 的滑动条样式改造
...
Project CI / Frontend tests (pull_request) Successful in 3m39s
Project CI / Repository checks (pull_request) Successful in 1m24s
Project CI / Backend tests (pull_request) Successful in 4m10s
Project CI / Native shell tests (pull_request) Has been cancelled
音效面板跟随 master 从 form 提交改为按钮 onClick,保留 canonical soundEffectDialog 与 canGenerate 守卫。
音效锁定态断言改读 aria-readonly,适配 AutoGrowTextArea 改用 Lexical contentEditable。
2026-08-08 07:53:47 +00:00
kdletters
1fb72ba26c
恢复移动端原有提示与门禁
...
恢复移动端首次进入欢迎遮罩与单次关闭状态
恢复删除前的桌面端创作主页提示与旧 IP 资源
保留移动端仅“我的”页签及项目画布硬门禁
补充现役依赖、静态资源与回归测试门禁
同步平台入口权威文档
2026-08-08 15:50:55 +08:00
lhk229
1664bc6bc8
修复画布 Agent 音频回填丢失 provider
...
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
原子提交与 worker 直接完成两条路径共用同一份结果紧凑化实现,删除重复副本。
紧凑化对 Agent 消费者保留音频必填 provider,历史上该豁免只加在 worker 副本里,原子化改造新写的副本没带上。
新增 Agent 音频紧凑结果仍可被 EditorAudioGenerateResponse 反序列化的契约测试,覆盖音效与背景音乐。
2026-08-08 07:40:27 +00:00
k88936
d1562ab65f
合并主分支并适配图标精灵图编辑
...
Project CI / Repository checks (pull_request) Successful in 1m35s
Project CI / Frontend tests (pull_request) Successful in 3m18s
Project CI / Backend tests (pull_request) Successful in 4m14s
Project CI / Native shell tests (pull_request) Successful in 16m18s
合入统一 Lexical 文本编辑器与滚动条样式调整
保留图标规范字段优化、字符限制与提交门禁
补齐图标生成及画布集成测试的 Lexical 交互适配
2026-08-08 15:23:29 +08:00
k88936
676bd524ee
滑动条样式调整 ( #149 )
...
Project CI / Repository checks (push) Successful in 1m23s
Project CI / Frontend tests (push) Successful in 3m1s
Project CI / Backend tests (push) Successful in 3m51s
Project CI / Native shell tests (push) Successful in 13m32s
示例来自微信:

before:
- firefox:

- edge:

after:
- firefox:


- edge:

- 使用 Lexical + OverlayScrollbars 实现统一可控的滑动条样式, 取代原来的textarea
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/149
Co-authored-by: 王德宇 <kvtodev@outlook.com >
Co-committed-by: 王德宇 <kvtodev@outlook.com >
2026-08-08 15:10:16 +08:00
lhk229
8f4cce288c
更新调试输出泄漏遗留问题状态
...
Project CI / Repository checks (pull_request) Successful in 1m10s
Project CI / Frontend tests (pull_request) Successful in 2m52s
Project CI / Backend tests (pull_request) Successful in 3m54s
Project CI / Native shell tests (pull_request) Successful in 13m16s
主泄漏链已由 master 修复并随合并落地,文档改记 AppConfig、AppState 与 SpacetimeClientConfig 的允许清单 Debug 与五路哨兵覆盖。
补记本分支为哨兵测试加入 ElevenLabs base URL 与 API key。
第二档仍未脱敏的九个历史 provider 配置类型逐条列出位置与明文字段,并记录已生效的止血规约。
2026-08-08 05:54:45 +00:00
lhk229
8a42b23ea4
修复 External SFX 轮询契约
...
Project CI / Repository checks (pull_request) Successful in 1m2s
Project CI / Frontend tests (pull_request) Successful in 2m55s
Project CI / Backend tests (pull_request) Successful in 3m51s
Project CI / Native shell tests (pull_request) Successful in 13m14s
新增具名 SFX compact 结果联合与稳定引用约束
补强轮询 OpenAPI 以及音效 metadata 结果测试
2026-08-08 05:39:51 +00:00
lhk229
38e195060b
合并 master 的付费生成预检与调试输出脱敏
...
Project CI / Repository checks (pull_request) Successful in 1m14s
Project CI / Frontend tests (pull_request) Successful in 2m52s
Project CI / Backend tests (pull_request) Successful in 3m54s
Project CI / Native shell tests (pull_request) Has been cancelled
合入 master 的编辑器付费生成目标预检与应用状态调试输出密钥泄漏两项修复。
SFX 直连与入队沿用 master 预检,源码顺序回归改为锁定本分支的 ElevenLabs worker 编排入口。
画布 Agent 音效参数恢复通用 null 缺省兼容,但保留 duration null 表示自动时长的 SFX V2 语义。
音效时长越界断言按 SFX V2 的 0.5-30 秒边界上移,重算契约测试期望。
哨兵测试补入 ElevenLabs base URL 与 API key,锁定其默认缺席于 AppConfig 调试输出。
2026-08-08 05:33:40 +00:00
k88936
1303df1ee7
修复运行详情竞态与场景断言
...
同步关闭项目或 Run 切换时的运行详情弹窗,消除延迟 effect 覆盖用户点击的竞态
更新场景提交测试,按当前稳定枚举值和完整兼容字段断言
同步补充 AI 游戏 Runtime 与场景 V2 配方文档
2026-08-08 12:53:53 +08:00
k88936
5c0e84c78a
场景生成接入改造配方
...
新增 scene.generate V2 配方、解码与场景面板恢复
服务端按结构化请求重建权威场景字段和参考图槽位
兼容旧场景画面内容字段并限制非场景改造入口
补充前后端测试与 assetKind 改造接入文档
2026-08-08 12:26:43 +08:00
k88936
777f567cb4
合并主分支
...
解决合并冲突
2026-08-08 12:03:09 +08:00
k88936
3016b6a3af
合并主分支并保留画布图标与场景生成能力
...
解决编辑项目后端、SpacetimeDB 客户端与前端生成流程冲突
保留图标规范及图集链路并接入场景生成与统一目标预检
同步合并运行时、钱包、契约、文档与测试改动
2026-08-08 11:43:45 +08:00
k88936
179c4c36c5
整理场景提交模型导入顺序
...
按 ESLint 规则排序场景生成契约导入
2026-08-08 11:23:50 +08:00
k88936
d5f0f6de93
修复场景生成输入契约
...
场景请求提交前将画布参数转换为字符串契约
保留素材结果中的原始画布参数类型
2026-08-08 11:16:47 +08:00
kdletters
fb47002bfb
合并主分支素材库多选更新
...
合入素材库多选操作与批量导出更新
保留画布生成配方分支改动并解决冲突
2026-08-08 11:11:58 +08:00
k88936
498b905bd8
优化素材库多选操作 ( #114 )
...
Project CI / Repository checks (push) Successful in 1m21s
Project CI / Frontend tests (push) Successful in 3m9s
Project CI / Backend tests (push) Successful in 4m2s
Project CI / Native shell tests (push) Successful in 15m48s
<video src="attachments/2377fc8b-50e4-4919-ba41-5027b957709f" title="2026-07-27 16-15-53.mp4" controls></video>
- 实现shift ctrl的范围选扩选
- 实现多选下载(为一个zip)
- 原本有搜索和文件夹折叠展开功能, 我的处理是: 只作为方便查找的用途. 最终操作会有"目前一些(比如待删除)元素被隐藏了,请再确认"的提示.
result:
```shell
root@k88936-t14p: ~/Downloads# unzip 未命名画布-选中素材-20260806-195631.zip
Archive: 未命名画布-选中素材-20260806-195631.zip
creating: 未命名画布-选中素材/
creating: 未命名画布-选中素材/images/
creating: 未命名画布-选中素材/media/
extracting: 未命名画布-选中素材/media/001-角色动作(原始视频).mp4
creating: 未命名画布-选中素材/sequences/
creating: 未命名画布-选中素材/sequences/002-角色动作/
creating: 未命名画布-选中素材/sequences/002-角色动作/frames/
extracting: 未命名画布-选中素材/sequences/002-角色动作/frames/frame-01.png
extracting: 未命名画布-选中素材/sequences/002-角色动作/frames/frame-02.png
extracting: 未命名画布-选中素材/sequences/002-角色动作/frames/frame-03.png
...
extracting: 未命名画布-选中素材/sequences/002-角色动作/frames/frame-31.png
extracting: 未命名画布-选中素材/sequences/002-角色动作/frames/frame-32.png
extracting: 未命名画布-选中素材/sequences/002-角色动作/metadata.json
extracting: 未命名画布-选中素材/sequences/002-角色动作/skeleton.json
extracting: 未命名画布-选中素材/sequences/002-角色动作/README.md
extracting: 未命名画布-选中素材/sequences/002-角色动作/manifest.txt
extracting: 未命名画布-选中素材/metadata.json
extracting: 未命名画布-选中素材/manifest.txt
```
~~动作的导出存在很大的问题, 在另一个pr #117 解决~~
---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/114
Co-authored-by: 王德宇 <kvtodev@outlook.com >
Co-committed-by: 王德宇 <kvtodev@outlook.com >
2026-08-08 11:11:25 +08:00
k88936
e564db43f1
合并主分支
...
解决合并冲突
2026-08-08 10:48:13 +08:00
kdletters
b8e73766fe
修复创作主页动画测试竞态 ( #152 )
...
Project CI / Frontend tests (push) Successful in 2m52s
Project CI / Backend tests (push) Successful in 3m47s
Project CI / Repository checks (push) Successful in 1m22s
Project CI / Native shell tests (push) Successful in 14m18s
## 修复内容
- 隔离角色动作预览测试中的真实帧定时器,避免异步交互期间帧序号偶发漂移。
- 保留 50ms 动画调度与失败帧、重试交互断言。
- 补充 React 中间状态断言的可控定时器约束。
## 验证
- `npm run test -- src/components/creation-home/CreationLandingView.test.tsx --reporter=dot`
- `npm run typecheck`
- `npm run check:encoding`
- `git diff --check`
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/152
2026-08-08 10:26:54 +08:00
suzmii
72f268e088
Feat/游戏场景需求v1.0 ( #139 )
...
Project CI / Repository checks (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
实现[游戏场景需求v1.0](https://kcnz41bksl1c.feishu.cn/wiki/JSF3wdhduinpqhkrVGKcZFp4nng?psg_id=8477599259997387860&refer_index=1&refer_type=citation )。
---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Co-authored-by: suzmii <suzmii@foxmail.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/139
Co-authored-by: 董羽秦 <suzmii@qq.com >
Co-committed-by: 董羽秦 <suzmii@qq.com >
2026-08-08 10:25:42 +08:00
k88936
fc0dcb0782
修复泥点消耗刷新不及时 ( #138 )
...
Project CI / Repository checks (push) Successful in 50s
Project CI / Frontend tests (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
refactor:
- 主站复用game agent的zustand store
fix:
- 修复旧请求覆盖问题
- 修复账号切换问题
- 主站原本已经每 4 秒轮询 external generation 任务状态, 在这里补充触发余额刷新的时机
---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/138
Co-authored-by: 王德宇 <kvtodev@outlook.com >
Co-committed-by: 王德宇 <kvtodev@outlook.com >
2026-08-08 10:25:02 +08:00
kdletters
44de26d204
重构 game-chat 为单主 Agent 按需美术编排
...
Project CI / Repository checks (push) Successful in 1m19s
Project CI / Frontend tests (push) Successful in 2m48s
Project CI / Backend tests (push) Successful in 3m44s
Project CI / Native shell tests (push) Successful in 13m12s
由 Supervisor 持久化用户意图并只启动 code-prototype 主 Agent
按真实素材缺口动态委派受限美术 child 并绑定回执
补齐旧 Run 迁移、fixed-graph 与 isolated 后代失效及嵌套硬截止恢复
收紧美术 child 为 assets 路径写入并阻断 memory、manifest 等旁路
更新运行时 Prompt、回归测试与协作文档
2026-08-08 04:10:16 +08:00
kdletters
82a486e72b
修复编辑器付费生成目标预检 ( #151 )
...
Project CI / Repository checks (push) Successful in 57s
Project CI / Frontend tests (push) Successful in 2m48s
Project CI / Backend tests (push) Successful in 3m42s
Project CI / Native shell tests (push) Successful in 13m7s
修复 Issue #147。
- 新增只读生成目标预检 procedure,并要求编辑器生成 Runtime 服务身份
- 图片、改图、图集、UI 提取、视频、角色动作、SFX、BGM 在入队、扣费、Provider 与 OSS 写之前失败关闭
- 预检返回 canonical projectId / assetFolderId,enqueue、worker/direct 与最新原子 persist 全链复用
- 覆盖 project、旧 folder-*、默认目录、自定义目录、空值与角色生图缺省目录语义
- 更新后端架构文档、项目排障记忆和源码顺序回归
验证:
- API preflight 定向测试 4/4
- canonical target 定向测试 1/1
- SpacetimeDB module preflight 定向测试 2/2
- cargo check -p api-server -p spacetime-client -p spacetime-module --all-targets
- npm run check:spacetime-schema
- npm run check:encoding
- npm run check:rustfmt
- git diff --check
剩余边界:预检不持有跨 Provider 调用的锁;若目录在预检后并发变化,最终原子提交仍会重新校验并安全失败。
Closes #147
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/151
2026-08-07 23:56:45 +08:00
kdletters
4974844090
修复应用状态调试输出密钥泄漏 ( #150 )
...
Project CI / Frontend tests (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
修复 Issue #148。
- AppConfig、AppState、AppStateInner 改为封闭的手写 Debug 安全摘要
- SpacetimeClientConfig 隐藏 token、URL 与数据库自由字符串,SpacetimeClient 复用安全摘要
- 唯一哨兵覆盖五条独立 Debug 路径,并精确锁定 AppConfig 允许输出字段
- 补充运行时日志规约与项目排障记忆
验证:
- cargo test -p api-server debug_summaries_redact_all_runtime_credentials
- cargo check -p spacetime-client -p api-server --all-targets
- cargo fmt --all --check
- npm run check:encoding
- git diff --check
剩余边界:报告第二档中的历史 provider 配置类型独立 Debug 脱敏另行处理,本 PR 聚焦第一档主泄漏链。
Closes #148
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/150
2026-08-07 23:56:01 +08:00
lhk229
1f2906217b
文档:统一SFX自动时长默认口径
...
更新权威设计为新建 SFX 面板默认开启自动时长
同步实施计划与共享决策记录,保留预置手动值 5s
2026-08-07 15:51:30 +00:00
k88936
48b852ab04
修正图片画布编辑器导入排序
...
调整 ImageCanvasEditorView 的生成输入模型导入顺序以通过 ESLint。
2026-08-07 22:04:37 +08:00
lhk229
840f219e18
Merge branch 'master' into feat/sound_opt
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
2026-08-07 13:57:30 +00:00
lhk229
c4d7a76a0a
合并 master 的编辑器原子提交改造
...
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
引入编辑器生成 durable receipt 与原子提交链路
将 SFX Worker 适配为原子写回并保留退款与失败分类
保持 External SFX 结果脱敏、实际时长和 Loop 契约
2026-08-07 13:54:26 +00:00
k88936
8ee4ff5b4f
合并主分支
...
解决冲突
2026-08-07 21:46:39 +08:00
k88936
cdf41012fb
合并主分支
...
处理合并冲突
2026-08-07 21:08:41 +08:00
k88936
9a8564bc1d
修复图集切片配方记录类型
...
从预处理记录读取实际素材记录
2026-08-07 21:01:46 +08:00
suzmii
d793b0e4c7
Fix: 去除账号信息弹窗四角不透明遮罩 ( #144 )
...
Project CI / Repository checks (push) Successful in 54s
Project CI / Backend tests (push) Successful in 3m51s
Project CI / Frontend tests (push) Failing after 2m19s
Project CI / Native shell tests (push) Successful in 15m8s
`before:`

`after:`

---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Co-authored-by: suzmii <suzmii@foxmail.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/144
Reviewed-by: 段舒康 <kdletters@qq.com >
Co-authored-by: 董羽秦 <suzmii@qq.com >
Co-committed-by: 董羽秦 <suzmii@qq.com >
2026-08-07 20:46:08 +08:00
k88936
1d23f51433
调整图标优化按钮样式
...
将图标规范字段的一键优化按钮字号从 9px 调整为 12px
将对应撤销优化按钮字号同步调整为 12px
2026-08-07 20:45:36 +08:00
k88936
7d904974f2
合并主分支并同步外部编辑器契约
...
同步外部编辑器项目选择与 MCP 工具契约
同步外部 v1 OpenAPI、API 实现及相关测试
同步 CI 容器网络韧性配置
2026-08-07 20:45:36 +08:00
k88936
bd972662c7
合并 origin/master
...
合并编辑器生成结果原子提交与外部 MCP 项目选择修复
保留确定性派生配方与改造 capability 分离语义
2026-08-07 20:38:30 +08:00
lhk229
87c0e167c4
音频信息的时长展示收敛到两位小数
...
Project CI / Repository checks (pull_request) Failing after 7s
Project CI / Backend tests (pull_request) Failing after 8s
Project CI / Frontend tests (pull_request) Successful in 3m17s
Project CI / Native shell tests (pull_request) Has been cancelled
模型返回的时长是全精度秒数,落库后信息面板会直出 8.306938775510204秒
这类无意义尾数。
- 新增 formatEditorGenerationInputFieldValue,只改写标题为「时长」或
duration 的字段中的首个数字,四舍五入到两位小数
- 接入音频信息弹窗与导出的可见元数据两处用户可见出口
- 不补零,"自动"这类无数字取值与其他字段原样保留
只作用于展示:generationInputs 落库值不变,重绘默认时长与作品时长推断
仍按原精度解析,已有素材也一并生效。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-08-07 12:28:41 +00:00
k88936
e99f3209f1
阻止损坏生成配方降级恢复
...
保留生成配方 hydrate 来源状态
禁止损坏或未来版本配方回退 legacy 恢复
补齐资源快照与改造入口回归测试
记录已生成图层点击恢复浮层的产品待确认项
同步画布编辑器恢复契约文档
2026-08-07 20:25:42 +08:00
lhk229
97de29a58f
优化SFX生成面板界面
...
按设计稿重排音效 composer 的底部控件,并统一循环开关的选中态配色。
- 一键优化与撤销移入底部行,与时长、循环、ElevenLabs 和生成同处一排
- SFX footer 改 flex 并作用域隔离,共享的 5 列 grid 不受影响;模型 chip
起分组作用,它与生成按钮靠右
- option-cluster 的 width: 100% 是给 grid 单元格写的,在 flex 行里会把基准
宽度撑成整行再收缩,循环按钮因此被拉到 355px,改为按内容取宽
- footer 直接子 anchor 改 flex,消除块级盒与 inline-block 之间的基线空隙
- 时长按钮补时钟图标,新建音效默认改为自动时长
- 循环按钮补图标,Loop 改为「循环 开 / 关」,aria-label 同步
- 选中态由实心橙底配近白文字改为设计稿的淡橙底 + 橙字 + 橙描边;实底方案在
通用 hover 用 background 简写换掉底色后会变成白底白字,hover 变体一并写死
- 删除 sound-effect-loop 选中态的重复规则,其声明与通用规则完全相同
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-08-07 11:48:32 +00:00
k88936
a321243945
合并主分支并统一编辑器生成原子提交
...
接入编辑器生成结果 durable receipt、稳定指纹和 SpacetimeDB 原子事务
保留图标规范与图集生成分模块实现并纳入原子提交和计费边界
统一队列 lease fencing、未知结果重放、画布 CAS 与失败退款语义
同步 schema、bindings、架构文档与回归测试
2026-08-07 19:43:37 +08:00
kdletters
1bc8ccd077
合并外部 MCP 项目选择修复
...
Project CI / Frontend tests (push) Successful in 3m2s
Project CI / Backend tests (push) Successful in 3m29s
Project CI / Repository checks (push) Successful in 1m3s
Project CI / Native shell tests (push) Failing after 9m33s
合并紧凑项目列表与封面稳定引用
合并 MCP 请求体参数提示与回归测试
同步 External v1 契约、Skill 与项目记忆
2026-08-07 19:41:27 +08:00
kdletters
f113326973
修复 CI 契约检查与原生依赖锁
...
Project CI / Repository checks (push) Successful in 1m30s
Project CI / Frontend tests (push) Successful in 2m55s
Project CI / Backend tests (push) Successful in 4m1s
Project CI / Native shell tests (push) Successful in 12m55s
改用量词表达工作流缩进正则以通过 ESLint。
补齐 AGC shared-contracts 的 sha2 锁依赖。
2026-08-07 19:26:44 +08:00
kdletters
9c2f02db25
增强 Gitea CI 网络稳定性
...
Project CI / Repository checks (push) Failing after 51s
Project CI / Native shell tests (push) Failing after 52s
Project CI / Frontend tests (push) Successful in 3m13s
Project CI / Backend tests (push) Successful in 3m46s
为所有 npm ci 增加整命令级有界重试。
补齐 AI 游戏创作 npm 与 Cargo 依赖缓存闭合验证。
更新可信 CI 镜像、缓存漂移告警和 Runner 运维文档。
记录 Actions Gateway CONNECT 断连崩溃的处理与验证边界。
2026-08-07 19:22:46 +08:00
kdletters
e099a519ba
修复外部 MCP 项目选择与参数提示
...
项目列表新增紧凑摘要和最新封面稳定引用
MCP 固定摘要视图并前置校验必填请求体
同步 External v1 OpenAPI、Skill 与项目记忆
补充十九项目超限和四个 415 工具回归测试
2026-08-07 19:21:34 +08:00
kdletters
6c53eda71c
修复编辑器生成结果原子提交
...
Project CI / Repository checks (push) Successful in 1m23s
Project CI / Native shell tests (push) Failing after 56s
Project CI / Frontend tests (push) Successful in 3m44s
Project CI / Backend tests (push) Successful in 4m33s
新增九类编辑器生成 durable receipt 与稳定提交指纹
统一资源、素材、binding、画布和队列终态的 SpacetimeDB 原子事务
补齐未知结果有界重放、CAS 刷新、lease fencing 与原子失败退款
收紧 owner、project、object、跨记录语义和 replay 一致性校验
保持 Agent 与 External compact 结果契约及 512 KiB 上限
延迟 inline 计费完成边界并区分 procedure dispatch 前后取消
同步 schema、迁移、生成绑定、架构文档和故障回归测试
2026-08-07 18:03:30 +08:00
k88936
2a19ee1e27
修复图片画布生成流程导入排序
...
调整画布生成工作流类型导入顺序,通过 simple-import-sort 检查。
2026-08-07 17:30:14 +08:00
lhk229
cad861a13d
完成 SFX V2 T6 测试与发布门禁
...
抽出单一 SFX Worker 编排并覆盖计费、翻译、ElevenLabs、OSS 与写回
补齐稳定失败分类、退款和零副作用组合测试
修复画布 Agent 的自动时长、小数范围、Loop 与 Prompt 参数契约
同步测试证据、发布门禁和项目共享记忆
2026-08-07 09:30:03 +00:00
lhk229
69f850ff82
音效外部调用纳入 worker provider 预算
...
Project CI / Repository checks (pull_request) Successful in 58s
Project CI / Frontend tests (pull_request) Failing after 2m11s
Project CI / Backend tests (pull_request) Successful in 3m51s
Project CI / Native shell tests (pull_request) Failing after 11m35s
ElevenLabs 设置新增 request_deadline,单次请求超时按剩余预算收窄,预算耗尽时不再发出请求。
音效翻译按同一预算逐轮判定,超期直接失败而不是继续占用终态写回时间。
音效生成把 request_context 上的 provider 截止时刻分别传给翻译与 ElevenLabs 调用。
新增预算耗尽时 provider 与 LLM 请求数均为 0 的回归测试及各自的对照用例。
2026-08-07 08:27:31 +00:00
lhk229
7733202bb3
音效失败对外只返回稳定文案
...
把音效任务加入用户可见失败文案白名单,不再透出 ElevenLabs 端点与传输层诊断。
新增音效失败文案脱敏测试,原始诊断仍保留在任务记录、tracing 与审计事件中。
2026-08-07 08:12:03 +00:00
lhk229
92085dfdd5
音效生成请求拒绝未知字段
...
给 EditorSoundEffectGenerateRequest 补 deny_unknown_fields,与 OpenAPI 的 additionalProperties false 对齐。
新增 loopEnabled 等未知字段必须返回错误而非静默丢弃的契约测试。
2026-08-07 08:08:34 +00:00
lhk229
122835839a
修正 SFX Chat completion 预算契约
...
Project CI / Repository checks (pull_request) Successful in 1m20s
Project CI / Frontend tests (pull_request) Successful in 3m49s
Project CI / Backend tests (pull_request) Successful in 4m24s
Project CI / Native shell tests (pull_request) Successful in 14m26s
将优化与翻译的 VectorEngine Chat wire 锁定为 max_completion_tokens。
拒绝旧 max_tokens 与不适用于 Chat 的 max_output_tokens 字段。
统一权威设计、共享计划与决策记录中的 completion tokens 语义。
2026-08-07 07:39:43 +00:00
lhk229
5424424bad
合并:同步最新 master
...
同步 Chat completion token 预算字段能力与兼容策略。
保留 SFX V2 正式生成链路和最新 Prompt 规范化修复。
2026-08-07 07:29:43 +00:00
lhk229
5c316fc680
统一SFX提示词 trim 规范化
...
将 SFX Prompt 首尾规范化改为 ECMAScript String.trim 语义并同步 Rust 等值实现
更新共享边界 fixture、前后端与 Worker 回归测试
同步权威设计、实施计划、决策日志和 External OpenAPI 描述
2026-08-07 07:27:52 +00:00
k88936
e088106541
从改造入口排除原位快速编辑
...
移除 image.edit 的可改造 action 能力
保留快速编辑入口并隐藏改造按钮
说明原位替换结果无法可靠恢复旧 source
同步权威设计文档和回归测试
2026-08-07 15:15:18 +08:00
k88936
0b44253c9d
收窄改造缺失来源拒绝范围
...
可补选的必填与可选引用统一按最佳努力恢复
仅对三个无来源替换入口的 action 拒绝改造
细化快速编辑与来源绑定错误提示
补充权威设计说明和回归测试
2026-08-07 14:34:24 +08:00
lhk229
392741215c
完成 SFX V2 T5 正式生成链路
...
Project CI / Repository checks (pull_request) Failing after 7s
Project CI / Backend tests (pull_request) Failing after 7s
Project CI / Frontend tests (pull_request) Successful in 2m52s
Project CI / Native shell tests (pull_request) Successful in 13m43s
接通 Luna 英文化、ElevenLabs 单次生成、MP3 校验、OSS 与权威元数据写回
演进站内和 External v1 契约、幂等参数、详情重绘与 Agent 音效模型
新增 ElevenLabs 动态定价键及历史定价快照兼容
同步 OpenAPI、外部 Agent Skill、共享计划与决策记录
2026-08-07 06:13:34 +00:00
k88936
130dc8ef9a
修正改造按钮显隐语义
...
按生成 action 能力决定改造按钮显隐
保留支持 action 的错误入口并在点击后提示原因
补充损坏配方与缺失来源回归测试
同步画布编辑器设计文档
2026-08-07 13:58:26 +08:00
k88936
21b05f9446
修复画布生成配方恢复边界
...
兼容生成配方未来字段与历史完美像素快照
补齐参数回退、旧版恢复告警和本地参考图上传
收紧生成任务幂等比较与裁扩来源归属
同步画布编辑器设计文档和回归测试
2026-08-07 13:19:47 +08:00
lhk229
44ac7f1252
修正参数浮层 Escape 与全局快捷键叠加
...
Project CI / Frontend tests (pull_request) Successful in 2m45s
Project CI / Native shell tests (pull_request) Successful in 13m37s
Project CI / Backend tests (pull_request) Failing after 12s
Project CI / Repository checks (pull_request) Failing after 12s
浮层处理 Escape 后截断冒泡,避免画布全局快捷键顺带关闭整个生成面板。
补齐 Escape 不外泄、外部点击不抢焦点两条回归测试。
预设轨道锁定测试改为同时校验 CSS 规则本体,堵住只断言类名的空转。
2026-08-07 05:16:31 +00:00
k88936
6725ee1b8c
合并主分支
...
Project CI / Frontend tests (pull_request) Successful in 3m29s
Project CI / Backend tests (pull_request) Successful in 3m47s
Project CI / Repository checks (pull_request) Successful in 1m6s
Project CI / Native shell tests (pull_request) Successful in 12m4s
解决简单合并冲突
2026-08-07 13:06:05 +08:00
k88936
323051be29
合并主分支
...
解决简单合并冲突
2026-08-07 13:03:38 +08:00
lhk229
6506e95fa1
音效时长浮层改用参数分组语义并补键盘策略
...
Project CI / Repository checks (pull_request) Failing after 8s
Project CI / Backend tests (pull_request) Failing after 9s
Project CI / Frontend tests (pull_request) Successful in 2m39s
Project CI / Native shell tests (pull_request) Successful in 12m15s
给浮层原语加 options 变体,含复选框和滑块的时长浮层退回 role=group。
浮层收起 hook 支持 Escape 关闭并把焦点还给触发按钮。
时长浮层打开后主动移焦到自动时长复选框,修正 portal 破坏的 Tab 可达性。
把一直未被 vitest 收录的浮层原语测试文件纳入 include 名单。
2026-08-07 04:43:35 +00:00
lhk229
7b67d8e9b7
锁定音频预设轨道时禁用手动横向滚动
...
锁定态给预设轨道加 --locked 修饰类,收紧为不可滚动容器并只放行纵向手势。
补齐 BGM 与 SFX 跑马灯锁定态的轨道滚动与相位保留断言。
2026-08-07 04:38:00 +00:00
lhk229
cb7bcbc67e
修复音效直连回包越账号刷新钱包
...
为 SFX 直连生成回包的钱包刷新补上账号门禁,与排队路径和 BGM 分支口径一致。
新增直连回包成功、失败两条切账号回归测试和一条同账号刷新对照测试。
2026-08-07 04:35:47 +00:00
k88936
21209910dd
修复图标生成引用与提示词校验
...
Project CI / Frontend tests (pull_request) Successful in 2m41s
Project CI / Native shell tests (pull_request) Successful in 12m9s
Project CI / Repository checks (pull_request) Failing after 7s
Project CI / Backend tests (pull_request) Failing after 8s
修复外部 API 参数覆盖与图标描述数组边界
提前校验 Agent 正式引用并收紧 SpacetimeDB 对象一致性
修正自然语言提示词转义与纯文本格式校验
移除图标规范占位提示词并避免重复下载参考图
补充定向测试与对应架构文档
2026-08-07 12:18:01 +08:00
k88936
e2fbef79e1
修复画布生成配方恢复与快照失真
...
保持背景音乐规范提示词与生成输入快照一致。
统一 V2 generationInputs 的项目、素材与完美像素账本水合,并保留 legacy 兼容。
为完美像素、裁扩、去背景和图集切片保存确定性配方并禁止改造。
由服务端按当前账号资源重建安全来源引用,修复布尔元数据显示。
补齐刷新恢复、数值布尔、无标签引用、来源溯源与确定性操作回归测试。
2026-08-07 11:53:25 +08:00
lhk229
2281458ba6
合并:同步原分支音频边界修复
...
Project CI / Repository checks (pull_request) Failing after 14s
Project CI / Backend tests (pull_request) Failing after 13s
Project CI / Frontend tests (pull_request) Successful in 3m8s
Project CI / Native shell tests (pull_request) Successful in 12m16s
同步 ElevenLabs 客户端单次请求约束。
同步真实 MP3 六百秒边界回归测试。
同步敏感配置调试输出遗留问题记录。
2026-08-07 03:50:24 +00:00
lhk229
e1e4f487f5
实现 SFX V2 T4 生成面板交互
...
新增独立 SFX Prompt 助手状态机与请求隔离、单层撤销。
抽取通用音频预设跑马灯并接入 SFX 预设、计数和优化入口。
实现自动/手动时长、Loop、模型展示及同步提交参数冻结。
恢复项目布局状态,补齐回归测试并更新 T4 权威文档与共享决策。
2026-08-07 03:49:04 +00:00
k88936
4a9f4657e9
同步编辑器图标生成权威合同
...
更新图标规范独立队列、计费与 worker 语义
收紧主规范引用为 referenceId 与正式资源或素材 ID
保留普通附加参考图边界并移除客户端价格字段
2026-08-07 11:45:54 +08:00
lhk229
b64c3c05ef
记录调试输出敏感配置遗留问题
...
Project CI / Native shell tests (pull_request) Successful in 13m18s
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / Frontend tests (pull_request) Failing after 2m1s
补充 AppConfig 与 AppState 调试输出的既有风险、审查归属和后续修复边界。
2026-08-07 03:36:25 +00:00
lhk229
9d581bbe8c
锁定 ElevenLabs 单次请求与音频时长边界
...
显式禁用 ElevenLabs 专用 HTTP 客户端重试。
增加真实 MP3 帧的 600 秒上下边界回归测试。
2026-08-07 03:35:08 +00:00
k88936
f8bcf7cf54
修复图标规范上传类型合同
...
图标规范上传在项目资源与账号素材分支统一登记为 icon-spec。
补充上传后提交图集生成及两条持久化分支回归测试。
同步编辑器设计文档、外部 API Skill 与 Python helper 的 referenceId 合同。
2026-08-07 11:15:11 +08:00
lhk229
9d1f4c1975
修复项目切换 manifest 测试竞态
...
等待 manifest 失效监听注册后再发送失效事件
避免 CI 中测试事件丢失导致超时
2026-08-07 02:55:26 +00:00
lhk229
c3b3b47c9a
实现 SFX V2 T3 ElevenLabs 音频适配
...
新增 ElevenLabs 直接二进制适配、固定请求契约和单次 POST 边界。
实现 40 MiB 有界读取、MIME/MP3 校验和 600 秒纯 Rust 时长探测。
接入服务端环境配置、失败关闭 settings guard 与持久化来源解耦。
补齐 mock 回归测试、环境模板和 T3 tracked 文档记录。
2026-08-07 02:50:59 +00:00
lhk229
d208c44c86
合并:同步 SFX V2 T1 验收修复
...
合入共享 Prompt 边界、正式提交 canonicalization 与任意小数时长修复
合入严格 V2 metadata 构造和音频 compact 到 Agent reconcile 契约
确认 T1 修复与 T2 助手、翻译 service 依赖兼容并通过融合验证
2026-08-06 14:17:23 +00:00
lhk229
db9f452cae
修复 SFX V2 T1 验收问题
...
修复音频 compact 结果与 Agent reconcile 契约
统一正式 SFX 提交流程的 Unicode canonicalization
锁定队列 duration 与 Loop JSON 形态
收紧 Rust V2 metadata 构造和反序列化不变量
补齐共享边界、52 个预设 ID 和任意小数时长测试
2026-08-06 14:07:05 +00:00
lhk229
9734f78474
实现 SFX V2 T2 助手与翻译服务
...
新增登录态音效提示词一键优化 BFF 与严格 JSON 候选门禁
新增 Worker 内部英文化服务、Unicode Script 校验和业务重试边界
补齐 mock LLM、路由埋点、回归测试及 T2 共享实施记录
2026-08-06 14:04:36 +00:00
lhk229
cd80c085ff
实现 SFX V2 T1 契约与提示词基础
...
统一前后端 SFX Prompt Unicode canonicalization、字符计数和 2048 边界
固化 52 个音效预设、追加规则及跨语言测试向量
演进共享音频请求响应、duration、Loop 和 V2 metadata 契约
增加 External model 输入矩阵纯函数并保持正式接线归属 T5
补齐前端提交、读取、深拷贝与请求边界回归测试
更新共享计划并标记 T1 完成且当前不可发布
2026-08-06 13:06:10 +00:00
kdletters
9dab1f53b9
修复Chat生成预算字段兼容
...
Project CI / Native shell tests (pull_request) Successful in 15m7s
Project CI / Repository checks (push) Successful in 1m14s
Project CI / Frontend tests (push) Successful in 3m57s
Project CI / Backend tests (push) Successful in 4m13s
Project CI / Native shell tests (push) Successful in 12m28s
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / Frontend tests (pull_request) Successful in 3m23s
新增Chat生成预算字段能力并兼容新旧网关
VectorEngine编辑器客户端改用max_completion_tokens
补充BGM请求体回归与协议文档约束
2026-08-06 20:39:19 +08:00
k88936
5eee62cf39
修复预览权限拒绝测试竞态
...
为自动预览权限检查断言增加 2500 毫秒等待预算
保持权限拒绝文案与禁止启动预览断言不变
2026-08-06 20:12:21 +08:00
lhk229
6fd731f56c
合并:同步最新 master 并放行 SFX T0
...
合并 master 的 BGM 生成路径与角色动作媒体契约更新
保留并收敛 SFX V2 权威设计与共享实施计划
标记 T0 已通过并允许进入 T1
明确 SFX V2 实际时长响应对通用媒体口径的专项覆盖
2026-08-06 12:09:53 +00:00
k88936
29498a727d
修复图标提示词与背景音乐测试
...
更新图标图集用户提示词隔离门禁以匹配规范化输入
调整背景音乐同步回退用例以避开项目权威快照路径
2026-08-06 19:54:31 +08:00
lhk229
c72d295a84
文档:冻结SFX生成优化V2实施口径
...
完善SFX V2权威设计、LLM参数、二进制与时长安全边界
新增可共享的T0至T6任务拆解、测试矩阵和迁移发布门禁
同步项目决策日志与文档索引
2026-08-06 11:47:04 +00:00
k88936
3bbde84f87
修复测试
...
更新图标规范生成逻辑:调整资源引用为 `resourceId`
统一后端 LLM 客户端接口
2026-08-06 19:37:32 +08:00
k88936
706fa3ca8c
同步测试用例
...
支持音频背景音乐生成链路的 `version: 2` 和 `action: audio.background-music.generate` 参数
2026-08-06 19:36:03 +08:00
k88936
baa1f32f8e
标注图集计费与流水线历史债务
...
确认计费提交早于持久化的边界继承自 master,并补充可对账状态 TODO
确认编码与上传共用并发槽继承自 master,并补充有界流水线 TODO
保留既有 OSS 清理历史 TODO,本提交不改变运行行为
2026-08-06 19:23:47 +08:00
k88936
b2b517d5b9
说明改造缺失源素材的拒绝条件
...
明确仅在必需 source 无法手动补齐且请求无法执行时拒绝改造
说明可手动补选的 reference 继续按 best-effort 恢复参数
2026-08-06 19:15:40 +08:00
k88936
2266d7fe89
修复图标图集审查中的边界问题
...
校验 LLM 完成原因并规范化 Agent 图标描述
统一前后端图标规范输入、错误返回和精确撤销行为
收紧图集拆分授权并拒绝引用 ID 歧义
修正快照映射诊断和表单标签可访问性
补充定向测试与编辑器设计文档
2026-08-06 19:15:10 +08:00
k88936
942d2d36ad
合并 BGM 生成路径优化
...
接入画板背景音乐预设、提示词优化与生成链路
统一前后端音频契约和 canonical prompt 语义
保留画布生成输入改造契约并同步文档与测试
2026-08-06 19:04:46 +08:00
k88936
2b8ced9195
合并主分支
...
解决简单冲突
2026-08-06 18:55:15 +08:00
lhk229
281c84b7bf
BGM生成路径优化 ( #142 )
...
Project CI / Frontend tests (push) Failing after 2m11s
Project CI / Backend tests (push) Successful in 3m33s
Project CI / Native shell tests (push) Successful in 13m57s
Project CI / Repository checks (push) Successful in 1m15s
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/142
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-08-06 17:54:40 +08:00
k88936
fa02c366a9
显示图标规范输入字符计数
...
在一键优化与撤销操作行右侧实时显示 Unicode 字符数和 200 字符上限。
补充计数更新、emoji 截断和右对齐布局测试,并同步编辑器方案文档。
2026-08-06 17:19:41 +08:00
k88936
969afbaf94
合并主分支并解决图标生成模块冲突
...
保留图标规范与图集生成独立模块边界
融合主分支角色动画与图片序列字段
2026-08-06 17:13:41 +08:00
k88936
291724a984
合并主分支并解决画布生成冲突
...
同步主分支的角色动作序列、精选展示与外部编辑器契约更新
保留画布生成输入 V2 契约并合并视频、音效时长元数据
修复精选视频对数值型 V2 时长元数据的兼容
2026-08-06 17:09:39 +08:00
k88936
a03f13d0a5
Fix/动作 前端展示下载+后端数据结构+精选 的问题 ( #117 )
...
Project CI / Repository checks (push) Successful in 1m28s
Project CI / Frontend tests (push) Successful in 3m19s
Project CI / Backend tests (push) Successful in 4m3s
Project CI / Native shell tests (push) Successful in 13m58s
原问题
```
历史角色动作是一个兼容例外:
后端允许它没有 editor_project_resource 资源行,只要布局自身保存了完整图片序列帧。
```
- 把生成动作的原视频asstetkind改为 video, 只把图片序列作为action
- db asset新增字段image_sequence_frames_json image_seq_duration_ms等, (原来动作的这些数据存在generation-input中,并不合适)
修改了externaljob,把这部分数据正确填写到数据库中。
- 为避免到处fallback,做了数据库迁移, 脚本: `scripts/spacetime-normalize-editor-character-actions.mjs` 手动进行过画布+素材库中动作序列帧+原始视频 迁移的测试
- 移除preview_video_path字段, reason:
>preview video
→ separate resource/asset with assetKind="video"
final transparent action
→ assetKind="character-animation"
→ source_resource_id points to the preview-video resource
→ image_sequence_frames_json contains the actual playable result
>
> So preview_video_path on the final action duplicates the source video resource’s image_src.
- 移除每个frame的index字段 原因: 这个只用于后端内部处理时有一个并发请求, 每个赋一个index方便收集, 后续没有再用到,且与数组本身重复
- 清除副产品preview video的generation_input_json, 因为会影响改造功能, 迁移后预览视频不提供改造(参数), 只有序列帧动作有改造
仍存在的共性问题: #134
- 导出:
下载改为完整序列帧, 封面不再作为fallback, 部分帧读取失败时行为:仍生成 ZIP,并记录失败帧, 不变
画布放置:
before:

after:

精选模块: 主页展示, 审核部分UI:


这两处序列帧们的加载设计为惰式的, 只有hover和单独preview才会全部加载
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/117
Reviewed-by: 段舒康 <kdletters@qq.com >
Co-authored-by: 王德宇 <kvtodev@outlook.com >
Co-committed-by: 王德宇 <kvtodev@outlook.com >
2026-08-06 16:57:38 +08:00
k88936
ea3b3d423d
标注图集持久化历史边界
...
标注并发上传失败后的对象补偿生命周期缺口。
标注 PUT、HEAD 与批量持久化尚未纳入统一处理期限。
2026-08-06 16:54:47 +08:00
lhk229
b79f72391b
优化BGM生成面板界面
...
Project CI / Frontend tests (pull_request) Successful in 3m7s
Project CI / Backend tests (pull_request) Successful in 3m51s
Project CI / Repository checks (pull_request) Successful in 1m27s
Project CI / Native shell tests (pull_request) Successful in 12m40s
按设计稿重排 BGM composer 的控件布局,并统一输入框行为。
- 字数计数移到「预设」标题行右端,与预设展开控件同排
- AI补全 / 一键简化 / 撤销 移入底部行,与 Suno、生成同区域
- 助手按钮补图标并压回 2.25rem 高度与胶囊圆角;shape="pill" 与
size="xs" 走的是 Tailwind 分层 utility,压不过未分层的
.platform-button,因此显式写死
- 预设展开 / 收起改为裸 chevron 图标按钮,可访问名由 aria-label 承担
- 预设滚动箭头去边框,hover 才出淡底
- BGM footer 改 flex 并作用域隔离,共享的 5 列 grid 不受影响
- 生成按钮收到 2.25rem,样式、文案与泥点角标保持不变
- 面板 min-height 归零并移除多余显式行,消除收起预设时的空白
- 输入框改用 AutoGrowTextArea,与生图 / 生视频 / 角色 / 图标同源,
53.6px 起自动增高至 128px 后内滚
交互逻辑未改动。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-08-06 08:44:45 +00:00
k88936
55ff47c6c4
收紧图标图集提示词输入契约
...
新增独立的 spritesheet prompt 单项字符、聚合字符和 UTF-8 字节上限。
以已验证类型约束 prompt builder,并覆盖 inline、队列与 worker 执行边界。
同步画布校验、Editor Agent 工具合同、External v1 OpenAPI、文档和边界测试。
2026-08-06 16:44:33 +08:00
k88936
0b3475ef98
修复图标生成审查中的轻量问题
...
图标规范输出校验失败时携带无效响应和修正指令重试。
图标图集队列在定价和持久化前归一化描述数量。
手工编辑规范字段后清除失效撤销快照。
收口项目生成对话框的重复复位逻辑并补充测试和文档。
2026-08-06 16:19:48 +08:00
k88936
3fdbe81bfe
重构图标规范与图集生成链路
...
新增图标规范独立队列任务并将参数补全纳入统一计费操作
将图标图集生成和手工拆分迁入独立图标模块并复用公共生图能力
将图标规范引用收紧为项目资源或素材 ID
同步 SpacetimeDB 引用解析契约、External OpenAPI、前端与 Agent 提交链路
补充相关回归测试和长期架构约定
2026-08-06 15:43:10 +08:00
lhk229
59b92123b9
合并:同步最新master
...
Project CI / Repository checks (pull_request) Successful in 1m6s
Project CI / Backend tests (pull_request) Successful in 3m26s
Project CI / Frontend tests (pull_request) Successful in 3m18s
Project CI / Native shell tests (pull_request) Successful in 14m13s
合入远端 master 的最新提交
2026-08-06 07:24:02 +00:00
lhk229
c3e8be719d
配置BGM助手中等推理强度
...
Project CI / Repository checks (pull_request) Failing after 7s
Project CI / Backend tests (pull_request) Failing after 8s
Project CI / Frontend tests (pull_request) Successful in 3m42s
Project CI / Native shell tests (pull_request) Successful in 14m59s
将BGM补全与简化请求统一设置reasoning_effort为medium
补充请求对象和HTTP载荷断言并同步权威设计
2026-08-06 07:22:37 +00:00
kdletters
b63923eb04
修复智能体根任务可观测性
...
Project CI / Repository checks (push) Successful in 1m29s
Project CI / Frontend tests (push) Successful in 3m36s
Project CI / Backend tests (push) Successful in 3m31s
Project CI / Native shell tests (push) Successful in 17m40s
根任务先持久化启动确认并在审计异常时保持可执行队列连续性
严格校验根子任务与会话绑定并收束消息身份冲突
幂等恢复公开终态消息并消除回执和隔离汇合重复输出
统一同一运行关联消息的排序与前端状态展示
隔离运行时公开状态与智能体提示词及压缩上下文
补充运行时回归测试、前端测试和工程文档
2026-08-06 15:14:23 +08:00
lhk229
a786fa7562
修复背景音乐预设克隆焦点
...
Project CI / Repository checks (pull_request) Successful in 9m55s
Project CI / Backend tests (pull_request) Successful in 12m19s
Project CI / Frontend tests (pull_request) Successful in 15m31s
Project CI / Native shell tests (pull_request) Successful in 27m2s
将中间队列设为唯一可访问按钮并移除视觉克隆的焦点能力
为键盘预设补充可见焦点样式
补充克隆点击、锁定及键盘导航回归测试
2026-08-06 06:33:17 +00:00
lhk229
9671944e0f
合并:同步最新master
...
Project CI / Repository checks (pull_request) Successful in 57s
Project CI / Frontend tests (pull_request) Successful in 3m51s
Project CI / Backend tests (pull_request) Successful in 4m2s
Project CI / Native shell tests (pull_request) Failing after 3m59s
纳入远端master最新变更
2026-08-06 05:18:34 +00:00
lhk229
ee474b8ec8
测试:修复画布缓存断言竞态
...
Project CI / Backend tests (pull_request) Failing after 13s
Project CI / Repository checks (pull_request) Failing after 9s
Project CI / Frontend tests (pull_request) Successful in 2m50s
Project CI / Native shell tests (pull_request) Successful in 14m54s
等待会话缓存完成revision更新后再校验内容
2026-08-06 05:16:38 +00:00
kdletters
2c57edd59d
修复画布素材导出分片读取
...
Project CI / Repository checks (push) Successful in 1m2s
Project CI / Frontend tests (push) Successful in 3m6s
Project CI / Backend tests (push) Successful in 3m40s
Project CI / Native shell tests (push) Successful in 14m47s
补齐 OSS 响应体失败与局部 206 的同源字节兜底
保留角色动作逐帧 objectKey 与 assetObjectId
补充导出、Abort、契约回归与文档
2026-08-06 12:56:30 +08:00
lhk229
5b4599f147
合并:同步最新master
...
Project CI / Repository checks (pull_request) Successful in 1m21s
Project CI / Frontend tests (pull_request) Failing after 2m15s
Project CI / Backend tests (pull_request) Successful in 4m2s
Project CI / Native shell tests (pull_request) Failing after 10m23s
纳入远端master最新变更
2026-08-06 03:55:26 +00:00
kdletters
ef6281e135
修复游戏创作条件任务图路由
...
Project CI / Repository checks (push) Successful in 1m19s
Project CI / Frontend tests (push) Successful in 4m4s
Project CI / Backend tests (push) Successful in 4m5s
Project CI / Native shell tests (push) Successful in 14m55s
固定规则降级为 Supervisor advisory 上下文并持久化工作流决策
加入 code-director 资产审计、精确缺口路由与幂等恢复
避免完整资产、仅缺清单和无效旧资产场景重复或错误生成美术
补齐 Prompt Bundle、共享契约、回归测试和协作文档
2026-08-06 11:53:00 +08:00
lhk229
fe08a2643c
文档:同步T6提交与视觉验证状态
...
Project CI / Frontend tests (pull_request) Successful in 3m14s
Project CI / Repository checks (pull_request) Failing after 9s
Project CI / Backend tests (pull_request) Failing after 8s
Project CI / Native shell tests (pull_request) Successful in 14m18s
记录T6收口已提交并推送
补记共享音频Composer浏览器视觉验证结果
2026-08-06 03:43:56 +00:00
k88936
e6f0e6248e
修复图标规范优化细节
...
空响应纳入有界重试,并为优化请求设置输出 token 上限。
修复题材提示词括号并补充回归测试。
将优化请求身份更新移入已提交 effect,避免并发渲染污染。
移除冗余类型注释并同步编辑器文档。
2026-08-06 11:33:26 +08:00
k88936
aec9b61121
合并主分支游戏创作更新
...
同步 AI 游戏创作 Runtime、资源图与工作台主线改动
保留画布编辑器生成配方恢复改动
2026-08-06 11:32:00 +08:00
lhk229
eba8f25995
BGM音频模块迁移回isSoundEffect
Project CI / Repository checks (pull_request) Successful in 1m26s
Project CI / Frontend tests (pull_request) Successful in 3m33s
Project CI / Backend tests (pull_request) Successful in 5m52s
Project CI / Native shell tests (pull_request) Successful in 15m1s
2026-08-06 03:26:20 +00:00
k88936
3550f046e4
修复图标规范参考图超限预检
...
后端在调用 LLM 前按模型上限拒绝超限参考图。
前端在请求发送前限制图标规范参考图数量。
补充超限零请求回归测试与预检顺序断言。
2026-08-06 11:25:48 +08:00
lhk229
477eb1a003
合并:同步最新master
...
Project CI / Repository checks (pull_request) Failing after 44s
Project CI / Frontend tests (pull_request) Failing after 2m51s
Project CI / Backend tests (pull_request) Successful in 5m29s
Project CI / Native shell tests (pull_request) Successful in 13m32s
合并 origin/master 最新提交 7b075df39
保留当前分支的 BGM 优化与共享音频面板方案
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
# docs/project-memory/shared-memory/pitfalls.md
# server-rs/crates/api-server/src/editor_generation_queue.rs
# src/components/image-editor/useImageCanvasGenerationSurface.tsx
# src/services/image-editor/editorProjectClient.ts
2026-08-06 03:10:30 +00:00
lhk229
3a363c98ff
文档:恢复音频生成共享分流并停止跟踪本地方案
...
Project CI / Repository checks (pull_request) Failing after 11s
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / Frontend tests (pull_request) Failing after 2m48s
Project CI / Native shell tests (pull_request) Successful in 14m43s
新增共享音频 Composer 重构方案并收口权威设计
更新实施记录、决策日志、踩坑记录与文档索引
停止跟踪 local-docs 中的 T5 实施方案并保留本地文件
2026-08-06 03:03:26 +00:00
k88936
c932f5e8fb
合并主线并保留图标规范生成逻辑
...
同步游戏创作运行时、资源依赖画布与像素编辑链路更新
保留图标规范参考图解析与提示词结构调整
补齐合并后的前后端合同、文档与测试
2026-08-06 11:02:15 +08:00
kdletters
7b075df398
合并远端主线并保留游戏创作修复
...
Project CI / Frontend tests (push) Failing after 24s
Project CI / Repository checks (push) Successful in 56s
Project CI / Backend tests (push) Successful in 3m48s
Project CI / Native shell tests (push) Successful in 12m5s
合入 origin/master 的六个最新提交
保留双方 AI 游戏创作 Runtime、资源图与工作台改动
按时间顺序合并三份项目文档记录
通过完整 Rust、App Surface、类型与编码门禁
2026-08-05 23:56:34 +08:00
kdletters
bc1fe7d8fd
修复游戏创作编排恢复与进度可观测性
...
提取并固化 Supervisor 工作流与任务图约束
修复 game-chat 计划收敛、当前 Run 写入归属和素材完成门
补强 parent wake 持久恢复、幂等投影与 deferred 竞态
改进 Agent 进度消息时间戳、等待态和滚动可见性
补齐 Rust、App Surface 回归及项目文档
2026-08-05 23:47:46 +08:00
kdletters
6f181b36a1
修复编辑器生成幂等与参考图契约
...
Project CI / Frontend tests (push) Failing after 22s
Project CI / Repository checks (push) Successful in 58s
Project CI / Backend tests (push) Successful in 3m30s
Project CI / Native shell tests (push) Successful in 12m34s
生成队列按稳定请求标识去重并保持外部幂等哈希兼容
统一拒绝参考图超限并同步前端、后端、Provider 与 OpenAPI 契约
按真实归属重建生成引用并阻止直接持久化伪造来源
锁定参考图在途上传上下文并保留批量部分成功结果
关闭内部生成 POST 自动重试并补齐回归测试与项目文档
修正最新主线开发者密钥弹窗的导入排序门禁
2026-08-05 23:31:16 +08:00
lhk229
17bf54f211
修复:整理画布生成工作流导入顺序
...
按 simple-import-sort 要求调整完美像素与 BGM 助手导入顺序
通过目标文件 ESLint 与 git diff --check
2026-08-05 14:00:49 +00:00
lhk229
2a0a4238d1
Merge branch 'master' of ssh://genarrative-station:2222/GenarrativeAI/Genarrative into codex/bgm-generation-opt-v1
Project CI / Repository checks (pull_request) Failing after 43s
Project CI / Frontend tests (pull_request) Failing after 2m17s
Project CI / Backend tests (pull_request) Successful in 4m13s
Project CI / Native shell tests (pull_request) Successful in 13m17s
2026-08-05 13:54:59 +00:00
kdletters
e5ebdf0a8e
修复开发者密钥时间显示
...
Project CI / Repository checks (push) Failing after 40s
Project CI / Backend tests (push) Successful in 3m55s
Project CI / Frontend tests (push) Successful in 3m8s
Project CI / Native shell tests (push) Successful in 14m3s
复用个人中心时间解析逻辑格式化秒级小数时间戳
统一展示密钥创建时间和最近使用时间
补充弹窗回归测试与接入文档约束
2026-08-05 21:48:30 +08:00
lhk229
de98219a94
合并:同步最新master
...
Project CI / Native shell tests (pull_request) Successful in 14m13s
Project CI / Frontend tests (pull_request) Failing after 2m22s
Project CI / Backend tests (pull_request) Successful in 4m6s
Project CI / Repository checks (pull_request) Failing after 43s
合并 origin/master 8f19964e3 到 BGM 优化分支
保留 BGM 记录、完美像素改动及双方前端测试
通过冲突相关前端定向测试(61项)
2026-08-05 13:43:10 +00:00
lhk229
aeb5894b9d
测试:完成BGM提示词优化收口并切换助手模型
...
增加 TypeScript/Rust 共用 canonicalization fixture
补齐 BGM 跨层等值、SFX 和后端边界测试
将 BGM 补全与简化请求模型改为 gpt-5.6-luna,保留画布 Agent gpt-5.4-mini
同步权威设计、项目记忆和 T6 发布门禁记录
验证本地定向测试与真实 VectorEngine 补全/简化请求
2026-08-05 13:35:02 +00:00
lhk229
8f19964e3f
加入手动完美像素入口;像素艺术勾选时自动补提示词约束 ( #124 )
...
Project CI / Repository checks (push) Successful in 1m0s
Project CI / Backend tests (push) Successful in 3m52s
Project CI / Native shell tests (push) Successful in 13m8s
Project CI / Frontend tests (push) Successful in 2m43s
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/124
Reviewed-by: 段舒康 <kdletters@qq.com >
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-08-05 21:28:40 +08:00
k88936
3c9039d08b
调整图标规范提示词生成逻辑
...
支持参考图解析
优化提示词结构
2026-08-05 20:27:59 +08:00
menghao
62e0fe94ef
资源卡依赖关系及类型分类预览 ( #129 )
...
Project CI / Repository checks (push) Successful in 1m2s
Project CI / Frontend tests (push) Successful in 3m5s
Project CI / Backend tests (push) Successful in 3m41s
Project CI / Native shell tests (push) Successful in 13m7s
完成资源卡按类型和按依赖分类展现的功能
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/129
Co-authored-by: menghao <mh18530625731@163.com >
Co-committed-by: menghao <mh18530625731@163.com >
2026-08-05 19:15:46 +08:00
lhk229
69426ee61c
合并:同步最新master
...
保留BGM独立composer与提示词优化链路
合入master最新编辑器和项目能力
解决决策日志与音频输入组件冲突
2026-08-05 10:37:39 +00:00
k88936
93b36cb97c
合并主分支托管 MCP 更新
...
同步托管 MCP 开发域名访问白名单
保留画布生成配方分支改动
2026-08-05 17:52:46 +08:00
k88936
eff046a27a
修正图片画布导出导入顺序
...
按 ESLint 规则排序生成输入格式化函数导入
2026-08-05 17:47:43 +08:00
k88936
a47262b551
合并主分支硬截止恢复测试更新
...
同步游戏创作硬截止恢复测试修正
保留画布生成配方分支改动
2026-08-05 17:47:27 +08:00
k88936
0804e29daf
合并主分支运行态测试更新
...
同步运行态测试来源默认值修正
保留画布生成配方分支改动
2026-08-05 17:47:11 +08:00
k88936
0d0d4c0915
合并主分支协作 Prompt 约束更新
...
同步协作 Prompt 跨语义复用禁止规则
保留画布生成配方分支改动
2026-08-05 17:46:49 +08:00
lhk229
3b69b48860
功能:完成BGM正式提交链路
...
前端接入规范化提示词、同步排他锁及账号与项目分层回调门禁
关闭BGM正式POST自动重试并补充真实传输层单次请求回归
后端统一站内BGM规范载荷并保留External v1原始载荷幂等语义
补齐队列、直返、平台音频及生命周期边界测试
新增并更新T5独立实施记录
2026-08-05 09:40:02 +00:00
k88936
d4a4d0ba3a
修复持久化画布生成结果重复落层
...
为图标规范、视频和音频补齐项目快照缺失时的提前返回
恢复生成对话框状态并避免前端重复创建本地图层
补充 canvasCompletion 回归测试和图片画布技术文档
2026-08-05 17:05:21 +08:00
k88936
baaa587f2f
修复图标提示词标签注入风险
...
统一转义图标规范与图集提示词中的不可信 XML 保留字符
补充恶意闭合标签回归测试并覆盖分析、润色与图集提示词
同步后端架构文档中的提示词数据边界约束
2026-08-05 16:50:53 +08:00
k88936
ce1afde307
合并主线并同步外部接口修复
...
同步 Runner 客户端与 External MCP 修复
同步智能体应用方案、外部编辑器接口方案与共享记忆
保留图标规范生成面板的交互与样式调整
2026-08-05 15:45:12 +08:00
k88936
262dad5563
优化:图标规范生成面板的多行输入框, 按钮交互与图标样式
...
- 优化输入框样式,与画布编辑器一致。
- 调整按钮布局,添加间距和微调样式以提升一致性。
- 替换按钮文本为动态图标及文本组合,优化用户体验。
2026-08-05 15:34:39 +08:00
kdletters
0cc257ce6d
允许开发环境访问托管MCP
...
Project CI / Repository checks (push) Successful in 1m13s
Project CI / Frontend tests (push) Successful in 3m35s
Project CI / Backend tests (push) Successful in 4m30s
Project CI / Native shell tests (push) Successful in 12m50s
将dev公开域名加入MCP Host与Origin白名单
新增正负例锁定DNS rebinding防护
同步外部API文档和项目排障经验
2026-08-05 15:23:26 +08:00
kdletters
427fbca100
修复 Runner GUI owner 跨重启登记
...
Project CI / Repository checks (push) Successful in 1m16s
Project CI / Frontend tests (push) Successful in 3m15s
Project CI / Backend tests (push) Successful in 3m49s
Project CI / Native shell tests (push) Successful in 12m42s
保存 GUI owner attach 参数并按 AppData 与 bootId 重放
在 Runner endpoint 返回前失败关闭未完成的 owner 登记
补充幂等、重试、配置隔离测试和生命周期文档
2026-08-05 15:14:40 +08:00
k88936
1f530bc806
合并主线并解决图标规范冲突
...
同步主线的智能体运行时、画布编辑器与后端生成链路更新
解决图标规范面板、编辑器客户端与长期决策文档冲突
保留图标规范分支的字段合同与生成入口
2026-08-05 14:40:38 +08:00
k88936
059826b06d
修复图标规范 LLM 模型配置与错误提示
...
为图标规范优化与参数补全请求指定默认模型
将两类请求切换为 OpenAI Chat 协议
统一 VectorEngine LLM 客户端读取与未配置错误信息
2026-08-05 14:30:56 +08:00
k88936
e9f50248b9
统一 VectorEngine LLM 客户端命名
...
将 editor_agent_llm_client 重命名为 vector_engine_llm_client
更新图标生成、角色动画、美术 Agent 与应用状态调用
同步排障文档中的客户端名称
2026-08-05 14:30:30 +08:00
lhk229
07eb59fb6d
文档:收口BGM正式提交边界
...
明确 BGM 正式提交在 queue 与 inline 模式下的结算时点
关闭 BGM 正式 POST 的 unsafe 自动重试并冻结非扩展边界
删除请求侧固定泥点价格并改为服务端动态价格口径
收紧归档与账号项目切换后的 scope-safe 写回规则
2026-08-05 06:07:41 +00:00
k88936
755f58ddfb
拆分图标规范生成预检与执行
...
在文本模型调用前完成图片引用、Provider与定价参数预检
补齐最终提示词后复用现有图片生成内联与队列分流
在图集业务层校验图标规范类型并解析游戏类型
补充执行顺序、任务契约与失败关闭回归测试
同步更新生成链路文档与长期决策记录
2026-08-05 14:04:54 +08:00
k88936
f76d338e69
新增编辑器引用窄查询
...
按主键或图片地址索引解析单个工程资源与素材
校验运行时身份、资源归属及关联对象归属并失败关闭
复用现有完整资源快照并生成客户端绑定
同步更新SpacetimeDB索引与图集引用文档
2026-08-05 14:03:51 +08:00
lhk229
d825d81810
前端:增加BGM预设与提示词交互
...
- 新增 ImageCanvasBackgroundMusicPresetModel:三组 30 个固定预设(用途 12 / 氛围 3 / 场景 15)与追加纯函数;按 Unicode code point 读取末位字符,标点用 \p{Punctuation} 判定,非标点先补中文句号,不去重、不截断、不改内部空白。
- 新增独立 BGM composer:canonical preview 计数不改写输入框,AI 补全、一键简化、撤销与生成按动作矩阵启用,错误复用 PlatformStatusMessage,底部保留固定 Suno 胶囊与动态泥点价格。
- 撤销按钮按权威设计矩阵渲染:可见条件为存在可撤销快照或本次临时快照,启用条件为可见且面板未锁定;AI 处理与提交期间显示并禁用,不隐藏。
- 新增预设轨道组件:多份等宽队列 + ResizeObserver 实测宽度 + rAF 按帧步进取模归位实现无缝循环;左右 15% 加速、中间 70% 暂停、箭头 hover 加速与点击离散滚动,底部细线标记当前控制区。
- 轨道只保留一份可聚焦预设按钮,视觉克隆移出可访问树但点击映射到同一动作;收起、锁定、页面不可见、dialog 切换和卸载都取消 rAF。
- 桌面 hover 控制区按 (hover: hover) and (pointer: fine) 启用,能力丢失时清空当前控制区,避免没有 pointerleave 的设备永久停在暂停态;reduced-motion 初值与运行中变化都生效。
- 触摸抬手后等待滚动事件停止再恢复 rAF,不使用固定等待时长,且不把 rAF 自身写 scrollLeft 触发的 scroll 计入空闲判定。
- 加速档按真机实测定为 238 px/s,左右控制区与箭头共用,避免两者之间出现速度突变。
- 将原共享音频 composer 收窄为 SFX-only,BGM 路由到独立组件并按 dialog ID 设置 key;SFX 的 Vidu 胶囊、时长滑块、默认 Prompt 与价格行为不变。
- 补充 ImageCanvasBackgroundMusicPresetModel、独立 composer 与预设轨道的定向测试,并扩展现有 composer 的 SFX 回归与 BGM 路由断言。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-08-05 04:59:04 +00:00
k88936
ac12e929f2
修复图标规范评审问题
...
迁移旧版 ui 规范快照并隔离跨对话框优化结果。
关闭非幂等图标规范生成重试并统一参考图解析逻辑。
限制 LLM 重试范围并严格校验优化文本与补全参数。
修正图集键色、数量与素材间距提示约束并补充行为测试。
同步图片画布与生成面板技术文档。
2026-08-05 11:32:18 +08:00
lhk229
0dc1eed38e
文档:明确BGM撤销按钮可见性与禁用口径
...
- 权威设计「单层撤销」增加撤销按钮可见性与可用性小节:可见条件为存在可撤销快照或本次 AI 操作的临时快照,启用条件为可见且面板未处于 completing / simplifying / submitting / generating 锁定状态,并补 10 行状态矩阵。
- 说明发起 AI 操作时可撤销快照被本次临时快照取代,「处理中没有可撤销快照」不等于「没有快照」,不得据此隐藏按钮;禁止为让处理期间按钮可见而保留旧快照,避免与 AI 失败不恢复旧快照冲突。
- 权威设计「AI 操作与方案 A 提交锁」限定「禁用撤销」指显示并禁用,可见性按单层撤销矩阵判定,不得隐藏。
- 权威设计验收增加撤销按钮逐行验收,要求处理期间按钮仍在可访问树中且为真实禁用态,不得用隐藏或视觉伪装代替禁用。
- decision-log 追加对应长期交互决策,标注不修改状态模型字段且不适用于 SFX。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-08-05 03:06:59 +00:00
kdletters
17f8f4b48b
修正游戏创作硬截止恢复测试
...
Project CI / Repository checks (push) Successful in 1m1s
Project CI / Native shell tests (push) Successful in 11m27s
Project CI / Frontend tests (push) Successful in 3m12s
Project CI / Backend tests (push) Successful in 3m36s
删除与同动作生成恢复语义冲突的过期重启断言
保留硬截止对账现场与生成账本脱敏验证
2026-08-05 10:44:39 +08:00
lhk229
3fbdf210be
修复:加固BGM助手前端生命周期
...
- Prompt 助手 scope 改为账号与项目联合绑定:hook 接收 currentUserId / projectId 两个原始值,内部生成稳定 scope key,调用方无法再传入按引用比较的对象。
- 删除 render 阶段的 scope ref 改写,scope 身份只在已提交的 React 生命周期中推进,被放弃的并发 render 不再污染迟到响应判断。
- scope 切换改用 useLayoutEffect 在 commit 阶段同步原子清理:中止旧请求、清空 active operation、reset 状态模型、清空错误与公开 dialog 状态、重建已知 dialog 集合。修复新 scope 已 commit 而 passive effect 未执行时,旧账号 / 旧项目候选被写入同 ID dialog 的竞态。
- 迟到响应判定为 stale 时先让状态模型完成 reject 再移除 active operation,不再残留 completing / simplifying 忙状态。
- Prompt 助手 client 增加 EDITOR_BACKGROUND_MUSIC_PROMPT_ASSIST_TIMEOUT_MS = 180_000 并透传 timeoutMs,仍不启用前端重试;超时按现有失败路径恢复 idle,保留 canonical Prompt,不产生撤销快照。
- 补充定向测试:账号切换中止与清理、scope 清理早于任何 passive effect 的相位回归、等值 scope props 不误判 stale、StrictMode 双渲染、浏览器超时恢复,以及两个助手路由的超时透传与无重试断言。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-08-04 14:22:50 +00:00
kdletters
2ca674b5d8
修正运行态测试来源默认值
...
Project CI / Repository checks (push) Successful in 57s
Project CI / Frontend tests (push) Successful in 3m20s
Project CI / Backend tests (push) Successful in 3m51s
Project CI / Native shell tests (push) Failing after 8m45s
无 source 提交保留原有 Supervisor 来源
移除测试夹具中的无关格式变化
2026-08-04 22:06:37 +08:00
kdletters
838feaeae9
修复游戏聊天续写来源匹配
...
Project CI / Frontend tests (push) Successful in 3m45s
Project CI / Backend tests (push) Successful in 4m41s
Project CI / Native shell tests (push) Failing after 9m45s
Project CI / Repository checks (push) Successful in 1m56s
Steer 目标增加 Runtime source 精确匹配
游戏聊天仅续写同来源 Run 并保留跨入口任务隔离
补充模型与 AppSurface 回归夹具和项目记忆
2026-08-04 22:02:32 +08:00
kdletters
cd96db3fb6
恢复游戏创作生成任务并完善运行进度
...
Project CI / Repository checks (push) Successful in 1m14s
Project CI / Frontend tests (push) Failing after 23s
Project CI / Backend tests (push) Successful in 3m51s
Project CI / Native shell tests (push) Failing after 9m52s
持久化并原样恢复 External v1 生成请求、operation 和同一 pending action
允许画布生成对账回执校验后收敛到最终终态
兼容受控换签素材在透明代理 fake-IP 环境下安全下载
保持对账步骤与 context bundle 一致以支持同一任务续跑
压缩运行状态卡片、增加详情弹层和消息时间戳
补齐恢复链、Agent DB、界面回归及项目文档
2026-08-04 21:42:12 +08:00
kdletters
3f47b2df87
修复master现有CI基线失败
...
Project CI / Native shell tests (push) Successful in 12m30s
Project CI / Repository checks (push) Successful in 1m3s
Project CI / Backend tests (push) Successful in 3m40s
Project CI / Frontend tests (push) Successful in 2m58s
整理六处前端导入顺序并移除未使用类型导入
同步Project Supervisor测试断言到权威Prompt Bundle文案
2026-08-04 21:37:12 +08:00
lhk229
825b0ccf6c
前端:增加BGM提示词助手状态与客户端
...
增加补全与简化内部客户端及共享DTO
实现对话框级状态、取消、迟到响应保护和交换式撤销
接入画布生成工作流并将submitting设为排他锁
补齐同步读取、项目切换和字符边界回归测试
2026-08-04 12:36:08 +00:00
k88936
f5035af504
更新图标规范数据合同文档
...
将图片画布接入方案对齐 icon-spec 数据结构与专用生成链路
补充图标规范字段、优化接口、生成路由与校验约束
同步生成类面板的图标规范交互说明
2026-08-04 20:04:16 +08:00
k88936
3485bad2d3
重构:统一编辑器工作流中的 "icon-spec" 处理
...
- 将所有相关工作流从 "ui-spec" 迁移至 "icon-spec"。
- 优化 `playSetting` 和 `artStyle` 的输入处理逻辑。
- 更新编辑器提示词、提交模型及测试用例以适配 "icon-spec"。
- 在 UI 及后端调用中集成 `EDITOR_ICON_SPEC_PROMPT_MAX_LENGTH` 及相关校验。
- 新增 "icon-spec" 生成与微调的专用 API 路径。
- 移除旧版 "ui-spec" 相关定义及提示词构建器。
2026-08-04 20:04:07 +08:00
lhk229
b563c82c7b
修复:加固BGM助手完整性与入口保护
...
冻结简化输入上限、请求体边界与未完成响应规则
拒绝不完整模型响应并补齐2000字和413校验
补充助手路由埋点、回归测试与长期决策记录
2026-08-04 11:08:20 +00:00
k88936
cc86d29b83
新增基于 LLM 的图标规格优化与生成接口
...
新增 refine_game_play 与 refine_art_style 提示词优化接口
实现图标规范游戏类型解析与提示词构建契约
集成 API 路由并补充校验与 LLM 行为测试
2026-08-04 19:06:24 +08:00
kdletters
04251f42a7
禁止协作Prompt跨语义复用
...
Project CI / Frontend tests (push) Successful in 3m18s
Project CI / Backend tests (push) Successful in 4m11s
Project CI / Repository checks (push) Failing after 44s
Project CI / Native shell tests (push) Failing after 11m33s
为runtime supervisor chat variant overlay与Provider fragment建立单一section所有权
仅允许Supervisor planning与chat显式复用同一identity section
阻断动态variant与静态composition的重复注入
补齐跨域alias负例并同步架构文档
2026-08-04 18:58:51 +08:00
kdletters
22edb1dfb1
收紧Supervisor Prompt所有权
...
从planning visual与chat组合推导完整Supervisor专属section集合
拒绝专属section流入公共runtime平台变体专业overlay或Provider fragment
将公共Runtime header改为身份中立并消除Supervisor双重system身份
保留普通专业Agent规划与最终回复身份约束
补齐跨层逃逸负例并同步架构文档
2026-08-04 18:58:51 +08:00
kdletters
68d202f4a4
隔离Supervisor专属Prompt段
...
限制identity section仅用于Supervisor planning与chat
限制final-reply section仅用于Supervisor chat
拒绝公共runtime变体overlay与Provider fragment复用专属段
补齐五类失败关闭回归并同步架构文档
2026-08-04 18:58:51 +08:00
kdletters
9c978f00cb
补全协作Prompt增量构建监听
...
递归登记Prompt Bundle各级目录为构建依赖
确保嵌套目录新增孤立Markdown触发失败关闭
补充深层目录依赖回归并同步架构文档
2026-08-04 18:58:51 +08:00
kdletters
07a18d516b
强类型化协作Prompt选择器
...
将role overlay source改为构建期强类型语义selector
消除Supervisor身份合同的第二个配置入口
强制Supervisor规划与最终回复复用同一身份section
移除user context中的Supervisor重复身份注入
收窄background context builder接口并补齐失败关闭回归
同步协作graph配置化边界文档
2026-08-04 18:58:51 +08:00
kdletters
b8e3eb4c7f
保留专业Agent回复身份约束
...
仅对Supervisor final-reply移除重复核心身份
保留普通专业Agent在tool-plan与final-reply上下文中的身份约束
增加普通Agent两条请求路径的回归断言
2026-08-04 18:58:50 +08:00
kdletters
15a0924d4b
拆分Supervisor身份与回复合同
...
将Supervisor共享核心身份与最终回复规则拆成独立Prompt section
由manifest组合interaction和final-reply system prompt
让background planning只注入核心身份并移除final-reply user context重复合同
补齐请求级单次注入断言、构建期组合校验和边界文档
2026-08-04 18:58:50 +08:00
kdletters
d02b4afeae
收紧协作Prompt单一来源
...
复用Bundle内Supervisor身份合同覆盖后台规划上下文
将首批协作协议错误收敛为结构化事实并由外置fragment给出动作指令
监听Prompt Bundle根目录以阻断增量构建中的孤立section
补齐源码回流门禁、依赖断言和边界文档
2026-08-04 18:58:50 +08:00
kdletters
ab08ac0ac3
外置Supervisor交互协作提示
...
将Supervisor交互与最终回复身份合同迁入版本化Prompt Bundle
将isolated模板目录静态说明纳入manifest组合并仅在Rust注入动态节点ID
补齐构建期注册、源码回流门禁和运行期回归覆盖
同步协作graph配置化边界文档
2026-08-04 18:58:50 +08:00
kdletters
82f5455972
外置Provider协作图提示片段
...
把 isolated 与 all-join 合同移入 Prompt Bundle
把 autonomous 首轮与 Supervisor manifest 指令移入 Prompt Bundle
把首批协作、回执收敛、DAG 等待和试玩返工指令移入 Prompt Bundle
保留 Rust 对工具收窄、状态判断和正式 DAG 的强制执行
补充 fragment 注册校验、生产源码门禁和请求级回归
2026-08-04 18:58:50 +08:00
kdletters
84926ee0cd
外置智能体协作编排与节点目录
...
Project CI / Repository checks (push) Failing after 4m58s
Project CI / Frontend tests (push) Successful in 3m18s
Project CI / Backend tests (push) Successful in 4m9s
Project CI / Native shell tests (push) Successful in 14m3s
由 Prompt Bundle manifest 统一驱动 section、composition、变体和 role overlay
由构建脚本生成 Supervisor 与六组专业 Agent 的静态节点目录
构建期失败关闭校验路径、引用、selector、alias 与 seed DAG 一致性
补充平台、Editor、Provider 请求、节点快照和非法 manifest 回归
同步 Runtime 技术方案与项目决策记录
2026-08-04 18:58:50 +08:00
kdletters
e14130f234
修复静态视觉状态与可见证据
...
Canvas、context 与图片整体赋值进入状态流并失效旧绑定
无条件 return、throw 与 ESM 依赖失败阻断后续视觉证据
telemetry 仅接受可见 DOM 与可达 JavaScript 状态字段
CSS 资产路径保持大小写并要求命中可见元素
新增视觉反例正例并更新共享决策日志
2026-08-04 18:58:50 +08:00
kdletters
a00b0af348
修复脚本复合调用与Promise回调图
...
限定复合赋值与字面量短路的可调用结果
保留序列表达式函数对象覆盖与删除身份
补齐原生Promise变量回调与直接绑定构造边
新增控制流回归并同步技术方案和决策记录
2026-08-04 18:58:50 +08:00
kdletters
3a70b0ed87
修复静态视觉证据与脚本语义
...
按 Script Record 边界组合 classic 脚本并保持 ASI 与 defer 顺序
以 AST 和 semantic binding 关联可见 Canvas、绘制调用与资源赋值时序
保持动态 namespace 只读写入语义并排除不可达投影证据
过滤 inert 与非 JavaScript 玩法诱饵并保持资产路径大小写
补充视觉回归、完成合同预期与长期技术文档
2026-08-04 18:58:50 +08:00
kdletters
3212955c08
修复ESM解构投影与模块完成性
...
按源码顺序投影副作用依赖声明并按声明身份去重重命名
支持对象和数组解构写入导出绑定及最终可调用根传播
按可达绑定使用建立动态导入解构需求
扩展顶层 Promise await 的静态不完成识别与回归
同步技术方案与共享决策记录
2026-08-04 18:58:50 +08:00
kdletters
eb83634fb0
修复脚本短路构造与Promise链调用图
...
按JavaScript短路语义建模sequence、logical与逻辑赋值callee
补齐assignment、conditional与未覆盖bind的构造目标解析
穿透delete括号并恢复函数对象原型内建调用
沿动态导入Promise链传播精确callback参数槽
补充控制流回归及技术方案与共享决策记录
2026-08-04 18:58:50 +08:00
kdletters
fbd99278fa
修复ESM初始化与动态成员投影
...
live binding 仅以模块初始化结束时的最终 callable 建立外部需求。
直接 awaited namespace 成员按 occurrence 支持赋值、回调、构造与深层成员替换。
side-effect import 按依赖顺序投影全局效果并对静态不完成顶层 await 失败关闭。
投影保持依赖和声明源码顺序,循环去重同步移除重复初始化写入。
assignment class expression 分离 static 与 instance member demand。
补充正例、反例、视觉回归并更新技术方案与共享决策。
2026-08-04 18:58:50 +08:00
kdletters
02b80c048c
修复脚本延迟状态与复合调用边
...
异步回调沿完整闭包调用链读取同步收尾状态
函数对象内建覆盖支持普通成员来源与删除恢复
复合callee与普通函数构造器建立正确调用边
补充控制流回归测试与权威文档约束
2026-08-04 18:58:50 +08:00
kdletters
566567973c
修复视觉门 HTML 与 classic 脚本时序
...
隔离惰性与原始文本容器中的 Canvas 和样式诱饵
按解析阻塞与 defer 阶段组合 classic 脚本并拒绝 async 不确定顺序
补充视觉回归、权威技术方案与长期决策记录
2026-08-04 18:58:50 +08:00
kdletters
d4f5d9ce6d
修复动态模块赋值根与直接成员需求
...
将导出 live binding、对象成员与 prototype 安装的 callable 纳入精确投影可达根
记录直接 await import namespace 成员的 occurrence 级 export demand
补充静态实例隔离、恒假边界与传递动态依赖回归
同步 AI 游戏创作技术方案与共享决策
2026-08-04 18:58:50 +08:00
kdletters
ac002098f7
修复视觉脚本与模块求值顺序
...
Project CI / Repository checks (push) Failing after 31s
Project CI / Frontend tests (push) Failing after 4m14s
Project CI / Backend tests (push) Successful in 4m59s
Project CI / Native shell tests (push) Successful in 18m23s
保留 raw-text JavaScript 原文并屏蔽 HTML 注释诱饵
按 HTML 标签顺序组合 classic inline 与 external 脚本
按依赖先于 importer 的顺序组合 ESM 投影
补充视觉、脚本顺序与模块初始化回归
同步静态视觉门技术方案与项目决策
2026-08-04 18:58:50 +08:00
kdletters
9250fb7b1f
修复异步回调状态与函数别名覆盖
...
区分异步回调的可达注册点与闭包外层状态执行点
按函数对象身份共享 call、apply、bind 自有成员覆盖
补充异步时序、函数别名和独立 bind 对象回归
同步技术方案与项目决策记录
2026-08-04 18:58:50 +08:00
kdletters
88d3de2398
修复脚本回调与函数内建调用图
...
区分异步回调可达根与同步回调副作用传播时点
跟踪函数对象自有 call apply bind 覆盖并保留条件分支
保留 new class expression 赋值后的实例 owner
补充调用图回归测试与技术决策文档
2026-08-04 18:58:49 +08:00
kdletters
debc9cb5c0
修复模块脚本视觉资产门
...
复用有界模块投影检查 inline 与 external module 的可达 drawImage
拒绝未链接、恒假与纯 HTML 路径视觉诱饵
补充完成合同回归和视觉门文档
2026-08-04 18:58:49 +08:00
kdletters
1923e8e314
修复ESM导出绑定初始化投影
...
将导出根的直接顶层赋值与原声明共同投影。
按语义根符号纳入对象成员与原型安装的RHS依赖。
新增live binding回归并同步技术方案与决策记录。
2026-08-04 18:58:49 +08:00
kdletters
4f9df30dba
修复脚本分支与回调参数快照
...
在条件测试完成后分别冻结两侧 callable identity。
按回调参数自身起点解析身份,保留前置参数副作用。
新增两类求值顺序回归并同步技术方案与决策记录。
2026-08-04 18:58:49 +08:00
kdletters
4bed4a149a
修复脚本调用与终止求值顺序
...
冻结 identifier callee 与 new constructor 的参数前身份,并将调用副作用保留在参数之后。
将 callable assignment 延后到 RHS 完成,保留自调用赋值的旧 callable。
按 Oxc AST 函数体与语句边界处理 return、throw、guard 和 catch 的 alias 副作用。
新增六类求值顺序回归并同步技术方案与项目决策记录。
2026-08-04 18:58:49 +08:00
kdletters
e37945e306
修复可调用回调与视觉脚本可达性
...
合并条件表达式两端可调用身份并保留成员 bind 赋值结果
穿透回调调用括号并校正 Promise 回调参数槽
使用原始大小写脚本计算视觉资产语义可达性
补充回归测试与 Runtime 技术决策文档
2026-08-04 18:58:49 +08:00
kdletters
d574732156
修复循环模块回接与内联源码限额
...
循环投影声明去重后继续把 import 引用回接到既有 canonical,并补足稳定确认轮次。
内联模块先按原文累计 2 MiB 源码预算,再执行语法和语义失败关闭。
新增 self-cycle、无效超限与无效小型内联模块回归,并同步技术方案与共享决策。
2026-08-04 18:58:49 +08:00
kdletters
3863d95456
修复游戏脚本构造继承与可调用身份
...
补齐显式和隐式派生构造、直接类表达式与继承成员查找。
区分普通函数和箭头函数的 this 词法所有者。
支持赋值函数、本地别名与 bind 结果的调用边。
区分业务 call apply bind 方法与 Function.prototype 调用。
新增六组失败回归并同步技术方案与项目决策。
2026-08-04 18:58:49 +08:00
kdletters
149b21622d
修复脚本别名求值顺序与分支状态
...
Project CI / Repository checks (push) Failing after 45s
Project CI / Frontend tests (push) Successful in 3m7s
Project CI / Backend tests (push) Successful in 3m40s
Project CI / Native shell tests (push) Failing after 17m14s
冻结 receiver 赋值时的 source owner,阻止后续重赋值倒灌
按 JavaScript 参数与 RHS 求值顺序传播嵌套调用副作用
补齐 switch 条件赋值、无条件退出截断与条件关键字作用域语义
新增回归测试并同步技术方案与项目决策记录
2026-08-04 18:58:49 +08:00
kdletters
f47a30cff2
修复脚本回调槽位与恒假区间索引
...
受控 callback API 按大小写敏感名称和真实参数位传播调用
函数可达性 analysis 预计算并借用合并后的恒假区间索引
补充本地及跨模块回归并同步技术方案和共享决策
2026-08-04 18:58:49 +08:00
kdletters
5ea2dee663
修复循环模块投影身份与内联体积门禁
...
按来源模块和原始根绑定传播投影声明身份
回流去重前把引用改接到既有 canonical 并拒绝未收敛固定点
将 inline module 纳入累计二 MiB JavaScript 预算
新增双端命名捕获循环与内联超限回归
同步技术方案与共享决策记录
2026-08-04 18:58:49 +08:00
kdletters
865ff7e7d8
修复被调用函数条件赋值状态合并
...
保留被调用函数内条件赋值前的既有 alias 状态
新增条件副作用同时可达真实与候选接收者的回归测试
2026-08-04 18:58:49 +08:00
kdletters
141726e0f1
修复脚本可达性与事务目录竞态
...
完善构造器、函数表达式、call/apply 与受控回调的调用图
按条件分支、函数副作用和类定义时机解析 alias 与 super owner
避免动态导出同名污染、嵌套绑定捕获、shorthand 改键和循环投影膨胀
在 committed 发布后复核目录身份并原子隔离 retired 事务叶子
新增十四项 ESM 可达性、投影闭包和 Unix 目录竞态回归
同步 AI 游戏创作技术方案与共享决策记录
2026-08-04 18:58:49 +08:00
kdletters
267171a1d0
修复游戏脚本投影与图集事务身份校验
...
完善 ESM 声明、导入成员与动态依赖的 AST 投影
按真实调用时序解析 alias、receiver owner 与 dynamic import occurrence
补齐匿名默认导出、构造调用、回调与静态实例成员边界
提交图集事务前校验 retained directory handle 的 pathname identity
增加投影、时序、动态依赖与 live commit 回归测试
同步 AI 游戏创作技术方案与共享决策记录
2026-08-04 18:58:49 +08:00
kdletters
ac736ca72c
修复图集恢复竞态与模块绑定冲突
...
冻结九路径恢复前态并让可信事务句柄贯穿提交与回滚
将无日志的旧图集残留收口为只读识别和人工对账
按符号大小写保留导入别名并为投影根绑定分配无冲突名称
补齐普通文件竞态、目录替换和模块命名冲突回归
同步图集事务与 ESM 投影技术约束
2026-08-04 18:58:49 +08:00
kdletters
7118b03f1a
修复 ESM 重复别名投影
...
保留同一导出的多个别名并合并同源导入声明
按最终模块源去重投影并统一匿名默认导出的规范别名
增加重复别名与跨桥接回归并同步技术约束
2026-08-04 18:58:49 +08:00
kdletters
4bb9f77f20
收紧图集恢复与模块投影一致性
...
拆分 Windows 祖先固定与事务叶子句柄权限,避免重复捕获共享冲突
为 Unix 恢复前态增加非阻塞稳定双读、元数据与叶子身份复核
保持缺失合同父目录无副作用并补齐 CAS 与残留清理回归
按 Oxc symbol span 投影 import alias、namespace、shorthand 与 bridge
同步图集事务和 Tetris ESM 权威技术约束
2026-08-04 18:58:49 +08:00
kdletters
bf8eff53e3
加固游戏静态门与图集事务一致性
...
使用 Oxc AST 与语义符号验证 JavaScript 模块、作用域和控制流
锚定图集事务目录并保证九文件快照与错误回滚一致
修复早注册捕获监听器下的可信点击因果验收
补齐默认与命名空间模块投影、回归测试和长期技术文档
2026-08-04 18:58:48 +08:00
kdletters
c804b1e564
修复浏览器点击因果收口时序
...
Project CI / Repository checks (push) Failing after 35s
Project CI / Frontend tests (push) Failing after 2m21s
Project CI / Backend tests (push) Successful in 4m9s
Project CI / Native shell tests (push) Successful in 20m17s
冻结可信输入监听器同步产生的最后状态
点击返回后在隔离世界收口并排除定时任务污染
补齐后注册点击监听器真实Chrome回归与指纹文档
2026-08-04 18:58:48 +08:00
kdletters
e12586b0b8
加固图集恢复与方块模块语义
...
锚定事务目录并以CAS保护恢复安装和逆序回滚
创建与读取图集快照统一使用跨平台可信有界双读
按显式模块绑定和可达控制流验收俄罗斯方块语义
补齐目录替换、并发冲突及脚本解析回归与文档
2026-08-04 18:58:48 +08:00
kdletters
d1e3cc319d
修复游戏验收竞态与静态门边界
...
图集事务使用跨平台可信有界双读并在恢复失败时逆序回滚
浏览器试玩在同一任务冻结输入尾部状态并绑定完整探针指纹
俄罗斯方块静态门按真实模块图和可达语义拒绝脚本诱饵
补齐事务、浏览器与俄罗斯方块回归测试及技术文档
2026-08-04 18:58:48 +08:00
kdletters
2b41a9a1ac
修复游戏完成门与事务恢复原子性
...
完整校验九路径事务快照后再执行 Canvas 恢复。
排除 HTML 非执行容器、src 正文与非棋盘消行诱饵。
递归读取受限本地模块依赖并覆盖内联模块入口。
兼容 capture-phase 点击处理并更新试玩场景指纹。
补齐真实浏览器、静态合同、事务恢复测试与架构文档。
2026-08-04 18:58:48 +08:00
kdletters
38afa8ae21
修复多智能体游戏验收边界
...
完善 Canvas 提交恢复顺序与快照读取预算。
收紧俄罗斯方块静态验收、可信交互与外部脚本边界。
补齐旧合同迁移、原生工具 schema 与动作审计白名单。
同步技术方案、共享决策记录与回归测试。
2026-08-04 18:58:48 +08:00
kdletters
e424c5539e
修复游戏图集事务与俄罗斯方块验收
...
为九个固定图集合同路径补齐持久事务、原子标记、锁守卫和崩溃恢复。
统一校验主图与切片的资源、资产和任务身份,避免远端请求期间占用项目写锁。
收紧俄罗斯方块静态语义、浏览器动作因果和固定场景合同,拒绝注释与伪 telemetry 绕过。
迁移旧 Generic 俄罗斯方块根合同和试玩子任务合同,并失效旧场景回执。
补齐事务故障、恶意脚本、真实 Chrome、game-chat 修复和合同迁移回归测试。
同步 AI 游戏创作技术方案与共享决策记录。
2026-08-04 18:58:48 +08:00
kdletters
3ac0a6fafc
冻结游戏图集私有完成合同
...
持久化主图与四切片的私有摘要回执
绑定切片清单与当前Canvas资源身份
完成门拒绝素材与公开清单的协同篡改
将私有回执纳入原子回滚与崩溃恢复
补齐图集合同回归测试与技术文档
2026-08-04 18:58:48 +08:00
kdletters
602723ea0d
修复游戏续跑与图集完成门
...
保持失败续跑的原始任务身份并向 Provider 传递有效目标
收紧俄罗斯方块玩法连续性和浏览器动作因果验证
将图集主图、四切片、清单与登记纳入可恢复原子提交
校验切片来源、规范像素唯一性、可见性与有界解码
保留 External 生成结果的稳定来源资源字段
补齐调度子 Agent 展示和事件流测试
同步 Runtime 技术方案与项目决策记录
2026-08-04 18:58:48 +08:00
kdletters
c2ef8631f8
明确泥点不足的游戏生成中断原因
...
统一余额不足分类与稳定原因码
阻止泥点不足进入重试和对账状态
在游戏聊天与阶段记录展示固定安全说明
补齐 API、Runtime 与前端回归测试
同步技术方案与项目决策记录
2026-08-04 18:58:48 +08:00
kdletters
ef128dd8da
修复游戏续跑与美术资产工作流
...
统一纯继续意图、原任务合同继承与同源边界
要求既有游戏由当前代码任务真实修改后再验证
为俄罗斯方块提供完整玩法与移动端触控 fallback
生成并原子持久化四类透明图集切片
强制游戏 Canvas 实际使用生成素材
同步 Runtime prompt、Skill、前端进度与项目文档
补齐续跑、素材门禁、fallback 与提交回滚回归测试
2026-08-04 18:58:48 +08:00
kdletters
e8aad0b739
修复MCP旧协议错误文本泄漏
...
Project CI / Repository checks (push) Failing after 48s
Project CI / Frontend tests (push) Failing after 20s
Project CI / Backend tests (push) Successful in 4m17s
Project CI / Native shell tests (push) Successful in 15m48s
将 legacy MCP 结构与目录绑定错误收敛为稳定类别
避免 serde 原始错误回显模型提交的私密字符串
补充结构错误和未知目录绑定的不泄密测试与踩坑说明
2026-08-04 18:58:48 +08:00
kdletters
48504e02aa
修复原生工具合同与MCP参数边界
...
使用安全 JSON Schema 校验动态 MCP 参数并在实际调用前重验历史 pending
将 legacy MCP schema 错误接回 arguments-schema repair 链
统一 Native Prompt、required-nullable 输入与 project.patchset 三类严格合同
按 Editor Key 拆分 Supervisor 视觉产物并清理旧 envelope 术语
补齐执行边界、repair、Prompt 分支与全量回归测试
同步更新 Runtime 决策与踩坑文档
2026-08-04 18:58:48 +08:00
kdletters
ed413618eb
修正Provider原生工具调用合同
...
区分动态 MCP 原生函数与 legacy mcp.call 包装器
要求 strict schema 的 nullable 字段显式传值
增加非空 MCP 目录和必填字段回归测试
2026-08-04 18:57:26 +08:00
kdletters
0c44293341
统一画布素材类型合同
...
补齐 Provider Prompt 的 icon-spec 类型
统一 Prompt、原生 schema 与执行校验的素材类型目录
增加权威集合、schema、执行校验和最终请求回归测试
2026-08-04 18:57:25 +08:00
kdletters
f725e15382
补全Linux持久命令沙箱说明
...
恢复 command.start 的 workspace-write 与 network-disabled 合同
增加 Linux 平台持久命令沙箱回归断言
2026-08-04 18:57:25 +08:00
kdletters
d367ded584
补全画布生成提示词语义
...
恢复 canvas.asset_generate 同步写入画布、素材库和本地 assets 的说明
增加最终 Provider 请求的三端写入回归断言
2026-08-04 18:57:25 +08:00
kdletters
749c384417
消除Provider提示词合同冲突
...
把原生工具输入合同直接写入唯一提示词 section
按目标平台单次选择 command.exec 与 command.start 合同
增加旧合同缺失和合同唯一性的最终请求断言
2026-08-04 18:57:25 +08:00
kdletters
53a0c71772
修复最终Provider提示词拼接
...
移除最终 Provider 请求中的自然语言精确替换链
按原生工具合同和平台条件显式组合最终提示词
增加最终请求合同与源码回归测试
修正原生工具目录数据流和维护文档
2026-08-04 18:57:25 +08:00
kdletters
e2b5056af5
提取智能体协作编排提示词
...
将 Runtime 公共提示词与 Supervisor 协作编排拆分为版本化 Prompt Bundle
统一原生工具目录并将 MCP 工具留给动态目录
补充 Bundle 组合、工具目录和 Provider 契约测试
更新 Runtime 技术方案与项目记忆
2026-08-04 18:57:25 +08:00
kdletters
732c6ee3f4
修复 game-chat 续跑目标漂移与产物覆盖
...
继承同一会话失败根任务的原始目标与完成基线
保护非占位游戏入口并拒绝重复整文件覆盖
纠正规范图运行时语义与状态序列推进规则
补充续跑继承、图集门禁和事故文档回归
2026-08-04 18:57:25 +08:00
kdletters
7f18f7ce04
修复画布副本持久化与素材类型覆盖
...
Project CI / Frontend tests (push) Failing after 21s
Project CI / Repository checks (push) Failing after 43s
Project CI / Backend tests (push) Successful in 3m44s
Project CI / Native shell tests (push) Successful in 10m42s
复制布局复用项目资源并区分资源登记状态
新增图层素材类型覆盖并保持资源默认类型
补齐结构化存储迁移、绑定与权威类型校验
同步前后端回归测试和画布持久化文档
2026-08-04 18:06:15 +08:00
lhk229
b4a4d68c55
后端:增加BGM提示词补全与简化接口
...
新增登录态补全与简化内部BFF及共享请求约束
实现OpenAI Chat四字段严格响应解析与180到170两轮简化
隔离上游错误与未通过候选并补齐重试和协议测试
同步权威设计与项目决策记录
2026-08-04 10:01:24 +00:00
k88936
59a69f063d
修复图片修改参数恢复与提交一致性
...
- 图片修改面板优先恢复历史模型、比例和尺寸,并保留显式设置优先级
- 图片修改提交计划统一归一化参数并下发 model、aspectRatio、imageSize 和 size
- 画布完成占位使用实际目标输出尺寸
- 补充参数恢复回归测试与编辑器方案说明
2026-08-04 18:00:23 +08:00
k88936
78307de9a1
修复图片编辑复用与元数据回退的小问题
...
- 修复参考素材标签的空白文本回退显示
- 重构 quick-edit 参数选择逻辑,移除嵌套三元并统一回退
- 抽取生成复用流程的参数回退与缺失素材提示逻辑
- 使用 quick-edit 提交计划中的输出尺寸构建复用时占位符
2026-08-04 17:15:33 +08:00
k88936
99d239c8bf
style: 画布编辑器多行输入框样式调整 ( #130 )
...
Project CI / Repository checks (push) Successful in 50s
Project CI / Backend tests (push) Successful in 3m30s
Project CI / Frontend tests (push) Successful in 3m42s
Project CI / Native shell tests (push) Successful in 11m34s
复用了画布agent的输入框:
* 高度自适应
* 滑动条样式变为浅色和位置不再出界
before

after

Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/130
Co-authored-by: 王德宇 <kvtodev@outlook.com >
Co-committed-by: 王德宇 <kvtodev@outlook.com >
2026-08-04 17:07:30 +08:00
lhk229
8d269d785d
修复BGM规范化契约与基础校验
...
补全T0一键简化两轮输入、结构化结果和互斥状态规则
新增TypeScript Unicode White_Space canonicalizer与生成、补全、简化状态
新增Rust零分配canonicalizer并让计数和校验返回规范化Prompt
补齐跨语言Unicode及200/201字符边界测试
2026-08-04 08:53:55 +00:00
k88936
96b06cc39b
收紧画布生成输入V2参数恢复
...
新增按action统一解码生成输入参数
将失效与不兼容参数回落到当前默认值
恢复和再次提交共用规范V2结果并展示告警
记录原地收紧决策与Review处理结果
补充历史模型和非法参数回归测试
2026-08-04 16:24:31 +08:00
lhk229
dafcfbe6b7
基础:统一BGM提示词规则与助手契约
...
新增前端 Unicode code point 与有效字符计数规则
新增 Rust BGM 原样校验并覆盖生成和补全边界
新增 Prompt 助手 camelCase 内部 DTO 与契约测试
补齐跨语言 Unicode、200 字和 SFX 回归测试
2026-08-04 07:28:23 +00:00
k88936
a9b462d43f
修复画布生成参数复用问题
...
强化持久化生成输入的运行时结构校验
统一快速编辑请求尺寸、模型、参考图与生成快照
补齐视频联网搜索参数保存与恢复
隐藏缺少必需来源的复用参数入口
补充回归测试并同步编辑器方案文档
2026-08-04 14:38:56 +08:00
lhk229
8daf85df6c
文档:定稿BGM提示词优化规则
...
融合画板音乐权威设计,固定BGM原样Prompt、预设、补全、简化、撤销和提交锁口径。
追加长期决策,明确SFX、字段名、External v1和LLM日志策略保持不变。
2026-08-04 06:31:14 +00:00
k88936
d0fedd1d99
处理生成输入复用
...
新增不可用引用检测与警告
拒绝缺失必要来源的参数复用
优化引用匹配逻辑
同步测试与文档
2026-08-04 14:11:37 +08:00
k88936
5fd26a11ee
统一画布生成产物改造契约
...
新增 generationInputs V2 稳定 action、field id 与 reference id 契约
恢复图片、视频、音频、角色动作等生成面板并保留 legacy 回退
非生成裁扩、去背景和图集拆分不再继承生成配方
匿名精选响应不再返回 owner generationInputs
同步前后端测试与架构文档
2026-08-03 20:07:06 +08:00
k88936
e6b3199490
Fix/统一修复modal样式失效 ( #122 )
...
Project CI / Repository checks (push) Successful in 48s
Project CI / Backend tests (push) Successful in 3m53s
Project CI / Frontend tests (push) Successful in 3m21s
Project CI / Native shell tests (push) Successful in 11m16s
之前遇到几次弹窗的样式不生效,bug 现在在画布agent的删除对话弹窗又出现了,
这个pr把类似的修改集中到最下层的UnifiedModal,适用于所有的modal,
一些特殊的modal有特殊处理.
画布agent的删除对话弹窗

---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/122
Reviewed-by: 段舒康 <kdletters@qq.com >
Co-authored-by: 王德宇 <kvtodev@outlook.com >
Co-committed-by: 王德宇 <kvtodev@outlook.com >
2026-08-03 17:55:47 +08:00
kdletters
3c58e76a71
加固game-chat平台生成恢复与单轮收束
...
Project CI / Repository checks (push) Successful in 1m1s
Project CI / Backend tests (push) Successful in 4m2s
Project CI / Native shell tests (push) Successful in 10m55s
Project CI / Frontend tests (push) Successful in 3m27s
新增External Editor私有生成账本并实现GET-only恢复
保留未知生成结果、截止现场与人工对账身份
加固pending continuation取消所有权和异常持久化
补齐平台美术、默认栈、game-chat及配置隔离回归测试
同步AI游戏创作技术方案与共享项目记忆
2026-08-03 17:30:27 +08:00
kdletters
205c47eb60
修复Runtime默认栈与任务图门禁
...
Project CI / Repository checks (push) Successful in 1m0s
Project CI / Backend tests (push) Successful in 4m14s
Project CI / Native shell tests (push) Successful in 11m44s
Project CI / Frontend tests (push) Successful in 3m5s
为pending恢复和后续队列建立装箱的Tokio任务边界
同步三Director首波任务图的测试夹具
补齐Linux容器进程与Runtime栈边界文档
恢复Native shell完整默认栈测试门禁
2026-08-03 16:16:59 +08:00
kdletters
9450377693
修正容器进程组清理断言
...
Project CI / Repository checks (push) Successful in 1m10s
Project CI / Native shell tests (push) Failing after 6m32s
Project CI / Backend tests (push) Successful in 4m20s
Project CI / Frontend tests (push) Successful in 3m29s
使用可执行成员语义校验Linux进程组已停止
避免容器孤儿僵尸让signal探活断言误报失败
2026-08-03 15:35:47 +08:00
kdletters
04a6be5c3d
修复容器进程组清理误判
...
Project CI / Repository checks (push) Successful in 1m5s
Project CI / Frontend tests (push) Failing after 2m11s
Project CI / Native shell tests (push) Failing after 3m4s
Project CI / Backend tests (push) Successful in 3m41s
区分Linux进程组中的可执行成员与僵尸进程
补齐容器PID 1不回收孤儿进程的回归测试
同步记录Tauri进程树清理的容器边界
2026-08-03 15:31:40 +08:00
kdletters
53f06055a4
修复画布权威快照合并回归
...
Project CI / Frontend tests (push) Failing after 2m10s
Project CI / Repository checks (push) Successful in 1m19s
Project CI / Native shell tests (push) Failing after 3m27s
Project CI / Backend tests (push) Successful in 3m53s
统一生成完成态与本地布局的生命周期合并
保留同项目权威刷新中的有效画布选择
同步生成集成夹具与真实后端完成契约
补齐画布持久化回归测试和项目记忆
2026-08-03 15:20:44 +08:00
kdletters
cf0864c956
合并远端master更新
...
Project CI / Frontend tests (push) Failing after 24s
Project CI / Repository checks (push) Successful in 1m13s
Project CI / Native shell tests (push) Failing after 3m39s
Project CI / Backend tests (push) Successful in 3m56s
合并远端Issue 115、118、127和128修复
保留移动端创作工具门禁与本地既有提交
# Conflicts:
# docs/project-memory/shared-memory/pitfalls.md
2026-08-03 15:14:31 +08:00
kdletters
d3eeaf979d
恢复移动端创作工具门禁
...
移动端底部导航仅保留我的入口
移动端创作、项目与画布直达统一展示桌面端提示
补充移动端入口与画布阻断回归测试
纠正旧模板退役时越权扩大的移动端产品口径
2026-08-03 15:13:26 +08:00
kdletters
6fe646ba2b
修复开放Issue 115、118、127和128
...
Project CI / Frontend tests (push) Failing after 21s
Project CI / Repository checks (push) Successful in 58s
Project CI / Native shell tests (push) Failing after 3m7s
Project CI / Backend tests (push) Successful in 3m33s
补齐Anthropic strict能力门控、传输schema、缓存usage和真实端点验收
隔离可选MCP服务目录失败并安全重定位局部schema引用
修复PowerShell 7环境下Windows私有ACL检查
统一角色与图标素材落库的用户prompt语义
合并权威画布快照与本地待保存或在途布局并补齐回归
同步更新技术文档、项目记忆和验证门禁
2026-08-03 14:03:20 +08:00
kdletters
d1a657b5d2
为未鉴权MCP返回接入引导
...
保持401与Bearer挑战并提供机器可读的Key配置步骤
统一缺失格式错误和无效Key响应以避免凭据枚举
保留请求元信息并同步OpenAPI集成清单与架构文档
补充鉴权脱敏契约测试并完成本地dev栈验证
2026-08-03 12:03:50 +08:00
kdletters
6a02c7fb38
合并外部API MCP与异步生成能力
...
基于最新master接入托管式Streamable HTTP MCP并复用External API Key鉴权
统一External v1生成任务的幂等异步提交与状态查询
同步完整Skill资源、OpenAPI契约、AI游戏客户端与Worker适配
保留game-chat生命周期与首轮调度约定并完成重基验证
2026-08-03 11:47:20 +08:00
kdletters
38c43b708a
优化游戏聊天生命周期与首轮调度
...
Project CI / Repository checks (push) Successful in 1m8s
Project CI / Frontend tests (push) Failing after 2m8s
Project CI / Native shell tests (push) Failing after 3m28s
Project CI / Backend tests (push) Successful in 3m42s
新增受控 Tauri 开发启动器并在启动失败或终端退出时收束客户端进程树
修复 game-chat source hydration 与专业 Agent 已提交回复的持久可见性
统一正式任务图和 game-chat 首轮只激活策划美术程序三个 Director
限制显式首批协作合同提前激活底层 Agent 或 isolated child
同步六任务进度投影、共享契约、回归测试与项目文档
2026-08-03 11:41:59 +08:00
kdletters
7309adb4f0
修复游戏聊天前端Lint门禁
...
Project CI / Frontend tests (push) Failing after 24s
Project CI / Repository checks (push) Successful in 2m21s
Project CI / Backend tests (push) Successful in 3m36s
Project CI / Native shell tests (push) Failing after 5m35s
整理游戏聊天相关导入顺序
稳定专业Agent最终回复回调并补齐Effect依赖
2026-08-03 10:27:04 +08:00
kdletters
c00dd099e3
扩展MCP的完整Skill资源
...
拆分外部编辑器Skill为四篇渐进式参考文档
MCP资源列表支持逐篇发现和读取Skill内容
Skill归档和manifest同步七文件清单及SHA校验
同步OpenAPI、架构文档和项目决策记录
2026-08-03 09:59:00 +08:00
kdletters
964b883466
强化game-chat五分钟首版与平台美术硬门
...
Project CI / Frontend tests (push) Failing after 23s
Project CI / Backend tests (push) Successful in 3m18s
Project CI / Repository checks (push) Failing after 55s
Project CI / Native shell tests (push) Failing after 5m21s
将game-chat首版固定为美术、代码、静态检查和试玩四阶段并单轮收束。
由平台生成并登记art-spec图片,强制用于主要背景、玩家和目标的可达Canvas绘制。
为全部在途动作增加从根Run计时的300秒绝对截止和确定性失败清理。
修复代码revision归属判断,防止美术变更跳过唯一Provider写入。
将四阶段公开输出和final-reply逐条固化到聊天并更新进度投影。
补齐图片解码、路径、隐藏与不可达绕过、超时竞态及前端回归测试和文档。
2026-08-01 22:45:16 +08:00
kdletters
b7f8b31b36
优化game-chat首版生成与聊天输出
...
Project CI / Repository checks (push) Failing after 51s
Project CI / Frontend tests (push) Successful in 3m12s
Project CI / Backend tests (push) Successful in 3m29s
Project CI / Native shell tests (push) Failing after 7m50s
将 game-chat 收束为三阶段五分钟首版快车道并补齐累计预算、恢复和完成门禁
将 Runtime 安全公开事件与专业 Agent 最终回复逐条幂等写入项目聊天
修复预览 revision 绑定、自动启动刷新、Runner 退出和 Windows 后台窗口收口
补充前后端回归测试、配置门禁和项目技术文档
2026-08-01 18:33:10 +08:00
kdletters
fe496f531d
修复AI游戏创作前端lint
...
Project CI / Frontend tests (push) Failing after 24s
Project CI / Repository checks (push) Successful in 1m35s
Project CI / Backend tests (push) Successful in 3m49s
Project CI / Native shell tests (push) Successful in 11m36s
固定response-stream更新回调并补齐Effect依赖\n调整Runtime模型测试的import顺序
2026-07-31 20:04:11 +08:00
kdletters
e1d031b86f
增加外部API的MCP与异步生成模式
...
新增托管式Streamable HTTP MCP端点并复用外部API Key鉴权
统一图片视频音频等生成请求为幂等异步提交和状态查询
提供可发现的使用说明、OpenAPI资源及完整Skill下载包
同步更新OpenAPI契约并规定接口变更必须连带维护
适配AI游戏创作Shell的异步提交轮询与安全重试
补齐MCP方法映射、异步Worker和客户端回归测试
2026-07-31 19:48:28 +08:00
kdletters
33ec7b2861
修复AI游戏创作长耗时与运行收口
...
Project CI / Repository checks (push) Failing after 2m19s
Project CI / Frontend tests (push) Failing after 2m50s
Project CI / Backend tests (push) Successful in 4m20s
Project CI / Native shell tests (push) Successful in 12m0s
自主构建只执行正式清单任务图并移除重复静态委派
预览基础设施失败立即收口并绑定当前版本验证凭证
客户端退出前检查Runner持久任务状态并阻止忙碌关闭
修复上下文检查点恢复边界并补齐恢复测试
为全部Agent配置默认推理强度与实际重试状态展示
补齐配置、协作、预览、Runner及全量回归测试
同步技术方案、开发流程与长期决策记录
2026-07-31 18:26:35 +08:00
kdletters
831181faec
优化 game-chat 单轮生成与聊天输出
...
Project CI / Repository checks (push) Failing after 59s
Project CI / Frontend tests (push) Successful in 3m11s
Project CI / Backend tests (push) Successful in 3m33s
Project CI / Native shell tests (push) Successful in 10m30s
每条 Supervisor ready 输出按稳定身份固化到 game-chat 聊天框并修复 hydration 竞态。
新增 game-chat source 白名单,试玩完成后跳过发布任务并收紧完成门。
配置 External Editor API 时强制使用并引用 Canvas 美术图集,补齐前端、Rust、AppSurface 测试与协作文档。
2026-07-31 17:35:00 +08:00
k88936
386534a415
Feat/artagent 点击/右键功能 聚焦到画布上的素材 ( #123 )
...
Project CI / Frontend tests (push) Failing after 22s
Project CI / Repository checks (push) Successful in 1m10s
Project CI / Backend tests (push) Successful in 3m40s
Project CI / Native shell tests (push) Successful in 10m56s
- 为避免prop drilling把原有的刷新画布集中到一个useContext中,
在此基础上实现画布聚焦, 并在画布agent中使用

Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/123
Co-authored-by: 王德宇 <kvtodev@outlook.com >
Co-committed-by: 王德宇 <kvtodev@outlook.com >
2026-07-31 17:25:35 +08:00
lhk229
72acd0ec05
停止向用户泄露抠图模型 ( #120 )
...
Project CI / Frontend tests (push) Successful in 3m40s
Project CI / Backend tests (push) Successful in 4m11s
Project CI / Repository checks (push) Successful in 1m19s
Project CI / Native shell tests (push) Successful in 12m36s
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/120
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-07-31 16:40:43 +08:00
kdletters
48f9c8e690
修复画板素材上传后的私有图片预览
...
Project CI / Repository checks (push) Successful in 48s
Project CI / Frontend tests (push) Failing after 27s
Project CI / Backend tests (push) Failing after 2m51s
Project CI / Native shell tests (push) Successful in 12m58s
分离上传后的签名预览地址与稳定持久化地址
保留素材落库回填后的即时签名预览
补充裸 generated 路径不得用于即时预览的回归测试
同步图片画布上传与持久化技术约束
2026-07-31 15:46:08 +08:00
kdletters
9eae1a28c5
Merge remote-tracking branch 'origin/codex/ai-game-creator-app' into HEAD
Project CI / Backend tests (push) Failing after 2m47s
Project CI / Frontend tests (push) Successful in 3m11s
Project CI / Repository checks (push) Successful in 53s
Project CI / Native shell tests (push) Successful in 12m48s
2026-07-31 15:33:05 +08:00
menghao
26cfd85d25
修复AGC的macOS临时路径兼容 ( #125 )
...
Project CI / Frontend tests (push) Failing after 21s
Project CI / Repository checks (push) Successful in 1m1s
Project CI / Backend tests (push) Successful in 3m0s
Project CI / Native shell tests (push) Successful in 11m36s
规范化配置回归测试的临时根路径
补充跨平台路径比较技术说明与踩坑记录
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/125
Co-authored-by: menghao <mh18530625731@163.com >
Co-committed-by: menghao <mh18530625731@163.com >
2026-07-31 15:28:05 +08:00
kdletters
842d99697a
合并游戏聊天0.1.1到master
...
Project CI / Repository checks (push) Successful in 1m11s
Project CI / Frontend tests (push) Failing after 2m6s
Project CI / Backend tests (push) Failing after 2m44s
Project CI / Native shell tests (push) Failing after 3m14s
合入独立game-chat release构建、内置Runner与退出收束。
合入自动预览刷新、结构化进度展示及强化试玩验收。
保留master资源画布、共享预览和原生壳严格门禁。
修复Windows Runner单实例锁与GUI owner锁固定路径兼容。
2026-07-31 14:27:36 +08:00
kdletters
66341fe7a5
修复Windows Runner固定锁路径校验
...
Project CI / Frontend tests (push) Failing after 16s
Project CI / Repository checks (push) Failing after 49s
Project CI / Backend tests (push) Successful in 2m58s
Project CI / Native shell tests (push) Failing after 2m46s
允许私有AppData中的单实例锁与GUI owner锁。
继续拒绝其他任意锁文件名并补齐回归测试。
让Runner测试使用经过私有DACL初始化的AppData夹具。
2026-07-31 13:58:39 +08:00
kdletters
dcd8901246
发布独立游戏聊天0.1.1并强化试玩验收
...
新增只能打开游戏聊天页的0.1.1独立release构建配置。
内置Runner启动、诊断日志、Windows后台进程与退出收束。
修复自动预览启动、同页版本刷新和结构化验收状态展示。
强化试玩协议、窗口末端采样与固定失败识别,允许正常输赢但拒绝无法推进。
完善旧验收回执自愈和当前场景指纹完成门。
补齐Rust、前端、真实Chrome回归测试及项目文档。
2026-07-31 13:44:13 +08:00
kdletters
cf1a023125
收紧图集切片内存并批量持久化
...
Project CI / Repository checks (push) Successful in 1m0s
Project CI / Backend tests (push) Failing after 2m42s
Project CI / Frontend tests (push) Successful in 2m45s
Project CI / Native shell tests (push) Successful in 11m42s
按需编码并限制图集上传并发、超时与累计裁剪像素
批量确认切片对象、项目资源、账号素材和完成批次
稳定派生切片记录标识并收紧重放与来源资源校验
复用已鉴权项目资源避免手动拆分全账号扫描
补充图集资源边界文档与回归测试
2026-07-31 13:40:28 +08:00
kdletters
63e90ec779
Merge pull request 'Fix/画布agent优化' ( #121 ) from fix/artagent-rerefine-prompt into master
...
Project CI / Repository checks (push) Successful in 58s
Project CI / Frontend tests (push) Successful in 3m9s
Project CI / Backend tests (push) Successful in 3m50s
Project CI / Native shell tests (push) Successful in 11m9s
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/121
Reviewed-by: 段舒康 <kdletters@qq.com >
2026-07-31 13:36:11 +08:00
kdletters
9951bc573b
Merge branch 'master' into fix/artagent-rerefine-prompt
Project CI / Repository checks (pull_request) Successful in 1m0s
Project CI / Native shell tests (pull_request) Successful in 11m35s
Project CI / Frontend tests (pull_request) Successful in 2m54s
Project CI / Backend tests (pull_request) Successful in 3m33s
2026-07-31 13:20:12 +08:00
kdletters
93ed7f2c57
将每日免费泥点纳入后台配置
...
Project CI / Repository checks (push) Successful in 1m0s
Project CI / Backend tests (push) Successful in 3m30s
Project CI / Frontend tests (push) Successful in 2m57s
Project CI / Native shell tests (push) Successful in 12m11s
在账号配置页一次维护初始泥点和每日免费额度
将每日额度贯穿钱包配置、日切重置与充值中心投影
补齐迁移兼容、生成绑定、测试和文档
2026-07-31 13:04:27 +08:00
k88936
81911ffbee
Merge remote-tracking branch 'origin/master' into fix/artagent-rerefine-prompt
Project CI / Frontend tests (pull_request) Successful in 2m43s
Project CI / Repository checks (pull_request) Successful in 1m7s
Project CI / Backend tests (pull_request) Successful in 3m30s
Project CI / Native shell tests (pull_request) Successful in 11m32s
2026-07-31 12:12:47 +08:00
k88936
3ca96c4cca
记录画布Agent待确认提示词边界
...
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / Backend tests (pull_request) Failing after 7s
Project CI / Frontend tests (pull_request) Failing after 2m2s
Project CI / Native shell tests (pull_request) Successful in 12m10s
专题文档明确匹配pending卡片时使用正向条件化引导
决策记录固化避免全局禁止重发话术的模型实测结论
踩坑记录补充过度泛化的原因、处理与验证方式
2026-07-31 12:09:38 +08:00
kdletters
0386a5df7c
修复数据库备份异步上传收尾
...
Project CI / Frontend tests (push) Successful in 2m41s
Project CI / Native shell tests (push) Failing after 19s
Project CI / Backend tests (push) Successful in 3m43s
Project CI / Repository checks (push) Successful in 44s
使用独立systemd服务承接Jenkins退出后的OSS上传
串行补偿延期归档并仅在完整验真后清理
补充备份回归门禁与生产运维约定
2026-07-31 12:08:45 +08:00
menghao
216407d93e
实现资源画布布局持久化 ( #116 )
...
Project CI / Frontend tests (push) Failing after 20s
Project CI / Repository checks (push) Successful in 1m2s
Project CI / Backend tests (push) Successful in 2m59s
Project CI / Native shell tests (push) Successful in 11m58s
冻结资源画布布局数据与 CAS 合同
实现双模式本地 sidecar 安全读写
接入二维拖动、默认排版和跨重启恢复
补齐并发冲突、安全边界和界面测试
同步技术文档与共享决策
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/116
Reviewed-by: 段舒康 <kdletters@qq.com >
Co-authored-by: menghao <mh18530625731@163.com >
Co-committed-by: menghao <mh18530625731@163.com >
2026-07-31 12:00:48 +08:00
k88936
ce47df4c3d
补齐画布Agent业务提示词契约测试
...
覆盖确认取消、取消后新调用与无依赖批量串行策略
覆盖消息窗口截断、窗口外重新引用与工具路由矩阵
2026-07-31 11:53:48 +08:00
k88936
2b785423ed
同步画布代理对话约束文档
...
更新后端契约与前端接入文档中的消息输入规则。
记录图片引用、提示词上下文和异常响应处理决策。
补充相关排障经验并移除过期说明。
2026-07-31 11:30:48 +08:00
k88936
2fa05cd605
统一画布代理文本与附件输入约束
...
要求用户消息包含非空文本,附件仅作为消息上下文。
同步后端领域校验、接口错误和请求测试。
禁用前端纯附件发送并更新交互回归测试。
保留发送失败时的草稿与附件恢复行为。
2026-07-31 11:30:48 +08:00
k88936
b09a98db48
重构画布代理提示词与工具调用循环
...
统一系统消息、工具结果与异常响应的消息构造。
补充无效响应纠正、批量工具调用和待确认状态处理。
精简图片上下文提示并完善越界引用回退规则。
补齐运行循环和提示词行为测试。
2026-07-31 11:30:48 +08:00
AIGameCreator App
a36290b2e5
合并AI游戏创作智能体与通用Runtime基座
...
Project CI / Frontend tests (push) Failing after 27s
Project CI / Repository checks (push) Successful in 3m20s
Project CI / Backend tests (push) Successful in 3m52s
Project CI / Native shell tests (push) Successful in 13m19s
合并 codex/ai-game-creator-app 的独立客户端、多智能体 Runtime、Runner 与可扩展 LLM Provider 能力
保留 master 最新画布、钱包、后端和原生壳约束并完成四处语义化冲突合并
补齐根 Vitest 对独立 Tauri guest 模块的隔离测试别名并保持 HostBridge 依赖边界
统一正式工作台与 game-chat 的安全本地预览组件及 native-shell 静态门禁
修复合并态 Rust 格式、前端 lint 与共享文档验证口径
2026-07-30 18:01:19 +08:00
AIGameCreator App
d4075c3423
抽取通用多智能体运行时与可扩展Provider
...
Project CI / Frontend tests (push) Failing after 3m43s
Project CI / Native shell tests (push) Failing after 3m36s
Project CI / Repository checks (push) Failing after 4m36s
Project CI / Backend tests (push) Successful in 8m36s
新增纯 Rust agent-runtime-core,提供运行时契约、能力注册、Agent 目录、Profile、完成策略与零重放恢复
抽取中立 LLM Provider 协议与可扩展 Registry,并适配 OpenAI Responses、OpenAI Chat 和 Anthropic
将 AGC interaction、Provider 控制、Runner 生命周期、steering 与 tool-plan handoff 接入统一运行时边界
补充非游戏消费者、Provider 网络闭环、Runtime 恢复及 GUI Runner owner 测试
同步 Cargo/npm 门禁、Runtime 技术方案和项目共享记忆
2026-07-30 16:15:51 +08:00
kdletters
b512430e53
收紧图集切片资源边界
...
Project CI / Repository checks (push) Successful in 1m4s
Project CI / Frontend tests (push) Successful in 2m5s
Project CI / Native shell tests (push) Successful in 2m32s
Project CI / Backend tests (push) Successful in 3m37s
前置限制原始连通域、局部候选和输出切片数量
统一图集切片的有界阻塞线程执行
统一角色图标和UI的原图安全降级
补齐异常输入回归测试与工程文档
2026-07-30 13:44:17 +08:00
kdletters
2cb40f246a
Merge pull request 'Feat/pixel art' ( #119 ) from feat/pixel_art into master
...
Project CI / Repository checks (push) Successful in 1m3s
Project CI / Frontend tests (push) Successful in 2m2s
Project CI / Native shell tests (push) Successful in 2m24s
Project CI / Backend tests (push) Successful in 3m31s
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/119
Reviewed-by: 段舒康 <kdletters@qq.com >
2026-07-29 21:38:11 +08:00
lhk229
5ec7182d65
修复画布图层查询在重渲染窗口下的测试竞态
...
Project CI / Repository checks (pull_request) Successful in 1m0s
Project CI / Frontend tests (pull_request) Successful in 2m1s
Project CI / Native shell tests (pull_request) Successful in 2m31s
Project CI / Backend tests (pull_request) Successful in 3m41s
only exposes character animation generation 用例先 await findByAltText 取到
第一个图层,再用同步 getByAltText 取第二个。合并 web master 带入的项目封面
快照改动会在图层落位后触发一次重渲染,同步查询正好落进该窗口就取不到元素,
CI 962 因此失败。
该写法在 master 上逐字相同,属既有竞态,非本分支引入;但它挡住本 PR 的 CI,
故改为异步查询容忍这次重渲染,不改变断言语义与产品代码。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-07-29 13:23:07 +00:00
lhk229
bc28f00c2d
修复 inline 路径修复性回读缺少绝对 deadline
...
Project CI / Repository checks (pull_request) Successful in 1m6s
Project CI / Native shell tests (pull_request) Successful in 2m28s
Project CI / Backend tests (pull_request) Successful in 3m30s
Project CI / Frontend tests (pull_request) Successful in 1m14s
上一轮把修复性回读绑到外层 request_deadline,但 with_external_call_deadline
只在队列 worker 与 openai_image_generation 两处调用,inline HTTP 请求的
RequestContext 默认 external_call_deadline=None,于是 download_deadline 传下去
仍是 None,走无界 download.await——该修复实际只对队列模式生效。
守卫改为在 request_deadline 缺失时自行以 Instant::now() +
EDITOR_PIXEL_ART_MAX_PROCESSING_DURATION 重新计时派生上界,两种模式下都不再
出现无界 GET。结构断言同时要求出现 unwrap_or_else 兜底与该常量。
同时修正决策记录里「最多增加一次 OSS GET」的措辞:约束是不重复读取已成功
取得的对象,而非整个请求至多一次 GET;第一次回读失败或被像素预算掐断时
允许第二次也是最后一次尝试,不视为违规。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-07-29 13:12:21 +00:00
lhk229
9a37deeaf0
收窄像素规整尺寸守卫的生效范围表述
...
Project CI / Repository checks (pull_request) Successful in 1m16s
Project CI / Frontend tests (pull_request) Successful in 2m4s
Project CI / Native shell tests (pull_request) Successful in 2m29s
Project CI / Backend tests (pull_request) Successful in 3m31s
决策记录原文写「修复失败返回尺寸错误交由调用方降级」,读起来像是角色和
图标两条链路都会降级。实际上守卫只保证像素路径不再谎报「尺寸无误」,
拿到尺寸错误之后如何处置仍由各调用方既有语义决定,本次未改动任何调用方。
改为显式写明生效范围:角色据此走原图安全降级、链路闭环;图标沿用 master
既有的非致命语义,只记录告警后继续持久化并拆分,因此 BgFilter 尺寸漂移且
回贴修复失败时仍可能持久化尺寸异常的透明图集,该残留属 master 既有行为,
不在本次范围内解决。守卫断言的注释同步收窄。
仅调整表述,不改代码行为,不新增承诺。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-07-29 12:56:37 +00:00
lhk229
fefea643aa
修正图标像素规整专题执行顺序
...
Project CI / Frontend tests (pull_request) Successful in 1m53s
Project CI / Repository checks (pull_request) Successful in 45s
Project CI / Native shell tests (pull_request) Successful in 2m20s
Project CI / Backend tests (pull_request) Successful in 3m32s
明确图标图集以 provider 原图实际尺寸完成 Alpha 回贴与像素规整
删除规整后仍有独立最终尺寸处理的旧描述
说明 snapper 内部 nearest 与角色前置 Lanczos 的边界
2026-07-29 12:42:05 +00:00
lhk229
bc486aaff5
修正文档中的像素规整与外部 API 契约
...
Project CI / Repository checks (pull_request) Successful in 1m2s
Project CI / Frontend tests (pull_request) Successful in 2m2s
Project CI / Native shell tests (pull_request) Successful in 2m30s
Project CI / Backend tests (pull_request) Successful in 4m2s
同步角色与图片画布文档的 Lanczos、去背和像素规整执行顺序
补全外部 OpenAPI 四个稳定 warning code 的语义
为外部编辑器 skill 补充顶层 style 参数、兼容规则和请求示例
2026-07-29 12:39:51 +00:00
lhk229
937378ab91
消除像素规整降级路径的重复与无界 OSS 回读
...
Project CI / Repository checks (pull_request) Successful in 1m0s
Project CI / Frontend tests (pull_request) Successful in 2m1s
Project CI / Native shell tests (pull_request) Successful in 2m26s
Project CI / Backend tests (pull_request) Successful in 3m28s
尺寸守卫此前一律走会回读 provider 原图的包装函数,带来两个问题:permit
获取失败、worker 内 deadline、join 异常和 worker 超时这四条分支其实已经
持有原图,却又对同一 object key 发起第二次 GET,把"最多增加一次 OSS GET"
放大成两次;而第一次回读超时后的那次 GET 完全没有绝对 deadline,突破
30 秒像素预算。
拆成两类:已持有原图的四条分支改走纯内存守卫 degrade_editor_pixel_art_
with_provider_source,零额外 GET;尚未取得原图的三条分支仍走回读守卫,
但该次 GET 改以外层请求 deadline 为绝对上界——用已耗尽的像素预算绑会让
修复必然失败,不绑则突破预算。
apply_editor_postprocessed_alpha_from_persisted_provider_source_or_original
新增可选 download_deadline,非像素路径传 None 保持既有语义;尺寸比对抽为
editor_postprocessed_alpha_matches_delivery_dimensions 供两类守卫共用。
计数断言固定"回读守卫 3 处、内存守卫 4 处",该断言在编写时即抓出一处
分支数误判。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-07-29 12:29:42 +00:00
lhk229
414735efde
同步剩余文档的双告警并存规则
...
Project CI / Repository checks (pull_request) Successful in 1m0s
Project CI / Frontend tests (pull_request) Successful in 2m7s
Project CI / Native shell tests (pull_request) Successful in 2m36s
Project CI / Backend tests (pull_request) Successful in 3m42s
外部编辑器 API 技能文档、外部生成 Worker 化方案和图片画布编辑器 MVP
接入方案仍写着通用 warning 与 sliceWarning 互斥、并以通用告警优先,与
已放开并存的 openapi 契约和 8ed85e17f 的队列 / inline 归一实现不一致。
四处统一改为:仅 postprocess-failed-source-preserved 与 sliceWarning 互斥
(该失败不进入拆分),风格归一化与像素规整产生的通用 warning 可与
sliceWarning 并存且两条都必须展示;同步补充队列侧的拼接与 code 收敛规则。
UI 设计图素材提取不接受 style 参数也不走像素规整,其文档中的互斥表述
仍然成立,未改动。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-07-29 12:01:50 +00:00
lhk229
8ed85e17f4
修复队列与 Web 吞掉并存的 sliceWarning
...
Project CI / Repository checks (pull_request) Successful in 1m3s
Project CI / Frontend tests (pull_request) Successful in 1m59s
Project CI / Native shell tests (pull_request) Successful in 2m25s
Project CI / Backend tests (pull_request) Successful in 3m28s
风格归一化与像素规整新增的通用 warning 可以与 sliceWarning 并存,openapi
已放开该组合,但两个消费端仍是二选一:队列 extract_editor_generation_warning
在 warning 存在时根本不读 sliceWarning,Web inline
resolveEditorGenerationWarningMessage 同样直接返回通用告警。
两侧改为与 inline 响应相同的归一策略:只有一条时原样保留,两条并存时按
"通用在前、拆分在后"拼接,队列侧 code 收敛为 multiple-generation-warnings
并复用既有长度上界收敛。同步修正三处仍声明二者互斥的文档。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-07-29 11:44:27 +00:00
lhk229
49965ddd7e
修复角色尺寸恢复降级覆盖已累积生成告警
...
Project CI / Repository checks (pull_request) Successful in 50s
Project CI / Frontend tests (pull_request) Successful in 2m6s
Project CI / Native shell tests (pull_request) Successful in 2m35s
Project CI / Backend tests (pull_request) Successful in 3m35s
generate_editor_image_for_owner 的角色透明图尺寸恢复失败分支直接返回
warning: Some(...),没有合并 generation_warning,导致 style 为未知值时
契约承诺的 unsupported-image-style 告警在该降级路径上消失。
改为经 merge_editor_generation_warnings 合并,与该函数另外两个返回点一致。
新增结构断言固定"普通图片与图标生成的所有返回点都不得出现裸 warning: Some(",
并同步角色降级断言到合并后的形状。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-07-29 11:27:11 +00:00
lhk229
a7d8bccec9
修复像素规整降级绕过交付尺寸守卫
...
Project CI / Repository checks (pull_request) Successful in 1m4s
Project CI / Frontend tests (pull_request) Successful in 2m1s
Project CI / Native shell tests (pull_request) Successful in 2m26s
Project CI / Backend tests (pull_request) Successful in 3m28s
像素路径的 best-effort 降级分支(预算耗尽、回读 provider 原图失败或超时、
CPU permit 获取失败、worker 内 deadline、join 异常、worker 超时)此前都直接
返回 BgFilter 原始输出并把尺寸错误置为 None,跳过非像素路径已有的尺寸比对
与 alpha 回贴。BgFilter 回图尺寸漂移叠加并发上限 2 的 permit 超时后,角色会
绕过原图安全降级,角色和图标都可能持久化尺寸漂移的低分辨率透明图。
新增 degrade_editor_pixel_art_to_postprocessed_with_dimension_guard 收口所有
降级分支,复用非像素路径的守卫:尺寸一致原样返回且不产生额外 OSS GET,漂移
才回读原图重贴 alpha,修复失败返回尺寸错误交调用方降级。由 provider 原图合成
的 rgba_source fallback 尺寸天然正确,不经守卫。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-07-29 11:19:01 +00:00
kdletters
5479559c86
修复游戏聊天启动白屏
...
Project CI / Repository checks (push) Failing after 52s
Project CI / Backend tests (push) Successful in 3m10s
Project CI / Frontend tests (push) Successful in 3m19s
Project CI / Native shell tests (push) Failing after 10m3s
在创建 WebView 前写入 game-chat 初始 URL
增加启动顺序与禁止二次导航门禁
补齐跨平台回归测试和项目文档
2026-07-29 17:59:10 +08:00
lhk229
9655324dea
补齐生成 payload 新增 style 字段的测试断言
...
Project CI / Repository checks (pull_request) Successful in 3m32s
Project CI / Frontend tests (pull_request) Successful in 5m6s
Project CI / Native shell tests (pull_request) Successful in 6m32s
Project CI / Backend tests (pull_request) Successful in 7m50s
useImageCanvasGenerationWorkflow.test.tsx 用 toHaveBeenCalledWith 精确匹配
普通图片生成 payload,本分支为该 payload 增加 style 字段后未同步该文件,
CI 前端测试报 "+ style: none"。
该文件不在本分支改动清单内,故此前未被发现。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-07-29 09:47:17 +00:00
lhk229
717b94aad8
合并 web master 角色交付尺寸统一
...
Project CI / Frontend tests (pull_request) Failing after 5m43s
Project CI / Repository checks (pull_request) Successful in 5m48s
Project CI / Native shell tests (pull_request) Successful in 7m49s
Project CI / Backend tests (pull_request) Successful in 8m50s
接受 master 的角色带背景原图与透明图统一交付尺寸方案,像素模式不再
豁免提前归一:逻辑像素规整改在按业务像素矩阵 resize_to_fill(Lanczos
重采样 + 居中裁切)后的交付尺寸图上进行,snapper 自行还原回输入尺寸,
删除原先后置的 nearest 二次恢复及其 pixel_art_applied 开关。
后处理降级告警合并两侧机制:postprocess 失败路径改用 master 的
_with_dimension 重载并继续经 merge_editor_generation_warnings 汇总;
成功路径补回 master 的 dimension_warning,避免自动合并将其丢弃。
结构断言改为只固定 editor_postprocess_fallback_warning 共同前缀。
decision-log 保留双方新决策条目,并修订像素艺术条目中已过时的
"provider 原尺寸分析网格"表述。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-07-29 09:33:36 +00:00
lhk229
a97b12d73a
清理像素规整重构残留的死代码
...
restore_editor_generated_image_output_dimensions 在本分支把
restore_editor_generated_image_output_dimensions_or_original 改为转发到
_with_filter 之后失去全部生产调用者,仅剩单测在用,非测试构建报 dead_code。
删除该包装函数,改由测试直接调用 _with_filter 并显式传 Lanczos3。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-07-29 08:22:41 +00:00
lhk229
ac9797b5c3
修复图标描述回退与移动端重复样式
...
修正图标生成恢复时空提示词对旧描述的阻断。
删除移动端生成按钮重复的宽度声明。
2026-07-29 08:15:43 +00:00
kdletters
3a64411e8c
统一角色原图与透明图交付尺寸
...
Project CI / Repository checks (push) Successful in 51s
Project CI / Frontend tests (push) Successful in 1m44s
Project CI / Native shell tests (push) Successful in 2m7s
Project CI / Backend tests (push) Successful in 3m16s
角色原图持久化前归一到业务交付尺寸
拒绝错比例透明蒙版并降级保留原图
合并尺寸降级与后处理失败告警
补齐全模型全尺寸真实像素回归
同步角色图片尺寸边界文档
2026-07-29 16:10:54 +08:00
k88936
6ee33dc561
fix: 首页「最近项目」缩略图与退出前视角不一致,出现偏移或裁切 ( #111 )
...
Project CI / Repository checks (push) Successful in 1m4s
Project CI / Frontend tests (push) Successful in 2m9s
Project CI / Native shell tests (push) Successful in 2m38s
Project CI / Backend tests (push) Successful in 3m23s
- 封面使用真实画布尺寸及最终 viewport.x/y/scale。
- 320×240 封面改为居中 cover 裁切,不再从左上角取景。
- 正确绘制画布背景色。
in canva:


in home:


因为原本的布局持久化可能有一些bug,改动不相关,所以我回退到最开始的一版:
- 不额外监听画布尺寸变化,给最小尺寸兜底,(大了比小了好)
- 封面不要求强一致性,生成/上传时机仍然按照原来随布局持久化
优化了封面生成:
- 改用webp格式
- 尽量利用图片缓存
最终生成封面从700ms加速到150ms以内, 加上必须的上传和确认150ms 和 布局持久化的时间相差不多,不是特别离谱的手速都能保证两者一致
---------
Co-authored-by: kdletters <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/111
Co-authored-by: 王德宇 <kvtodev@outlook.com >
Co-committed-by: 王德宇 <kvtodev@outlook.com >
2026-07-29 16:09:30 +08:00
lhk229
fae6f00c9f
合并 web master 最新更新
...
Project CI / Frontend tests (pull_request) Failing after 52s
Project CI / Repository checks (pull_request) Successful in 1m2s
Project CI / Native shell tests (pull_request) Successful in 2m10s
Project CI / Backend tests (pull_request) Successful in 3m28s
将 web/master 的画布快照、图集标签和 Agent 框架更新合入像素艺术功能分支。
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
# server-rs/crates/api-server/src/external_editor_api.rs
2026-07-29 07:02:56 +00:00
lhk229
a6a6be23c9
开启图标图集BgFilter交叉校验
...
将生成图标素材的 flat 请求固定切换为 cross_check=on。
同步调整现有结构断言与编辑器、后端和共享决策文档。
2026-07-29 06:43:59 +00:00
kdletters
edc99e55e4
修复跨设备画布旧快照覆盖
...
Project CI / Frontend tests (push) Failing after 43s
Project CI / Repository checks (push) Successful in 47s
Project CI / Native shell tests (push) Successful in 2m47s
Project CI / Backend tests (push) Successful in 3m13s
按用户隔离画布缓存并等待权威 revision 后开放保存
固化保存重试版本并安全处理认证重载与冲突恢复
合并迟到资源图层且隔离跨账号异步请求
强制 Web 与 External 画布写入使用 expectedRevision CAS
补充竞态回归测试并同步 OpenAPI、Skill 与技术文档
2026-07-29 13:51:49 +08:00
lhk229
8848a68fb0
调整像素网格步长估算分位数
...
将相邻边缘峰间距由中位数改为线性插值 P30。
同步更新像素规整技术方案和共享决策记录。
2026-07-29 05:42:08 +00:00
lhk229
1ed8064d2f
统一图标图集全连通域拆分
...
移除前端从提示词解析素材数量的逻辑,完整提示词作为单个请求元素提交。
删除后端按描述数量截断切片的路径,自动拆分与手动拆分复用全连通域算法。
统一切片命名和尺寸、像素、数量限制,保留手动拆分按钮与接口。
更新既有测试、OpenAPI、编辑器文档和共享决策记录。
2026-07-29 04:52:29 +00:00
AIGameCreator App
349be22800
合并开发态游戏聊天创作页
...
Project CI / Frontend tests (push) Failing after 23s
Project CI / Repository checks (push) Failing after 32s
Project CI / Backend tests (push) Successful in 2m53s
Project CI / Native shell tests (push) Failing after 9m50s
合并 codex/agc-game-chat 的开发态游戏聊天入口
保留当前分支 Runtime 恢复与视觉产物门禁
整合前端回归测试与 AI 游戏创作技术方案
2026-07-29 12:11:28 +08:00
AIGameCreator App
dae59992b1
新增开发态游戏聊天创作页
...
新增仅开发态游戏聊天入口与本地安全预览布局
将Supervisor进度、返工、测试、迭代和图片证据写入聊天
完善自动预览授权持久化、锁竞争重试与Runtime收尾恢复
规范视觉产物走规范图、UI设计和透明图集专用接口
补齐共享契约、回归测试、技术方案和项目记忆
2026-07-29 11:54:06 +08:00
lhk229
732fcf0b45
新增图片生成像素艺术后处理
...
新增确定性像素网格规整模块并保留第三方 MIT 许可证。
为普通图片、角色和图标图集接入像素艺术选项、并发预算和失败降级。
同步前端交互、请求契约、OpenAPI、项目文档与测试。
2026-07-29 03:46:03 +00:00
kdletters
44f47e5db1
修复图集素材标签持久化与拆分校验
...
Project CI / Native shell tests (push) Successful in 2m40s
Project CI / Backend tests (push) Successful in 3m16s
Project CI / Repository checks (push) Successful in 1m0s
Project CI / Frontend tests (push) Successful in 2m5s
项目资源复用增加素材类型匹配,避免同源旧类型资源回流
标签保存期间禁用拆分并在服务端确认后回写资源引用
补齐乱序请求、快照刷新、失败回滚和撤销历史保护
新增前后端回归测试并同步图集入口设计文档
2026-07-29 11:06:56 +08:00
kdletters
d7f0c45164
抽取画布 Agent 公共执行框架
...
Project CI / Repository checks (push) Successful in 1m3s
Project CI / Frontend tests (push) Successful in 1m59s
Project CI / Native shell tests (push) Successful in 2m27s
Project CI / Backend tests (push) Successful in 3m5s
新增业务中立的 function-calling harness 与公共提示词协议
统一画布 Agent 工具路由约束和待确认控制语义
保留失败前输出并事务化收口 memory、deadline 与取消状态
迁移画布 Agent 和 API 编排并同步架构文档与项目记忆
2026-07-28 21:34:34 +08:00
kdletters
b1db88c114
修复AGC总控恢复与工具计划交接
...
Project CI / Repository checks (push) Successful in 1m3s
Project CI / Frontend tests (push) Successful in 2m50s
Project CI / Backend tests (push) Successful in 3m5s
Project CI / Native shell tests (push) Successful in 9m33s
修复Windows下tool-plan账本按句柄原子安装失败。
补齐项目总控空态、持久Runtime水合与核对后重试交互。
修正Responses多角色内容映射与steer审计幂等身份。
修复首批协作repair累积、缺失Agent约束和isolated单槽替换。
收紧API Key安全持久化检测并覆盖装饰赋值与自然语言边界。
修复Provider retry恢复扫描与无画布密钥时的视觉产物降级。
补充定向回归测试和项目技术文档。
2026-07-28 19:59:43 +08:00
kdletters
271d5d7bd3
持久化用户历史消费泥点投影
...
Project CI / Native shell tests (push) Successful in 2m28s
Project CI / Repository checks (push) Successful in 59s
Project CI / Frontend tests (push) Successful in 1m58s
Project CI / Backend tests (push) Successful in 3m5s
后台用户详情展示历史花费并保留手动对账
消费落账原子更新投影并提供存量初始化
为手动对账增加独立管理员操作权限
更新SpacetimeDB绑定、文档和测试
2026-07-28 16:20:43 +08:00
k88936
66a8b7f597
画布agent 完善上下文 ( #101 )
...
Project CI / Repository checks (push) Successful in 53s
Project CI / Frontend tests (push) Successful in 2m34s
Project CI / Native shell tests (push) Successful in 2m42s
Project CI / Backend tests (push) Successful in 3m28s
* 补全完整的工具参数
* 调整提示词应对一些bad case
* 把attachment的名称/描述纳入上下文
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/101
Co-authored-by: 王德宇 <kvtodev@outlook.com >
Co-committed-by: 王德宇 <kvtodev@outlook.com >
2026-07-28 15:44:05 +08:00
k88936
78e6959ca4
画布agent交互优化 ( #105 )
...
Project CI / Repository checks (push) Successful in 1m10s
Project CI / Frontend tests (push) Successful in 1m27s
Project CI / Native shell tests (push) Successful in 2m45s
Project CI / Backend tests (push) Successful in 3m47s
输入框尺寸根据输入内容调整高度,达到最大高度后再出现翻页条。
before:

after:


调整对话切换角标样式
before:

after:

新建对话按钮禁用 当已在一个新对话中
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/105
Co-authored-by: 王德宇 <kvtodev@outlook.com >
Co-committed-by: 王德宇 <kvtodev@outlook.com >
2026-07-28 15:22:49 +08:00
lhk229
d29240b954
补齐 Anthropic 原生工具与三协议流式工具调用 ( #112 )
...
Project CI / Repository checks (push) Successful in 46s
Project CI / Backend tests (push) Successful in 2m55s
Project CI / Native shell tests (push) Successful in 9m53s
Project CI / Frontend tests (push) Successful in 2m28s
Anthropic 请求发送 tools 与对象形态 tool_choice 并解析 tool_use block,解除本地对 function tools 的拦截
Chat / Responses / Anthropic 三种协议的流式工具增量按槽位聚合,收尾校验参数为完整 JSON,截断流不返回半截参数
解除 App 侧 Anthropic 降级为文本 JSON 协议的两处守卫与对应提示词分支
新增依赖真实凭据的流式工具验收用例,默认 ignore
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/112
Co-authored-by: 孔令弘 <ink29535@proton.me >
Co-committed-by: 孔令弘 <ink29535@proton.me >
2026-07-28 13:33:49 +08:00
AIGameCreator App
26ef00f7b9
修复游戏创作脚本剩余ESLint错误
...
Project CI / Repository checks (push) Successful in 1m7s
Project CI / Frontend tests (push) Successful in 2m52s
Project CI / Backend tests (push) Successful in 3m3s
Project CI / Native shell tests (push) Failing after 6m25s
整理配置检查与测试文件导入顺序
调整配置向导无限循环写法通过Lint门禁
2026-07-28 12:49:48 +08:00
AIGameCreator App
d155873454
修复自主构建脚本ESLint错误
...
Project CI / Frontend tests (push) Failing after 22s
Project CI / Repository checks (push) Failing after 47s
Project CI / Backend tests (push) Successful in 3m4s
Project CI / Native shell tests (push) Failing after 7m33s
删除未使用的任务计数解析函数
移除未消费的响应参数与调用字段
2026-07-28 12:46:50 +08:00
kdletters
47f00dae4d
修复维护页品牌图片加载
...
Project CI / Repository checks (push) Successful in 1m4s
Project CI / Frontend tests (push) Successful in 2m2s
Project CI / Native shell tests (push) Successful in 2m28s
Project CI / Backend tests (push) Successful in 3m3s
Nginx 精确放行维护页背景图与品牌图标
Pingora 同步维护资产白名单
补充维护模式网关回归测试
更新生产运维与共享决策文档
2026-07-27 21:57:30 +08:00
AIGameCreator App
26555e66af
修复AI游戏客户端手机号登录契约
...
密码登录、验证码发送和验证码登录改用国家码与纯手机号字段
非 JSON 认证错误回退为中文操作提示
补充登录契约、错误回退测试和决策记录
2026-07-27 21:31:58 +08:00
AIGameCreator App
97dc708576
修复AI游戏客户端手机号登录契约
...
Project CI / Repository checks (push) Failing after 55s
Project CI / Frontend tests (push) Successful in 2m49s
Project CI / Backend tests (push) Successful in 3m7s
Project CI / Native shell tests (push) Failing after 6m57s
密码登录、验证码发送和验证码登录改用国家码与纯手机号字段
非 JSON 认证错误回退为中文操作提示
补充登录契约、错误回退测试和决策记录
2026-07-27 21:31:35 +08:00
kdletters
a5906ac26e
修复图片交付尺寸与提示重触发
...
Project CI / Repository checks (push) Successful in 47s
Project CI / Frontend tests (push) Successful in 1m39s
Project CI / Native shell tests (push) Successful in 2m15s
Project CI / Backend tests (push) Successful in 2m56s
统一图片模型的业务交付像素并保留 GPT provider 合法请求尺寸
禁止欠交付图片被放大并返回尺寸降级提示
重置相同 warning 的三秒自动关闭计时
补充前后端回归测试与编辑器契约文档
2026-07-27 21:16:01 +08:00
kdletters
25ee537e39
修复画布提示与图片尺寸一致性
...
Project CI / Repository checks (push) Successful in 1m3s
Project CI / Frontend tests (push) Successful in 2m5s
Project CI / Native shell tests (push) Successful in 2m33s
Project CI / Backend tests (push) Successful in 3m9s
提示弹窗三秒后自动消失并保留手动关闭
统一 nanobanana2 与 gpt-image-2 同规格图片的交付像素
补充尺寸归一和提示生命周期回归测试
同步图片画布生成契约文档
2026-07-27 20:24:07 +08:00
AIGameCreator App
6bcd176bdf
合并 master 最新更新
...
Project CI / Frontend tests (push) Failing after 24s
Project CI / Repository checks (push) Failing after 43s
Project CI / Backend tests (push) Successful in 3m5s
Project CI / Native shell tests (push) Failing after 6m49s
合入 master 的 BgFilter、CI、运维与现役平台改造。
保留 AI 游戏创作 Runtime、独立锁文件与原生壳验证链路。
修复共享充值账单组件、LLM 网关与退役 Agent 兼容边界。
同步冲突文档、锁文件和开发脚本。
2026-07-27 18:28:26 +08:00
kdletters
0ef5c2bb79
修复AGC在Windows上的启动失败
...
Project CI / Frontend tests (push) Failing after 25s
Project CI / Repository checks (push) Failing after 54s
Project CI / Backend tests (push) Successful in 4m54s
Project CI / Native shell tests (push) Failing after 7m35s
通过子进程私有环境变量传递DACL目标路径,避免PowerShell命令参数解析失败。
同步补充AI游戏创作实施方案和项目踩坑记录。
2026-07-27 17:45:16 +08:00
AIGameCreator App
b18b367382
修复运行续作与工具路径交接
...
Project CI / Repository checks (push) Failing after 52s
Project CI / Frontend tests (push) Successful in 2m22s
Project CI / Backend tests (push) Successful in 4m55s
Project CI / Native shell tests (push) Failing after 8m37s
无活动 Runtime 时将自然语言继续转换为新执行并保留显式恢复语义
成功响应落账前按工具契约规范化项目内绝对路径
拒绝重复键隐藏路径、动态 MCP 和项目外路径的交接放宽
补齐续作分流、路径重放和失败关闭回归测试
同步更新 Runtime 技术方案与共享踩坑记录
2026-07-27 17:01:11 +08:00
AIGameCreator App
4522f9dca1
修复工具计划响应交接误判
...
Project CI / Repository checks (push) Failing after 1m31s
Project CI / Frontend tests (push) Successful in 3m12s
Project CI / Backend tests (push) Successful in 5m44s
Project CI / Native shell tests (push) Failing after 8m33s
区分计划叙述、源码内容与结构化敏感输入,避免安全字面量误触 reconciliation
为成功响应交接失败持久化受控分类、错误摘要与字符数
补充工具计划回归测试及 Runtime 技术和排障文档
2026-07-27 14:24:07 +08:00
kdletters
38c5a1a11a
兼容压缩旧版备份结果
...
Project CI / Repository checks (push) Successful in 1m4s
Project CI / Frontend tests (push) Successful in 1m36s
Project CI / Native shell tests (push) Successful in 2m20s
Project CI / Backend tests (push) Successful in 3m6s
兼容旧 result 缺少 symlinks 清单的历史格式
补充缺字段元数据压缩回归测试
2026-07-27 12:05:33 +08:00
AIGameCreator App
ab89776307
修复项目总控上下文预加载说明
...
Project CI / Frontend tests (push) Failing after 26s
Project CI / Repository checks (push) Failing after 52s
Project CI / Native shell tests (push) Failing after 33s
Project CI / Backend tests (push) Successful in 5m14s
按 Agent 身份在 prompt 格式化阶段选择上下文预加载文案
删除依赖上游完整字符串的静默替换链路
补充普通 Agent 与 Supervisor 最终请求回归测试
同步 Runtime 上下文压缩技术约束
2026-07-27 12:04:14 +08:00
kdletters
d38e8c913e
压缩并清理逐文件备份元数据
...
Project CI / Repository checks (push) Successful in 1m11s
Project CI / Native shell tests (push) Successful in 2m41s
Project CI / Frontend tests (push) Successful in 2m51s
Project CI / Backend tests (push) Successful in 3m15s
将 files state 升级为去重 gzip v2 并兼容旧格式迁移
压缩保留最新 full catalog,清理历史 catalog 与冗余结果
补充损坏拒绝、恢复兼容和清理顺序回归测试
更新生产运维与项目记忆文档
2026-07-27 11:56:23 +08:00
AIGameCreator App
427a8c151a
完善自主构建正式产物与终端测试
...
Project CI / Frontend tests (push) Failing after 24s
Project CI / Repository checks (push) Failing after 46s
Project CI / Backend tests (push) Successful in 4m14s
Project CI / Native shell tests (push) Failing after 7m17s
新增终端 AppData 配置向导并强化跨平台密钥与进程树安全
升级自主构建为十六任务产物 DAG 并接入两类真实画布素材
完善完成基线、并发补验、验证证据与受限画布返工合同
强化确定性与真实 Swarm E2E 的 exactly-once 和正式产物校验
修复确定性 Provider 终态修复后的复验交付状态
同步更新客户端实现计划、决策记录和踩坑说明
2026-07-27 04:04:06 +08:00
AIGameCreator App
655aa0e2f6
测试纯静态美术产物验证合同
...
新增无 package.json 的 art-asset-plan 回归场景
约束自主验证仅走静态 smoke 与浏览器验收链路
记录当前错误暴露 project.verify 的失败证据
2026-07-25 20:08:21 +08:00
AIGameCreator App
006846e667
修复Swarm连续任务恢复与终态归属
...
Project CI / Repository checks (push) Successful in 2m43s
Project CI / Backend tests (push) Successful in 7m41s
Project CI / Native shell tests (push) Failing after 12m2s
Project CI / Frontend tests (push) Failing after 1m10s
以启动 mutation 返回的 acceptedRunId 建立不可变 turn baseline
拆分队列忙碌与 Runtime 可追加状态并恢复 cancelled canonical 后的 pending 任务
按 finalization message ID 和完整 task journal 隔离连续 B/C 对话、失败扫描与报告计数
以 agentId 和 runId 聚合专业 Agent 终态并保持 journal 失败优先
补齐重复投递、恢复幂等、连续轮次和历史 repair 回归及项目文档
2026-07-25 14:07:54 +08:00
AIGameCreator App
3237ad140a
完善智能体交互与画布美术生成
...
为 Supervisor 与部门 Director 接入统一 Interaction Loop 和持久 Runtime 调度
在配置画布 API Key 时强制委派美术 Agent 并复用规范素材
收紧画布生成角色权限、图片内容校验和项目锁并发边界
完善专业 Agent revision 验证、任务恢复与 Provider 兼容处理
补充自主协作、真实画布生成、运行时收束测试及技术文档
2026-07-24 21:44:07 +08:00
k88936
60a4548524
fix: 输入框内滚动会触发画布滚动 ( #110 )
...
Project CI / Frontend tests (push) Successful in 2m28s
Project CI / Repository checks (push) Successful in 1m30s
Project CI / Native shell tests (push) Successful in 2m49s
Project CI / Backend tests (push) Successful in 3m40s
fix: ignore wheel event from text area to prevent canva move
before:

after:

Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/110
Reviewed-by: 段舒康 <kdletters@qq.com >
Co-authored-by: 王德宇 <kvtodev@outlook.com >
Co-committed-by: 王德宇 <kvtodev@outlook.com >
2026-07-24 20:47:05 +08:00
lhk229
a2ee879fc8
添加gfilter专用worker ( #103 )
...
Project CI / Repository checks (push) Successful in 1m3s
Project CI / Native shell tests (push) Successful in 2m26s
Project CI / Frontend tests (push) Successful in 2m0s
Project CI / Backend tests (push) Successful in 3m1s
Co-authored-by: kdletters <kdletters@qq.com >
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/103
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-07-23 18:06:29 +08:00
kdletters
00da0dd1c8
刷新Gitea CI依赖缓存镜像
...
Project CI / Repository checks (push) Successful in 1m0s
Project CI / Frontend tests (push) Successful in 1m29s
Project CI / Backend tests (push) Successful in 3m0s
Project CI / Native shell tests (push) Successful in 2m32s
预热当前server-rs的SpacetimeDB 2.7.0依赖
为Cargo锁定依赖下载增加整命令级有界重试
更新Runner镜像事实和运维文档
2026-07-23 16:06:56 +08:00
kdletters
24b10f0660
修复LLM原文日志并行测试污染
...
Project CI / Repository checks (push) Successful in 1m34s
Project CI / Native shell tests (push) Successful in 2m12s
Project CI / Backend tests (push) Failing after 1m54s
Project CI / Frontend tests (push) Successful in 43s
将原文日志目录收敛为LlmConfig实例配置
迁移platform-llm与api-server测试到独立日志目录
补充Rust异步测试环境变量隔离规范
2026-07-23 15:38:45 +08:00
k88936
44748b7846
fix:前后端校验手机号区域码 ( #104 )
...
Project CI / Frontend tests (push) Successful in 34s
Project CI / Backend tests (push) Failing after 39s
Project CI / Repository checks (push) Successful in 52s
Project CI / Native shell tests (push) Successful in 2m4s
来自今早群友反映
before:

and failed
after:



* https://developers.weixin.qq.com/miniprogram/dev/server/API/user-info/phone-number/api_getphonenumber.html#Res-phone-info-Object-Payload 参考微信这个文档修改了微信返回的struct 手机号 区域码字段不应是Optional
* 登录注册改密码改绑定等 api 把单一 phone字段改成 country_code(可选,缺省为86) + pure_phone_number 分别进行了前后端校验
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/104
Co-authored-by: 王德宇 <kvtodev@outlook.com >
Co-committed-by: 王德宇 <kvtodev@outlook.com >
2026-07-23 14:52:57 +08:00
kdletters
b72e2163d7
恢复后台灰度发布控制面
...
Project CI / Frontend tests (push) Successful in 29s
Project CI / Repository checks (push) Successful in 39s
Project CI / Native shell tests (push) Successful in 2m10s
Project CI / Backend tests (push) Failing after 2m50s
恢复灰度发布导航、权限、前端契约与页面编译链
解除灰度页面对旧创作入口配置的依赖
补充路由、API、页面回归测试及当前架构文档
2026-07-23 14:23:18 +08:00
AIGameCreator App
ddbca15e30
修复Agent Swarm聊天测试Runner冲突
...
Project CI / Frontend tests (push) Failing after 50s
Project CI / Backend tests (push) Successful in 6m58s
Project CI / Repository checks (push) Successful in 2m42s
Project CI / Native shell tests (push) Failing after 11m11s
为人工聊天测试复制隔离 AppData,避免复用正式 Runner
新增空闲 Runner 安全收束与临时目录清理
补齐初始化占位页校验、回归测试和开发文档
2026-07-23 13:52:06 +08:00
kdletters
a7d492eea6
升级 SpacetimeDB 至 2.7.0
...
Project CI / Frontend tests (push) Successful in 33s
Project CI / Repository checks (push) Successful in 48s
Project CI / Native shell tests (push) Successful in 2m21s
Project CI / Backend tests (push) Successful in 3m43s
统一 Rust 依赖、CLI、容器与部署产物到 2.7.0 hotfix3
重新生成 Rust bindings 并接入 2.7 capability traits
补齐本地 dev 与生产 provision 的 hotfix3 commit 门禁
更新 SpacetimeDB skills、运维文档与 MCP 验证口径
2026-07-23 13:47:32 +08:00
AIGameCreator App
52d47d5470
合并远端AI游戏创作分支更新
...
Project CI / Frontend tests (push) Failing after 20s
Project CI / Repository checks (push) Successful in 2m21s
Project CI / Backend tests (push) Successful in 5m16s
Project CI / Native shell tests (push) Failing after 9m35s
保留 Agent Runtime、Runner、项目与测试的模块化拆分
吸收跨平台启动与本地开发栈稳定性修复
补齐 Gitea CI 门禁与异步测试稳定性改进
统一前端 Runtime 水合、策略读取与状态重置语义
2026-07-23 12:40:28 +08:00
AIGameCreator App
917fcd5726
添加Agent Swarm一键测试入口
...
新增 agc:test 确定性自动验收短命令。
新增 agc:test:chat 自动发现 AppData、创建测试项目并启动自主 Swarm。
复用正式预览服务完成浏览器打开、信号停止和安全清理。
补充命令契约、跨平台目录、项目哨兵和预览地址测试。
同步客户端技术方案与团队复验流程。
2026-07-23 12:15:26 +08:00
menghao
ff84b5a308
修复AI游戏创作壳跨平台启动 ( #107 )
...
Project CI / Frontend tests (push) Failing after 20s
Project CI / Repository checks (push) Successful in 1m33s
Project CI / Backend tests (push) Successful in 4m7s
Project CI / Native shell tests (push) Successful in 11m20s
修复 macOS 下 Unix 文件身份比较和临时目录测试兼容
隔离 AI 游戏创作本地数据库与发布身份并阻止旧 schema 降级启动
完善 Tauri 开发栈错误传播和 POSIX 子进程树清理
跳过 macOS 不支持的进程指标回调以消除周期告警
补充开发调度测试、技术方案和团队排障记忆
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/107
Co-authored-by: menghao <mh18530625731@163.com >
Co-committed-by: menghao <mh18530625731@163.com >
2026-07-23 10:50:02 +08:00
AIGameCreator App
167b11d52e
完善自主 Swarm 无干预可玩交付
...
固定首批程序实现与质量只读职责,并在计划执行前阻断质量 Agent 项目写入
要求非只读专业 Agent 完成本人修改和对应 revision 验证后再交付
补齐 Provider 瞬态重试、最终回复和 Swarm CLI 终态收敛
升级 Provider action batch v3 并兼容 v2/v1 持久恢复
扩展确定性与真实外部 Provider 塔防验收、前端状态和项目文档
2026-07-23 01:06:54 +08:00
AIGameCreator App
7b145b3067
修复自主构建等待确认导致的循环中断
...
将自主模式剩余确认策略统一失败关闭并保持标准模式语义
迁移旧自主确认批次并在同一 Session 和 run 重新规划
补齐零执行审计、恢复回归和真实可玩验收记录
2026-07-22 20:57:37 +08:00
kdletters
080dca8c4e
实现精选顺序分列瀑布流
...
Project CI / Repository checks (push) Successful in 46s
Project CI / Frontend tests (push) Successful in 49s
Project CI / Native shell tests (push) Successful in 2m35s
Project CI / Backend tests (push) Successful in 3m7s
按容器宽度循环分配精选卡片到三列、两列或单列
使用 ResizeObserver 动态重排并保留 Grid 安全回退
补充布局临界值、分页追加和样式回归测试
同步创作主页文档与项目共享决策
2026-07-22 20:30:53 +08:00
AIGameCreator App
64ca2f99b2
修复多 Agent 并行写入导致的自主构建中断
...
将执行前 project revision 漂移改为 blocked observation 并在同一 run 自动重新规划
为 file.write 和 file.patch 增加项目锁内 pending 与 revision 二次校验
补充 stale action 回归、真实外部模型与确定性可玩塔防验收记录
2026-07-22 19:49:12 +08:00
kdletters
5d6a426013
统一后台精选审核素材预览
...
抽取后台素材媒体共享组件并统一懒换签与限流重试
为精选审核补充列表和详情中的素材预览交互
透传精选素材缩略图字段并覆盖历史 OSS 地址回归
同步后台预览数据契约与排障文档
2026-07-22 18:49:09 +08:00
AIGameCreator App
9371cc537a
并行拆分客户端生成与验收大型模块
...
拆分 tool-plan 持久交接的模型、校验、发现和跨平台存储模块。
拆分旧生成链的提示、画布、产物、生命周期和追踪模块。
拆分 Swarm CLI 的输入、观察、终态判定、报告与测试模块。
拆分浏览器发现、CDP、网络策略、试玩、证据与测试模块。
补充兼容可见性、集成验证和第三轮拆分文档。
2026-07-22 18:28:19 +08:00
kdletters
2c134d87da
修复精选活动卡图片读取权限
...
补齐后台活动卡图片上传确认与私有资产登记链路
为启用活动卡当前对象键派生受限匿名读取授权
覆盖禁用换图越目录及历史未登记对象回归场景
同步后端架构创作主页与项目排障文档
2026-07-22 18:25:52 +08:00
kdletters
7c9edca923
合并稳定画布素材删除异步测试 ( #109 )
Project CI / Repository checks (push) Successful in 55s
Project CI / Frontend tests (push) Successful in 29s
Project CI / Native shell tests (push) Successful in 2m13s
Project CI / Backend tests (push) Successful in 2m48s
2026-07-22 18:21:39 +08:00
kdletters
9023d6df1e
稳定画布素材删除异步测试
...
Project CI / Backend tests (pull_request) Successful in 3m15s
Project CI / Repository checks (pull_request) Successful in 1m5s
Project CI / Frontend tests (pull_request) Successful in 43s
Project CI / Native shell tests (pull_request) Successful in 3m18s
逐次等待带 objectKey 的素材完成换签并渲染画布图片
记录画布签名图片测试的异步等待约定
2026-07-22 18:06:10 +08:00
k88936
9bb4942ae7
Editor agent 右键菜单支持复制, 引用,下载 ( #95 )
...
Project CI / Repository checks (push) Successful in 1m21s
Project CI / Frontend tests (push) Successful in 31s
Project CI / Native shell tests (push) Successful in 2m25s
Project CI / Backend tests (push) Successful in 3m7s
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/95
Co-authored-by: 王德宇 <kvtodev@outlook.com >
Co-committed-by: 王德宇 <kvtodev@outlook.com >
2026-07-22 18:00:27 +08:00
kdletters
aba65d49f8
合并预构建Gitea CI工具链镜像 ( #106 )
...
Project CI / Repository checks (push) Successful in 41s
Project CI / Frontend tests (push) Failing after 1m27s
Project CI / Backend tests (push) Successful in 2m45s
Project CI / Native shell tests (push) Successful in 2m58s
预装并固定Gitea CI工具链镜像
预热npm与Cargo依赖下载缓存
在push与PR中执行完整项目检查
2026-07-22 17:52:40 +08:00
AIGameCreator App
e142ef5eac
修复自主构建收束回复与公共失败审计
...
为已通过完成门禁的自主构建总控补充确定性最终回复兜底。
保留 Provider 失败生命周期并沿用回复流与 finalization 幂等提交。
将公共失败事件和 Agent DB 审计改为哈希、长度与稳定分类。
补充私有诊断隔离回归、真实外部 E2E 证据与项目文档。
2026-07-22 17:48:00 +08:00
kdletters
27f66bf0b1
稳定AI原生壳终态审计测试
...
Project CI / Repository checks (push) Successful in 1m39s
Project CI / Frontend tests (push) Successful in 2m0s
Project CI / Backend tests (push) Successful in 6m18s
Project CI / Native shell tests (push) Successful in 13m6s
让最终回复失败测试等待 Runtime 终态与 Agent lane 完整释放
让并行后台任务测试在读取对话和审计前等待两个 Agent lane 释放
补充异步终态测试的具体回归用例说明
2026-07-22 16:42:20 +08:00
AIGameCreator App
759951ab12
继续拆分客户端工作区与 Agent 运行时模块
...
拆出项目工作区视图、命令策略、摘要命令与开发面板模块。
拆出 Runtime action、driver 与 protocol 的职责模块并保留稳定 facade。
保留测试模块、兼容重导出与原有可见性边界。
补充结构拆分决策、踩坑记录与实施计划验收结果。
2026-07-22 16:03:34 +08:00
kdletters
f92c1a6f43
稳定AI分支Cargo依赖准备
...
Project CI / Repository checks (push) Successful in 2m4s
Project CI / Frontend tests (push) Successful in 2m36s
Project CI / Backend tests (push) Successful in 4m23s
Project CI / Native shell tests (push) Failing after 8m52s
在后端测试前有界重试server-rs依赖fetch
在原生门禁前分别准备桌面壳和AI壳Rust依赖
保持测试与编译命令单次执行并继续暴露真实失败
2026-07-22 16:01:12 +08:00
kdletters
084543621b
优化AI游戏创作分支CI依赖准备
...
Project CI / Repository checks (push) Successful in 1m48s
Project CI / Frontend tests (push) Successful in 2m16s
Project CI / Backend tests (push) Failing after 47s
Project CI / Native shell tests (push) Failing after 10m15s
四个CI任务复用预构建工具链与下载缓存
直接从Gitea checkout并增加npm和Git网络重试
保留AI壳独立依赖安装测试与双Cargo锁门禁
2026-07-22 15:57:22 +08:00
kdletters
f4f7d8ac20
预热Gitea CI项目依赖缓存
...
Project CI / Repository checks (pull_request) Successful in 42s
Project CI / Frontend tests (pull_request) Successful in 1m6s
Project CI / Native shell tests (pull_request) Successful in 3m37s
Project CI / Backend tests (pull_request) Successful in 3m27s
将npm与Rust依赖下载缓存预热到固定CI镜像
改为直接从Gitea checkout并增加网络重试
收窄镜像构建上下文并补齐离线与运行时校验
同步Runner切换边界和运维文档
2026-07-22 15:44:40 +08:00
kdletters
2e02c28d0a
预构建Gitea CI工具链镜像
...
Project CI / Frontend tests (pull_request) Failing after 1m38s
Project CI / Repository checks (pull_request) Failing after 1m38s
Project CI / Native shell tests (pull_request) Failing after 13s
Project CI / Backend tests (pull_request) Failing after 3m23s
固定Node、Rust、Chrome与系统依赖并生成内容寻址镜像
四个CI任务改用genarrative-ci并保留独立npm ci
补充镜像构建装载导出和运行时沙箱校验脚本
同步开发运维文档与项目共享记忆
2026-07-22 14:58:05 +08:00
AIGameCreator App
0aaa191f8d
并行拆分客户端运行时与项目摘要模块
...
将 runtime_tools 拆为十五个职责模块并保留 Agent 可见性
将 Runner 拆为协议端点分发客户端与所有权模块
将进程会话拆为模型持久化生命周期 IO 恢复与测试模块
将项目摘要拆为十四个无环模块并保留一百一十二个导出
记录并行拆分边界与稳定树验收规则
2026-07-22 14:45:36 +08:00
AIGameCreator App
2ec05ba85d
修复自主构建验证收敛与浏览器取证
...
限制旧试玩失败下的重复委派并强制当前 revision 复验
收紧固定试玩控件唯一可见启用合同
为 Chrome 使用短临时目录并支持当前 run 截图别名
补齐确定性门禁与运行时决策记录
2026-07-22 14:43:55 +08:00
kdletters
52ade75007
稳定Gitea Runner镜像启动
...
Runner固定镜像改为缓存优先并保留digest验真规则
开发运维和共享流程同步force_pull配置与升级步骤
踩坑记录补充registry TLS超时的根因与验证方法
2026-07-22 11:52:15 +08:00
kdletters
017e956724
补齐AI原生CI浏览器依赖
...
Project CI / Frontend tests (push) Successful in 2m38s
Project CI / Repository checks (push) Successful in 2m56s
Project CI / Backend tests (push) Successful in 9m4s
Project CI / Native shell tests (push) Successful in 15m6s
通过 Google 官方签名 APT 源安装 headless Chrome
保持真实 DOM 与 Canvas smoke 不降级
同步 Gitea CI 运维要求和共享踩坑记录
2026-07-21 23:15:10 +08:00
kdletters
b6c85a5216
稳定AI原生壳异步终态测试
...
Project CI / Frontend tests (push) Successful in 2m52s
Project CI / Repository checks (push) Successful in 3m12s
Project CI / Backend tests (push) Successful in 9m11s
Project CI / Native shell tests (push) Failing after 12m37s
等待 Agent 终态和执行通道释放后再断言持久化副作用
使用一次性测试注入覆盖 CI root 环境下的对话写失败
补充异步 Runtime 与 CI 写失败的共享踩坑记录
2026-07-21 22:56:17 +08:00
AIGameCreator App
be89296492
拆分 AI 游戏创作客户端大型模块
...
拆分 App 认证、壳层、运行配置与项目摘要模块
拆分 Tauri 项目能力与 Rust 测试领域模块
拆分界面测试与 Agent Runtime 真实 E2E 套件
补充源码扫描和客户端模块化文档约定
2026-07-21 22:53:29 +08:00
kdletters
ae9502d9ed
稳定Gitea CI依赖安装
...
Project CI / Frontend tests (pull_request) Successful in 1m59s
Project CI / Repository checks (pull_request) Successful in 2m55s
Project CI / Native shell tests (pull_request) Successful in 6m38s
Project CI / Backend tests (pull_request) Successful in 7m37s
Project CI / Frontend tests (push) Successful in 1m44s
Project CI / Repository checks (push) Successful in 2m37s
Project CI / Native shell tests (push) Successful in 7m3s
Project CI / Backend tests (push) Successful in 8m5s
保留隔离 runner 的受控代理环境
为 Cargo 与 rustup 下载增加有界重试
记录 Runner systempaths 修补和真实 job 验收口径
2026-07-21 22:23:49 +08:00
kdletters
a273377b17
稳定AI原生壳全量测试
...
Project CI / Frontend tests (push) Successful in 2m47s
Project CI / Repository checks (push) Successful in 3m6s
Project CI / Backend tests (push) Successful in 10m25s
Project CI / Native shell tests (push) Failing after 15m34s
为 command.exec 沙箱测试安装受信任的 ripgrep
将共享后台锁的 Tauri suite 固定为单线程
同步 CI 调度与排障文档
2026-07-21 22:23:17 +08:00
kdletters
94ee363d84
补齐原生CI的merged-usr预检
...
Project CI / Frontend tests (push) Successful in 2m49s
Project CI / Repository checks (push) Successful in 3m24s
Project CI / Backend tests (push) Successful in 8m21s
Project CI / Native shell tests (push) Failing after 10m21s
按运行时代码动态复现 merged-usr 符号链接
避免 bubblewrap canary 因动态加载器路径误报失败
2026-07-21 22:03:01 +08:00
kdletters
5d045d532f
修复隔离CI的原生沙箱环境
...
Project CI / Native shell tests (push) Failing after 2m18s
Project CI / Frontend tests (push) Successful in 3m17s
Project CI / Repository checks (push) Successful in 3m56s
Project CI / Backend tests (push) Successful in 9m25s
为 rustup 引导和工具链安装增加有界重试
显式安装并预检 bubblewrap 沙箱能力
将 Node 与 Rust 工具暴露到受信任系统路径
记录 Runner systempaths 空切片修补与验收口径
2026-07-21 21:56:23 +08:00
kdletters
bf349a38a3
稳定隔离CI的Cargo依赖下载
...
Project CI / Frontend tests (push) Successful in 2m50s
Project CI / Backend tests (push) Failing after 3m1s
Project CI / Repository checks (push) Successful in 3m16s
Project CI / Native shell tests (push) Failing after 11m25s
关闭 Cargo HTTP multiplexing,降低代理链瞬时 TLS EOF 影响
将 Cargo 网络重试次数提高到 10 次
同步开发运维与共享工作流说明
2026-07-21 21:38:03 +08:00
kdletters
79b9404983
修正隔离CI的代理与提权流程
...
Project CI / Frontend tests (push) Successful in 3m2s
Project CI / Repository checks (push) Successful in 3m21s
Project CI / Backend tests (push) Failing after 3m36s
Project CI / Native shell tests (push) Failing after 11m16s
保留root任务的代理环境并为非root sudo透传受控代理
记录Gitea 1.26.4与rootless runner隔离部署
沉淀Docker socket和Compose路径排障经验
2026-07-21 21:28:14 +08:00
k88936
29369e6376
fix: 画布鼠标/触摸板可以上下滚动,无法左右滚动 ( #100 )
...
Project CI / Frontend tests (push) Successful in 1m39s
Project CI / Repository checks (push) Successful in 2m38s
Project CI / Native shell tests (push) Successful in 5m25s
Project CI / Backend tests (push) Failing after 5m27s
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/100
Co-authored-by: 王德宇 <kvtodev@outlook.com >
Co-committed-by: 王德宇 <kvtodev@outlook.com >
2026-07-21 20:50:03 +08:00
AIGameCreator App
9fad853440
拆分 Agent 运行时模块
2026-07-21 20:48:11 +08:00
kdletters
1f29ea6d8c
稳定AI前端异步测试
...
Project CI / Native shell tests (push) Failing after 59s
Project CI / Backend tests (push) Failing after 59s
Project CI / Repository checks (push) Failing after 1m58s
Project CI / Frontend tests (push) Failing after 2m46s
等待项目Agent运行态水合完成后再断言提交方式
避免干净runner较慢时同步查询抢跑
2026-07-21 20:19:13 +08:00
kdletters
5611b60d7f
修复原生CI命令路径
...
Project CI / Frontend tests (push) Failing after 3m0s
Project CI / Repository checks (push) Successful in 3m3s
Project CI / Backend tests (push) Successful in 7m22s
Project CI / Native shell tests (push) Failing after 10m18s
将setup-node的Node与npm映射到受信任系统目录
保持command.exec生产安全白名单不变
同步更新CI开发运维文档
2026-07-21 20:12:20 +08:00
kdletters
676c4beb60
补齐Gitea测试门禁
...
Project CI / Backend tests (push) Successful in 5m35s
Project CI / Native shell tests (push) Failing after 11m9s
Project CI / Repository checks (push) Successful in 2m23s
Project CI / Frontend tests (push) Successful in 2m16s
拆分前端、后端与原生壳测试任务
接入server-rs workspace正式全量测试
将AI游戏创作分支及独立依赖纳入CI
修复既有测试断言、格式与异步稳定性问题
稳定AI Tauri并发回执测试
更新开发运维和共享流程文档
2026-07-21 19:40:38 +08:00
AIGameCreator App
a983597f13
修复 Agent 原生工具严格 Schema 兼容
2026-07-21 19:24:18 +08:00
AIGameCreator App
d8a070f8f8
补齐自主可玩项目确定性门禁
...
- 新增确定性 OpenAI Chat Provider 与安全 E2E wrapper
- 修复成功试玩后历史失败 observation 仍阻断收束的问题
- 覆盖塔防专业返工、双视口和 37 条试玩断言并同步文档
2026-07-21 18:24:52 +08:00
kdletters
31a93c6842
补齐Gitea测试门禁
...
Project CI / Repository checks (push) Successful in 2m9s
Project CI / Frontend tests (push) Successful in 1m22s
Project CI / Backend tests (push) Successful in 7m25s
Project CI / Native shell tests (push) Successful in 5m56s
拆分前端后端与原生壳测试任务
接入server-rs正式workspace全量测试
修正过期Rust断言和Vitest遗漏路径
将AI游戏创作分支纳入CI触发范围
2026-07-21 18:12:43 +08:00
AIGameCreator App
1fce5460f9
修复总控试玩失败后的专业返工收口
...
总控进入协作后将试玩失败收窄为 code-prototype 后续委派,避免越权直接修改项目
保留无协作兼容路径和新 revision 先复验再试玩的完成门禁
补齐协作分支回归测试并修正自主完成合同测试夹具
同步 Runtime 技术方案、踩坑记录和 Rust 格式
2026-07-21 17:26:16 +08:00
kdletters
7e58fd2195
接入Gitea项目检查门禁
...
Project CI / Repository checks (push) Successful in 3m56s
Project CI / Backend checks (push) Successful in 3m14s
Project CI / Native shell checks (push) Successful in 4m13s
新增 master 推送、PR 和手工触发的三路项目检查工作流
收紧 PR 基线、只读权限、action 固定版本与依赖锁漂移检查
补充 Gitea 版本、隔离 runner 和 required context 运维说明
2026-07-21 17:15:57 +08:00
kdletters
6bed37542c
调整 VectorEngine 图片模型兜底顺序
...
统一 gpt-image-2 首发并在符合条件的失败后切换 gpt-image-2-c
保留总尝试预算、worker deadline 与首选失败审计
补齐响应图片校验、脚本兜底和回归测试
同步后端架构、开发运维和项目共享记忆文档
2026-07-21 17:06:39 +08:00
kdletters
7072e52a25
收口美术 Agent 整体超时预算
...
为消息规划链路增加 18 分钟总 deadline。
修正 LLM 重试响应体错误的 attempt 计数。
统一配置、定价失败中文文案并补齐测试文档。
2026-07-21 16:44:46 +08:00
AIGameCreator App
81d9252b6b
修复自主构建交付与试玩收敛
...
修复截断 scaffold 强制小范围补丁并提高修复输出预算
修复验证后并行读取批次快照不一致
收窄已验证交付并支持总控验收专业产物 revision
补充自主构建、Provider 批次和试玩验证门回归测试
2026-07-21 16:18:35 +08:00
kdletters
48c9ee2fae
优化美术 Agent 长等待提示与超时处理
...
将 120 秒硬超时改为请求存活时的耐心等待提示。
收口 provider 安全上限、有限重试和明确失败错误。
补齐等待互斥、计时清理、前后端测试及契约文档。
2026-07-21 16:12:17 +08:00
lhk229
8bdc728fd3
Fix/padding ( #96 )
...
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/96
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-07-21 16:11:22 +08:00
kdletters
8ed0e6ffa8
修复 SpacetimeDB schema guard 基线扫描误报
...
统一当前工作树与基线提交按 Cargo lib.path 扫描可达模块
补充保留旧源码误报与真实 accessor 重复回归测试
更新旧创作模板退役方案和项目排障记忆
2026-07-21 13:57:10 +08:00
AIGameCreator App
ecff991330
修复自主试玩失败状态持久化
...
持久化当前 revision 的试玩失败标记并驱动总控进入源码修复
在试玩通过后安全清除失败凭证并补充上下文压缩回归测试
2026-07-21 13:30:16 +08:00
AIGameCreator App
9bb048c11b
完善自主构建运行时并提高 Runner 启动容错
...
完善 Agent Swarm 自主游戏构建、委派协作、验证门和试玩闭环
补齐浏览器验证、CLI 入口、项目状态与运行时测试覆盖
将外部 Agent Runner 冷启动超时提高到 30 秒并增加回归测试
同步真实 E2E 自测脚本、配置检查和项目决策记录
2026-07-21 12:53:27 +08:00
AIGameCreator App
1d4aad2600
合并远端 AI 游戏创作分支改动
...
同步首页侧栏与富文本输入改造
保留当前 GameAgent 工作台和自主 Runtime 改动
2026-07-21 11:46:38 +08:00
AIGameCreator App
67ed73d857
合并 GameAgent V1 UI 分支
...
引入游戏创作工作台与资源预览界面
同步 UI 原型生成和视觉验收约束
# Conflicts:
# apps/ai-game-creator-shell/src/App.tsx
# docs/README.md
# docs/project-memory/shared-memory/decision-log.md
# server-rs/crates/api-server/src/editor_project.rs
2026-07-21 11:20:56 +08:00
AIGameCreator App
cd97427f26
收紧UI原型生成与视觉验收
...
强化UI原型专用2K横屏提示词与画板Art Spec
要求当前图片通过结构化视觉语义验收后才能完成
将未验收图片明确标记为候选界面图
修正UI设计负面词并补齐Runtime、界面与文档回归
2026-07-20 21:46:48 +08:00
kdletters
2f9ad4b11c
合并图片画布结构化持久化
...
引入画布图层与生成器结构化存储、revision CAS 保存及迁移回滚流程
补齐历史画布资源修复脚本、SpacetimeDB schema、迁移和生成绑定
前端接入串行保存队列并保留 2MiB 旧布局兼容回退
优化角色动画单进程批量抽帧并同步 OpenAPI、运维与项目文档
同步 active mapper 的 V2 画布保存契约,保证 master 后端可编译
2026-07-20 21:34:05 +08:00
AIGameCreator App
a7323572a0
完善总控纯聊天交互边界
...
在独立聊天窗口复用工具确认与结构化追问控件
按项目保留未发送草稿并展示Runtime恢复确认
补齐草稿、恢复、确认和追问的界面回归测试
2026-07-20 21:31:31 +08:00
AIGameCreator App
a3769978a7
补齐总控聊天窗口事件权限
...
允许 supervisor-chat 窗口监听和取消监听 Runtime 事件
保证独立聊天窗口实时接收总控 Agent 状态与回复更新
2026-07-20 21:18:22 +08:00
kdletters
f748dc72c3
收口图片生成任务超时预算
...
- 将四类 VectorEngine 图片任务纳入长任务预算并预留终态写回窗口
- 通过请求上下文传递绝对截止时间并约束发送重试与图片下载
- 允许显式下调单次请求超时并补齐预算回归测试
- 同步外部生成 Worker 运维文档与项目记忆
2026-07-20 20:57:34 +08:00
kdletters
1d17698619
优化角色动画批量抽帧
...
使用单个FFmpeg filter graph批量输出32、40或48帧
保留精确采样时刻和尾帧安全步长
补充整批缺帧诊断与真实短视频回归测试
同步角色动画设计、决策记录和排障说明
2026-07-20 20:57:11 +08:00
kdletters
06c12f40b6
修复画板 Portal 菜单主题继承
...
新增画板 Portal 主题桥接并同步亮暗主题
让编辑器根节点与 Portal 菜单共享完整品牌 Token
补充静音开关、角色动画与样式契约回归测试
同步图片画布技术方案和 Portal 排障记忆
2026-07-20 20:56:36 +08:00
kdletters
b49bf9c984
结构化图片画布持久化并补充历史资源修复
...
将旧布局上限统一提升至2MiB并接入revision CAS保存
新增画布图层、生成对话框和迁移状态结构化存储
新增migration operator保护的回填、激活和回滚脚本
新增历史图片映射及音频资源恢复的定向dry-run/apply流程
补齐前端保存队列、OpenAPI、Bindings、发布归档与回归测试
2026-07-20 20:45:15 +08:00
AIGameCreator App
b783d5d7c7
补齐项目图片资源预览
...
在工作台资源浮层中直接按比例展示已登记图片
新增受控 Tauri 图片读取以及权限、路径、格式和尺寸校验
补齐加载失败状态、布局回归、Rust 测试和技术文档
2026-07-20 20:18:04 +08:00
kdletters
f9e6ae40db
合并 master 最新 OSS 上传优化
...
合入 origin/master 的动画生成 OSS 上传优化
保留现役编辑器 Agent LLM client 与退役隔离边界
保留角色动画 OSS 客户端复用与并发限制
2026-07-20 20:08:55 +08:00
kdletters
ee3948b491
合并旧创作模板退役分支
...
合并 codex/retire-legacy-creation,退役旧创作模板业务并保留历史数据壳
保留 master 最新编辑器 Agent、画布和个人页能力
补齐现役编辑器 Agent 的 LLM 与生成结果读取链路
同步 Vite、ESLint、Rust workspace、SpacetimeDB 与文档边界
2026-07-20 20:06:26 +08:00
lhk229
a4b3898ff4
动画生成过程中的OSS上传行为优化 ( #93 )
...
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/93
Reviewed-by: 段舒康 <kdletters@qq.com >
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-07-20 19:50:37 +08:00
AIGameCreator App
3a8dff1404
完善游戏创作工作台与智能体恢复闭环
...
实现横屏项目开发工作台、资源画布、Supervisor 对话与专业 Agent 状态展示
修复总控和专业 Agent 重试、Runner 接管、历史成果跨 Run 持久展示及确认流程
补齐画板图片产物合同、客户端内预览、共享契约与安全边界
新增完整回归测试、工作台 PRD、技术方案与待解决事项
2026-07-20 19:48:05 +08:00
kdletters
fc8813a8ed
修复画布美术Agent规划与附件弹窗
...
显式标记待确认工具并在规划完成后结束当前回合
保留普通工具和Hook跳过场景的最大轮次保护并补充回归测试
修复附件选择弹窗Portal主题丢失导致的透明背景
同步画布Agent专题文档与共享排障经验
2026-07-20 19:29:34 +08:00
kdletters
8965a53fb8
修复维护退出阶段隐式拉取源码
...
将 Exit Maintenance 改为 agent none 并显式分配部署节点,只执行 current release 维护脚本。
增加生产运维静态门禁,禁止维护退出节点 checkout Git 或挂载 Git 凭据。
同步生产运维说明与 Jenkins 重启恢复场景的排障记录。
2026-07-20 18:55:35 +08:00
AIGameCreator App
36734e158e
新增总控Agent纯聊天开发窗口
...
新增开发态独立窗口路由与专业Agent开发页入口
固定复用project-supervisor活动会话、Runtime和持久对话
提供纯消息区、流式等待状态、输入框与运行时设置
补齐窗口编码、前端交互、开发态门禁和原生壳验证
同步AI游戏创作实施计划与项目决策记录
2026-07-20 17:25:58 +08:00
AIGameCreator App
a3337f4493
合并最新master分支
...
合入 origin/master 最新画布、外部接口与后端模块化改动。
按新队列语义解决画布测试和原生壳检查冲突。
把编辑器 Agent 迁移到模块化实现并适配 LlmRunRequest。
删除已废弃的旧编辑器 Agent 单文件与个人 Claude 本地配置。
2026-07-20 16:08:24 +08:00
AIGameCreator App
0fbb76fb94
补齐Agent Runtime工具计划强杀恢复门禁
...
新增真实 Provider 工具计划交接 checkpoint、Runner 强杀恢复与零重放验收。
收紧 Supervisor 首波协作、返工 runId 和持久 delivery 合同。
扩展敏感正文扫描、跨平台安全回归和 E2E 自测。
注册两级 npm 命令并同步 Runtime 验收文档与当前证据。
2026-07-20 15:48:07 +08:00
zhaojingyan
eb608ac6f2
完善图片画布撤销保护与操作提示 ( #89 )
...
为画布历史记录补充操作类型和内容消失保护
增加撤销成功、恢复成功及阻止提示并在三秒后隐藏
补充拖动、上传、生成和替换等操作的历史语义
保留恢复按钮、Ctrl+Shift+Z 快捷键和双向历史栈
补充撤销与恢复规则的定向测试和说明文档
---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Co-authored-by: kdletters <kdletters@qq.com >
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/89
Co-authored-by: oj-afraid-student <1373241747@qq.com >
Co-committed-by: oj-afraid-student <1373241747@qq.com >
2026-07-20 15:19:48 +08:00
k88936
125927e0e8
Ai game creator app home sidebar ( #86 )
...



TODO: 补充说明书链接
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/86
Co-authored-by: 王德宇 <kvtodev@outlook.com >
Co-committed-by: 王德宇 <kvtodev@outlook.com >
2026-07-20 15:03:23 +08:00
Yunine
a5669602c0
调整画布拖拽交互仅保留鼠标中键 ( #88 )
...
移除鼠标右键拖拽画布的交互处理
保留鼠标中键拖拽画布功能
同步更新相关交互测试
---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/88
Reviewed-by: 段舒康 <kdletters@qq.com >
Co-authored-by: Yunine <rxy24@mails.tsinghua.edu.cn >
Co-committed-by: Yunine <rxy24@mails.tsinghua.edu.cn >
2026-07-20 14:49:00 +08:00
kdletters
f1f2332e61
修复泥点余额明细刷新
...
钱包明细每次展开并在实时余额变化时读取最新拆分。
图片画板生成扣费或退款后同步刷新总额与充值中心。
充值中心读取增加 latest-wins 门禁并阻止旧响应覆盖权威结果。
补充钱包刷新、画板入口和充值乱序回归测试。
同步更新泥点统一资产入口决策记录。
2026-07-20 12:48:28 +08:00
AIGameCreator App
791a50ffe8
完善Agent Runtime工具计划持久交接
...
新增 tool-plan 成功响应私有账本并支持 base 与 repair 零网络恢复
补齐 Provider 生命周期闭合、终态清理和 Runner 空闲门禁
收紧 Agent DB 审计白名单并拒绝原始 Provider 与调用标识
加固 Unix exchange/quarantine 与 Windows 句柄枚举存储路径
扩展 E2E 自测、跨平台回归和 V1.43 工程文档
2026-07-20 11:05:11 +08:00
AIGameCreator App
58dad6e96d
补齐Swarm最终回复重试真实门禁
...
新增Supervisor最终回复瞬时故障、持久退避与Runner强杀真实验收入口
强化故障代理异步选择器、停止竞态和请求隐私回归
修复并行Agent文件写改删的短等待写锁与绝对路径脱敏
补充终态sidecar等待、并发写锁测试和六轮真实Provider证据
同步Runtime方案、实施计划与项目共享记忆文档
2026-07-20 05:50:24 +08:00
AIGameCreator App
c321aef489
完善 Agent Runtime 成功交接与终态恢复
...
新增 Provider 成功响应 handoff,绑定真实 requestId 并支持原子恢复
补齐 compaction 与 finalization v4 的 stream committed 提交事务
让 Runner 在 handoff 存在时保持 busy,并覆盖冲突与崩溃窗口
同步 V1.41 技术方案、实施计划和项目共享记忆
2026-07-20 02:31:11 +08:00
AIGameCreator App
50e33dd469
完善最终回复 Provider 持久重试恢复
...
将 final-reply 与前置上下文压缩接入持久重试 sidecar
恢复原请求和流式输出,避免重新规划与重复助手消息
补齐 Agent DB requestKind 契约与重启时序回归
同步 V1.40 文档、验证证据和未完成崩溃窗口
2026-07-20 01:00:06 +08:00
AIGameCreator App
160fe3a8b4
完善 Agent Provider 持久重试真实验收
...
将瞬态故障注入迁移到 Project Supervisor 首次工具规划并验证持久退避恢复
为故障代理补充仅含序号和时间的元数据请求审计与对应测试
强化真实 E2E 对并行委派、重启恢复、重试时序、分账和终局清理的验收
修正瞬态重试目标的 maxRetries 配置门禁并同步 Runtime 文档与项目记忆
2026-07-19 23:24:51 +08:00
AIGameCreator App
21abd45f86
完善Agent Provider持久重试与恢复
...
新增按Agent和run隔离的Provider重试sidecar与原子恢复扫描
接入首次工具规划和自动上下文压缩的持久等待与到期续跑
补齐Goal暂停恢复、取消、steer、FIFO、finalization和Runner idle门禁
移除请求指纹中的刷新时间并覆盖跨秒恢复与物理请求一致性
补充sidecar、Runner、并行调度回归及V1.39技术文档
2026-07-19 21:18:53 +08:00
AIGameCreator App
0ee8e664fa
完善父 run 协作策略快照与恢复
...
固化父 run 协作策略快照与独立绑定记录
统一危险 Agent/run ID 的路径键与锁身份
补齐 legacy claim、aborted batch 和非协作 v1 恢复边界
增强真实 E2E 的确认链与 source endpoint 隔离门禁
扩展协作回归至 52 项并同步 V1.38 文档验收状态
2026-07-19 18:52:33 +08:00
kdletters
b7c36074b9
热修图片画布布局上限至2MiB
...
将 API 与 SpacetimeDB 的画布布局校验上限统一提高到 2 MiB
为站内与外部画布保存接口增加 4 MiB 请求体上限
补充 2 MiB 边界通过和超限拒绝测试
2026-07-19 17:58:00 +08:00
kdletters
7ea463ed08
退役旧创作模板业务并保留数据壳
...
保留 SpacetimeDB 历史表、迁移白名单与最小兼容读取定义
移除旧创作前后端、worker、业务过程及纯业务 crate 的编译依赖
恢复现役创作、项目、我的入口及桌面移动导航
收紧 Vite、TypeScript、ESLint、Vitest 与静态资源退役边界
补齐开发栈、网关、原生壳和文档退役约束
2026-07-18 22:02:22 +08:00
lhk229
0c04bbbea3
内存优化 ( #91 )
...
BGfilter服务调用改为传url,减少内存占用
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/91
Reviewed-by: 段舒康 <kdletters@qq.com >
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-07-18 21:17:35 +08:00
kdletters
d465e9b66c
补充图集拆分中的前端表现
...
维护逐图层拆分状态并在请求结束后可靠清理
源图集显示扫描蒙层和拆图中状态胶囊
工具栏显示旋转图标并禁用重复提交
补充工作流、画布、工具栏测试及入口验收文档
2026-07-18 19:52:45 +08:00
kdletters
4ceb91cd48
完整恢复多产物原图回填画布
...
图标素材成功时同时回填透明图集和provider原图
UI素材提取成功时保留原图并将切片排列到其右侧
保持透明主结果锚点和后处理失败原图降级
同步多产物画布决策、踩坑与技术方案
2026-07-18 19:31:44 +08:00
kdletters
6926e5ecb1
恢复角色生成原图回填画布
...
角色生成成功时同时回填透明主图和右侧原图
保持透明图为生成器主锚点并保留失败降级边界
维持图标和UI生成不回填中间原图的现有规则
同步图片画布多产物文档和项目共享记忆
2026-07-18 18:58:56 +08:00
kdletters
bc76b1327d
修复项目重命名弹窗背景丢失
...
项目重命名弹窗改用平台工具弹窗壳继承主题
新增暗色主题下的重命名弹窗回归测试
补充 portal 弹窗主题丢失的排障记录
2026-07-18 17:44:43 +08:00
kdletters
9c9c8f468a
恢复平台个人页并阻断旧业务回流
...
恢复创作、项目、我的平台侧栏与现役搜索
恢复全宽个人页及资料编辑、充值兑换、社区反馈和 API Key 入口
迁移平台资料、钱包和设置客户端并移除旧创作依赖
新增 Vite 与 ESLint 退役模块门禁并补齐界面和搜索测试
同步旧创作退役方案、平台入口决策与踩坑记录
2026-07-18 17:29:06 +08:00
AIGameCreator App
29228afb9e
强化隔离智能体分阶段认领门禁
...
新增 minIsolatedGroupsBeforeClaim 协作策略并保持旧指纹兼容
首次 claim 前校验已建立与 ready group 数且保留既有恢复优先级
补齐只读 scope 边界、全量回归和真实 Provider 验收记录
2026-07-18 17:09:33 +08:00
menghao
47f3297e84
修复图片改造后二维清晰度降级问题 ( #90 )
...
前端按图层真实尺寸恢复图片改造比例与清晰度
后端在角色去背景后恢复生成原图像素尺寸
补充前后端二千像素尺寸回归测试
同步更新图片画布技术文档与项目决策记录
---------
Co-authored-by: MengHao <menghao@MengHaodeMacBook-Air.local >
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/90
Reviewed-by: 段舒康 <kdletters@qq.com >
Co-authored-by: 孟豪 <mh18530625731@163.com >
Co-committed-by: 孟豪 <mh18530625731@163.com >
2026-07-18 16:50:17 +08:00
kdletters
f3ab2f2ec0
恢复平台账号顶栏与我的页签
...
按新版创作页原布局恢复泥点入口与账号身份胶囊。
在桌面侧栏补回我的页签及游客、登录态个人页面。
个人页面只复用账号、钱包、统计、设置和法律信息等平台能力。
补充壳层与个人页面回归测试并更新退役边界文档。
2026-07-18 16:15:40 +08:00
kdletters
c56da8dc26
恢复新版创作主页与平台侧栏
...
恢复 /creation 新版创作工具主页及创作、项目公共侧栏。
将 creation-home 重新纳入 Vite、TypeScript、ESLint 与 Vitest 活动编译链。
恢复 /creation 的 Nginx 与 Pingora SPA 白名单并保留旧子路径下线边界。
补充路由、标题、CSS 过滤和网关 smoke 回归验证。
2026-07-18 15:41:55 +08:00
AIGameCreator App
9bdfad2822
补齐多组隔离智能体真实验收
...
将混合 Swarm 验收拆分为先行和后续两个 all-join 分组
校验单次 observed claim 汇总两组、跨组写入范围与创建时序
补充分阶段 Supervisor 提示、协作策略回归和真实 Provider 验收记录
2026-07-18 15:37:33 +08:00
kdletters
f625fe8e8b
修复退役样式开发态加载
...
将退役 CSS 源码过滤调整到 Tailwind 转换前执行
新增 Vite 插件顺序回归测试
补充退役方案与开发态白屏排障记录
2026-07-18 15:12:09 +08:00
AIGameCreator App
27a35c2e2c
保证混合协作回执完整观察
...
为静态回执和隔离 join 分配独立预算,拒绝静默截断
按精确 delegationId 集合推进 claim 观察并收紧恢复锁边界
补充 V1.36 回归测试与技术决策文档
2026-07-18 13:10:53 +08:00
kdletters
a5ae283561
修复画布Agent工具调用轮询状态同步
...
补齐工具调用轮询依赖并同步服务端终态
清理任务切换后的旧轮询,避免迟到响应覆盖
新增失败、取消及任务切换竞态测试
2026-07-18 12:44:40 +08:00
kdletters
5e512a6b23
修复 Rust 代码格式
2026-07-18 12:22:58 +08:00
AIGameCreator App
6299faa81e
原子化隔离 Agent 结果认领
...
为多 ready all-join 增加持久 claim journal 和全锁预取
补齐旧 partial claim、跨 action 重放与未观察完成门禁
修复 Agent DB 撕裂尾行后的幂等认领审计
保证 readyIsolatedJoins 完整输出并封堵多 owner 冲突
补充锁竞争、迁移恢复和全量回归验证
同步 Runtime V1.35 技术方案与共享决策
2026-07-18 04:59:08 +08:00
AIGameCreator App
edfeeff701
封堵隔离子 Agent 命令越界
...
禁止动态隔离子 Agent 通过项目级命令绕过 writeScopes
在工具策略和 Provider 批次预检中统一执行隔离门禁
补充恶意 sibling 写入、旧 pending 与混合协作回归
同步 Runtime V1.34 技术方案和共享决策
2026-07-18 03:16:36 +08:00
AIGameCreator App
1b045a5f46
收敛 Agent 工具计划格式修复
...
过滤 Provider 推理内容并受限归一化非最终工具旁白
为原生工具协议增加递归重复键校验和稳定错误分类
补充 repair 统计、失败证据与零泄漏真实验收门禁
同步 Agent Runtime 技术方案和项目决策记录
2026-07-18 02:04:08 +08:00
AIGameCreator App
0ca15a2645
强化项目总控协作合同与崩溃恢复
...
新增 Supervisor 协作策略控制面和 mixed 首批原子预检。\n升级 Provider action batch v2 并补齐 isolated spawn 幂等恢复与旧协议失败关闭。\n限制委派后总控项目变更、进程 stdin 和破坏性 MCP,同时保留进程治理能力。\n加固委派、隔离 Agent、持久进程和 Provider 日志的持久化与并发边界。\n扩充确定性回归、真实 Provider 验收器、自测和项目文档。
2026-07-17 23:36:43 +08:00
kdletters
e9c3dc1120
退役旧创作模板业务
...
保留 SpacetimeDB 历史表、迁移白名单与旧业务源码
切换前端 active 入口并解除旧创作页面和路由编译链
移除旧后端路由、worker 与纯业务 crate 依赖
收敛 SpacetimeDB 模块为历史数据壳
同步 Nginx、Pingora、验证门禁与架构文档
2026-07-17 22:07:52 +08:00
kdletters
5468bb3212
修复画布生成器恢复串台
...
区分生成结果归属与派生输入关系,避免角色动作和快速编辑面板串台
补全角色动作、视频、音效、背景音乐与宣发素材的生成器恢复类型
统一清理剪切和素材删除后的关联生成状态,避免孤立占位
补充生成器恢复、宣发类型和删除清理回归测试并同步编辑器文档
2026-07-17 21:23:12 +08:00
k88936
f5368c825f
Editor agent refactored ( #76 )
...
重构了editor agent.
使得它能进行多轮工具调用, 把工具调用的结果嵌入到上下文里。
对于上下文的图片, 使用哈希后的id用来引用,不暴露细节信息to llm。
当前实现, 状态直接维护在json doc里, 需要对整个doc加锁,任务目前只能串行。
把SSE改成一个简单请求( 因为生图工具耗时需要二次确认, 不需要再实时展示给用户进度)。
增加确认/取消生图操作。
把tool的参数和错误情况做了反馈。
TODO: 工具调用的规范/prompt还可以改进。
改用external job来做素材生成, 针对来自editor agent 的生成会把生成资产的引用加入到结果json里,
客户端轮询 external job 确定生成状态, 发现结束了或者失败了就 重新get 会话,后端重新提供会话的时候把 结果插入回会话历史里,用来让 ai 引用 以及显示
---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/76
Reviewed-by: 段舒康 <kdletters@qq.com >
Co-authored-by: 王德宇 <kvtodev@outlook.com >
Co-committed-by: 王德宇 <kvtodev@outlook.com >
2026-07-17 21:03:15 +08:00
kdletters
387a1c26e3
完成全量检查整改
...
清理已跟踪原始日志与个人本地配置
修复前后端有效门禁、测试和构建问题
补齐生产 Jenkins、SpacetimeDB 本地命令与文档约束
收紧图片编辑器状态、附件与媒体引用测试
排除已下线旧创作入口测试并清理 warning
2026-07-17 16:56:46 +08:00
kdletters
18af49c27f
收紧编辑器媒体引用契约
...
禁止当前画布与外部编辑器接口接收 Data URL 和 Blob URL
生成请求统一先上传 OSS 并使用稳定资源引用
角色动画和视频签名前校验资源归属并支持资源与素材 ID
同步前后端 256KB 引用限制及相关文档测试
2026-07-17 16:44:01 +08:00
AIGameCreator App
c607451edd
补齐总控静态与隔离混合协作验收
...
新增同一 Supervisor Session/run 下 static delegate 与 isolated all-join 的真实 Provider 门禁。
补齐首批确认、并行重叠、强杀恢复、持久化身份和零泄漏审计。
增加双向完成屏障回归、命令入口及 Runtime/开发文档记录。
修正原生计划元调用与业务 action 数量的验收边界。
2026-07-17 16:37:26 +08:00
kdletters
93b27a2307
修复图集拆分运行时身份传递
...
在 procedure 外层捕获调用 identity 并显式传入事务
补齐素材归组持久表的迁移导入导出清单
修正 DDD 门禁注释解析并补齐编辑器 Agent 事件落位
同步后端架构约束与项目排障记忆
2026-07-17 14:45:11 +08:00
kdletters
8febb799f3
升级SpacetimeDB至2.6.1
...
统一Rust crates、CLI、容器镜像和生产provision版本
使用2.6.1 CLI重新生成Rust bindings
更新运行检查、架构运维文档和项目共享记忆
2026-07-17 13:44:12 +08:00
AIGameCreator App
4474fb9eab
补齐智能体消息活锁回归与验收记录
...
新增重复 agent.message 的有界活锁回归并验证持久化幂等
收紧 isolated all-join 与 PTY 测试的异步竞态断言
同步自主 Swarm 真实验收结果、工作流和长期踩坑记录
2026-07-17 12:21:34 +08:00
AIGameCreator App
5263efdfc1
补齐自主Swarm终端验收与恢复门禁
...
新增Project Supervisor自主终端协作真实E2E与隔离AppData安全检查
为Swarm Chat输出脱敏单行turn report并补齐终端收束断言
强化Supervisor多专业并行委派与语义验收提示
修复静态委派和隔离all-join混合等待及认领恢复
为agent.message增加语义幂等持久化并避免重复消息伪造进展
补充消息幂等、混合恢复和turn report定向回归测试
增加根级与应用级自主验收命令并更新Runtime技术文档
2026-07-17 11:48:07 +08:00
AIGameCreator App
5a0e647662
补齐Swarm瞬态重试真实门禁
...
新增受控回环故障代理及代理环境绕过保护
扩展Supervisor Swarm真实E2E的重试零副作用与恢复断言
补充代理测试、命令入口和Runtime协作文档
2026-07-17 09:28:41 +08:00
AIGameCreator App
570d346db2
修复本地回环端口池耗尽
...
让Agent Runner与本地预览复用Linux非临时端口回退
让MCP HTTP测试夹具预留可用端口并有限重试
补充端口池耗尽排障与验证约束
2026-07-17 07:12:08 +08:00
AIGameCreator App
0e1b158579
完成Agent Runtime总控群协作验收
...
补齐Provider瞬态重试、原生动作批次与持久恢复门禁
完善总控委派合同、返工认领和专业Agent私有消息审计
新增supervisor-swarm真实E2E验收与定向回归
同步Runtime V1.28技术方案、决策记录和排障经验
2026-07-17 07:06:25 +08:00
kdletters
ed1a972c9e
禁止快速编辑任务中继续框选
...
快速编辑进入生成中后移除框选工具和覆盖层
新增挂起请求回归测试覆盖任务开始后的锁定状态
更新图片画布快速编辑项目记忆与验证口径
2026-07-16 22:23:29 +08:00
kdletters
a0242e3547
修复图集快速编辑模型路由
...
快速编辑请求补齐模型比例和清晰度参数
后端按模型分流nanobanana与GPT图片编辑协议
兼容旧队列参数并收紧图片编辑计费边界
补充图集回归测试并同步OpenAPI与编辑器文档
2026-07-16 22:08:05 +08:00
kdletters
77e931ed96
修复外部编辑器接口测试格式门禁
...
调整图片生成警告断言的 rustfmt 换行格式。
2026-07-16 21:07:10 +08:00
AIGameCreator App
f24e0dcf30
完善Agent多动作批次持久化
...
新增Provider多动作整批预检、确认聚合和稳定cursor恢复
修复修改后验证门禁、Agent DB落盘顺序和Goal恢复cursor回退
补齐批次恢复、拒绝、并行、故障与最终收束回归测试
同步Runtime V1.28技术方案和项目决策记录
2026-07-16 20:02:29 +08:00
kdletters
0253a35e72
补齐归档清单上传限速
...
让已有全量归档的 manifest 继承同一上传带宽限制器
收紧并发上传共享累计带宽预算测试
2026-07-16 19:02:42 +08:00
kdletters
947f59c894
限制数据库备份上传带宽
...
新增共享上传带宽限制器并覆盖数据对象、分片、catalog 与 latest pointer
补齐并发聚合限速、源流错误传播和大型 manifest 分块测试
更新备份环境变量示例与生产运维文档
2026-07-16 19:00:35 +08:00
lhk229
aecabdacfd
新抠图算法 ( #85 )
...
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/85
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-07-16 18:33:06 +08:00
kdletters
94014392ed
优化逐文件小对象上传
...
小于等于16MiB的CAS对象改用单次PUT并执行HEAD验真
大对象继续保留multipart上传与失败清理
补齐单次PUT请求路径测试和运维说明
2026-07-16 18:28:04 +08:00
kdletters
40684aafcd
优化逐文件备份并发上传
...
增加files对象PUT和HEAD受控并发
限制并发范围并降低大目录进度日志量
补齐并发上限测试、环境示例与运维文档
2026-07-16 18:18:26 +08:00
kdletters
56d70bf720
补齐逐文件备份符号链接恢复
...
记录data-dir内部相对符号链接并拒绝绝对或越界目标
恢复full catalog时安全重建符号链接
补齐备份测试与生产运维文档
2026-07-16 18:16:38 +08:00
kdletters
9ae3f53989
完善SpacetimeDB逐文件增量备份
...
新增data-dir逐文件CAS基线、history归档与安全清理
发布并校验OSS latest pointer,支持异机自动恢复
接入dev和release可选的files-history定时备份profile
补齐备份测试、生产门禁、环境示例与运维文档
2026-07-16 18:00:06 +08:00
AIGameCreator App
3fd799b723
合并远端 AI 游戏创作分支改动
...
接入首页组件拆分与草稿状态持久化
保留项目总控 Supervisor 会话和运行时入口
合并 Tailwind 首页样式与 Agent 移动端布局
同步客户端 API、测试及实施计划
2026-07-16 17:42:58 +08:00
AIGameCreator App
d575b6887f
合并 master 最新改动
...
同步 origin/master 至 b303605bf
保留项目总控 Runtime 决策并合入后台账号与画布更新
沿用当前 platform-llm LlmRunRequest 接口解决背景决策冲突
2026-07-16 17:07:13 +08:00
AIGameCreator App
13629c60cb
接入正式项目总控对话入口
...
登录后项目开发页接入 project-supervisor active Session 与 same-run steer
为全新项目自动创建 Supervisor Session 并隔离 legacy 项目对话写入
展示总控运行状态、确认问答与专业 Agent 只读协作状态
补充桌面窄屏样式、界面回归测试和 V1.28 文档
2026-07-16 16:29:45 +08:00
AIGameCreator App
84328de5ad
强化项目总控合同委派与返工门禁
...
为 agent.delegate 增加验收合同、预期产物和返工身份
持久化结构化证据并收紧 Supervisor 唯一回复门禁
补齐并发返工、恢复、脱敏和原生协议行为回归
同步 V1.28 实现与真实 Provider 验收状态
2026-07-16 14:47:14 +08:00
k88936
ee0b4b5d8a
Game creator extract home view ( #80 )
...
抽取homeview方便后续修改
---------
Co-authored-by: kdletters <kdletters@qq.com >
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/80
Co-authored-by: kvtodev <kvtodev@outlook.com >
Co-committed-by: kvtodev <kvtodev@outlook.com >
2026-07-16 14:33:57 +08:00
AIGameCreator App
e1cb5b699e
补齐单 Agent 持久只读并行批次
...
实现严格只读动作的持久并行执行与线性化恢复
补齐崩溃窗口、控制漂移和串行屏障回归
新增真实 Provider parallel-read suite 并记录 PASS 证据
同步 Runtime 技术方案、实施计划与项目决策
2026-07-16 12:38:34 +08:00
AIGameCreator App
6ff4556201
修复单 Agent 指令中断恢复轮次
...
修正 Provider 返回后消费 steer 时的下一轮 context 索引
新增 Runner 强杀恢复的正式 Provider 隔离验收入口与证据门禁
补充同 run steer 回归和 V1.17 PASS 事实源
2026-07-16 11:10:03 +08:00
AIGameCreator App
0b608edd01
加强Goal原生协议真实验收
...
强制 Goal 成功计划与格式修复全程使用原生工具目录。
为 Goal 阶段等待增加 Runtime 终态快速失败。
补充正式 Provider 复验证据并关闭过期计划状态。
2026-07-16 09:06:13 +08:00
AIGameCreator App
69159b2b39
接入单Agent原生工具目录
...
为 OpenAI Chat 与 Responses 广告独立 Runtime 和 MCP 函数。
支持持久计划 checkpoint、多动作顺序与严格协议拒绝。
补齐真实 Provider 协议门禁、确定性回归和 Runtime 文档。
2026-07-16 08:15:39 +08:00
AIGameCreator App
9d29631b01
补齐项目Skill渐进加载
...
发现并校验项目内 Codex 与 Agents Skill 元数据
按需加载命中正文并绑定仓库上下文指纹
补充确定性测试和真实 Provider 隔离验收
同步 Runtime 方案、实施计划与项目决策记录
2026-07-16 07:07:53 +08:00
AIGameCreator App
daa5704759
完成仓库指令真实验收
...
新增scoped-agents正式Provider行为验收套件
使用仅含哈希的双兄弟目录fixture验证根到叶规则
收紧项目变更路径、配置隔离和公共泄漏门禁
记录openai_chat与gpt-5.5真实验收通过证据
2026-07-16 06:28:08 +08:00
AIGameCreator App
e99cfa4185
补齐仓库指令作用域
...
升级仓库启动上下文并按目录作用域加载AGENTS指令
区分仓库指令与不可信参考资料并固定权限安全边界
阻止旧版上下文指纹恢复后直接执行项目写入
补充作用域、请求载荷和迁移阻断回归测试
同步Runtime方案、App实施计划与项目决策记录
2026-07-16 05:59:26 +08:00
AIGameCreator App
fa15655a75
完成持久目标真实验收
...
修复文件写入正文被清洗和末尾换行被截断的问题
收紧运行事件与审计投影并兼容旧脱敏记录恢复
升级真实Goal验收到context v5和Provider lifecycle v2
记录正式gpt-5.5全链路验收证据并同步实施文档
2026-07-16 05:41:14 +08:00
AIGameCreator App
e399eaf5de
补齐智能体持久化用户输入流程
...
新增 user.input_request 状态机与私有 sidecar,支持重启恢复、取消和同一 Run 续跑
接入终端聊天、开发 Agent 聊天、项目 Agent 对话和 Project Supervisor 问题卡
扩展任务队列、能力清单与前后端共享契约
补齐单元测试、界面回归、真实 Runtime E2E 和技术文档
2026-07-16 03:44:31 +08:00
AIGameCreator App
0425afd5cf
实现Runner托管的MCP动态工具
...
接入STDIO与Streamable HTTP MCP连接、动态工具目录和Runner协议
将mcp.call纳入持久动作、工具审批、私有结果和强杀恢复
增加AppData配置、开发配置界面及聊天CLI的MCP状态入口
补齐真实Provider E2E、全量回归、安全扫描和技术文档
2026-07-16 01:07:58 +08:00
kdletters
b303605bf2
新增后台新增用户付费率
...
扩展 Dashboard 聚合与契约,统计筛选期新增用户的真实付费转化
生成 SpacetimeDB typed bindings 并补充后端聚合测试
后台新增付费率卡片与响应式布局,覆盖零分母和时段文案
同步 Dashboard 运营口径与项目决策记录
2026-07-15 22:14:52 +08:00
AIGameCreator App
543a5469f8
实现Agent持久上下文压缩
...
新增全局与单 Agent token 预算、持久摘要 sidecar、自动及手动压缩恢复链路
接入 Runner、CLI /compact、开发 UI 状态和共享能力契约
补齐幂等、漂移、生命周期、恢复、隐私及真实三十轮端到端验收
同步 Runtime 技术方案、App 实施计划和长期决策记录
2026-07-15 22:08:17 +08:00
kdletters
ea8d0ef064
修复泥点余额自动刷新
...
顶部泥点总余额优先展示实时钱包余额,避免缓存明细覆盖刷新结果。
补充缓存明细场景的余额变更回归测试。
同步主站与图片画布的泥点余额数据口径文档。
2026-07-15 22:01:25 +08:00
kdletters
cfdba640ee
修复图集快速编辑后端校验与错误提示
...
后端允许完整图标图集进入图片快速编辑,仅继续禁止单个图标。
快速编辑失败时向红色错误框传递具体错误文案。
补充前后端回归测试并同步画布编辑器技术文档。
2026-07-15 21:11:46 +08:00
kdletters
271b153308
统一Rust格式化工具链与构建门禁
...
固定Rust 1.96.0与rustfmt格式配置
接入本地lint、Codex提交前检查和Jenkins构建门禁
提交server-rs全workspace一次性格式化基线
同步开发运维文档与production-ops防回退检查
2026-07-15 21:06:05 +08:00
kdletters
25f6027c4a
补齐外部素材创建归组字段
...
为 External Editor 素材创建补充归组 Task ID 默认值
为 External Editor 素材创建补充拆分预期数量默认值
2026-07-15 20:34:07 +08:00
kdletters
793ec1b6b0
修复后台素材查询分页与任务归组
...
支持陶泥号解析、稳定游标和后台素材多页查询
补齐查询防抖、请求取消、刷新保留与加载更多状态
新增可信来源索引和拆分批次完成事实,修复跨项目与删除切片归组
同步生成绑定、数据契约、项目记忆和回归测试
2026-07-15 20:02:50 +08:00
AIGameCreator App
26decf24da
接入单Agent原生联网检索
...
新增全局与单Agent联网检索配置、状态和开发界面
将直聊与后台planning接入Provider原生搜索并限制repair与final reply
升级Provider lifecycle v2并兼容历史v1记录
增加隔离真实E2E与公共审计泄漏门禁
记录当前gpt-5.5网关真实检索不可用结论
2026-07-15 18:05:10 +08:00
kdletters
8d1c640eb5
修复精选图片读取与审核返还
...
为已通过、已展示且返还完成的精选资产补充精确匿名读取授权
将精选批准、泥点返还和返还完成标记收进同一SpacetimeDB事务
保留确定性返还流水的幂等语义并支持修复历史半完成记录
补充精选公开门禁测试并同步后端与创作主页文档
2026-07-15 16:58:18 +08:00
AIGameCreator App
3f5424a0b1
实现后台Agent真流式回复
...
接入身份绑定的后台最终回复流并保持唯一finalization提交
完善Project Supervisor与Swarm CLI增量展示、恢复和竞态处理
禁止Runtime Provider重定向重放并加固生命周期与公共审计脱敏
增加真实Provider隔离验收、定向回归和技术文档
2026-07-15 15:58:02 +08:00
kdletters
7ed99d7353
拆分SpacetimeDB调用池与缓存读连接
...
将HTTP调用池改为无订阅连接并增加单一共享缓存读连接
统一缓存重建总超时并拒绝发布断线连接
补充连接拓扑回归测试与生产运维说明
2026-07-15 15:11:11 +08:00
AIGameCreator App
fda565f40b
加固Goal Provider请求与最终化恢复
...
绑定Provider请求快照与稳定requestId并禁止歧义错误自动重放
新增Goal真实E2E控制序列、Runner归属清理和失败验证门禁
修复finalization取消竞态、严格七槽容量预留和精确审计恢复
收紧任务委派验证错误等公共审计与敏感信息脱敏
补齐Goal CLI初始化、orphan reconciliation和异常恢复回归
同步Runtime技术方案与长期决策记录
2026-07-15 12:59:28 +08:00
AIGameCreator App
b0be078d6c
补齐单Agent持久目标模式
...
新增Agent会话级Goal的创建编辑暂停恢复清理与CLI/Tauri入口
升级Runtime context v4、pending action v5和finalization v3的Goal绑定
修复恢复半提交、缺失Goal投影及暂停过渡态的失败关闭
补齐开发窗口目标模式、故障注入测试和项目文档
2026-07-15 06:46:48 +08:00
AIGameCreator App
5f317e79f8
补齐项目总控纯聊天入口
...
新增agc:chat短命令并默认进入project-supervisor
保留agc:swarm显式父Agent调试兼容
补充CLI默认路由与参数回归测试
同步Runtime方案、App计划和长期决策记录
完成真实终端入口启动退出验证
2026-07-15 04:20:29 +08:00
AIGameCreator App
f5d2b3786a
完善单Agent持久计划与恢复验收
...
新增结构化计划更新、单调修订、完成门禁和失败进度保留
升级上下文与最终回复恢复协议并绑定规划仓库指纹
收紧模型正文公共审计和CLI本地存储路径输出
补齐开发界面计划展示、Supervisor紧凑摘要与乱序竞态合并
强化真实Provider验收器并记录TLS外部门禁未通过
补充Rust前端回归及长期技术文档
2026-07-15 04:03:16 +08:00
kdletters
2f092c3566
统一素材任务层级与成本归因
...
后台素材查询按任务分页并将中间产物逐行收纳为子项
生成原始产物沿用真实素材类型并承载任务生成成本
抠图、拆分和逐帧后处理记录实际生成器且阶段成本归零
补齐历史类型映射、角色动作链路、测试与文档
2026-07-15 03:04:41 +08:00
kdletters
3f3a6c4ab2
修复画布生图交付与素材成本展示
...
修复 nanobanana 标量尺寸被误判为宽高的问题。
普通生图和快速编辑在内存完成尺寸变换后仅上传一次,变换失败保留 provider 原图。
移除快速编辑重复的原始输出素材,保留角色、图集和 UI 的独立中间产物。
后台将不重复计费的中间产物显示为不单独计费。
补充单次上传、降级交付和成本展示回归测试及相关文档。
2026-07-15 01:36:16 +08:00
kdletters
5c1434511b
修复后台看板留存统计与素材详情布局
...
修正周月日期范围、每日访问人数、零值柱和趋势图滚动同步
新增次日与七日留存及数据库侧精确聚合,移除五万行访问明细截断
聚合失败时拒绝返回伪零值并补齐契约、客户端绑定和定向测试
修复素材详情陶泥号竖排并完善移动端单列布局
同步运营口径与本地数据库版本漂移排障文档
2026-07-15 01:25:29 +08:00
AIGameCreator App
5ab664b22e
实现项目总控Agent与并行协作闭环
...
将普通主聊天接入独立project-supervisor Session和持久Runtime
新增静态委派delivery、claim、等待唤醒与唯一最终回复协议
支持同轮多专业Agent并行、回执汇总和同Session多轮对话
修复Session锁序、Agent DB旁路、恢复拒绝和迟到回执竞态
收紧Runner定向唤醒、重启恢复和父任务终态收束语义
更新客户端状态展示、共享契约、定向测试与项目文档
完成真实Provider双Agent并行和多轮聊天验收
2026-07-15 00:21:14 +08:00
kdletters
9807295a7d
调整画布生成输入与图集快速编辑
...
隐藏生成面板资源名称字段并恢复提示词输入边框
恢复图标图集快速编辑并仅对单图标禁用
补充工具栏右键菜单工作流回归测试与编辑器文档
2026-07-14 23:26:35 +08:00
kdletters
c8dd6cbd33
统一 Jenkins 本机 Git 源
...
将生产流水线 Git checkout 地址统一为 127.0.0.1:2222
数据库导入导出改由 Built-In Node 准备并传递脚本
新增 Git 源与目标节点边界的生产运维门禁
同步生产运维文档和项目共享记忆
2026-07-14 22:03:32 +08:00
k88936
34c6ed8756
自动扩缩edit图片的大小适应gptimage2的生成图片大小参数要求 ( #82 )
...
尺寸严格限制规则 (Strict Size Constraints):
图片最大边长 ≤ 3840px <- by hardcoded length
宽高两边像素均为 16px 的倍数 <- by backend do crop
长边 / 短边 比值 ≤ 3:1 <- by hardcoded aspect ratio
总像素范围:最小 655360 ~ 最大 8294400 <- by auto scale in this pr
logic impl in the backend
---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/82
Co-authored-by: kvtodev <kvtodev@outlook.com >
Co-committed-by: kvtodev <kvtodev@outlook.com >
2026-07-14 21:04:54 +08:00
kdletters
630fce1438
Merge pull request '抽取钱包/充值入口组件, 用来在客户端里复用' ( #77 ) from extract-wallet-entry-to-shared into master
...
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/77
Reviewed-by: 段舒康 <kdletters@qq.com >
2026-07-14 21:03:16 +08:00
kdletters
75dd05d2e6
Merge branch 'master' into extract-wallet-entry-to-shared
2026-07-14 21:02:06 +08:00
kdletters
f3936f60a3
修复后台多账号安全与事务边界
...
将Argon2密码操作移出异步执行器并限制并发
统一未知停用和非法账号的登录校验与错误语义
隔离登录凭据快照和普通账号公开契约
调整管理员显示名查询顺序避免写入伪失败
新增后台账号procedure身份与事务集成烟测
同步后台账号技术方案与开发验证文档
2026-07-14 20:30:44 +08:00
k88936
08e17fa640
Merge branch 'master' into extract-wallet-entry-to-shared
2026-07-14 20:28:45 +08:00
AIGameCreator App
21e0877dfa
新增Agent Swarm纯聊天验证入口
...
新增无GUI终端REPL并接入真实External Runner与持久会话
支持全Agent状态事件、运行中steer、确认拒绝和恢复收束
新增agc:swarm短命令、配置门禁和Rust测试
记录真实Provider验证结果与现存父回执汇总缺口
2026-07-14 19:36:03 +08:00
kdletters
bddc25b4e0
后台支持多账号与页面访问权限
...
保留环境变量管理员作为 owner,并新增可持久化管理的 member 账号
建立一级页面权限、实时会话失效和后端逐请求鉴权
统一操作记录与配置记录展示管理员显示名称,隐藏内部主体标识
补充账号管理页面、生成绑定、定向测试和技术文档
2026-07-14 19:21:33 +08:00
kdletters
a597fcd076
收紧退款人工复核与重试契约
...
补齐退款事实对比字段与人工复核审计展示
人工复核重放严格校验管理员、原因和错误码
退款占用重试完整匹配管理员与归一化原因
统一退款原因持久化上限并修复刷新恢复
补充前后端回归测试、生成绑定与数据契约文档
2026-07-14 19:20:25 +08:00
AIGameCreator App
55463e7b2b
补齐Agent会话分叉能力
...
新增 Session 分叉命令与开发窗口交互
统一 Session 变更和 Runtime 入队线性化锁
补齐持久化、失败回滚、并发边界与前端隔离测试
同步 Runtime 技术方案和项目决策记录
2026-07-14 18:26:29 +08:00
kdletters
c70a33d682
修复退款复核与渠道校验
...
退款 observation ID 按来源与事实指纹稳定区分
人工复核只豁免本次批准的订单冲突并持久化错误码
普通微信渠道在查单前拒绝虚拟支付、会员与非正式渠道
网络结果未知时当前弹窗直接复用原请求继续核对
按 release 首次上线基线移除未发布退款结构兼容并同步文档与绑定
2026-07-14 18:09:50 +08:00
AIGameCreator App
fdbaf1be80
合并 master 到 AI 游戏创作分支
...
同步共享主题样式与对应测试
同步项目约束与决策记录
2026-07-14 17:50:32 +08:00
AIGameCreator App
840811c56b
合并 master 到 AI 游戏创作分支
...
同步最新退款复核与发布安全边界改动
同步角色动作素材入库与微信支付退款闭环
保留当前分支单 Agent Runtime V1.13 实现
合并保留双方共享决策与踩坑记录
2026-07-14 17:11:39 +08:00
AIGameCreator App
56f02cc46b
补齐单Agent运行中追加指令
...
新增同一 Run 持久化追加指令、Provider 中断与安全重规划链路
补齐开发窗口、项目 Agent 面板和 CLI 的 steer 入口与状态交互
升级 Runner 协议并支持旧 Runner 空闲退出后平滑替换
增加真实 Provider steer 验收脚本并修复 finalization 与 Git 提交回归
同步 Runtime 技术方案、实施计划和共享决策记录
2026-07-14 17:08:04 +08:00
k88936
d66b17b855
抽取配色css ( #79 )
...
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/79
Reviewed-by: 段舒康 <kdletters@qq.com >
Co-authored-by: kvtodev <kvtodev@outlook.com >
Co-committed-by: kvtodev <kvtodev@outlook.com >
2026-07-14 17:01:39 +08:00
k88936
99d76b25f9
Merge branch 'master' into extract-wallet-entry-to-shared
2026-07-14 16:52:47 +08:00
kdletters
0baa8cf8cc
修复退款复核与发布安全边界
...
补齐退款人工复核、刷新恢复、会话隔离和旧冷备导入兼容
强化真实微信退款对账开关、重复环境变量和生产发布门禁
优化公开作品资产授权查询并保持实时撤销语义
统一后台微信渠道、退款追回流水和画布正式资源测试契约
补齐生成与素材侧栏回归测试
2026-07-14 16:31:22 +08:00
kdletters
aa56c117ec
修复角色动作素材入库
...
将最终角色动作帧序列保存为单条素材并保留完整元数据
登记全部动作帧的私有资产对象并以首帧作为预览
补充动作素材持久化测试和后端数据契约
2026-07-14 15:48:30 +08:00
AIGameCreator App
1b971ac792
补齐单Agent真实Git提交验收
...
将 project.git_commit 纳入真实 Provider 完整交付链路
核对原始提交对象、精确 tree、双 reflog、审计与回执
验证提交后保留预存改动并保持副作用零重放
同步 Runtime 技术方案、实施计划与项目决策记录
2026-07-14 15:20:57 +08:00
AIGameCreator App
86bbd046ec
补齐单Agent受控本地Git提交
...
新增 project.git_commit 强制确认命令并同步前后端共享契约
绑定 git.inspect 安全快照、当前 revision 与 passed verification gate
使用临时 index、原子 update-ref、双 reflog 和跨平台 index 安装创建精确提交
限制动态隔离 child 提交并保护 Git objects、refs、reflog 与控制文件
补齐安全审计、fallback receipt、needs-reconciliation 和执行中恢复不重放
新增故障矩阵测试并同步 Runtime 技术方案、实施计划与项目决策记录
2026-07-14 14:39:56 +08:00
kdletters
2653adeb34
合并微信支付退款闭环
...
新增后台充值退款管理与微信 V3 退款闭环
统一退款观察、对账、权益追回和钱包冻结
修复成功退款冲突时点数钱包未冻结问题
保留后台素材预览连续加载修复
2026-07-14 13:58:16 +08:00
k88936
708b9cafda
Merge remote-tracking branch 'origin/master' into extract-wallet-entry-to-shared
2026-07-14 13:45:19 +08:00
kdletters
3861c9c99a
修复后台素材预览连续加载
...
按视口懒加载并错峰执行素材换签请求
增加限流退避与卸载清理,避免后续素材永久占位
补充滚动、分页、大批量排队和缩略图路径回归测试
记录后台素材换签限流排障与验证口径
2026-07-14 13:39:20 +08:00
AIGameCreator App
4ef3dbd677
合并主分支最新改动
...
同步 master 的最新功能与修复
保留 AI 游戏创作客户端分支现有实现
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
# docs/project-memory/shared-memory/pitfalls.md
# scripts/dev.mjs
# server-rs/crates/api-server/src/editor_screen_background_decision.rs
# server-rs/crates/api-server/src/modules/admin.rs
# src/components/rpg-entry/RpgEntryHomeView.tsx
2026-07-14 13:05:45 +08:00
AIGameCreator App
f2b26010bd
完善Agent Runner恢复与真实进程验收
...
增加Linux临时端口耗尽时的高位loopback安全回退
修复Runner重启恢复的逐投影幂等与完整身份失败关闭
为Runtime JSONL尾部和进程恢复审计增加修复与冲突校验
强化Runner强杀E2E的分层证据与非ENOENT错误处理
阻止模型最终回复复述私有PTY输出及短值
补齐恢复回归测试、真实Provider验收与技术文档
2026-07-14 12:48:45 +08:00
kdletters
8862887baa
新增后台充值退款管理与微信V3退款闭环
...
新增充值订单查询、通用用户详情、钱包冻结与部分退款操作
接入微信V3退款申请、回调、主动查单、交易账单对账与安全诊断
新增退款占用、权益追回、异常欠账和消费限制事务
补齐Native支付SSE自动收口及退款编号与部分退款校验
同步SpacetimeDB schema、生成绑定、测试与项目文档
2026-07-14 12:16:01 +08:00
k88936
11abb43438
if it run , dont del it
2026-07-14 11:12:07 +08:00
k88936
b13d73c5cf
sync doc
2026-07-14 11:11:11 +08:00
k88936
8d7394eda1
fix simple import
2026-07-14 11:05:09 +08:00
k88936
d307abf7a3
removed component export from index
2026-07-14 11:04:01 +08:00
k88936
5244dbfcd8
rollback: all in relative path now
2026-07-14 10:56:11 +08:00
kdletters
ed8be38287
统一画布生成资源命名
...
新增所有生成面板的资源名称输入并统一80字符边界
贯通画布标题、项目资源、素材库与生成请求的名称传播
为图标图集和角色动作补齐命名契约及中间产物后缀
补充前后端回归测试、OpenAPI与编辑器文档
2026-07-14 10:27:25 +08:00
kdletters
f7f799df81
修复画布音频拖放与拖拽热区
...
素材库显式拖放不再叠加级联偏移,音频卡中心落在鼠标松手位置
将音频播放按钮热区收紧到中央,释放卡片主体用于选择与拖拽
补充模型、桥接和画布交互回归测试并同步音频设计文档
2026-07-14 10:23:42 +08:00
AIGameCreator App
689082901f
为持久进程增加可信启动握手
...
新增 PTY 外私有 bridge 与 sandbox ready/commit/exec 协议
升级 process record v3 并收紧恢复、幂等与 final/idle 门禁
完善 target 前台进程组、graceful 后代收束和审计失败处理
补齐跨平台回归测试及 Runtime 文档
2026-07-14 09:41:18 +08:00
AIGameCreator App
d5cb2f3719
为一次性命令增加可信启动握手
...
新增 Linux trampoline 私有控制协议和 sandbox-ready/exec-established 状态机
让 command.exec 与 project.verify 在 durable commit 后才启动真实目标
补齐 launch unknown reconciliation、target exec failure 和 revision/gate 审计语义
覆盖 bwrap 分隔符、FD 映射、协议失败和真实命令回归测试
同步 Runtime 技术方案、决策记录和已知陷阱
2026-07-14 07:49:04 +08:00
AIGameCreator App
580e4dd87f
修正持久进程真实验收协议
...
将 process-session fixture 改为不依赖控制面和 namespace 身份的纯 PTY 协议
使用 durable start、readiness、cursor、stdin 哈希和 cwd 进程归零校验交互链
新增真实 Node 子进程 smoke 覆盖 readiness、精确回显与停止状态
记录 Provider 瞬态失败和可信 exec-ready 两阶段协议
同步长期决策、技术方案与沙箱验收踩坑
2026-07-14 06:35:43 +08:00
AIGameCreator App
143684011b
完善Linux工作区命令沙箱
...
新增 bubblewrap 工作区写入、控制目录保护和默认断网沙箱
统一 command.exec、command.start 与 project.verify 的启动和审计边界
开放 Linux 通用项目命令并保留非 Linux 固定命令兼容边界
补齐持久进程元数据、真实进程测试、共享契约和发布依赖
同步真实 Provider 结论、已知竞态与项目长期文档
2026-07-14 05:54:02 +08:00
AIGameCreator App
a9f7bda805
完善Agent持久进程会话能力
...
新增Runner托管的PTY持久进程会话与安全输出游标
接入start、poll、stdin、terminate的权限、审计和完成门禁
强化Linux进程组看护、Windows Job回收与崩溃核对语义
补齐Runtime确定性测试和真实Provider双套件验收
同步共享契约、实施方案与长期项目记忆
2026-07-14 03:26:44 +08:00
AIGameCreator App
7f8b5da22a
完善Agent命令回查与收束能力
...
让 durable command.exec observation 直接返回 sourceActionId,命令分页不再依赖动作历史
持久化 all-join 认领摘要与 reviewer 里程碑,保护最新动作历史观察
放宽无业务依赖的验证顺序并加强真实 Provider E2E 顺序门禁
补齐确定性测试、Runtime 文档和共享决策记录
2026-07-14 01:16:29 +08:00
AIGameCreator App
648170b224
新增命令输出分页回查能力
...
新增 command.output_read 并按当前 Agent 的持久动作身份分页读取命令输出
为 command.exec 写入受限 transcript sidecar 并保持审计与回执零正文
完善隔离 Agent 模板提示、失败结果收束和重复 spawn 去重
将真实 Provider E2E 改为无固定配方的结果导向验收
同步共享命令与能力契约并补齐 Rust 和 TypeScript 测试
更新 Runtime 技术方案、实施计划和共享决策记录
2026-07-14 00:22:02 +08:00
kdletters
838d819c3d
修复Suno背景音乐下载失败
...
识别audiopipe中转地址并通过item_id获取稳定WAV文件
避免封面地址混入音频候选并跳过失败任务的额外探测
补充Suno两跳解析回归测试并更新设计与排障文档
2026-07-13 22:06:36 +08:00
kdletters
4e7bcb8f24
补齐生成中间产物持久化与拆图提示
...
图标和UI图集拆分失败时保留主图集并在内联、队列及刷新路径提示
角色、图片修改、图标UI和角色动作链路把可恢复中间产物写入项目与素材库
外部生成摘要新增独立告警字段并清理成功任务的历史错误
同步共享契约、SpacetimeDB迁移与绑定、OpenAPI、设计文档和回归测试
2026-07-13 21:41:46 +08:00
AIGameCreator App
74dd45ef13
补齐Agent模型视觉检查闭环
...
新增 image.inspect 安全图片读取、多模态 Provider 调用与只读恢复语义
补齐共享契约、视觉动作回执和多模态失败日志脱敏
扩展确定性测试与真实 Provider 双视口 E2E 验收
同步 Runtime 技术方案和项目共享决策记录
2026-07-13 21:30:13 +08:00
kdletters
f1639de5fe
修复图标图集自动拆分降级
...
图集带背景原图和透明整图先写入项目资源与账号素材库并回填画布
自动拆分识别或持久化失败时保留图集并返回结构化警告
手动拆分限制图片尺寸、总像素和单次切片数量
同步共享契约、外部 OpenAPI、前端类型、设计文档和回归测试
2026-07-13 20:29:06 +08:00
AIGameCreator App
0d643ddbbb
完善Agent持久动作与隔离任务恢复
...
收紧Agent DB容量、句柄锁、终态回执和动作历史身份校验
补齐pending动作、task、event、observation与receipt崩溃恢复幂等
扩展跨平台路径清洗、仓库上下文门禁和瞬时LLM重试
让隔离父run持久等待并通过parent-wake恢复同一run
修复确认动作阶段投影与最近工具状态推进
扩充Rust安全回归和真实Provider E2E验收
同步Runtime技术方案、实施计划与项目决策记录
2026-07-13 20:09:26 +08:00
kdletters
052d656a52
修复公开资产授权一致性与签名期限
...
公开资产 metadata 和作品授权改为在同一 SpacetimeDB 事务快照中判断
移除连接级公开授权订阅缓存对 ACL 的参与
公开读取签名有效期上限固定为 600 秒并保留 owner 和 admin 行为
同步生成 bindings 并更新后端契约与项目记忆
2026-07-13 20:04:29 +08:00
kdletters
4fc8beea72
合并画板图集自动拆分
2026-07-13 19:22:33 +08:00
kdletters
eae00292a1
新增画板图集自动拆分
...
生成图标图集后自动拆分并持久化独立素材
新增图集工具栏手动拆分入口与权威画布回填
修复连通域切片阅读顺序并补齐前后端测试
同步外部接口与编辑器设计文档
2026-07-13 19:10:30 +08:00
k88936
e6d0ccc243
use import { formatMudPointCount } from '@genarrative/shared' style
2026-07-13 18:48:58 +08:00
kdletters
3cbc33bd69
优化画布快速编辑参数与替换规则
...
快速编辑继承并支持模型、比例和尺寸参数,旧模型回落当前默认模型
仅禁止图标与图标图集快速编辑,图标规范继续按普通图片处理
按用户选定分辨率替换当前图层并保持图层中心位置
补齐后端真实图层校验、移动端避让、定向测试与项目文档
2026-07-13 18:48:38 +08:00
kdletters
2ac57463c0
修复公开作品私有资产读取
...
新增公开可见作品的精确资产授权视图并覆盖十类玩法
改用受限 procedure 权威点查资产对象并在失败时关闭访问
移除资产对象全表订阅并统一 ACL 与编辑器引用查询
生成 SpacetimeDB 绑定并补齐回归测试、架构文档和项目记忆
2026-07-13 18:35:26 +08:00
kdletters
5536fba95e
补齐画布多产物生成回填
...
将角色、图标图集和UI素材提取的原图登记为项目资源并随处理结果写入画布
保持后处理结果为生成器主锚点并将原图错开放置
新增原图标签、后端多产物布局测试和前端快照回归
同步更新图片画布方案与共享决策记录
2026-07-13 18:28:54 +08:00
k88936
a3034b1d51
fix import
2026-07-13 18:08:46 +08:00
kdletters
55471e15de
补齐后台兑换码有效期与独立滚动
...
为兑换码增加可选生效和截止时间,并按左闭右开区间校验
同步 SpacetimeDB 迁移、生成绑定、共享契约和后台管理界面
让后台侧边栏与主内容区域独立滚动
修正兑换业务拒绝的 HTTP 状态映射并补充回归测试和文档
2026-07-13 17:26:47 +08:00
kdletters
f4153ebfa7
统一维护与错误页面并修复移动端顶部文案
...
新增品牌维护页和404页面并补齐网关路由
将临时维护公告迁到release外运行态覆盖并增加构建门禁
同步Nginx、Pingora、部署脚本与生产运维文档
隐藏移动端顶部SEO介绍并保留桌面端与H1语义
增加维护页、404页和移动端回归测试
2026-07-13 16:26:27 +08:00
k88936
c038275e11
add back moved code to git
2026-07-13 15:49:34 +08:00
k88936
071dac67c1
fix import extension for formatMudPointCount in PlatformMudPointWalletEntry
2026-07-13 14:46:24 +08:00
k88936
9c982992a7
update import paths for PlatformMudPointWalletEntry
2026-07-13 14:18:21 +08:00
k88936
9831571dda
fix resolve res in Vitest
2026-07-13 14:03:02 +08:00
k88936
b7b4dd0066
extract mud point wallet entry component for reuse in tauri app
2026-07-13 13:52:40 +08:00
kdletters
36a8719d0f
补齐微信虚拟支付发货确认
...
在虚拟支付商品入账后调用微信发货确认接口
允许已入账商品订单只重试发货而不重复发放权益
遇到失效 access token 时强制刷新并最多重放一次
要求使用微信 paid_time 并完善历史补单文件清理和回归测试
2026-07-13 13:39:59 +08:00
kdletters
6143189dd9
恢复停服升级公告页面
...
恢复今天晚上 21:00 至 22:00 的维护时间公告
列出画布与 PC 网页充值修复内容
补充抠图与背景色升级说明
适配桌面端和移动端维护页面布局
2026-07-13 13:17:22 +08:00
kdletters
e815ece133
补齐完整发布备份模式参数
...
在 Full 流水线显式增加 DATABASE_BACKUP_MODE 参数
将备份模式原样透传到 SpacetimeDB 发布作业
增加生产运维门禁防止 Full 静默回退到异步备份
补充 release 禁止再次上传时必须选择 skip 的运维说明
2026-07-13 13:13:11 +08:00
kdletters
2f69f2fda2
补齐微信虚拟支付查单与补偿
...
接入微信官方虚拟支付查单并缓存稳定接口令牌
让用户确认与订单过期补偿统一核对支付类型、状态、金额和单号
增加单笔历史订单的 dry-run 与确认指纹补单工具
隔离运行时身份与敏感 openid 文件并补充配置契约和回归测试
2026-07-13 13:12:44 +08:00
kdletters
06aa99e3eb
修复后台表查询筛选与分页
...
使用单次哨兵查询统一计算扫描范围、匹配总数和截断状态
增加完整候选集服务端排序与越界页码钳制
增加固定分页栏、扫描上限提示和后端排序交互
补充大表响应边界文档与前后端回归测试
2026-07-13 13:09:53 +08:00
kdletters
7becd38117
修复泥点悬浮窗与登录弹窗交互
...
桌面端泥点详情支持从按钮移动到浮层并取消点击保持
统一弹窗仅在完整遮罩指针序列后关闭
补充泥点悬浮与登录遮罩拖出回归测试
记录遮罩关闭交互约束
2026-07-13 12:47:40 +08:00
AIGameCreator App
e714c8c2b6
完善Agent长任务上下文与Git真实验收
2026-07-13 12:13:04 +08:00
kdletters
184d7e24c9
恢复默认维护页面
...
移除临时停服升级公告和维护时段文案。
恢复简洁的服务维护提示页面。
2026-07-13 11:36:07 +08:00
AIGameCreator App
5e1d4ddeee
补齐Agent Git工作树审阅与聊天状态交互
2026-07-13 11:21:29 +08:00
kdletters
aeca412cdb
修复数据库冷备分片上传
...
冷备归档改用 OSS Multipart 顺序分片上传并加入可重试请求。
Complete 后通过签名 HEAD 严格核对远端对象长度,再更新清单或清理本地归档。
补齐签名查询、分片重试、缺失 ETag、Complete 歧义和 Abort 回归测试。
记录数据库冷备上传与清理边界的长期运维决策。
2026-07-13 11:13:57 +08:00
AIGameCreator App
5c3b8ec267
完善Agent多文件变更集能力
...
新增受确认的 project.patchset 事务式多文件修改与回滚机制
补充 checkpoint 内容差异和文件内容哈希约束
加强隔离 Agent 路径范围与仓库指纹复核
扩展共享命令契约、真实 LLM E2E 与 Runtime 文档
2026-07-13 01:08:36 +08:00
kdletters
cde9b597bc
修复微信支付通知公钥验签
...
解析微信平台 SPKI 公钥并提取 PKCS#1 RSA 公钥。
复用生产 RSA-SHA256 验签路径处理支付通知。
补充标准 SPKI 公钥与真实签名向量回归测试。
同步微信支付验签排障文档和解析依赖。
2026-07-13 00:45:20 +08:00
kdletters
35568eeef4
修复泥点账单结算顺序
...
按当前余额反向校验流水结算链,纠正延迟入账的历史错序。
钱包流水与钱包状态统一记录事务实际结算时间。
补充延迟支付场景回归测试和账本时间契约文档。
2026-07-12 23:45:01 +08:00
AIGameCreator App
49ea9eec67
完善Agent受控命令与推理配置
...
新增受控 command.exec 固定程序、参数策略、隔离环境和有界审计
接入项目 revision、验证资格、确认动作复核与失败核对门禁
支持全局及每 Agent 独立推理档位并提供发布默认配置
补齐前端配置、共享契约、Runtime 回归和真实 Provider 验收
同步开发流程、技术方案与项目共享决策记录
2026-07-12 23:22:11 +08:00
kdletters
8e1f441d6b
补齐发布包维护脚本
...
把 API 部署与维护开关脚本复制进 current release
补充发布夹具对三个随包脚本的存在性断言
记录 Full 退出维护依赖 current release 自包含脚本
2026-07-12 23:02:58 +08:00
kdletters
1a90b4f644
收窄充值过期监听范围
...
改为订阅活跃充值过期定时器删除事件并按订单编号回读状态
移除不再使用的充值订单表行映射
同步后端契约、生产运维与项目共享记忆
2026-07-12 22:42:30 +08:00
kdletters
425699b2e2
修复发布就绪等待与充值过期监听
...
为 API readiness 探测增加单次超时,避免端口已建立时无限挂起
修复 SpacetimeDB 枚举状态订阅导致的充值过期监听失败
在 pause-after-stdb 审批提示中强调运行时与迁移身份互斥
补齐生产发布门禁、回归测试与运维排障文档
2026-07-12 22:24:47 +08:00
kdletters
51740c021b
补齐流水线维护退出选项与停服公告
...
Full 发布全程保持维护并在最后按选项退出
API Deploy 支持成功后保留维护并补齐回归门禁
新增停服公告维护页并同步运维文档
2026-07-12 21:24:17 +08:00
AIGameCreator App
5e627a4677
完善通用开发 Agent Runtime V1.1
...
新增仓库上下文指纹复核与 durable action 漂移保护
拆分 App CLI 与独立 Runner 的投递执行边界并补齐恢复诊断
加入桌面和移动端浏览器验证及跨源网络阻断
实现隔离子 Agent 私有记忆与终止状态传播
补齐 Provider 协议确认副作用重放与 join 真实端到端验证
同步共享契约实施计划决策记录与开发流程文档
2026-07-12 20:58:42 +08:00
kdletters
71811f04c3
维护模式仅拦截公网流量
...
Nginx 按真实连接地址让内网绕过全站维护闸
Pingora 统一内网维护放行并拒绝 XFF 伪造
补齐公网与内网维护回归测试和运维文档
2026-07-12 20:27:04 +08:00
kdletters
8bfedd8ad7
调整首页品牌文案字号
...
将品牌说明字号固定为 17px
将首页主描述字号调整为 20px
将泥点赠送文案字号调整为 16px
2026-07-12 20:22:18 +08:00
kdletters
66178edc7c
统一泥点账户与每日免费额度
...
- 新增每日免费泥点独立余额桶,按北京时间零点固定重置20泥点
- 按每日免费、会员限时、永久顺序扣费并支持跨日退款按原分桶回补
- 统一主站与图片画板泥点入口,隐藏限时泥点、任务入口和会员购买入口
- 收敛四档充值商品与泥点购买弹窗,并接入后台动态商品配置
- 同步余额read model、SpacetimeDB迁移绑定、回归测试和工程文档
- 将泥点明细浮层圆角匹配首页卡片视觉规范
2026-07-12 19:35:22 +08:00
kdletters
2b13067492
调整首页品牌文案层级
...
更新首页唯一 H1、小眉题、产品说明与权益文案
统一游戏美术 AI 创作工具 H2 和功能弹窗 H2 语义
补充首页标题层级测试与 SEO、创作主页文档约束
2026-07-12 19:32:11 +08:00
AIGameCreator App
028e6b872d
实现仓库启动上下文构建
...
新增有界仓库扫描、规范正文与多语言入口摘要
实现固定 Git 状态降级、SHA-256 指纹和 Prompt 限额渲染
补充嵌套规范、敏感路径、符号链接、预算和 Manifest 单元测试
2026-07-12 16:11:42 +08:00
AIGameCreator App
b022bb456a
补齐单Agent删除与聊天恢复闭环
...
修复事件监听失败后的真实非流式降级与空 choices SSE 兼容
接入受策略保护的 file.delete 并加固确认、revision 和核对门禁
让客户端项目写入统一推进 revision,补齐锁内策略复核
为 manifest 增加跨平台替换与恢复副本
补齐 Runtime、契约和恢复回归测试并同步文档
2026-07-12 14:59:34 +08:00
AIGameCreator App
82fec317a3
完善Agent最终回复崩溃恢复
...
新增三阶段 finalization journal,恢复时不重放 LLM、工具或回执
为会话消息增加兼容 messageId 与审计幂等自愈
补齐取消、revision 漂移、状态丢失、损坏文件和跨平台替换恢复
增加并发锁短等待、长回复容量与故障注入回归
同步 AI 游戏创作 App 技术方案和项目决策记录
2026-07-12 11:51:22 +08:00
AIGameCreator App
de2335dbfe
完善Agent最终回复过期自愈
...
区分最终完成、过期凭证和致命错误,保持同一运行重新规划
为最终回复绑定项目版本并覆盖只读任务的并发漂移
持久化上下文停滞状态并过滤动态验证输出
补充并发、重启和停滞回归测试及长期文档
2026-07-12 10:35:43 +08:00
AIGameCreator App
7af1297df3
完善Agent项目修改验证门禁
...
新增项目级 revision 与 per-run 验证凭证持久化
接入修改和验证工具并在最终回复前锁内复核
升级 context bundle 与 pending action v2 恢复语义
补充并发、故障、旧版本恢复测试和技术文档
2026-07-12 09:30:07 +08:00
AIGameCreator App
427820089d
修复Agent聊天流式响应与滚动反馈
...
兼容OpenAI-compatible SSE中choices为null的元数据帧
固定开发Agent聊天消息区高度并保留内部滚动
补齐流式协议、回退路径、界面约束测试和文档
2026-07-12 08:11:36 +08:00
AIGameCreator App
8493bb39cd
增强单Agent上下文续跑与聊天可靠性
...
将六轮预算改为可压缩续跑窗口并持久化绑定 run 的上下文包
补齐上下文恢复、凭据清洗、项目验证脚本和跨窗口回归
修复流式尾包兼容、上游错误重复请求和聊天内部滚动等待状态
同步单 Agent Runtime 技术方案和长期决策记录
2026-07-12 05:54:27 +08:00
AIGameCreator App
bd647a2aff
修复Agent聊天滚动与等待状态
...
固定空Runtime场景的消息区和输入区网格行位
让长聊天记录仅在消息面板内部滚动
为等待LLM回复状态补充aria-busy并强化回归测试
同步更新实施方案和决策记录
2026-07-12 04:19:11 +08:00
AIGameCreator App
b137b63e3d
完善单Agent默认执行与聊天状态反馈
...
开发窗口默认使用可执行 Runtime 并保留显式聊天模式
固定消息区内部滚动并持续展示运行状态
终态前先持久化 assistant 回复并自动同步当前 Session
补充会话隔离、落盘顺序和布局回归测试
同步实施方案与项目决策记录
2026-07-12 03:29:10 +08:00
AIGameCreator App
65f2632198
完善单Agent流式聊天与原生工具规划
...
修复 OpenAI SSE 空 choices、异常尾包和读取中断导致完整回复丢失
固定聊天记录区域并增加持续等待状态与内部滚动
接入原生 function tool 计划协议并补齐严格校验和回归测试
更新 AI 游戏创作技术方案与决策记录
2026-07-12 02:32:22 +08:00
AIGameCreator App
44ac45cd5b
补齐单Agent代码验证闭环
...
新增受控 project.verify 与 headless agent-task 入口
补强工具计划协议修复、瞬时重试和验证后收束门禁
完善进程清理、写锁恢复、审计关联及覆盖测试
同步共享契约、开发文档和验证脚本
2026-07-12 00:59:05 +08:00
AIGameCreator App
ffbc990f5d
修复Agent聊天流式错误与等待反馈
...
完善OpenAI Chat SSE尾包、错误与结束事件处理
事件监听不可用时降级普通回复并继续持久化
补充等待状态、监听拒绝与协议回归测试
将平台LLM测试纳入客户端完整检查
2026-07-11 23:46:18 +08:00
AIGameCreator App
637b91778e
补齐单Agent代码导航与局部编辑能力
...
新增项目字面搜索、分段文件读取和精确局部补丁工具
提升后台循环与任务上下文预算并增加空响应重试
支持Chat Completions推理强度配置并补齐回归测试
同步技术方案和项目决策记录
2026-07-11 22:12:07 +08:00
AIGameCreator App
83c2ddb8bb
修复Agent流式回复与等待状态
...
兼容OpenAI Chat SSE用量尾包并保留异常空响应校验
流式监听或首包前失败时自动降级普通回复
固定聊天消息区高度并启用内部滚动与可靠滚底
在等待LLM期间显示动态连接和接收状态
补充SSE协议与客户端降级回归测试
同步Agent聊天技术方案与项目决策记录
2026-07-11 18:34:10 +08:00
kdletters
300e69c97d
修复图片改造尺寸保持
...
保持图片改造提交与画布回填的原图尺寸
在 VectorEngine 边界对齐非 16 倍数参考图并恢复目标尺寸
补充前后端回归测试与编辑器尺寸契约文档
2026-07-11 18:10:00 +08:00
AIGameCreator App
47ad28623a
修正Agent聊天滚动与折叠布局
...
恢复开发聊天页整页纵向滚动
为Runtime恢复确认区保留独立布局行
修复展开折叠后Runtime与聊天内容重叠
补充确认区结构回归测试并修正文档
2026-07-11 18:00:36 +08:00
kdletters
d756e8e04b
补齐Jenkins凭据与维护后台通道
...
固化三个Stdb流水线的Secret File凭据默认值
将04:00开发服定时发布默认切换为normal
显式关闭三个下游Build Job的自动发布
允许内网来源在维护模式下访问后台完整链路
保持公网后台与普通业务路由的维护阻断
补齐Nginx、Pingora回归门禁与运维文档
2026-07-11 17:40:37 +08:00
AIGameCreator App
50004d579c
优化Agent聊天滚动与状态折叠
...
固定开发聊天页视口高度并拆分局部滚动区域
为Runtime状态面板增加可折叠详情且保留任务控制
合并流式delta更新并跳过重复Runtime状态提交
补充折叠回归测试与Runtime界面文档
2026-07-11 16:39:02 +08:00
kdletters
ad2e59292c
合并 SEO 基础设施与精确路由
...
合并 codex/seo 的首页 SEO 元数据、robots 与 sitemap
统一 Nginx 和 Pingora SPA 精确路由及未知路径 404
保留 master 与 SEO 分支的项目记忆条目
补齐路由门禁、Pingora smoke 与前端回归测试
2026-07-11 16:12:05 +08:00
kdletters
2dac4a69fd
统一升级 SpacetimeDB 至 2.6.0
...
精确锁定 SpacetimeDB Rust crate 并更新依赖锁文件
使用 2.6.0 CLI 重新生成 Rust bindings
对齐容器镜像、server provision 与本地版本校验
更新运维文档、项目记忆与 SpacetimeDB skills 版本口径
2026-07-11 15:54:16 +08:00
kdletters
324f99efdf
修复外部生成任务大载荷导致的内存膨胀
...
阻止图片编辑器将 Data URL 和超限 JSON 写入生成任务,复用 objectKey 等轻量引用
新增外部生成任务摘要投影与分批 payload 压缩回填流程,避免正式列表读取大字段
收紧 SpacetimeDB 发布为永不删数据并移除 Jenkins 普通清库入口,补齐维护窗口门禁
更新生成绑定、运维文档和回归测试,并完成生产数据副本迁移与压缩验证
2026-07-11 13:55:05 +08:00
AIGameCreator App
197e1e26c6
补齐Agent Runtime统一错误事件
...
失败和预算耗尽路径追加error语义事件并保留旧生命周期事件
Runtime状态面板支持展开全部最近事件并展示六类事件
补充前后端回归测试、可视验收截图和技术决策文档
2026-07-11 00:23:40 +08:00
AIGameCreator App
b65541ce4c
补齐Agent委派结果回执闭环
...
持久化父子任务关联并将各类终态结果幂等回执给父Agent
补齐并发锁、取消抑制、恢复补漏和对话落盘失败门禁
展示委派来源并完善Runtime回归测试与技术文档
2026-07-10 23:40:33 +08:00
AIGameCreator App
f9e61beb54
完善游戏创作 Agent Runtime 执行闭环
...
收紧后台规划与回复上下文,项目事实只经权限工具进入 observation
统一前台聊天与后台任务的 Agent 锁并保留多 Agent 并行
补齐独立开发聊天和主工作区的重启恢复确认及跨项目隔离
修正工具预算耗尽、超额动作提示和完成后队列 drain 语义
补充 Runtime、恢复、并发、流式与项目切换回归测试和技术决策文档
2026-07-10 22:00:31 +08:00
kdletters
f848cbf78b
修复模型定价运行时身份边界
...
仅允许 HTTP 角色初始化定价,非 HTTP 角色改用队列只读鉴权
移除定价 procedure 快照中的 writer identity 并同步 bindings
后台保存复用受保护 bootstrap secret 支持缺失配置自愈
补充回归测试与架构运维文档
2026-07-10 19:50:55 +08:00
AIGameCreator App
7842d5bab3
修复Tauri事件订阅与开发白屏
...
为客户端与开发窗口补齐只读事件监听 capability
允许 Vite 开发服务器加载仓库共享契约
增加 capability 与共享源码配置门禁
同步更新实施计划和项目决策记录
2026-07-10 19:33:14 +08:00
kdletters
187d7735b9
修复编辑器定价持久化与资源预览
...
将模型定价改为 SpacetimeDB 强类型持久化并兼容旧配置种子迁移
修复快速编辑支付弹窗期间框选显示和交互冻结
补齐后台图片放大以及视频音频资源预览
收紧主站和 External 资源换签授权并记录管理员跨用户审计
固化外部生成入队价格、attempt 钱包结算和最终 lease 失败收口
加固运行时身份轮换、bootstrap secret 与生产构建发布门禁
同步生成绑定、定向测试、运维脚本和项目文档
2026-07-10 18:28:06 +08:00
lhk229
5c9b5ef69e
动作视频/生图背景色链路升级 + 阿里云抠图接入 ( #75 )
...
主要改动
1. 阿里云通用抠图接入(新增 platform-matting crate)
手搓阿里云 VIAPI 通用抠图接口(ACS3-HMAC-SHA256 签名),跨区输入走临时桶通道。
图片抠图升级为三档降级:BgFilter → 阿里云 → 本地键色兜底。
动作视频逐帧抠图改用阿里云,remove_editor_generated_green_screen_background 降为最后兜底。
2. 背景色不再写死绿色,改多背景色自动决策
动作视频背景色和生图一样从候选调色板自动选,选项继承。
3. 视觉背景色决策(修"蓝撞蓝")
让 LLM 看参考图选背景色(gpt-4o-mini 视觉模型,路由到 VectorEngine 视觉客户端),修复原纯文本盲选。
4. 背景色候选硬过滤器(新增 editor_screen_background_filter)
按参考图前景配色算 Lab 危险质量 + 皮肤专属三判据(ΔE 距离 / 色调投影 / RGB 分离)剔除撞色候选,LLM 只在安全集合里审美选。露肤角色自动收敛到冷区。新增"灰竹绿"候选补齐安全弧绿色段。
5. 源图合成到背景色(修视频背景变白)
透明源图先填成选定实色再发给 Ark,视频背景确定性等于抠图键色,不再赌模型服从提示词。
6. screenColorHex 结构化记录 + 死代码清理
四条链路统一把实际背景色写进 generation_inputs,修复生图链路"抠图背景色"字段从未生效的旧逻辑。
清理前端抠绿 + qwenSprite 死代码,移除一次性探针示例。
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/75
Reviewed-by: kdletters <kdletters@qq.com >
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-07-10 18:22:17 +08:00
AIGameCreator App
1ea6671583
完善 Agent 多会话运行时
...
为开发者 Agent 聊天新增会话创建、切换、归档和历史只读界面
按会话隔离对话、运行状态、任务事件、提示上下文和后台回复
保持单 Agent FIFO 与 OS 锁并让重试恢复沿用原会话
补齐 Tauri 命令、持久化目录、旧会话兼容与回归测试
同步实施方案和项目决策记录
2026-07-10 18:22:01 +08:00
kdletters
c483980c9c
修复 Pingora 部署检查误报
...
显式传播 systemd 与 EnvironmentFile 提取失败,首错后立即终止部署检查
补充 direct-entry 与 systemctl cat 失败回归,阻止空环境连带误报
同步记录旧 release 残留 capability 的安全清理与验收口径
2026-07-10 16:23:37 +08:00
kdletters
3462c1efe1
修复 Pingora 部署检查误报
...
显式传播 systemd 与 EnvironmentFile 提取失败,首错后立即终止部署检查
补充 direct-entry 与 systemctl cat 失败回归,阻止空环境连带误报
同步记录旧 release 残留 capability 的安全清理与验收口径
2026-07-10 16:20:21 +08:00
AIGameCreator App
aea75ef701
补齐Agent自动工具动作恢复屏障
...
自动工具动作使用耐久账本记录 approved、executing 与 observed 状态,按崩溃点恢复精确动作或观察
将 needs-reconciliation 提升为 Agent 队列屏障,并在系统锁内按 FIFO 启动 pending 任务
补充自动动作恢复、策略收紧、审计配对、核对队列与并发配置回归测试
同步 Agent Runtime 决策和实施计划,修正项目策略确认文案断言
2026-07-10 15:51:14 +08:00
AIGameCreator App
c88c94b98c
支持Agent待确认动作可靠恢复
...
持久化精确待确认工具动作并绑定run、输入指纹与发生序号
使用OS级Agent锁串行确认、拒绝、取消、恢复与队列续跑
增加取消中状态、开发确认拒绝控件和私有Runtime文件边界
补齐并发恢复、重启核对、取消失败与前端交互回归测试
同步Agent Runtime技术方案与项目决策记录
2026-07-10 12:24:54 +08:00
kdletters
09fec601b1
完善官网 SEO 地基与精确路由
...
补充 robots、sitemap、SEO 元信息、结构化数据与首页语义内容
统一三套 Nginx 与 Pingora 的 62 条 SPA 路由和真实 404 行为
新增路由一致性检查、网关测试并同步技术文档与项目记忆
2026-07-10 12:14:44 +08:00
AIGameCreator App
a5c85c912b
绑定Agent工具确认到精确动作
...
Runtime 为工具输入生成 SHA-256 指纹和安全摘要
确认票据仅放行同一 Agent、run、command 和输入
开发窗口接通待确认动作的确认继续入口
补充动作变更阻断和界面确认回归测试
同步 Runtime V1 技术方案和项目记忆
2026-07-10 09:01:32 +08:00
kdletters
e464e62697
修复创作页滚动与画布生成状态同步
...
为创作页恢复可见滚动条并补充样式测试
普通点击画布对象时收敛多选状态,避免批量拖动
裁扩结果先资源化,并在去背完成时保留源图层
队列完成后重读未决项目快照并补充回归测试
同步图片画布持久化文档与长期排障记录
2026-07-10 08:46:17 +08:00
AIGameCreator App
d150f77301
允许Agent恢复项目快照
...
后台 Runtime 工具箱新增 project.restore
Agent 可按权限策略请求恢复到指定 checkpoint
补充恢复成功和确认阻断测试
同步 Runtime V1 文档和项目记忆
2026-07-10 08:33:05 +08:00
AIGameCreator App
bdf3ae87da
允许Agent创建项目快照
...
后台 Runtime 工具箱新增 project.checkpoint
Agent 可在写入前按权限策略创建本地 checkpoint
补充 checkpoint 成功和确认阻断测试
同步 Runtime V1 文档和项目记忆
2026-07-10 07:29:06 +08:00
AIGameCreator App
739e89ea38
允许Agent调度Ready任务
...
后台 Runtime 工具箱新增 agent.schedule_ready
Agent 可按权限策略把 manifest ready task 投递到对应队列
补充自动调度和确认阻断的 Rust 测试
同步 Runtime V1 文档和项目记忆
2026-07-10 07:15:27 +08:00
AIGameCreator App
436d67ae24
补齐Ready任务调度入口
...
开发模式 Agent 状态栏新增调度 Ready 控制
调度前复用项目权限确认并合并返回 Runtime 状态
补充前端测试覆盖开发入口和普通用户隐藏
更新 Runtime V1 文档并移除已调用命令白名单例外
2026-07-10 07:06:58 +08:00
AIGameCreator App
2c5635a35a
支持调度Ready任务给Agent
...
新增 agent.schedule_ready 命令,将 manifest ready task 投递到对应 Agent 后台队列。
为调度入口接入默认确认权限、Tauri handler 和 native-only 门禁。
补充 Runtime 测试覆盖 ready 任务调度和默认策略拦截。
同步 Agent Runtime 技术方案和项目决策记录。
2026-07-10 06:58:46 +08:00
AIGameCreator App
1ccda076dc
允许Agent创建项目任务
...
新增 task.create 工具,让后台 Agent 可把拆解结果追加到 manifest 任务图。
接入 task.create 权限策略、工具 prompt、审计记录和共享命令契约。
补充后台 Runtime 测试覆盖任务创建成功路径和确认策略拦截。
同步 Agent Runtime 技术方案和项目决策记录。
2026-07-10 06:45:02 +08:00
AIGameCreator App
8c9693a907
支持Agent工具确认后继续
...
新增一次性工具确认票据并在Runtime权限gate中按run消费。
提供确认待确认后台任务的Tauri命令和开发面板按钮。
确认后把原waiting run标记为confirmed并投递新run继续执行。
补充确认续跑测试并同步Agent Runtime文档。
2026-07-10 06:26:29 +08:00
AIGameCreator App
b30ca890bb
串行化Agent本地JSONL追加
...
新增按目标文件路径串行的本地追加写入helper。
让agent.db、对话、Runtime事件任务和Agent运行日志统一写完整JSON行。
补充并发追加测试覆盖JSONL逐行可解析。
同步Agent Runtime技术方案和决策记录。
2026-07-10 06:16:17 +08:00
AIGameCreator App
1a764af20c
收紧Agent私有记忆边界
...
禁止Agent通过memory.write写入其他Agent私有记忆。
跨Agent共享改由blackboard.write或agent.message承接。
补充后台Runtime测试覆盖跨Agent私有记忆阻断。
同步Agent Runtime技术方案和决策记录。
2026-07-10 06:09:15 +08:00
AIGameCreator App
0aa34cad79
保证Agent后台任务Run唯一
...
后台任务入队时检测同一Agent历史runId并自动生成去重后缀。
agent.delegate审计和观察结果使用实际委派runId。
补充重复runId队列测试,确认两个任务不会被快照折叠。
同步Agent Runtime技术方案和决策记录。
2026-07-10 05:57:05 +08:00
AIGameCreator App
ecd57918fc
补齐Agent后台任务取消重试
...
新增Agent Runtime后台任务按runId取消和重试命令。
取消任务写入cancelled状态、事件流和审计记录,并阻止被取消任务继续落回复。
前端Runtime状态面板展示取消和重试操作及cancelled队列计数。
补充Rust生命周期测试、前端断言和技术文档。
2026-07-10 05:48:54 +08:00
AIGameCreator App
912234e6de
保留Agent工具确认等待态
...
后台Runtime命中工具确认策略时停在waiting-for-confirmation。
任务队列和前端状态面板展示等待确认计数。
补充Rust和前端测试覆盖工具确认等待态。
同步AI游戏创作App技术方案和决策记录。
2026-07-10 05:27:19 +08:00
AIGameCreator App
d09febc7cd
支持Agent独立工具策略
...
扩展项目权限策略,按Agent保存独立拒绝和确认命令。
后台Runtime按项目级与Agent级策略叠加生成工具快照并拦截执行。
主聊天新增agent-policy命令并保留既有策略确认流程。
补充前端和Rust测试覆盖独立Agent策略读写与执行拦截。
同步AI游戏创作App技术方案和项目决策记录。
2026-07-10 05:04:56 +08:00
AIGameCreator App
5058b42ca9
实时同步Agent后台状态
...
新增 Agent Runtime Tauri 实时更新事件
前端开发窗口和主窗口监听并合并 Runtime 状态
补充后台任务实时更新测试和 Runtime 文档
2026-07-10 04:46:58 +08:00
AIGameCreator App
0f9cfb0451
恢复Agent后台任务队列
...
- 新增 Agent Runtime 恢复命令,按 agent.resume 自动策略重接任务
- 恢复时优先处理遗留 running,再串行 drain pending
- 补充前端 runtime refresh 和 Rust/React 回归测试
- 更新 AI 游戏创作 App 实施计划与决策记录
2026-07-10 04:28:18 +08:00
AIGameCreator App
b98f34a727
补齐Agent结构化计划进度
...
新增 Agent Runtime 结构化计划步骤与当前步骤索引。
在工具、观察、回复和失败生命周期中更新计划步骤状态。
在开发面板、主窗口状态卡和聊天摘要展示当前计划步骤。
补充后台 loop 成功与最终回复失败的计划步骤测试。
同步 AI 游戏创作 App 实施计划和项目决策记录。
2026-07-10 04:07:06 +08:00
AIGameCreator App
20c760bf45
展示Agent循环轮次进度
...
新增 Agent Runtime loopIteration、maxLoopIterations 和 toolActionBudget 观测字段
在 Runtime 面板、主 Agent 卡片、agent.run_status 和连续上下文展示 loop 进度
补充前端状态展示测试、Rust JSON 与 prompt 上下文断言
同步 AI 游戏创作 App 技术方案和项目决策记录
2026-07-10 03:45:32 +08:00
AIGameCreator App
f72deb9477
补齐Agent任务队列观测
...
新增 Agent Runtime taskQueue 汇总 pending/running/completed/failed 队列状态
在 Runtime 面板、主 Agent 卡片、agent.run_status 和下一轮 prompt 展示队列摘要
补充最近动作与任务队列前端测试、Rust JSON 与连续上下文测试
同步 AI 游戏创作 App 技术方案和项目决策记录
2026-07-10 03:36:46 +08:00
AIGameCreator App
4e19f68bf8
展示Agent Runtime事件流
...
Runtime 状态面板接入 recentEvents,展示 thinking/action/observation 等事件。
流式 Agent 状态归一化保留最近事件和任务,避免 payload 覆盖历史可见性。
补充事件流 UI 测试,同步 Runtime V1 文档。
2026-07-10 03:21:41 +08:00
AIGameCreator App
113d80f305
补齐Agent Runtime目标等待状态
...
Agent Runtime state 新增 currentGoal 和 waitingOn,写入后台任务生命周期。
状态面板、Agent 状态卡和 agent.run_status 展示当前目标与等待对象。
补充 Runtime 状态测试和 wire JSON 断言,同步 Runtime V1 文档。
2026-07-10 03:11:05 +08:00
AIGameCreator App
0326cc819c
补齐Agent Runtime任务委派工具
...
后台 Agent 工具箱新增 agent.delegate,可把任务投递到目标 Agent 独立队列。
agent.delegate 复用项目权限策略,确认策略下不启动目标 Agent。
补充委派协作测试,同步 Runtime V1 文档和命令契约。
2026-07-10 02:51:30 +08:00
AIGameCreator App
7571654274
补齐Agent Runtime状态观察工具
...
后台 Agent 工具箱新增 agent.run_status,可读取自己或目标 Agent 的 Runtime 状态摘要。
agent.run_status 复用项目权限策略,策略确认时不读取或泄露状态细节。
补充同伴状态观察测试,同步 Runtime V1 文档。
2026-07-10 02:34:05 +08:00
AIGameCreator App
d0dfced8ed
补齐Agent Runtime项目差异工具
...
后台 Agent 工具箱新增 project.diff,可按 checkpoint 查看本地项目差异。
project.diff 复用项目权限策略,策略确认时不泄露差异细节。
补充 Runtime 差异工具测试,同步 Runtime V1 文档。
2026-07-10 02:25:32 +08:00
AIGameCreator App
e91b7f3294
补齐Agent Runtime文件列表工具
...
后台 Agent 工具箱新增 file.list,可按相对路径列出项目文件摘要。
file.list 复用项目权限策略,策略确认时不枚举文件。
补充 Runtime 文件列表工具测试,同步 Runtime V1 文档。
2026-07-10 02:15:03 +08:00
kdletters
2de9b79e69
修复充值过期补偿确认竞态
...
调整微信充值确认终态判断,未完成补偿查单的 expired 不再提前结束。
让 SSE 客户端和前端确认流程等待补偿后的 paid 或已检查 expired。
补充 unchecked expired 到 paid 的回归测试。
2026-07-10 02:09:59 +08:00
AIGameCreator App
48cdf33c2c
补齐Agent Runtime连续上下文
...
后台 Agent 规划上下文加入本 Agent 最近状态、任务和工具动作。
新后台 run 继承同 Agent 最近回复和工具动作,避免多轮任务断档。
补充同 Agent 连续性与跨 Agent 隔离测试,同步 Runtime V1 文档。
2026-07-10 02:05:01 +08:00
AIGameCreator App
eee974fb9e
补齐Agent Runtime工具策略快照
...
Runtime state 新增 toolPolicy,派生工具级 auto、confirm 和 deny 策略。
后台规划 prompt 注入当前工具策略,Agent 可在决策前感知权限边界。
状态面板展示工具策略摘要,补充策略映射和 prompt 注入测试。
2026-07-10 01:52:41 +08:00
AIGameCreator App
28116b054f
补齐Agent Runtime最近动作状态
...
Runtime state 新增 recentToolCalls,记录最近工具动作、状态、原因和观察摘要。
Agent 状态面板展示最近动作,减少从 observation 文本推断执行过程。
补充后台工具 loop 结构化动作记录测试,同步 Runtime V1 文档。
2026-07-10 01:44:46 +08:00
AIGameCreator App
d38bd34c47
补齐Agent Runtime任务图读取工具
...
后台 Agent 工具箱新增 task.list,可读取 manifest 任务图和 readyTaskIds。
任务图读取复用 task.list 权限策略,并在策略拦截时不暴露任务细节。
补充任务图读取成功与策略拦截测试,同步 Runtime V1 文档。
2026-07-10 01:39:03 +08:00
kdletters
00ff425e03
改造充值订单过期补偿流程
...
新增 SpacetimeDB 原生充值订单过期 timer 与 expired 状态。
移除 api-server 轮询 worker,改为 HTTP 角色订阅 Pending 到 Expired 事件并查单补偿。
统一微信下单 5 分钟 time_expire,并恢复前端支付通道选择与 expired 展示。
补齐生成绑定、前后端契约、测试和项目文档。
2026-07-10 01:37:53 +08:00
AIGameCreator App
ac4448a2ef
补齐Agent Runtime任务状态工具
...
后台 Agent 工具箱新增 task.update,可由 Agent 更新 manifest 任务状态。
任务状态更新复用 task.update 权限策略、项目写锁和 manifest 任务真相源。
补充任务状态更新成功与策略拦截测试,同步 Runtime V1 文档。
2026-07-10 01:32:00 +08:00
AIGameCreator App
31ec13c52c
补齐Agent Runtime素材生成工具
...
后台 Agent 工具箱新增 canvas.asset_generate,可由 Agent 自主生成首版美术素材。
素材生成复用 External Editor API、项目权限策略、项目写锁和本地 manifest 资产登记。
补充生成成功与策略拦截测试,同步 Runtime V1 文档。
2026-07-10 01:20:11 +08:00
AIGameCreator App
4a9a2e692f
补齐Agent Runtime预览启动工具
...
后台 Agent 工具箱新增 preview.start,可由 Agent 自主启动本地预览。
预览启动复用共享 PreviewRegistry、权限策略、项目写锁、manifest、preview log 和 trace。
补充预览启动成功与策略拦截测试,并同步 Runtime V1 文档。
2026-07-10 01:08:49 +08:00
AIGameCreator App
67c9958bac
补齐Agent Runtime受限自检工具
...
后台 Agent 工具箱新增 command.run_limited,仅允许 game.static_smoke。
受限自检复用 command.run_limited 权限策略、本地项目锁和静态自检安全边界。
补充自检成功与策略拦截测试,同步 Runtime V1 文档。
2026-07-10 01:01:05 +08:00
AIGameCreator App
d24fd7071d
补齐Agent Runtime写入工具
...
后台 Agent 工具箱新增 memory.write 和 file.write。
写入工具复用项目权限策略、本地项目锁和路径保护,并写入 agent.db 审计。
补充写入成功与策略拦截测试,同步 Runtime V1 文档。
2026-07-10 00:46:27 +08:00
AIGameCreator App
59219a97d6
补齐Agent Runtime多轮观察循环
...
后台 Agent 任务改为最多三轮 plan/action/observation/replan 循环。
Runtime state 新增 nextStep,并在状态面板和主 Agent 卡片展示下一步。
补充多轮重规划测试、前端状态展示断言,并同步实施计划和决策记录。
2026-07-10 00:38:39 +08:00
AIGameCreator App
abb174965b
补齐Agent Runtime协作工具
...
Agent 后台任务工具箱新增项目黑板写入和 Agent 定向留言。
协作写工具复用 memory.write 和 conversation.write 项目策略。
补充 Runtime 写入成功与策略拦截测试,更新实施计划和决策记录。
2026-07-10 00:23:37 +08:00
AIGameCreator App
e38ad19efa
补齐Agent运行态状态列表
...
主窗口 Agent 状态列表批量读取并展示 Runtime 状态和最近任务。
单 Agent 对话与 Runtime 使用任务 ID 作为规范 Agent ID。
兼容旧 group-role Agent 别名并映射到规范任务 ID。
补充 Rust 与前端测试,更新 Runtime 文档和共享决策记录。
2026-07-10 00:07:46 +08:00
AIGameCreator App
7a6fda2513
补齐Agent后台任务排队执行
...
同一 Agent 后台任务忙时改为写入 pending 队列。
后台 drain 持有 Agent 锁并串行执行 pending 任务。
开发窗口提示后台任务已加入队列并展示 pending 状态。
补充 Rust 与前端测试,更新 Runtime 文档和共享决策记录。
2026-07-09 23:38:19 +08:00
AIGameCreator App
7c17ce6811
补齐Agent任务历史可视化
...
Agent Runtime 增加每个 Agent 的任务历史 JSONL 和最近任务读取。
任务记录状态改为 running、completed、failed 的任务视角。
开发窗口和项目 Agent 弹窗的 Runtime 面板展示最近任务。
补充 Rust 与前端测试,并更新实施计划和共享决策记录。
2026-07-09 23:22:06 +08:00
AIGameCreator App
8c077d8eb8
补齐Agent计划工具观察循环
...
后台Agent任务增加计划、工具动作、观察和最终回复循环。
只读工具调用接入项目权限策略和runtime事件。
前端测试覆盖工具动作状态展示并修正Agent卡片点击定位。
更新AI游戏创作App实施计划和共享决策记录。
2026-07-09 23:09:29 +08:00
AIGameCreator App
83901d5e78
补齐Agent后台并行任务
...
新增单Agent后台任务命令,按Agent独立runtime锁并行运行。
开发单聊和项目Agent对话弹窗增加后台运行入口。
后台任务结果写回Agent对话、runtime事件和agent.db审计记录。
补充并行后台任务测试和实施计划决策文档。
2026-07-09 22:53:08 +08:00
AIGameCreator App
2a64aa8fe3
补齐Agent Runtime状态观测
...
新增每个 Agent 的 runtime state 和 event JSONL 持久化
单 Agent 聊天和角色 brief 生成写入 task、session、run 状态
开发聊天页和项目 Agent 对话展示 runtime 状态与读取失败
排除 runtime 目录对 checkpoint、index 和 restore 的干扰
补充 Runtime V1 文档和回归测试
2026-07-09 22:36:18 +08:00
kdletters
6ddde830ef
修复钱包流水枚举追加顺序
...
将会员周期流水枚举追加到已发布枚举末尾
重新生成 SpacetimeDB Rust 绑定保持枚举判别序号兼容
补充 SpacetimeDB 持久化枚举追加约束文档
2026-07-09 20:12:16 +08:00
kdletters
12ba0e95f3
修复会员旧档迁移与周期权益
...
修正旧月季年会员迁移到新同级档位的购买判定
修正 active 升级后续周期天数切换为新商品配置
修正 mock 立即结算订单先按支付前会员状态定价
修正会员商品周期泥点文案按周期天数展示
补充会员迁移升级与前端周期文案测试
2026-07-09 18:16:34 +08:00
kdletters
104c376d6e
修复后台Dashboard月视图日期刻度
...
放宽 Dashboard 柱状图日期列宽并保持柱子居中
补充 Dashboard 长时段横轴滚动展示口径
2026-07-09 17:41:56 +08:00
kdletters
c022bbb8a0
修复小程序内充值设备识别
...
为 API 请求和刷新请求补充宿主运行时请求头。
在小程序充值设备身份异常时清理旧 token 并重新拉起小程序登录。
补充小程序充值回归测试并隔离测试 spy。
2026-07-09 16:28:32 +08:00
AIGameCreator App
3200e3b48c
支持Agent聊天流式状态
...
单 Agent 聊天新增 Tauri 流式事件并按 runId 过滤增量
开发窗口和项目 Agent 对话发送时显示保存、连接、接收和落盘状态
流式草稿先在界面增量显示,完成后再保存 assistant 消息
补充前端流式状态回归和 Rust SSE 回调测试
2026-07-09 16:09:59 +08:00
kdletters
67fee3718d
修复画布背景色与任务计时显示
...
恢复生成任务列表的进行中计时显示并兼容微秒时间戳
替换画布背景色原生取色器为可拖拽色盘和色带
持久化画布背景色并在项目恢复时应用
补充背景色交互持久化和任务计时显示测试
2026-07-09 16:05:25 +08:00
AIGameCreator App
a2bbeb79ee
补齐Agent聊天失败回执
...
Agent 聊天在用户消息已保存后将回复失败原因落盘为 assistant 消息
新增 --agent-chat 开发诊断入口验证单 Agent LLM 调用链
补充开发 Agent 聊天失败回执和 CLI 解析测试
2026-07-09 15:41:12 +08:00
AIGameCreator App
57cb1fa391
提示Agent聊天LLM配置缺口
...
开发 Agent 聊天入口主动检查并展示当前 Agent LLM 配置状态
单 Agent 对话在 LLM 未就绪时显示配置提示并阻止发送
补充开发入口和项目对话入口的 LLM 缺口回归测试
2026-07-09 15:00:35 +08:00
kdletters
5f6f4d0ba6
接入会员周期泥点制度
...
新增 Starter、Basic、Pro、Ultimate 会员商品配置与权益字段。
拆分会员有效期、周期重置时间、周期限时泥点和永久泥点余额。
实现升级补价补点但不延长有效期或移动重置时间,同级购买只延长有效期。
补齐钱包扣费与退款中的会员周期泥点消耗、重置和流水记录。
同步后台商品配置、前端充值展示、共享契约、SpacetimeDB 迁移与生成绑定。
2026-07-09 14:48:26 +08:00
kdletters
2cf3953bad
收紧外部生成任务租约和超时保护
...
缩短 worker lease 并新增普通和长任务执行预算配置
让 worker 超过执行预算后写失败并释放槽位
降低 BgFilter 默认超时并加入连续失败熔断兜底
补充资产计费 future 取消时的退款补偿保护
同步生产 env 示例、部署脚本和运维文档
2026-07-09 01:32:23 +08:00
AIGameCreator App
9bcd6d928c
修正Agent聊天验证口径
...
前端测试不再用回显用户输入冒充真实回复
Rust LLM provider 测试断言回复不是用户原文
2026-07-09 01:14:44 +08:00
AIGameCreator App
46fbcdf78a
修复Agent对话真实回复可见性
...
主窗口单 Agent 对话改为调用真实 Agent 回复
开发聊天入口在回复失败时把错误显示到对话区
更新单 Agent 对话回归测试
2026-07-08 22:58:49 +08:00
kdletters
f1ca3e79c1
轻量化外部生成队列进程
...
worker 和 controller 改为订阅 external_generation_job 队列变更来唤醒 claim 与扩缩容评估
非 HTTP 角色关闭 API 读模型订阅并将 SpacetimeDB 连接池收敛为 1
更新 worker/controller 环境模板和运维记忆,明确 poll interval 只作兜底
2026-07-08 22:16:51 +08:00
kdletters
542fb09365
接入微信 Native 充值与订单过期处理
...
调整网页端充值渠道,微信内浏览器在开放平台接入前走 Native 支付。
拆分 Native 支付二维码弹窗,展示金额和充值内容并取消无效 code_url 跳转。
修复微信 Native 下单 time_expire 秒级 RFC3339 格式,避免小数秒参数错误。
新增充值订单 5 分钟过期调度,过期前查询微信真实订单状态。
补充微信授权绑定、路由加载恢复和后台表时间显示等配套逻辑。
更新 SpacetimeDB schema、绑定和相关文档测试。
2026-07-08 21:35:02 +08:00
AIGameCreator App
c0ff9edf97
支持单Agent真实对话与并行执行
...
新增单 Agent 真实 LLM 对话命令并按 agentLlm.<agentId> 路由
开发聊天窗口切换 Agent 时自动读取历史并持久化真实回复
Agent loop 按 dependencyWaves 并行执行同一 wave 内角色 brief
补充并行执行、单 Agent 对话和界面回归测试
更新 AI 游戏创作 App 技术方案文档
2026-07-08 20:54:05 +08:00
kdletters
2721fec51c
Merge remote-tracking branch 'origin/codex/gray-release'
2026-07-08 20:44:29 +08:00
AIGameCreator App
788c085684
补齐侧栏菜单失焦关闭
...
我的和帮助菜单点击外部或焦点离开后自动收起
保留菜单内部点击交互不被提前关闭
补充侧栏菜单关闭行为测试
2026-07-08 20:31:22 +08:00
AIGameCreator App
1c88b924d5
清理首页菜单与泥点弹层细节
...
移除泥点弹层账户读取状态文案
使用详情改为统一占位通知
修复帮助按钮展开态灰色背景
补充泥点弹层交互断言
2026-07-08 20:26:19 +08:00
AIGameCreator App
06e79ab2bc
修复首页账户帮助菜单交互
...
统一我的和帮助菜单为点击触发
菜单项接入占位通知弹窗并提升弹层层级
调整泥点与升级入口为分段胶囊样式
补充首页菜单交互边界测试
2026-07-08 20:15:07 +08:00
AIGameCreator App
d8dc11592c
添加开发专用Agent聊天窗口
...
新增debug专用developer窗口并路由到agent-chat入口
实现单Agent选择、历史读取和对话持久化
收紧发布入口不暴露开发聊天并补充测试
同步更新AI游戏创作App开发窗口文档口径
2026-07-08 17:52:09 +08:00
AIGameCreator App
d251525f77
重做GameAgent单窗口首页
...
登录后直接进入单窗口客户端首页并保留兼容命令
首页支持做游戏做素材做方案切换、附件队列和目录创建流程
项目组和项目开发占位改为同窗口切换并保存首条需求
顶部泥点充值合并展示,账户帮助配置回到底部侧栏
补充账户泥点精选素材读取与首页项目视觉测试
同步AI游戏创作实施文档、决策记录和上下文术语
2026-07-08 17:35:45 +08:00
AIGameCreator App
6cb0b5d6a7
修复客户端认证异常处理
...
登录态探活遇到服务不可达时保留本地 access token。
退出登录重试时 refresh 失败仍继续调用服务端 logout。
补充客户端认证异常处理回归测试。
2026-07-08 14:24:06 +08:00
kdletters
1462ec2920
优化灰度规则判定与后台表单
...
按需读取灰度用户标签
新建 Gate Target 时重置表单规则
补充灰度语义和踩坑文档
2026-07-08 12:22:48 +08:00
AIGameCreator App
67a6cbb8d5
合并 master 分支
...
合并 origin/master 到 AI 游戏创作客户端功能分支。
解决画布文档、决策记录和本地工具配置冲突。
适配背景色决策与编辑器 Agent 测试到现行 LLM API。
2026-07-08 11:51:30 +08:00
kdletters
25cac367c6
接入功能灰度与画布 Agent 灰度
...
新增 SpacetimeDB 灰度配置表与后端判定链路
新增后台灰度发布页面和两段式 Gate Key 选择器
将画布 Agent 入口接入灰度配置与运行时能力下发
修复灰度配置刷新读取空本地缓存的问题
补充灰度规则和后台下拉维护约定文档
2026-07-08 11:26:41 +08:00
AIGameCreator App
b1cbda97b0
收起首页项目操作
...
首页最近项目卡片改为只读展示。
刷新、清空、显示和移除操作保留在项目页。
更新启动器项目操作回归测试。
2026-07-08 11:21:56 +08:00
kdletters
4e3c26d5d8
修复 release 发布与冷备份恢复
...
冷备份增加工作目录空间预检并确保失败后恢复依赖服务
API deploy 增加 Pingora 产物硬校验并区分 current 切换前后维护模式处理
Jenkins release 默认构建和部署 Pingora 影子网关并在全量流水线透传参数
补充备份与 API deploy 回归检查和生产运维护栏
更新生产运维文档与项目记忆的事故处理口径
2026-07-08 11:04:48 +08:00
AIGameCreator App
18b834af36
收起空公告栏占位
...
无公告时启动器主区域不再启用公告布局。
调整账户条和首页输入区域的无公告顶部间距。
补充启动器无公告布局回归测试。
2026-07-08 11:02:32 +08:00
AIGameCreator App
7afc0da5c4
补齐客户端验证码登录
...
新增独立客户端手机号验证码发送和登录流程。
登录请求在网络层失败时展示登录服务不可达提示。
补充验证码登录、Load failed 文案和登录页基线测试。
同步 AI 游戏创作 App 登录口径文档。
2026-07-08 10:39:40 +08:00
AIGameCreator App
ada9bc9553
隐藏空通知条
...
启动器通知列表为空时不渲染顶部通知条
移除登录页顶部通知占位背景
补充默认无通知条的启动器测试
2026-07-08 10:26:48 +08:00
AIGameCreator App
f9d8142068
接入客户端登录和配套后端启动
...
启动客户端时先检查平台登录态,未登录展示登录页,登录后进入启动器首页
独立客户端登录使用平台 auth 接口并对 refresh 做并发去重
Tauri 开发启动改为短命令 agc:serve,并先拉起配套 SpacetimeDB 与 api-server
AGC Vite 代理读取 dev-stack 状态并暴露本地 marker,复用时校验 API target
恢复启动器项目目录输入、最近项目刷新移除和非空文件夹提醒交互
补充启动器和登录 gate 测试,并更新 AI 游戏创作 App 开发文档
2026-07-08 02:25:31 +08:00
AIGameCreator App
3b3d9dcf8e
替换客户端首页左侧导航
...
按 GameAgent 需求落地首页、项目、帮助三类左侧入口
项目页复用本地最近工作区记录并提供打开和显示目录操作
帮助入口改为浮层菜单并接入使用指南、联系我们、最新动态页面
为独立客户端声明 lucide-react 图标依赖
2026-07-07 22:37:03 +08:00
AIGameCreator App
40213b839c
重做客户端静态首页
...
按参考图替换启动器首页为纯静态展示
补齐左侧导航、顶部优惠条、主输入区和最近项目卡片
调整响应式布局并保留配置弹窗入口
2026-07-07 22:18:20 +08:00
kdletters
754d364227
修复画布生成刷新后完成同步
...
任务列表识别当前画布项目的未确认完成任务并发出完成通知。
编辑器收到任务完成通知后重新加载项目快照并刷新素材库。
补充刷新后任务已完成和轮询完成的回归测试。
2026-07-07 19:45:16 +08:00
kdletters
00db7d39ea
统一生成器对话框范围行为
...
移除生成器对话框打开后的安全范围自动拉动视口。
取消快速编辑、裁扩和角色动画面板的画布范围夹取。
保留创建生成器时聚焦新占位的行为并更新回归测试。
2026-07-07 19:36:20 +08:00
kdletters
862653c987
修复精选提示词展示
...
精选卡片优先展示用户可见的生成输入
过滤系统内置和素材提取提示词
补充精选提示词外露回归测试
2026-07-07 18:47:23 +08:00
kdletters
5888219c95
移除精选预览弹窗点赞操作
...
精选素材预览弹窗只保留点赞数展示
补充弹窗不展示点赞按钮的回归测试
2026-07-07 18:37:58 +08:00
kdletters
446c6945ad
恢复精选瀑布流布局
...
将创作主页精选列表从网格恢复为多栏瀑布流
新增样式契约测试防止瀑布流再次退化为网格
2026-07-07 18:34:07 +08:00
kdletters
9b49085869
修复画布生成器偶发无法打开
...
同步生成器 active/inactive ref 与 state
激活已有生成器时清理选参考图和菜单临时状态
窗口失焦时释放 Shift 与空格按住态
补充生成器状态与快捷键回归测试
记录图片画布生成器排障经验
2026-07-07 16:22:09 +08:00
kdletters
b743152c6a
补齐zustand依赖锁文件
...
在 package-lock.json 中补齐 zustand 依赖声明
记录 zustand 5.0.14 的 npm lock 条目
2026-07-07 15:10:45 +08:00
lhk229
308d440816
新抠图算法(轻量版)上线 ( #73 )
...
新抠图算法(轻量版)上线,生图背景色同步改为多颜色+自动决策
---------
Co-authored-by: kdletters <kdletters@qq.com >
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/73
Reviewed-by: kdletters <kdletters@qq.com >
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-07-07 14:57:10 +08:00
k88936
0c14e51419
Editor agent paste image ( #72 )
...

---------
Co-authored-by: kdletters <kdletters@qq.com >
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/72
Reviewed-by: kdletters <kdletters@qq.com >
Co-authored-by: kvtodev <kvtodev@outlook.com >
Co-committed-by: kvtodev <kvtodev@outlook.com >
2026-07-07 14:56:28 +08:00
kdletters
5477abd7ba
修正精选活动图居中显示
...
恢复精选预览容器 23rem 高度上限
为活动卡预览添加独立样式并使用 contain 居中显示图片
补充活动卡预览 class 与比例测试
2026-07-07 14:19:46 +08:00
kdletters
2a98b60830
改为运行时控制画板 Agent 入口
...
新增前端运行时配置接口下发画板 Agent 开关
将画板 Agent 入口改为读取后端运行时配置
把开关变量改为 GENARRATIVE_ENABLE_IMAGE_EDITOR_AGENT_SIDEBAR
补充前后端测试和生产环境变量文档
2026-07-07 14:04:08 +08:00
kdletters
1d43783685
Merge pull request '隐藏画板素材信息中Object ID' ( #71 ) from hide-obj-id into master
...
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/71
Reviewed-by: kdletters <kdletters@qq.com >
2026-07-07 13:54:09 +08:00
kdletters
9e92b3e673
Merge branch 'master' into hide-obj-id
2026-07-07 13:53:44 +08:00
kdletters
4622b35a32
修复精选活动图裁切
...
移除精选预览容器最大高度限制
让活动图按记录宽高自然拉伸卡片高度
通过浏览器验证 900x1200 活动图比例不再被压到 23rem
2026-07-06 22:59:25 +08:00
kdletters
2d631becc7
显示精选审核提交失败原因
...
统一素材精选审核提交资格判断
在素材菜单显示不可提交和后端拒绝原因
将编辑器业务拒绝映射为 400 并保留中文原因
补充精选审核原因展示测试和文档口径
2026-07-06 21:35:10 +08:00
AIGameCreator App
21938815f1
改造主聊天为正常Agent交互
...
普通聊天改为调用主聊天 Agent 并读取项目上下文
新增 /generate 和 /draft 显式生成入口
补齐主聊天 agentLlm.chat 路由、测试和文档记忆
2026-07-06 21:05:36 +08:00
kdletters
be7f0375e5
记录精选活动卡图片宽高
...
后台上传活动卡图片时读取并保存原始宽高
隐藏活动卡 Object Key 输入,重复上传替换图片引用
公开精选按活动图宽高设置卡片比例
同步 SpacetimeDB schema、bindings 和后端数据契约文档
2026-07-06 21:00:21 +08:00
k88936
29db6365e1
隐藏画板素材信息中Object ID
2026-07-06 19:23:02 +08:00
kdletters
ab61390121
修复画布 Agent 默认被任务列表隐藏
...
打开画布时 Agent 开关启用则保持 Agent 默认展开。
恢复任务自动打开任务列表时不再抢占 Agent 默认态。
用户手动打开任务列表时仍按右侧面板互斥关闭 Agent。
补充恢复任务场景下 Agent 默认显示的回归测试。
2026-07-06 19:15:03 +08:00
kdletters
fcd353f12f
同步精选分类与活动卡文档
...
更新精选审核公开口径,说明未设置分类进入全部。
更新创作主页文档,移除素材包分类并说明全部 Tab。
更新后端表目录,记录活动卡 imageObjectKey 和 OSS 上传方式。
2026-07-06 18:59:40 +08:00
kdletters
51c47c952b
调整前台精选分类展示
...
前台精选分类新增全部并作为默认 Tab。
移除素材包 Tab 和素材包组合逻辑,未设置分类素材保留在全部中。
活动卡支持从 imageObjectKey 兜底图片地址。
精选卡片改为网格布局并让图片素材铺满预览区域。
更新前台精选模型和创作主页测试。
2026-07-06 18:58:58 +08:00
kdletters
68e9087552
完善后台精选活动卡上传
...
后台精选活动卡支持选择图片并通过 OSS 直传凭证上传。
保存活动卡时同步 imageSrc 和 imageObjectKey。
移除后台素材包分类选项,清空分类时不再自动隐藏精选素材。
补充后台活动卡上传和分类交互测试。
2026-07-06 18:57:20 +08:00
kdletters
b5aa68fc6a
调整精选后端公开契约
...
新增精选活动卡图片 objectKey 存储字段和迁移兼容。
新增后台活动卡图片 OSS 直传凭证接口。
移除素材包精选分类约束,允许未设置分类素材进入全部精选。
同步 admin 和前台读取活动卡 objectKey 的类型契约。
2026-07-06 18:56:49 +08:00
kdletters
b8e6e9f3ef
控制画布 Agent 入口默认关闭
...
新增 VITE_ENABLE_IMAGE_EDITOR_AGENT_SIDEBAR 控制画布 Agent 入口显示。
默认 .env 关闭、本地 .env.local 开启,并补充示例和类型声明。
禁用时隐藏 dock 按钮和收起态 Agent 面板,开启时保留右侧任务列表互斥逻辑。
修正右侧 Agent 和任务列表切换不影响左侧资源栏。
补充画布 Agent 开关、面板独立性和 dock 隐藏测试。
2026-07-06 18:51:11 +08:00
kdletters
7c449f0596
修正音频素材封面
...
使用用户提供的透明 PNG 替换自绘 SVG 音频封面
统一后台素材查询、精选审核、创作主页和画板素材库的音频封面引用
补齐画板图层列表音频图层封面展示
更新相关测试覆盖
2026-07-06 14:44:43 +08:00
kdletters
0b766c8bf9
统一音频素材封面缩略图
...
新增音频素材统一封面图。
素材库、创作主页精选和后台缩略图改为使用音频封面。
补充音频封面展示回归测试。
2026-07-06 14:10:16 +08:00
AIGameCreator App
d2ddb932b3
合并 master 更新到 AI 游戏创作分支
...
合入 master 的画布 Agent、精选素材审核、外部编辑器 API 与认证投影更新
保留当前分支的 AI 游戏创作壳、配置项和 LLM 运行接口改造
解决图片编辑器、LLM、去背景完成、外部生成排序和文档冲突
沿用 master 的 SpacetimeDB auth_store_projection 迁移与生成绑定
2026-07-06 11:47:19 +08:00
kdletters
b288b091b2
完善精选审核与素材查询展示
...
移除素材查询分类筛选和分类列
精选审核通过后改为手动设置展示分类
公开精选按分类展示并补充底部点赞按钮
使用文档大拇指透明图标并同步点赞测试
同步精选审核数据契约、绑定和文档
2026-07-05 18:01:02 +08:00
kdletters
a24bbeeeb8
补齐API启动controller弱依赖
...
API systemd unit 增加 controller 弱依赖
生产 ops 护栏校验 API unit 依赖
同步运维文档和项目记忆说明
2026-07-05 18:01:02 +08:00
kdletters
1fb5a0773e
修复画板提示与失效项目跳转
...
画板参考图选择提示改为持续显示并支持手动关闭。
显式项目访问失效时同步切回项目页状态。
补充提示关闭和项目失效回退测试。
2026-07-05 18:01:02 +08:00
kdletters
d7d98acfd4
接入VectorEngine画布Agent规划
...
切换画布 Agent 与通用 LLM 代理到 VectorEngine gpt-5.4-mini。
为画布 Agent 注入上一轮生成结果并默认承接上一张图编辑。
补齐规范图工具分流、规范展板 prompt 要求和 JSON 残片回复兜底。
同步前后端契约、测试脚本、环境示例和项目文档。
2026-07-05 17:42:27 +08:00
kdletters
a4a7aed024
合并画布 Agent 侧边栏聊天
...
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
# server-rs/crates/spacetime-client/src/module_bindings.rs
2026-07-04 18:39:40 +08:00
kdletters
1671d35995
修复画布Agent聊天生成体验
...
让画布 Agent 消息统一走后端规划与 LLM 回复
修复生成图片在聊天、画布和素材库中的展示与恢复
补齐右键删除、画布焦点、聊天滚轮和面板避让交互
同步 Agent 事件契约、文档和定向回归测试
2026-07-04 16:41:33 +08:00
AIGameCreator App
7afec12958
拆分游戏创作壳 Tauri 入口
...
拆出 CLI、命令、配置、Agent、素材、项目、预览和窗口模块
拆出 Rust 单测并保留 main.rs 作为 Tauri 薄入口
扩展壳配置与原生壳门禁的 Rust 源码扫描范围
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-04 16:25:45 +08:00
AIGameCreator App
3340b307d6
补充项目进度聊天入口
...
新增 /progress 项目进度摘要
补充 /next 与 /help 的进度入口覆盖
验证 /progress 不触发文件读取、运行、预览、导出或写入
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-04 15:01:38 +08:00
AIGameCreator App
5649316217
补充普通用户操作导引入口
...
新增 /guide 纯聊天操作导引
补充 /next 与 /help 的导引入口覆盖
验证 /guide 不触发文件读取、运行、预览、导出或写入
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-04 14:48:10 +08:00
AIGameCreator App
7fc7f930c6
补充下一轮分工计划聊天入口
...
新增 /plan 下一轮分工计划摘要
补充 /next 与 /help 的计划入口覆盖
验证 /plan 不触发文件读取、运行、预览、导出或写入
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-04 14:36:13 +08:00
AIGameCreator App
d6571d3ccd
补充验证证据台账聊天入口
...
新增 /evidence 当前验证证据台账摘要
补充 /next 与 /help 的证据入口覆盖
验证 /evidence 不触发文件读取、运行、预览、导出或写入
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-04 14:25:34 +08:00
AIGameCreator App
7f210c5028
补充 Agent LLM 路由清单
...
新增 /llm-routes 只读聊天入口
展示全局默认路由、单独 agent 路由和配置缺口
补充 /help 与 /next 的路由清单覆盖
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-04 14:16:24 +08:00
AIGameCreator App
608764d974
补充复玩观察聊天入口
...
新增 /retention 首轮复玩和留存观察摘要
补充 /next 与 /help 的复玩观察入口覆盖
验证 /retention 不触发文件读取、运行、预览、导出或写入
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-04 14:05:08 +08:00
AIGameCreator App
14e92e477f
补充本地化文案聊天入口
...
新增 /localization 本地化与文案检查摘要
补充 /next 与 /help 的本地化入口覆盖
验证 /localization 不触发文件读取、运行、预览、导出或写入
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-04 13:55:52 +08:00
AIGameCreator App
6d2e1ffb3a
补充兼容性说明聊天入口
...
新增 /compatibility 兼容性说明摘要
补充 /next 与 /help 的兼容性入口覆盖
验证 /compatibility 不触发文件读取、运行、预览或导出
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-04 13:47:53 +08:00
AIGameCreator App
345591e3c6
补充已知问题聊天入口
...
新增 /known-issues 已知问题清单摘要
补充 /next 与 /help 的已知问题入口覆盖
验证 /known-issues 不触发文件读取、运行、预览、导出或 agent 控制
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-04 13:32:33 +08:00
AIGameCreator App
f6ad06eb1a
补充封面缩略图聊天入口
...
新增 /cover 封面与缩略图检查摘要
补充 /next 与 /help 的封面入口覆盖
验证 /cover 不触发文件读取、运行、预览、导出或 agent 控制
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-04 13:25:36 +08:00
AIGameCreator App
2d526b4ea1
补充试玩更新说明聊天入口
...
新增 /release-notes 试玩更新说明摘要
补充 /next 与 /help 的更新说明入口覆盖
验证 /release-notes 不触发文件读取、运行、预览、导出或 agent 控制
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-04 13:17:41 +08:00
AIGameCreator App
18b40149cd
补充媒体资料包聊天入口
...
新增 /media-kit 媒体资料包摘要
补充 /next 与 /help 的媒体资料包入口覆盖
验证 /media-kit 不触发文件读取、运行、预览、导出或 agent 控制
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-04 13:10:54 +08:00
AIGameCreator App
65893fba53
补充社区发布聊天入口
...
新增 /post 社区发布文案摘要
补充 /next 与 /help 的社区发布入口覆盖
验证 /post 不触发文件读取、运行、预览、导出或 agent 控制
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-04 13:01:13 +08:00
AIGameCreator App
74bd134b55
补充试玩问答聊天入口
...
新增 /faq 试玩常见问答摘要
补充 /next 与 /help 的 FAQ 入口覆盖
验证 /faq 不触发文件读取、运行、预览、导出或 agent 控制
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-04 12:55:31 +08:00
AIGameCreator App
3c55ba3694
补充试玩短视频聊天入口
...
新增 /trailer 试玩短视频脚本摘要
补充 /next 与 /help 的短视频入口覆盖
验证 /trailer 不触发文件读取、运行、预览、导出或 agent 控制
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-04 12:49:52 +08:00
AIGameCreator App
6c3615f5d9
补充上架资料聊天入口
...
新增 /store 上架资料清单摘要
补充 /next 与 /help 的上架资料入口覆盖
验证 /store 不触发文件读取、运行、预览、导出或 agent 控制
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-04 12:44:28 +08:00
AIGameCreator App
fd86fd98ee
补充宣传截图聊天入口
...
新增 /screenshots 宣传截图清单摘要
补充 /next 与 /help 的宣传截图入口覆盖
验证 /screenshots 不触发文件读取、运行、预览、导出或 agent 控制
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-04 12:37:23 +08:00
AIGameCreator App
1a873ee88f
补充试玩问卷聊天入口
...
新增 /survey 试玩问卷问题摘要
补充 /next 与 /help 的试玩问卷入口覆盖
验证 /survey 不触发文件读取、运行、预览、导出或 agent 控制
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-04 12:31:01 +08:00
AIGameCreator App
a8a233095e
补充缺陷复现聊天入口
...
新增 /bug-report 缺陷复现记录摘要
补充 /next 与 /help 的缺陷记录入口覆盖
验证 /bug-report 不触发文件读取、运行、预览、导出或 agent 控制
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-04 12:24:09 +08:00
AIGameCreator App
c4462d68ab
补充试玩邀请聊天入口
...
新增 /invite 试玩邀请文案摘要
补充 /next 与 /help 的试玩邀请入口覆盖
验证 /invite 不触发文件读取、运行、预览、导出或 agent 控制
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-04 12:19:27 +08:00
AIGameCreator App
f07b9b4343
补充首批试玩对象聊天入口
...
新增 /audience 首批试玩对象摘要
补充 /next 与 /help 的试玩对象入口覆盖
验证 /audience 不触发文件读取、运行、预览、导出或 agent 控制
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-04 12:10:04 +08:00
kdletters
8dad52f040
实现画布Agent侧边栏聊天
...
新增画布Agent会话契约、领域规则、SpacetimeDB元数据表和生成绑定。
新增api-server画布Agent会话CRUD、OSS消息文档读写、SSE消息流和生成工具编排。
新增前端右侧Agent对话面板、会话状态hook、SSE客户端、BFF客户端和相关测试。
调整画布侧栏、任务栏、小地图默认状态和面板互斥交互。
补齐画布Agent、OSS消息存储、SSE收口、后端契约和项目记忆文档。
2026-07-04 12:03:58 +08:00
AIGameCreator App
94344098a9
补充隐私导出边界入口
...
新增 /privacy 隐私与导出边界摘要
补充 /next 与 /help 的隐私入口覆盖
验证 /privacy 不触发文件读取、预览、导出或 agent 控制
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-04 11:57:45 +08:00
AIGameCreator App
48f6a8af3d
补充改版说明草稿入口
...
新增 /revise 下一轮改版说明草稿
补充 /next 与 /help 的改版入口覆盖
验证 /revise 不触发文件读取、运行、预览、导出或 agent 控制
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-04 11:51:45 +08:00
AIGameCreator App
34f2ab7b3b
补充任务依赖链聊天入口
...
新增 /deps 任务依赖链摘要
补充 /next 与 /help 的依赖入口覆盖
验证 /deps 不触发文件读取、运行、预览、导出或 agent 控制
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-04 11:44:18 +08:00
AIGameCreator App
0e8b6b98e9
补充试玩就绪度聊天入口
...
新增 /ready 试玩就绪度摘要
补充 /next 与 /help 的就绪度入口覆盖
验证 /ready 不触发文件读取、运行、预览、导出或 agent 控制
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-04 11:38:13 +08:00
AIGameCreator App
5021f3fa5f
补充当前阻塞项聊天入口
...
新增 /blockers 当前阻塞项摘要
补充 /next 与 /help 的阻塞入口覆盖
验证 /blockers 不触发文件读取、运行、预览、导出或 agent 控制
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-04 11:31:45 +08:00
AIGameCreator App
29110a3907
补充试玩前打磨聊天入口
...
新增 /polish 试玩前打磨清单摘要
补充 /next 与 /help 的打磨入口覆盖
验证 /polish 不触发文件读取、运行、预览、导出或 agent 控制
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-04 11:19:37 +08:00
AIGameCreator App
3a96f0c7ae
补充创作规格包聊天入口
...
新增 /spec 创作规格包摘要
补充 /next 与 /help 的规格入口覆盖
验证 /spec 不触发文件读取、运行、预览或导出命令
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-04 11:08:46 +08:00
AIGameCreator App
160598d8f9
补充下一轮小步清单聊天入口
...
新增 /todo 下一轮小步清单摘要
补充 /next 与 /help 的小步清单入口覆盖
验证 /todo 不触发文件读取、运行、预览或导出命令
2026-07-04 10:52:07 +08:00
AIGameCreator App
acd6715589
补充试玩讲解稿聊天入口
...
新增 /demo 30 秒试玩讲解稿摘要
补充 /next 与 /help 的讲解稿入口覆盖
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-04 10:44:05 +08:00
AIGameCreator App
6555984d73
补充手动测试计划聊天入口
...
新增 /test-plan 手动测试计划摘要
补充 /next 与 /help 的测试计划入口覆盖
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-04 10:36:35 +08:00
AIGameCreator App
f2789a9b20
补充性能加载聊天入口
...
新增 /performance 性能与加载检查摘要
补充 /next 与 /help 的性能入口覆盖
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-04 10:26:56 +08:00
AIGameCreator App
4d9e054200
补充无障碍聊天入口
...
新增 /accessibility 可读性与无障碍检查摘要
补充 /next 与 /help 的入口覆盖
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-04 10:18:03 +08:00
AIGameCreator App
92adeb77fa
补充素材署名聊天入口
...
新增 /credits 素材署名与来源摘要
补充 /next 与 /help 的署名入口覆盖
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-03 19:08:20 +08:00
AIGameCreator App
5b5624021a
补充移动试玩聊天入口
...
新增 /mobile 移动试玩检查摘要
补充 /next 与 /help 的移动入口覆盖
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-03 18:59:54 +08:00
AIGameCreator App
ddd6b70f52
补充新手引导聊天入口
...
新增 /tutorial 新手引导检查摘要
补充 /next 与 /help 的引导入口覆盖
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-03 18:52:55 +08:00
AIGameCreator App
c796dac003
补充试玩定位聊天入口
...
新增 /pitch 试玩定位与卖点摘要
补充 /next 与 /help 的定位入口覆盖
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-03 18:45:44 +08:00
AIGameCreator App
44f810ba01
补充作品页文案聊天入口
...
新增 /listing 作品页草稿摘要
补充 /next 与 /help 的文案入口覆盖
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-03 18:37:55 +08:00
AIGameCreator App
6ce4a68ece
补充试玩交付聊天入口
...
新增 /share 试玩交付清单摘要
补充 /next 与 /help 的交付入口覆盖
同步 AI 游戏创作 App 技术方案和决策记录
校准项目权限确认提示测试
2026-07-03 18:28:44 +08:00
AIGameCreator App
5896350075
补充玩法规则聊天入口
...
新增 /rules 玩法操作与规则摘要
补充 /next 与 /help 的规则入口覆盖
同步 AI 游戏创作 App 技术方案和决策记录
2026-07-03 18:18:47 +08:00
AIGameCreator App
fde0a3ae80
补充试玩反馈与数值聊天入口
...
新增 /feedback 试玩反馈摘要和修改说明草稿
新增 /balance 数值与难度口径摘要
补充 /next 与 /help 的入口覆盖
同步技术方案和项目决策记录
2026-07-03 18:09:11 +08:00
AIGameCreator App
c192e01b89
补充 MVP 范围聊天入口
...
新增 /mvp 最小可玩范围摘要和后续草稿
补充 /next 与 /help 的 MVP 入口覆盖
同步技术方案和项目决策记录
2026-07-03 17:56:43 +08:00
AIGameCreator App
86799a4da9
补充创作目标聊天入口
...
新增 /goal 创作目标来源摘要和细化草稿
补充 /next 与 /help 的目标入口覆盖
同步技术方案和项目决策记录
2026-07-03 17:45:56 +08:00
AIGameCreator App
92c9592e46
补充生成变更聊天入口
...
新增 /changes 最近生成变更摘要和读取草稿
补充 /next 与 /help 的变更入口覆盖
同步技术方案和项目决策记录
2026-07-03 17:39:18 +08:00
AIGameCreator App
03a2e9fa03
补充质量检查聊天入口
...
新增 /qa 质量检查清单和后续草稿
补充 /next 与 /help 的 QA 入口覆盖
同步技术方案和项目决策记录
2026-07-03 17:33:28 +08:00
AIGameCreator App
a05e8e0365
补充运行预算聊天入口
...
新增 /budget 运行预算摘要和后续草稿
补充 /next 与 /help 的预算入口覆盖
同步技术方案和项目决策记录
2026-07-03 17:24:42 +08:00
AIGameCreator App
bb7ce9a1c8
补充专业组进度聊天入口
...
新增 /groups 专业组进度摘要和任务草稿
补充 /next 与 /help 的专业组入口覆盖
同步技术方案和项目决策记录
2026-07-03 17:18:13 +08:00
AIGameCreator App
3353ea37ef
补充任务验收标准聊天入口
...
新增 /criteria 当前任务验收摘要和任务草稿
补充 /next 与 /help 的验收入口覆盖
同步技术方案和项目决策记录
2026-07-03 17:13:07 +08:00
AIGameCreator App
3a4504a04f
补充项目时间线聊天入口
...
新增 /timeline 项目活动摘要和日志草稿
补充 /next 与 /help 的时间线入口覆盖
同步技术方案和项目决策记录
2026-07-03 17:05:40 +08:00
AIGameCreator App
25868e099a
补充生成上下文聊天入口
...
新增 /context 上下文来源摘要和草稿
补充 /next 与 /help 的上下文入口覆盖
同步技术方案和项目决策记录
2026-07-03 16:57:35 +08:00
AIGameCreator App
cb1ab51b58
补充美术素材聊天入口
...
新增 /art 美术素材摘要和草稿
补充 /next 与 /help 的美术入口覆盖
同步技术方案和项目决策记录
2026-07-03 16:48:08 +08:00
AIGameCreator App
bc057b7ef7
补充试玩状态聊天入口
...
新增 /playtest 试玩摘要和下一步草稿
补充 /next 与 /help 的试玩入口覆盖
同步技术方案和项目决策记录
2026-07-03 16:34:45 +08:00
AIGameCreator App
7250ecf0cc
补充评审状态聊天入口
...
新增 /review 评审摘要和读取草稿
补充 /next 与 /help 的评审入口覆盖
同步技术方案和项目决策记录
2026-07-03 16:25:16 +08:00
AIGameCreator App
169f74b3c8
补充轮次产物聊天入口
...
新增 /passes 轮次产物读取草稿
补充 /next 和 /help 的轮次入口覆盖
同步技术方案和项目决策记录
2026-07-03 16:14:23 +08:00
AIGameCreator App
b97ebb9a8b
补充内部真相源聊天入口
...
新增 /internals 内部真相源读取草稿
补充内部入口界面测试和帮助覆盖
同步技术方案和项目决策记录
2026-07-03 16:07:33 +08:00
AIGameCreator App
8e458ab08e
补充发布准备聊天入口
...
新增 /publish 发布准备清单和安全草稿
补充发布准备入口界面测试和帮助覆盖
同步技术方案和项目决策记录
2026-07-03 16:00:04 +08:00
AIGameCreator App
c63e87e5f2
补充音频素材聊天入口
...
新增 /audio 音频素材盘点和安全草稿
补充音频入口界面测试和帮助覆盖
同步技术方案和项目决策记录
2026-07-03 15:51:55 +08:00
AIGameCreator App
88279cea3d
补充本地试玩包列表入口
...
新增 /exports 聊天命令和试玩包列表摘要
新增 Tauri 试玩包列表命令和安全过滤测试
同步共享命令契约、技术方案和决策记录
2026-07-03 15:40:07 +08:00
AIGameCreator App
f3d9ae38d0
补充本地试玩包导出入口
...
新增 /export 聊天命令和主窗口导出确认入口
新增本地试玩 ZIP 白名单打包和安全记录
同步共享命令契约、技术方案和决策记录
2026-07-03 15:27:37 +08:00
AIGameCreator App
1c7532ea99
补充运行辅助文件入口
...
新增聊天侧run-files命令列出Agent运行辅助文件读取草稿
补充主窗口命令帮助和下一步建议测试
同步AI游戏创作App技术方案和共享决策记录
2026-07-03 04:45:37 +08:00
AIGameCreator App
e47f346561
补充项目交接聊天入口
...
新增聊天侧handoff命令基于当前状态生成项目交接摘要
补充主窗口交接入口和帮助命令测试
同步AI游戏创作App技术方案和共享决策记录
2026-07-03 04:37:08 +08:00
AIGameCreator App
4a6a9d4a2f
补充Run历史聊天入口
...
新增聊天侧runs命令基于已加载状态生成Run读取草稿
补充主窗口Run历史入口和帮助命令测试
同步AI游戏创作App技术方案和共享决策记录
2026-07-03 04:27:46 +08:00
AIGameCreator App
f8af8ca507
补充项目风险命令入口
...
新增聊天侧risks命令基于当前状态生成风险摘要
补充主窗口风险入口和帮助命令测试
同步AI游戏创作App技术方案和共享决策记录
2026-07-03 04:19:38 +08:00
AIGameCreator App
d046866c07
补充项目简报命令入口
...
新增聊天侧brief命令基于当前状态生成项目简报
补充帮助命令和主窗口简报入口测试
同步AI游戏创作App技术方案和共享决策记录
2026-07-03 04:12:49 +08:00
AIGameCreator App
6992dede5b
补充下一步建议命令
...
新增聊天侧next命令基于当前状态给出安全草稿建议
补充主窗口下一步建议测试和帮助命令覆盖
同步AI游戏创作App技术方案和共享决策记录
2026-07-03 04:05:42 +08:00
AIGameCreator App
b8cb088056
补充日志读取命令入口
...
新增聊天侧logs命令列出常用日志读取草稿
补充帮助命令和主窗口日志入口测试
同步AI游戏创作App技术方案和共享决策记录
2026-07-03 03:59:26 +08:00
AIGameCreator App
53d8acc2dc
补充Run产物读取入口
...
新增聊天侧run-artifacts命令列出最近Run产物读取草稿
补充帮助命令和主窗口Run产物入口测试
同步AI游戏创作App技术方案和共享决策记录
2026-07-03 03:50:28 +08:00
AIGameCreator App
e1f00d8aca
补充Agent对话读取入口
...
新增聊天侧agent-conversations命令列出Agent对话读取草稿
补充帮助命令和主窗口对话入口测试
同步AI游戏创作App技术方案和共享决策记录
2026-07-03 03:46:11 +08:00
AIGameCreator App
37a6455059
补充Agent记忆读取入口
...
新增聊天侧agent-memories命令列出私有记忆读取草稿
补充帮助命令和主窗口记忆入口测试
同步AI游戏创作App技术方案和共享决策记录
2026-07-03 03:42:47 +08:00
AIGameCreator App
f0ba3c0327
补充Agent状态聊天汇总
...
新增聊天侧agents命令汇总每个Agent当前状态
补充帮助命令和主窗口状态汇总测试
同步AI游戏创作App技术方案和共享决策记录
2026-07-03 03:38:49 +08:00
AIGameCreator App
6fbd1e044a
补充项目策略快捷入口
...
新增索引资产登记和记忆写入确认草稿入口
补充用户面策略快捷入口测试
同步AI游戏创作App技术方案和共享决策记录
2026-07-03 03:31:40 +08:00
AIGameCreator App
5369440e15
补充预览策略快捷入口
...
新增打开预览和停止预览确认草稿入口
补充用户面策略快捷入口测试
同步AI游戏创作App技术方案和共享决策记录
2026-07-03 03:24:37 +08:00
AIGameCreator App
bd1dfe198b
补充产物读取命令入口
...
新增聊天侧常用生成产物命令列表
补充入口HTML读取草稿和用户面测试
同步AI游戏创作App技术方案和共享决策记录
2026-07-03 03:20:10 +08:00
AIGameCreator App
c88678c28d
补充常用产物读取入口
...
新增主窗口常用生成产物读取草稿入口
补充用户面快捷入口测试
同步AI游戏创作App技术方案和共享决策记录
2026-07-03 03:12:21 +08:00
AIGameCreator App
980cae575e
补充音频资产快捷入口
...
新增主窗口音效登记和画板音频导入草稿入口
补充用户面快捷入口测试
同步AI游戏创作App技术方案和共享决策记录
2026-07-03 03:04:59 +08:00
AIGameCreator App
ae245e11df
补充Agent私有记忆写入
...
新增单Agent对话面板私有记忆追加入口
补充Tauri本地Agent记忆写入命令和策略测试
同步AI游戏创作App技术方案和共享决策记录
2026-07-03 02:58:53 +08:00
AIGameCreator App
41b23add83
补充开发日志查看入口
...
新增开发窗口项目日志只读查看入口
补充命令预览和Agent日志的用户面测试
同步AI游戏创作App技术方案和共享决策记录
2026-07-03 02:45:23 +08:00
AIGameCreator App
c503b15ab5
补充Agent LLM状态展示
...
回填LLM状态到Agent列表和单Agent对话
补充Agent级Provider状态的用户面测试
同步AI游戏创作App技术方案和共享决策记录
2026-07-03 02:36:08 +08:00
AIGameCreator App
875d9fd727
补充主窗口项目摘要
...
新增主窗口任务资产和最近命令摘要
补充项目摘要的用户面测试
同步AI游戏创作App技术方案和共享决策记录
2026-07-03 02:25:44 +08:00
AIGameCreator App
1ad51e30c6
补充Agent对话与继续草稿入口
...
新增对话读写策略确认草稿入口
新增Agent继续说明草稿入口
补充用户面快捷入口测试
同步AI游戏创作App技术方案和共享决策记录
2026-07-03 02:14:55 +08:00
AIGameCreator App
4a6540a5af
忽略外部API冒烟测试产物
...
新增外部 API 冒烟测试输出目录忽略规则
2026-07-03 02:06:15 +08:00
AIGameCreator App
eb80a592c0
补充AI游戏创作草稿快捷入口
...
新增灵感草稿入口,仅填入创作需求不触发生成
新增预览和Agent状态权限确认草稿入口
补充主窗口草稿入口测试覆盖
同步AI游戏创作App文档和共享决策记录
2026-07-03 02:02:21 +08:00
AIGameCreator App
425743820a
补齐AI游戏创作轻量读取草稿入口
...
为Trace产物和checkpoint补充只填草稿的读取与回滚入口
补充Agent输出、活动和上下文包读取草稿入口
补充黑板覆盖与清空草稿入口
同步AI游戏创作App文档和共享决策记录
2026-07-03 01:56:01 +08:00
AIGameCreator App
e3fd0d483d
拓宽AI游戏创作主窗口快捷入口
...
在主窗口头部显示当前预览状态
补充黑板、画板资产导入和资产读取草稿快捷入口
为Trace产物提供读取命令草稿
同步AI游戏创作App文档和共享决策记录
2026-07-03 01:43:35 +08:00
AIGameCreator App
998e33ca3d
完善AI游戏创作App本地工作区与Agent协作
...
补齐工作区启动器、非空目录确认和主窗口切换入口
改为运行时配置文件并支持全局与单Agent LLM Provider
接入平台 External API 生成和同步美术资产
补齐本地对话记录、Agent私有记忆和项目黑板
完善Agent状态、历史Run、快照、文件和资产快捷入口
同步AI游戏创作App实施计划和共享决策记录
2026-07-03 01:32:51 +08:00
AIGameCreator App
76b5718d77
落地游戏创作本地工程护栏
...
新增项目 checkpoint、diff、restore、本地索引、写锁和项目级权限策略。
接入聊天命令和共享命令契约,普通用户可确认恢复与策略写入。
补充上下文敏感信息过滤,避免密钥和本机配置进入 LLM prompt。
更新 AI 游戏创作 App 文档、共享记忆和相关测试。
2026-07-01 16:26:43 +08:00
AIGameCreator App
5ddf0cc325
合并远端创作应用分支
...
合并 origin/codex/ai-game-creator-app 的最新提交。
保留本地美术资源生成接口与素材库合并改动。
2026-07-01 14:40:27 +08:00
lhk229
65d1489bdd
新增 Anthropic 链路,LLM 请求收口为 LlmRunRequest/LlmApiKind,新增Agent流程图绘图脚本 ( #70 )
...
新增 Anthropic 链路,LLM 请求收口为 LlmRunRequest/LlmApiKind,为未来创建更多字段适配高级功能准备
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/70
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-06-30 19:33:37 +08:00
AIGameCreator App
e72e689f6a
接入平台美术生成接口
...
在 AI 游戏创作 Agent loop 中配置 editorApi.apiKey 时调用 External Editor 图片生成 API
将生成结果换签下载到 assets/canvas-generated/ 并登记为 canvas 来源资产
补充平台生图 mock 测试和相关方案决策文档
2026-06-30 15:47:10 +08:00
AIGameCreator App
ff95dfa62f
合并编辑器素材库分支
...
合并 codex/editor-asset-library 到 AI 游戏创作 App 分支。
保留 AI 游戏创作客户端配置决策,并合入素材库分支新增文档。
排除素材库分支误带的 .env.local 本机密钥改动。
2026-06-30 15:23:41 +08:00
AIGameCreator App
588a529875
改用客户端运行时配置
...
移除 AI 游戏创作壳专属 .env 读取,改为默认配置模板与 Tauri 运行时配置。
新增主窗口配置面板,读写 LLM 与画板 API 配置。
更新 CLI smoke、门禁、测试和项目文档。
2026-06-30 15:13:51 +08:00
kdletters
54b18bf0e2
增强生成音频下载重试
...
为生成音频下载添加 identity 请求头和响应体读取失败重试。
补充音频下载响应体失败后重试成功的单元测试。
2026-06-30 13:46:08 +08:00
kdletters
a8c19e132d
完善画布任务与标准绿幕抠除链路
...
统一编辑器标准绿幕提示词和本地绿幕透明化后处理
生成标准绿幕资产前保存源图到 OSS 并下沉字节级抠绿到 platform-image
将手动去背景接入外部生成队列与画布任务侧栏
修复任务侧栏分页、滚动、计时、焦点与完成信息展示
补充右键菜单关闭和素材复制下载交互
同步编辑器相关文档和项目记忆
2026-06-30 11:29:54 +08:00
AIGameCreator App
1fedd62c90
完善创作壳运行控制审计
...
记录自动状态命令到本地命令日志
限制 command.auto 只能记录 auto 权限命令
补齐 agent retry 和 resume 的界面与生命周期测试
2026-06-30 10:19:51 +08:00
kdletters
10b170e7a2
完善画布素材与抠图任务体验
...
素材库资产支持直接下载。
画布复制图片时同步写入系统剪贴板。
手动抠图请求直接进入画布任务列表并支持聚焦。
2026-06-29 19:53:05 +08:00
kdletters
dbf38f3a8c
显示画板顶部用户头像
...
在画板顶部泥点右侧显示当前用户头像、昵称和用户码。
头像入口复用账号弹窗,未登录时打开登录入口。
补充画板顶部头像入口的组件和集成测试。
2026-06-29 18:07:44 +08:00
kdletters
7417370ae9
修复画布任务列表服务端任务显示
...
任务列表只使用服务端返回的生成任务。
保留生成任务水合后的开始和结束时间。
同步任务列表与画布阶段视图测试。
2026-06-29 17:22:42 +08:00
kdletters
73eb3f6dc8
隐藏精选部分素材分类
...
隐藏陶泥儿精选中的特效、场景和游戏分类入口
补充创作首页精选分类隐藏断言
2026-06-29 17:21:09 +08:00
kdletters
496bafbb7f
更新.env.local
2026-06-29 16:28:39 +08:00
kdletters
a6e3aef5b2
修复任务侧栏空页签跳转
...
保留用户手动选择的空排队生成中页签。
补充任务侧栏空页签回归测试。
2026-06-29 16:26:30 +08:00
kdletters
12ef866b66
完善画布任务列表与远程抠图接入
...
新增图片画布任务侧栏页签、滚轮隔离、完成时间、后端计时和运行中状态展示。
限制外部生成任务只显示当前项目,并让任务点击聚焦画布内容和快速编辑源图。
接入外部生成任务列表查询状态过滤、提示词摘要和后端任务映射。
补充 BiRefNet 抠图请求日志、任务耗时提示和相关文档。
补充侧栏、画布聚焦、外部任务契约和 api-server 定向测试。
2026-06-29 16:19:28 +08:00
kdletters
d2428b30f2
Merge remote-tracking branch 'origin/codex/editor-asset-library' into codex/remote-cutout-task-sidebar
2026-06-29 16:12:29 +08:00
kdletters
45e4b6e64a
修复画布快速编辑还原生成器
...
直接点击生成图时还原原生成器对话框
非生成图直接点击只选中不打开生成器
快速编辑按钮和右键入口按素材元数据打开对应生成器
补齐资源元数据回填和入口边界测试
2026-06-29 16:06:51 +08:00
kdletters
495fcc8801
切换图片画布抠图到 BiRefNet
...
新增图片画布去背景 BFF 配置与路由,服务端代理 BiRefNet 并持久化结果。
将手动去背景、角色图、图标 spritesheet、UI 素材提取和角色动作帧抠图切到 BiRefNet。
新增画布右上角任务侧栏并展示去背景任务耗时与状态。
同步图片画布技术文档和项目决策记录。
2026-06-29 15:02:14 +08:00
AIGameCreator App
9af13974db
支持平台入口初始页签
...
为平台入口透传 initialPlatformTab 参数
避免移动端隐藏页签覆盖显式创作页签
更新 RPG 入口交互测试的创作页签起点
2026-06-28 04:53:35 +08:00
AIGameCreator App
e4395c77e0
默认使用 Responses 协议
...
将 platform-llm 文本请求默认协议改为 Responses
为旧 Chat Completions 网关保留显式兼容开关
同步 AI 游戏创作 App 协议配置与文档
2026-06-28 00:01:02 +08:00
lhk229
21b56ab611
Fix/llm parsing and null output ( #69 )
...
修复LLM解析错误(输出过长被截断)、LLM回复为空(Deepseek服务端问题)
---------
Co-authored-by: AIGameCreator App <dsk@genarrative.world >
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/69
Co-authored-by: lhk229 <ink29535@proton.me >
Co-committed-by: lhk229 <ink29535@proton.me >
2026-06-26 22:02:39 +08:00
AIGameCreator App
afd699a060
补齐游戏创作智能体本地Run控制
...
新增 agent run 状态、停止、重试和恢复命令
把 run 生命周期写入 trace、activity、output 和 context bundle
补齐聊天入口、测试覆盖和实施计划文档
2026-06-26 21:55:31 +08:00
AIGameCreator App
5de4916956
增强游戏创作智能体生成过程可见性
...
在聊天中实时展示 Planner、Orchestrator、Generator 和 Evaluator 进度
将生成完成摘要切换为完整 run trace 和 LLM 对话证据
补齐质量评审任务、测试覆盖和实施计划文档
2026-06-26 19:36:21 +08:00
AIGameCreator App
1b4bca1ab3
修正 AI 游戏创作真实网关生成链路
...
调整 AI 游戏创作 App 的 LLM 默认超时和输出上限
将组内角色 brief 改为本地编排生成,保留 6 组多角色 trace,减少真实 provider 调用
允许画板资源占位引用通过自检,继续拒绝固定模板和未完成实现
更新本地 provider smoke 和 Agent trace 断言
2026-06-25 21:03:46 +08:00
AIGameCreator App
72a6d635da
AI 游戏创作智能体 App v1 最小落地
...
新增独立 Tauri 壳 apps/ai-game-creator-shell,只保留聊天入口,正式用户窗口不承载游戏预览画面,开发模式通过独立窗口展示任务、文件、记忆、预览和日志
新增游戏创作专业组与种子任务图契约,覆盖策划/美术/程序/数值/音乐/运营 6 组下 15 个组内角色
新增共享契约本地项目 manifest、内置命令权限枚举、run trace schema 和 ready-task 选择器
扩展平台 LLM 支持流式请求,增加 GENARRATIVE_GAME_CREATOR_LLM_STREAM 开关
新增 AI 游戏创作 App 的聊天命令集:/help /capabilities /audit /project /llm-status /status /files /assets /read /tasks /trace /smoke /run /preview /preview-status /preview-open /preview-stop /memory /remember /forget-memory /canvas /sync-canvas-project /import-canvas-asset /import-canvas-export
新增本地项目初始化、权限 gate(pending/confirm/cancel)、文件上传、受限命令白名单 game.static_smoke 和本地 HTTP 预览
新增 Planner / 6 组角色 agent / Generator / Evaluator / ArtifactWriter / Playtest 文件驱动 loop,最多 3 轮返工,结构化 repairRoutes
新增实时 run trace 写入 .agent/run.latest.json 与 .agent/runs/,包含 taskGraph、passPlans 和步级 toolCalls
新增短期/长期记忆 memory/session.md 和 memory/project.md,支持聊天读取/追加/覆盖/删除
新增画板对接:canvas.project_open、canvas.project_sync、canvas.asset_import、canvas.export_import
新增 npm run ai-game-creator-shell:check 开发验收入口,覆盖 typecheck、单元测试、端到端 smoke
新增 check:native-shells 静态守门:release 只登记 main 聊天窗口,CSP 禁止内嵌预览,开发窗口只在 debug 下打开,用户侧预览命令必须调用 open_local_game_preview
2026-06-25 21:03:46 +08:00