Commit Graph

2950 Commits

Author SHA1 Message Date
lhk229 fa3b60777c 修复生产运维门禁格式误报
Project CI / Frontend tests (pull_request) Successful in 2m30s
Project CI / Repository checks (pull_request) Successful in 2m34s
Project CI / Backend tests (pull_request) Successful in 5m16s
Project CI / Native shell tests (pull_request) Successful in 15m55s
生产运维门禁对备份安全片段启用空白与尾逗号容错匹配
补充开发运维文档中的门禁匹配规则说明
2026-08-28 04:11:15 +00:00
lhk229 f4819e9a42 修复审批回执重放的会话归属
Project CI / Repository checks (pull_request) Failing after 5m11s
Project CI / Backend tests (pull_request) Successful in 10m1s
Project CI / Frontend tests (pull_request) Successful in 7m0s
Project CI / Native shell tests (pull_request) Successful in 18m3s
按原 Supervisor task 会话恢复审批修改意见

允许归档会话中已有幂等消息安全重放

同步审批恢复的长期决策记录
2026-08-28 03:47:31 +00:00
lhk229 f4776637c6 合并最新master到设计代理分支
Project CI / Native shell tests (pull_request) Successful in 16m21s
Project CI / Repository checks (pull_request) Failing after 4m24s
Project CI / Frontend tests (pull_request) Successful in 6m0s
Project CI / Backend tests (pull_request) Successful in 9m12s
同步 master 的退款 outbox、认证投影与外部生成历史清理改动

保留 GDD 审批修复及双方决策记录
2026-08-28 03:00:51 +00:00
lhk229 1bbecfd87b 修复GDD审批同步期间提交竞态
审批按钮在 hydrate 期间统一禁用

修改和退回弹窗提交复用同一忙碌状态门禁

提交处理函数同步阻止过期 pending 决定
2026-08-28 02:30:03 +00: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
lhk229 168a86c73f 修复持锁 Provider 构建的二次取项目锁
Project CI / Repository checks (pull_request) Failing after 9s
Project CI / Backend tests (pull_request) Failing after 9s
Project CI / Frontend tests (pull_request) Failing after 15m20s
Project CI / Native shell tests (pull_request) Successful in 28m42s
Provider tool-plan 持锁路径改用 locked 阶段判定入口

保留未持锁调用方的单次加锁包装入口

修复澄清回答恢复 continuation 因非重入项目锁卡死
2026-08-27 14:01:21 +00: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
lhk229 bca595a554 拒绝无审批决定的 user_revision 提交
plan.submit_gdd 新版本仅在 session 已有 revise/reject lastDecisionRef 时接受 user_revision
首次 collecting 伪造 user_revision 改为拒绝且不落 GDD
同步 Fast GDD 技术方案与 decision-log
2026-08-27 13:41:57 +00:00
lhk229 8779018653 合并最新master并保留GDD审批修复
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Successful in 4m23s
Project CI / Backend tests (pull_request) Successful in 8m28s
Project CI / Frontend tests (pull_request) Successful in 5m11s
合入 origin/master 的 SpacetimeDB 2.8.3 与 Runtime 更新

保留 GDD 审批忙碌状态拆分和同步提示修复

解决策划 Prompt 与排障记忆的合并冲突
2026-08-27 12:30:32 +00:00
lhk229 f35c86d996 调整GDD审批投影同步提示
Project CI / Repository checks (pull_request) Failing after 12s
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / Frontend tests (pull_request) Successful in 3m13s
Project CI / Native shell tests (pull_request) Successful in 14m3s
将恢复文案改为中性的审批状态同步提示

保留同步期间的重复提交阻止与重试入口

同步更新现有界面断言与代码注释
2026-08-27 12:01:29 +00:00
lhk229 b70cc79f80 拆分GDD审批与状态同步忙碌状态
审批决定按钮仅反映用户决定提交状态

恢复按钮仅反映策划状态同步状态

贯通总控视图与工作台的独立状态参数
2026-08-27 11:51:51 +00:00
lhk229 c5a0705eff 收窄 Provider handoff 绝对路径校验边界
Project CI / Frontend tests (pull_request) Successful in 3m43s
Project CI / Repository checks (pull_request) Failing after 8s
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / Native shell tests (pull_request) Successful in 14m36s
按已知工具参数语义检查可执行路径字段

允许 plan.submit_gdd 的 GDD 与决定内容包含普通斜杠文本

移除未知字段绝对路径的过宽旧测试断言

补充路径校验边界排障记忆
2026-08-27 11:17:31 +00:00
lhk229 a69e0bc68f 增加 Provider 交接失败本地诊断
成功 handoff 失败时保存应用私有 Provider 响应诊断

在项目状态和 Agent DB 中记录本地诊断相对引用

补充 Runtime 技术方案与排障记录

增加私有诊断落盘和引用校验测试
2026-08-27 10:32:50 +00:00
lhk229 b767a6bc82 修复立项策划审批修订提交链路
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
新增 user_revision 来源并允许审批修订更新当前 GDD 决定快照

移除 planning submit 对历史 session 决定内容的逐项门禁与自动覆盖

修复历史审批回执污染当前 approval pending 恢复投影

更新策划 Prompt、技术方案、原型说明和必要回归测试
2026-08-27 09:22:27 +00: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
lhk229 41228b0cda 修复 GDD 修订后的审批取证链路
Project CI / Repository checks (pull_request) Failing after 12s
Project CI / Backend tests (pull_request) Failing after 12s
Project CI / Frontend tests (pull_request) Successful in 3m11s
Project CI / Native shell tests (pull_request) Successful in 12m30s
新增 plan Supervisor 的 AwaitingAcceptanceEvidence 阶段与无副作用 durable 状态判定

在证据不足时收窄工具面,阻止重复 agent.delegate 并保留 file.read、acceptance_update、run_status

补充一条阶段工具面回归及项目排障记录
2026-08-26 13:18:12 +00: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
lhk229 0e84ea1ed9 补齐策划会话投影失败任务的 phase 白名单
统一 planning-session-projection-failed 的写入与读取常量

补充稀有持久化 phase 的 Runtime task journal 回归测试
2026-08-26 11:36:23 +00: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
lhk229 15c0d6f028 修通澄清信封被收束门禁拦死的活锁,并给最终回复重试加兜底
策划子 Agent 每轮都在正确地吐 AGC_NEEDS_USER_INPUT_V1 信封(header 带主题、
三选项齐全),却被拒了 26 次,一条生产 run 空转 65 轮直到人工介入。

信封是通过 respond_to_user 交付的,走最终回复通道,于是撞上两道「计划必须全部
完成」的判据:
- runtime_state.rs 收束链首位的 structured_plan_completion_blocker
- runtime_protocol/finalization.rs 上「finalization 必须绑定已全部完成的计划
  快照」这条 journal 持久不变量(第二道,是上面那条测试逼出来的)

而计划里「按用户决定收敛并提交」那一步在用户答之前永远不可能 completed:想问
用户就得先 respond_to_user,问不出去就答不了。对任何含「答完之后再做 X」步骤的
计划,这条判据都不可满足。

以前没炸靠两件偶然:策划子 Agent 不提交结构化计划(判据第一行就跳过),或者
提交了之后肯把没做的步骤标成 completed。翻了同机全部历史 run:4 条没提交计划、
2 条首版 3/4 改成 4/4 放行、这条首版 1/4 之后再没改过——就死了。

修法是判据豁免而不是代填步骤状态:澄清信封是本 run 挂起等用户答,剩余步骤归
用户答复后的 continuation run,把它们标成 completed 是伪造进度。豁免只放行
「计划未完成」这一件事,快照自身的结构合法性仍然逐项校验,其余 blocker 照常。

第二件:最终回复被拦下后 run 原地续跑重试,此前没有任何上限。空转闸只认裸
update_agent_plan,而这里模型每轮都在认真调 respond_to_user,没有任何计数器会
累加。新增 stale_finalization_rounds(持久 Runtime state,与
plan_submit_gdd_rejection_count / plan_update_idle_rounds 同一模式,重启不能把
活锁洗成新的无限 Provider 开销),上限 32——刻意留在两道软闸之上,让自愈路径
先有机会起作用。真实推进后清零。

守门两条:
- 同一份未完成计划,普通交付收束必须被拦(blocker.tool=runtime.plan_update)、
  澄清信封必须放行。两半都实测非空转:撤掉任一处豁免,对应那半立刻红。
- 兜底额度必须高于两道软闸,防止有人把它调到软闸以下抢跑自愈。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-26 10:08:44 +00: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
lhk229 92e571e1dc 无头链路能跑审批的修改/退回,不再只能投 approve
`agent-swarm-test-chat.mjs --plan` 的自动审批把动作写死成 approve,原注释让人
「要跑那两条分支就手工调 --plan-gdd-decide」。但那条路走不通:decide 要求 plan
根 run 仍是当前唯一 active 的,而它恰好是本进程持有的 CLI 子进程——CLI 一死,
再 decide 就是 PLAN_STALE_APPROVAL,实测过。于是 revise/reject 在无头侧没有任何
入口,e43133875 / 9e2648893 / b27ffce9b 三条修复都只能靠单测。

加 AGC_PLAN_GDD_DECISION + AGC_PLAN_GDD_COMMENT 两个环境变量,默认仍是 approve,
既有调用行为一字不变。原注释那条约束保留并落成断言:非 approve 时缺意见直接抛,
不给机器编一段的机会——意见必须由跑的人自己给。`runCapturedCargo` 顺带支持 stdin,
决定报告从写死的「已批准」改成打印实际动作。

用它跑通了一条完整真链路(两轮澄清 → 出稿 → 修改 → 返工 → v2):
- session successor 与 gdd.v2.json 同一秒落盘,phase=awaiting_gdd_approval、
  latestSubmittedRef=v2、activeRunId 已清空,不再 PLAN_SESSION_RECOVERY_REQUIRED
- 意见原文进了 Supervisor 会话,也进了返工委派正文
- 标题「脉冲避航:微型核心危局」→「エネルギー・ランナー」,意见是「改成日文」

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-26 09:04:30 +00: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
lhk229 b27ffce9b4 把审批卡的修改/退回意见原文送进 Supervisor 会话
Project CI / Repository checks (pull_request) Failing after 12s
Project CI / Backend tests (pull_request) Failing after 12s
Project CI / Native shell tests (pull_request) Successful in 15m12s
Project CI / Frontend tests (pull_request) Successful in 3m39s
用户在审批卡上写的意见此前只落到 `.agent/planning/approvals/v{n}.json` 就断了。
Supervisor 唯一的信息源是 `agent.run_status` 返回的 claimedDelegateContract,
那里面只有 contractStatus=user-revision-requested,没有承载原文的字段。于是它
按 playbook 第 6 条「把用户原话完整附在 task 里」写了句占位「请按审批卡上用户
提交的修改意见…」,子 Agent 收到的是空指令,只能自由发挥——实测用户写「把游戏
名称改成日本语」,产出的 v2 把标题从《裂隙脉冲》改成《裂潮航印》,仍是中文。

通道本来就有:决策卡的答案早就是这么送的——`append_user_input_answer_message`
把用户选择渲成一句 role=user 消息追加到 Supervisor 会话,下一轮 prompt 由
`prompt_history_sources` 现读现取。审批决定接上同一条通道即可。

因此不动 delivery schema,也不动 playbook:
- schema 加字段要连带改 validator、run_status 投影,还得让 e43133875 的
  `static_delegate_structured_result_follows_claim_snapshot` 跟着 rebase 新字段,
  否则 claim 重放冲突原样复发——多一处必须手工同步的地方。
- playbook 第 6 条的规则本来就在,缺的是原文本身,不是规则。

落点用 Supervisor 的**当前活动会话**(sessionId 传 None),不用 delivery 上的
parentSessionId——那是委派发出时的快照,不保证仍是可写的活动会话。
messageId 用 responseId 派生:`project_receipt_locked` 会被
`reconcile_plan_gdd_approval_projections_locked` 在每次 hydrate 重跑,不幂等就
每刷新一次多一条。

守门一条,两个断言都验过非空转:去掉追加,第一条断言红;换成非幂等 append,
重放后消息数 2 vs 1,第二条断言红。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-26 08:42:42 +00: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
lhk229 9e2648893b 修通修订轮出稿:投影守卫不再假设「一条 lineage 只提交一次」
审批卡点「修改/退回」后,策划子 Agent 能提交 v2、GDD 也落盘了,但
`project_submit_successors_locked` 拒绝写 session successor,返回
recoveryPending=true。Runtime 把这次工具动作标成 needs-reconciliation,
hydrate 再看到「未审批的 v2 vs session 还指着 v1」,抛
PLAN_SESSION_RECOVERY_REQUIRED。UI 上「重试恢复」走的是同一个投影守卫,
永远清不掉;「结束旧任务」不重写 session,同样清不掉——项目就此砖掉。

根因是 source_session_matches_gdd 里的 latest_submitted_ref.is_none()。
它不是安全判据:相邻的 sessionRevision + sessionFingerprint 已经是全内容
CAS——读取路径 parse_plan_session_bytes → validate_plan_session 会重算指纹
并拒绝不自洽的 session,所以指纹相等即意味着 session 与出稿时的快照逐字段
相等。那一条只是「一条 lineage 只提交一次」的残留假设,而同文件的提交闸
validate_current_session_cas 早在 §M1C-2b 那段注释里宣布该假设作废。删掉
之后,投影守卫的判据集与提交闸逐条相同——本来就该是这个关系。

顺带:已经砖掉的项目重放时命中同一条路径补写 successor,点一次「重试恢复」
即可自愈,不需要迁移。

守门扩在既有的 rejected_session_needs_a_collecting_continuation_not_a_wider_submit_gate
上。那条测试本来就构造出了这个 session 形状(带 v1 的 latestSubmittedRef 和
reject 的 lastDecisionRef),却只断言提交闸放行就收尾,差一步没走到。补上真正
提交 v2 并断言 !recovery_pending;把 is_none() 加回去这条会红,已验证非空转。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-26 08:13:40 +00: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
lhk229 e43133875a 修通审批卡「修改/退回」路线:claim 重放冲突、park 死锁、返工额度串用
生产实测:出 GDD 后点「修改」而不是「批准」,修订委派从头到尾建不出来。盘上现场
(gameagent-c6948da6 / gameagent-347c9786)逐层剥出三个独立缺陷,前两个叠在一起,
修掉上层才露出下层。

1. claim 快照与 delivery 全等比较

   claim 的 structuredResult 是「父 Agent 当时观察到了什么」的冻结快照;审批把
   delivery 从 EvidenceReady 原地改写成 UserRevisionRequested 后,快照仍停在
   EvidenceReady。claim 提交(含幂等重放)按全等判,于是 agent.run_status 每次
   重放都 failed,Supervisor 永远拿不到回执。实测空转 43 轮,报「静态委派 claim
   与 delivery 身份或结果冲突」。

   改为「delivery 是不是 receipt 的合法后继」:除 contractStatus 外每字段逐字
   不变、且方向唯一(EvidenceReady → UserRevisionRequested)才放行。原型没有
   claim 这层快照,单一真相就地改,结构上不存在这个冲突。

2. park 死锁(被 1 掩盖)

   修掉 1 之后 barrier 能正常求值了,userRevisionPending=1 却被
   has_waiting() 计成「有在等的委派」,main_loop 于是 park 成「等待专业 Agent
   委派回执 / 回执全部 ready 后自动唤醒当前父 run」——那条回执只能来自本 run
   自己要创建的修订委派,等的是自己。实测 8 分钟零事件。

   has_waiting() 里那个计数是承重的:三处自动恢复路径靠它挡住自动唤醒,
   runtime_tools/delivery.rs 现场还有 debug_assert 钉着这份依赖。所以不动它,
   另加 has_external_wait()(只计 waitingDelegations / unknownContractStatus),
   两处 park 决策点改用它。两个谓词问的是相反的问题:自动恢复该不该收手 vs
   当前这轮该不该 park。落进 main_loop 本来就写好的 user_revision_pending 分支
   (phase=planning、next_step=调用 agent.delegate)即可。

3. 用户修订与质量返工共用「唯一返工轮」文案

   用户修订跳带 repairOfDelegationId 但不是澄清续跑,落进 Repair 分支拿到
   「这是对已认领委派 X 的唯一返工轮」——用户第一次点修改就被告知只能改这一次。
   counter 层早就正确(lineage_counters 对该跳原样继承 depth/round),错的只有
   这句话。新增 StaticDelegateHopNote::UserRevision,判据是原 delivery 的
   contractStatus,并同澄清分支一样加 target == project-planning 门,做游戏 /
   做素材的返工跳逐字保持 Repair——那句话是它们 replaceExisting=true 的唯一授权
   信号。playbook 第 6 条同步改成「约束的是单条 delivery 不是整条链」。
   原型对应的是 USER_REVISION_SOFT_LIMIT = 16,且超过只提示不拒绝。

守门三条,都验过非空转:
- revise 端到端补上此前缺失的那一步——mark 与 dispatch 之间的 claim 重放,正是
  生产上唯一会失败的地方;并断言 !is_clear() && !has_external_wait() && has_waiting()
  三者同时成立。把比较改回全等即复现生产原文错误。
- 128 种计数组合的 detail↔barrier 等价性测试里写死两个谓词的分叉点,合并回一个
  就会炸。
- user_revision hop note 不得含「唯一返工轮」,须含「不消耗返工深度」「不是最后一轮」。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-26 06:58:27 +00:00
lhk229 f2245fb23d 策划澄清链路按原型拉齐:header 带主题、放开提问面、统一选项形状
对照 local-scripts/deisgn_agent 原型逐条比对后拉回五处分歧。原型 38 条 run 里
22 条走满 3 轮澄清,本仓库 GUI 实测一次都没到过第 3 轮。

1. header 从固定 8 字的轮号计数器「第N轮·关键决定」改回带主题的
   「第N轮·当前要决定:<主题>」,决定台账的 topic 改从 header 取。12 字上限是
   三条泳道共用的通用 user.input_request 常量,按 header 形状开策划分支——通用
   问询今天能过的明天逐字照过,做游戏 / 做素材拿到的仍是 12 字。

2. 提问名额判据恢复原型三分法:「且影响首个可玩闭环」从「空白」的定义挪回提问
   优先级,并恢复「空白或存疑」。此前的定义把「无从判断但不影响闭环」的字段整个
   排除在空白之外,可问集合被闭合成 pillars + coreLoop 两项。

3. 有默认建议的字段从「一律先用默认建议,不占轮次」改回「优先用默认建议而不是
   提问」——有默认不等于不能问。

4. 默认建议清单换回原型那五条(局长偏好、美术、成长、探索、构建)。摘掉
   genre.fusion / targetUsers.coreUsers|preferences|referenceGames / outOfScope:
   它们进清单等于把第三顺位「制作边界与 MVP」整条轴默认掉,出稿触发器③「剩余
   空白都能由默认建议覆盖」随之在第 3 轮恒真。反幻觉那句按原型结构移到「低幻觉
   与 GDD 约束」段,outOfScope 的兜底内容与该段已有的 MVP 范围句逐字重复。

5. 选项数 brief 写「2~3 个」(照通用常量生成)、Runtime 硬校验恰好 3、brief 下文
   又写「固定三个选项」,三方打架。统一为恰好 3,裸 3 提成
   PLAN_CLARIFICATION_OPTION_COUNT 让 brief 与解析器同源。label 分隔符集合按原型
   ^A\s*[·•・::..\-] 从 4 个扩到 8 个,两处都只放宽不收紧。

守门两条:策划 header 的放宽只对「第N轮·」形状生效、同长度的通用 header 仍被 12 字
挡下;分隔符集合对着一份逐字来自原型正则的显式清单断言——遍历集合本身是空转的,
删一个就少测一个。

未动分歧 5/6/7(轴级封锁、内容级禁问、oneLiner 禁问)。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-26 03:36:29 +00:00