AGC 编辑器分支产物归位(M3,待 Windows 验收) #524

Merged
suzmii merged 187 commits from feat/agc-bundled-resources-m3 into fix/agc-rust-staging-idempotency 2026-09-30 17:47:42 +08:00

187 Commits

Author SHA1 Message Date
suzmii 8be75e8e15 合并 origin/master(33 个提交):DirectProject 入队化与事件投影
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m30s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 1m54s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m57s
Project CI / Frontend tests (pull_request) Successful in 3m39s
Project CI / Backend tests (pull_request) Successful in 6m13s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 7m59s
Project CI / Repository checks (pull_request) Successful in 3m29s
Project CI / Native shell tests (pull_request) Successful in 8m0s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m58s
- 合并 origin/master(425fbcf63..9ee34809b),唯一冲突是共享决策日志两侧各插条目,取「两侧并存」
- 本轮 master 未触及随包资源声明、准备步骤与三份 tauri 配置,build.rs 只读校验保持不变
- 决策日志与踩坑记录同步两侧条目;docs/README.md 与项目索引按 master 收敛
- 构建期重新生成的 ts-rs 绑定经 prettier 归一后与 master 逐字节一致(合并未丢类型)
- 校验:cargo test --no-run 全 target 通过、AGC 应用 vitest 191 files / 1889 tests passed、check-package-layout、prepare-bundled-resources 18 passed、check-config、check:encoding、prettier、cargo fmt --check 全绿
2026-09-30 17:38:35 +08:00
k88936 9ee34809be Merge pull request 'Feat/ 待发送消息从前端队列移入rust' (#514) from feat/msg-queue-to-rust into master
Project CI / AI game creator shell Rust smoke (push) Failing after 1m11s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 1m12s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 1m12s
Project CI / AI game creator shell Rust crates (push) Successful in 1m42s
Project CI / Frontend tests (push) Successful in 3m33s
Project CI / Repository checks (push) Successful in 4m18s
Project CI / AI game creator shell web tests (push) Successful in 2m36s
Project CI / Backend tests (push) Successful in 6m41s
Project CI / Native shell tests (push) Successful in 7m24s
Reviewed-on: #514
2026-09-30 17:26:08 +08:00
suzmii b5a143c04f 合并 origin/master:随包资源仍由准备步骤生成,Claude Agent SDK sidecar 按同一架构归位
- 合并 origin/master(140 个提交),解决 4 处冲突:build.rs 取只读校验分支、package.json 同时保留 bundled-resources:test 与 check:generated-bindings、决策日志与踩坑记录两侧条目并存
- master 的构建期 staging(stage_bundled_claude_agent、prune_stale_codex_components)不进构建脚本;sidecar 改由声明与准备步骤产出
- package-layout.json 新增 claudeAgent section(锁定版本、sidecar 入口、上游 SDK 与平台原生运行时目标表、复制跳过规则),layoutVersion 递增到 2
- prepare-bundled-resources.mjs 新增 sidecar 整目录原子替换与缓存 key,复制规则按 section 参数化,Windows 真机 24 个文件、复跑命中缓存零写入
- package_layout.rs 新增 sidecar 只读校验(入口与仓库源码逐字节一致、上游包版本、可执行位、白名单外文件)与声明钉住用例
- build.rs 调用 sidecar 校验并导出 AGC_CLAUDE_AGENT_SDK_VERSION;claude_code_cli.rs 的 sidecar 身份串改用声明版本
- resources/claude-agent 映射从基线 tauri.conf.json 移到 windows/macos 平台配置,check-config.mjs 增加「基线不得声明 resources/**」守卫
- 修正 package_layout 的 Windows 路径期望用例(期望值改与实现同形,原用例在 Windows 必红)
- 同步技术方案 §4.5/§4.9、共享决策日志与踩坑记录
2026-09-30 17:23:04 +08:00
k88936 8a4e3cbcdd Merge remote-tracking branch 'origin/master' into feat/msg-queue-to-rust
Project CI / AI game creator shell Rust smoke (pull_request) Failing after 1m9s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 1m11s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 1m12s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m45s
Project CI / Frontend tests (pull_request) Successful in 4m25s
Project CI / Repository checks (pull_request) Successful in 4m34s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m15s
Project CI / Backend tests (pull_request) Successful in 7m11s
Project CI / Native shell tests (pull_request) Successful in 7m50s
2026-09-30 16:55:37 +08:00
k88936 dc7feec426 文档:DirectProject 队列条目事件投影、resolved_text 持久化与埋点归宿主收口
- ADR 状态改为 2026-09-30 落地完成,§2 补入队侧的“用户条目校验与冻结”,§5 埋点段去掉渲染侧 discard 与句柄表措辞
- ADR 词表收口:并发拒单/放行补拒单出口/放行期拒单三处改成入队失败与放行失败口径
- ADR §9 与实施计划同步归位后的符号名:active_turn_id_at、stale_turn_for_release、kick_queue_dispatch、complete_turn
- 实施计划状态改为第 0–7 步全部落地,进度表第 6/7 步补落地说明与提交号,新增「2026-09-30 收口记录」
- 实施计划顶部路径口径补 thread_manager 之外去掉 direct_ 前缀的函数改名对照
- decision-log 2026-09-30 条目把“设计稿,尚未实施”换成落地提交链与验证结论,并补 09-24 条目指向落地证据
2026-09-30 16:39:45 +08:00
k88936 28b64cf25a DirectProject 待发消息条目改为事件投影,放行时重投影 canonical 与 prompt
- queue.rs:PendingTurn 退化成 queue.enqueued 的投影(new / from_event / enqueued_event 往返),删掉 canonical_user_item 与 prompt 两个宿主私有产物字段
- thread_manager/mod.rs:删 StoredEvent.pending(append_inner 并回 append);pending_turns 改为一次事件折叠(有 queue.enqueued、没有配对 queue.removed),容量、判重、remove、claim 全读这一次折叠;mark_queue_events_cleanable 删掉“产物还在就不回收”的防御
- dispatch.rs:放行的 canonical = serde_json::to_value(&pending.user_item),prompt = direct_codex_user_item_to_prompt(&pending.user_item)——不写盘、不读 manifest、不重跑校验
- user_input.rs:入队只造条目本身,不再冻结 prompt / canonical 形状
- wire.rs:queue.enqueued 注释改为“这条事件就是这条待发消息的全部事实”
- 验证:cargo test -- thread_manager::(62 passed,单线程跑进程级计数器用例)、-- agent::(948 passed,另一条 design_runtime 用例为既有并发 flaky,单跑通过)、-- direct_runtime:: analytics:: direct_codex_user_item(182 passed)、npx vitest run appSurface/directThreadChat/directHistoryPaging/directProjectTurn(249 passed)
2026-09-30 16:37:06 +08:00
k88936 425fbcf637 Merge pull request 'Feat/发布页引导用户使用客户端' (#557) from feat/guide-user-use-client into master
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 1m14s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 1m14s
Project CI / AI game creator shell Rust smoke (push) Failing after 1m13s
Project CI / AI game creator shell Rust crates (push) Successful in 1m37s
Project CI / Frontend tests (push) Successful in 3m37s
Project CI / Repository checks (push) Successful in 4m18s
Project CI / AI game creator shell web tests (push) Successful in 2m24s
Project CI / Backend tests (push) Successful in 6m42s
Project CI / Native shell tests (push) Successful in 7m35s
Reviewed-on: #557
2026-09-30 16:35:20 +08:00
k88936 0270cd601e DirectProject 埋点成绩改由宿主结算,删掉候选/settle 两阶段与 analyticsAttemptId
- analytics/run.rs:删 Request::DirectCandidate / Request::Settle 与 settle();direct_finished 改收放行代次,终态再读一次 identity_generation,不同则整条不记,相同则直接落 Request::Terminal
- analytics/store.rs:删 pending_runs / pending_run_bytes 与两条候选分支(连带 16 条上限),run_request 不再需要字节预算参数
- analytics/gui.rs + main.rs:删 settle_direct_run_analytics 命令与注册
- 放行侧:kick_queue_dispatch 在读 claim 之后读一次平台会话代次并随整轮传下去;user_input 命令不再收 analyticsAttemptId,队列条目不再持有埋点句柄
- 渲染层:删 beginDirectRunAnalytics、句柄表与结算 effect、settle 调用与命令参数;删除 tests/directRunAnalytics.test.ts,appSurface 两处断言同步
- 判据口径随放行搬家:从“发送时与终态同代”改成“放行时与终态同代”,入队后放行前的账号切换不再丢弃成绩
- 验证:cargo test -- analytics::(45 passed,含新增的直写与代际变化两条)、cargo test -- agent::(949 passed)、analytics_real_file_write 用例、npx vitest run tests/appSurface.test.ts(194 passed)、相关 chat/direct 单测 139 passed、typecheck 通过
2026-09-30 16:25:05 +08:00
k88936 fa56f45675 添加游戏发布页面的客户端引导组件
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 1m4s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 1m5s
Project CI / AI game creator shell Rust smoke (pull_request) Failing after 1m3s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m31s
Project CI / Frontend tests (pull_request) Successful in 3m47s
Project CI / Repository checks (pull_request) Successful in 4m8s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m10s
Project CI / Backend tests (pull_request) Successful in 6m39s
Project CI / Native shell tests (pull_request) Successful in 7m25s
2026-09-30 16:23:34 +08:00
k88936 534baea589 Merge remote-tracking branch 'origin/master' into feat/guide-user-use-client
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 1m14s
Project CI / AI game creator shell Rust smoke (pull_request) Failing after 1m14s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 1m14s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m39s
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / AI game creator shell web 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
2026-09-30 16:19:34 +08:00
k88936 688d3b103a 为游戏发布页添加客户端引导组件
- 优化工具栏布局
- 属性化客户端入口组件,支持按钮文案、样式及窄屏选项配置
2026-09-30 16:18:31 +08:00
k88936 15a495dc29 DirectProject 引用解析文本随条目持久化,prompt 投影拆成 freeze 与纯折叠
- AgcResourceReference 增加 resolved_text:入队冻结时写入素材摘要 + UI 设计文档代码上下文,此后随条目持久化;缺省合法(旧历史照样解析),序列化时不写 None
- wire.rs 新增 freeze_direct_codex_user_item(校验 + 算片段 + 写盘 + 冻结进 part + 判空),direct_codex_user_item_to_prompt 改为只读条目自身事实的纯折叠(零 IO、零校验、无失败出口)
- wire 投影与 turn input 优先读 resolved_text,缺省才退回按当前 manifest 现算摘要;历史回读依旧不产生写副作用
- user_input.rs 入队侧改用 freeze,prompt 由冻结条目折叠得出
- 生成绑定 DirectCodexUserContentPart 增加可选 resolvedText
2026-09-30 16:07:46 +08:00
kdletters 110f088d41 修复 Jenkins 发布流水线与 macOS 包门禁
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 1m12s
Project CI / AI game creator shell Rust smoke (push) Failing after 1m12s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 1m12s
Project CI / AI game creator shell Rust crates (push) Successful in 1m37s
Project CI / Frontend tests (push) Successful in 3m37s
Project CI / Repository checks (push) Successful in 4m4s
Project CI / AI game creator shell web tests (push) Successful in 2m11s
Project CI / Backend tests (push) Successful in 6m31s
Project CI / Native shell tests (push) Successful in 7m13s
- 转义 Stdb Publish GString 内的 shell 命令替换,避免 Jenkinsfile 加载时 Groovy 编译失败
- 为 Stdb Publish 暂存清理命令补充生产运维回归门禁
- 抽离 macOS 包内容策略并放行随包 Claude Agent SDK 的受控 node_modules
- 违规资源现在会输出具体相对路径,并补充包内容白名单单测与排障记录
2026-09-30 16:01:21 +08:00
k88936 2b98b022c2 文档:待发消息条目改为事件投影、引用解析文本随条目持久化、埋点成绩归宿主
- ADR §3/§4/§5:在队条目 = 事件窗口里“有 queue.enqueued、没有配对 queue.removed”的折叠;队列事件不带 prompt、不带埋点身份,也没有宿主私有的第二类字段
- ADR §5/§9:引用 part 的解析文本写进自己的 resolved_text 并随条目持久化(缺省合法、旧历史照样解析),放行/历史回读/turn input 共用;放行读 identity_generation、终态比对后直写成绩,删掉候选/settle 两阶段与 attempt id
- ADR 备选方案补 6–9 条(条目另存产物、整条 prompt、clientTurnId 兼作埋点身份、保留两阶段)与影响与代价(prompt 块顺序、埋点口径随放行搬家)
- 实施计划:新增第 6 步(条目不再另存产物)、第 7 步(埋点成绩归宿主),落地进度表与状态同步;补 2026-09-30 文件路径口径
- decision-log:追加并修正 2026-09-30 条目(resolved_text 持久化、埋点链退役、不用 clientTurnId 兼作身份)
2026-09-30 15:48:38 +08:00
k88936 f121257cca 线程管理器归位 agent/thread_manager:去掉 Direct 前缀,按职责拆文件
- 四个 direct_* 文件移入 agent/thread_manager:wire.rs(运行态事件契约)、queue.rs(待发消息队列规则)、dispatch.rs(放行与占用)、mod.rs(管理器主体与对外入口)
- 类型去掉 Direct 前缀:ThreadEvent / ThreadManager / ThreadItem / ThreadFileChange / ThreadDeltaKind / ThreadRequestKind / PendingTurn / QueueRemovalReason / QueueRemovalOutcome / DispatchedTurn / TurnReservation / TurnIdentity / StaleTurnRelease / ConsumeResult / SubscriptionBootstrap / ActiveTurn / ActiveTurnSnapshot
- 对外函数改名:subscribe_thread / consume_thread / unsubscribe_thread / append_thread_event / enqueue_pending_turn / remove_pending_turn / claim_pending_turn / update_active_turn / list_active_turns / complete_turn / complete_turn_if_reserved / active_turn_id_at / read_turn_identity / stale_turn_for_release / thread_id_for_project
- 生成绑定跟着改名(DirectThreadEvent→ThreadEvent 等十个文件为 rename),前端八处 import 同步;Tauri 命令名与前端 IPC 契约不变
- 定向验证:cargo test agent::(945 passed,另两条并发用例为既有 flaky、重跑通过)、npx vitest run appSurface/directThreadChat/directHistoryPaging(247 passed)、typecheck 通过
2026-09-30 15:47:22 +08:00
k88936 e70b338900 文档:DirectProject 待发消息条目改为事件投影,prompt 改为条目重投影
- ADR §3/§4/§5 与备选方案 6–8、影响与代价:删掉 StoredEvent.pending 的第二份产物,队列成员由事件折出;prompt 只在引用 part 上冻结算不出的片段(to_prompt_cache,宿主内存专用),canonical 形状与 prompt 放行时重投影;analyticsAttemptId 进 queue.enqueued
- 实施计划:状态改第 0–6 步、落地进度表补第 6 步、新增「第 6 步:条目不再另存产物」的实现点与验收
- decision-log:追加 2026-09-30 修订条目(背景、三条决策、埋点身份的口径)
2026-09-30 15:20:39 +08:00
kdletters c25fd47d16 纠正清智创游官网游戏下载线上路由
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 1m18s
Project CI / AI game creator shell Rust smoke (push) Failing after 1m18s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 1m18s
Project CI / AI game creator shell Rust crates (push) Successful in 1m51s
Project CI / Frontend tests (push) Successful in 4m46s
Project CI / Repository checks (push) Successful in 5m5s
Project CI / AI game creator shell web tests (push) Successful in 2m47s
Project CI / Backend tests (push) Successful in 9m1s
Project CI / Native shell tests (push) Successful in 10m4s
移除错误的独立主站 vhost 配置
补充官网现役 vhost 的精确下载接口 snippet
同步线上排障说明与回归测试
2026-09-30 14:52:02 +08:00
k88936 888c249ffd Merge branch 'master' into feat/msg-queue-to-rust
Project CI / AI game creator shell Rust smoke (pull_request) Failing after 1m16s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 1m16s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 1m16s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m49s
Project CI / Frontend tests (pull_request) Successful in 4m14s
Project CI / Repository checks (pull_request) Successful in 4m34s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m13s
Project CI / Backend tests (pull_request) Successful in 7m10s
Project CI / Native shell tests (pull_request) Successful in 7m58s
2026-09-30 14:37:25 +08:00
k88936 792a3361fb Merge pull request '更新导航游戏图标资源' (#545) from style/game-play into master
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 52s
Project CI / AI game creator shell Rust smoke (push) Failing after 1m0s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 1m0s
Project CI / AI game creator shell Rust crates (push) Successful in 1m52s
Project CI / Frontend tests (push) Successful in 3m25s
Project CI / Repository checks (push) Successful in 3m45s
Project CI / Backend tests (push) Successful in 7m31s
Project CI / AI game creator shell web tests (push) Successful in 2m34s
Project CI / Native shell tests (push) Successful in 8m13s
Reviewed-on: #545
2026-09-30 14:20:43 +08:00
k88936 928bdb030c Merge branch 'master' into style/game-play
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 1m26s
Project CI / AI game creator shell Rust smoke (pull_request) Failing after 1m18s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 1m26s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m46s
Project CI / Frontend tests (pull_request) Successful in 4m9s
Project CI / Repository checks (pull_request) Successful in 4m26s
Project CI / Backend tests (pull_request) Failing after 5m46s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m38s
Project CI / Native shell tests (pull_request) Successful in 8m58s
2026-09-30 14:20:29 +08:00
kdletters 05bf69f2c2 修复清智创游官网引擎下载接口路由
Project CI / AI game creator shell Rust crates (push) Has been cancelled
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
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
新增 tsingnovagames.com 独立 Nginx vhost 并代理 /api 到 api-server
补充官网 /home/ 静态首页与下载接口回归测试
同步生产运维验收与排障说明
2026-09-30 14:18:12 +08:00
kdletters fb130d1847 新增 AGC 模型 Agent 模式与 Claude Agent SDK sidecar
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 57s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Has been cancelled
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
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
后台模型目录增加 codex/cc 执行模式绑定,旧目录缺省兼容 Codex

AGC 客户端按模型绑定路由 Codex app-server 或 Claude Agent SDK sidecar

随包携带 Node runtime、Claude Agent SDK 与匹配平台 Claude runtime

补充模型配置、客户端选择、运行时适配、MCP 取消和定向测试

同步 AGC 模型配置规范、里程碑计划与共享决策记录
2026-09-30 14:07:25 +08:00
k88936 8dccf04a62 更新导航游戏图标资源
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m30s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m58s
Project CI / Backend tests (pull_request) Successful in 5m6s
Project CI / Frontend tests (pull_request) Successful in 2m37s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m22s
Project CI / Native shell tests (pull_request) Successful in 7m29s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 10m12s
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
2026-09-30 14:07:06 +08:00
k88936 5e2d47919e Merge pull request 'Style/game play' (#543) from style/game-play into master
Project CI / AI game creator shell Rust crates (push) Has been cancelled
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
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Reviewed-on: #543
2026-09-30 13:55:57 +08:00
k88936 a7caaa6ade Merge remote-tracking branch 'origin/master' into style/game-play
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m26s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m56s
Project CI / Backend tests (pull_request) Successful in 4m27s
Project CI / Frontend tests (pull_request) Successful in 2m21s
Project CI / Native shell tests (pull_request) Successful in 6m56s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m16s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m53s
Project CI / Repository checks (pull_request) Successful in 2m38s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m1s
# Conflicts:
#	docs/project-memory/shared-memory/pitfalls.md
2026-09-30 13:38:14 +08:00
k88936 d538c6e9c9 Merge remote-tracking branch 'origin/master' into feat/msg-queue-to-rust
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m25s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m14s
Project CI / Backend tests (pull_request) Successful in 4m1s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 7m40s
Project CI / Frontend tests (pull_request) Successful in 2m19s
Project CI / Native shell tests (pull_request) Successful in 6m4s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 9m52s
Project CI / Repository checks (pull_request) Successful in 2m37s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m12s
2026-09-30 13:37:14 +08:00
k88936 131026795a 合并 origin/master:待发消息队列归宿主叠加 master 的 active-turns 广播与保活下沉
- direct_runtime/mod.rs:保留本分支「Thread Manager 是活动回合唯一事实源」(direct_active_turn_id_at),
  丢掉 master 的 DirectTaonierActiveInvocationGuard 第二份进程内表;master 的美术背景路由改动全部保留
- direct_thread_manager.rs:双方都保留——本分支的待发队列 / 容量上限 / 残留回合兜底释放,
  与 master 的 emit_direct_active_turns_changed 广播、unsubscribe、update_active_turn 返回「是否真的变了」
- useDirectProjectChatController.ts:保留本分支入队化逻辑,采纳 master 的 rawMessage 小重构与保活下沉
- direct_turn_dispatch.rs:会话保活改挂放行占用(DirectTurnReservation._session_keepalive),
  随占用释放即停,等价承接 master 放在调用身份守卫里的保活意图
- 保留本分支对 direct-execution-production-fixture.mjs 的删除(--direct-codex-chat CLI 已退役,夹具无入口)
- 连带退役 scripts/run-agc-direct-execution-fixture.mjs 与 npm run check:agc-direct-execution-fixture(只服务该夹具)
- 文档同步:ADR / 09-24 实施计划 / decision-log 记录上述退役,09-16 与 09-18 里程碑、pitfalls 的夹具命令标注为已退役
2026-09-30 13:35:14 +08:00
k88936 3b76c2611e 游戏分发四个页面的返回按钮文案统一成「返回」
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m27s
Project CI / Backend tests (pull_request) Failing after 16s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m57s
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
- GamePlayPage 返回详情 → 返回(含启动超时面板里的按钮)
- MyGamesPage 与 GamePublishPage(三处分支)返回游戏广场 → 返回
- 目标页仍由各自 onBack 决定,按钮不再承诺可能不对的目的地
- GameDistributionPages.test.tsx 超时用例断言改为 /^返回$/u
- 同步里程碑文档与玩法链路文档的返回文案描述
2026-09-30 13:33:02 +08:00
k88936 0619903e3f 修复游玩页面板不滚动规则被 workbench 祖先规则压掉
- .platform-tab-panel--game-play 覆盖带上 .platform-desktop-shell--workbench 祖先,压过 overflow: auto
- E2E 游玩页断言补整页与面板的横向溢出测量,避免面板 overflow-x: hidden 静默裁切漏检
- 修正 E2E 探针里重复的 panelOverflowY 键名,拆成 panelOverflowY 与 panelOverflowStyle
- 同步里程碑文档与 pitfalls 同日条目(单类名覆盖被祖先规则压掉、守卫实际为空)
2026-09-30 13:24:55 +08:00
k88936 e221543947 终止钮按 canStopTurn 显示:队列非空不再顶出终止按钮
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m24s
Project CI / Backend tests (pull_request) Failing after 14s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m8s
Project CI / Frontend tests (pull_request) Successful in 1m57s
Project CI / Repository checks (pull_request) Failing after 25s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m27s
Project CI / Native shell tests (pull_request) Successful in 5m47s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m38s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m57s
- `useDirectProjectTurnStatus` 新增派生判据 `canStopTurn`(`nativeRunning || commandInFlight`)与共享的
  `canStopDirectProjectTurn`,写清它与 `displayBusy` 的分工:前者回答"终止这一脚踢给谁",后者回答"界面能不能声称空闲"
- composer 的发送钮 / 终止钮按 `canStopTurn` 换;`busy` 继续管模型 / 附件 / 语音这些与当前这轮冲突的控件
- `cancelTurn` 的受理判据改用同一个函数:显示与受理同源,不再出现"按钮在、点了说没有回合"
- `displayBusy` 保持三者并集不变(卡片仍要早于首个 token 显示"正在处理")
- 测试:`directProjectTurnStatus` 补 `canStopTurn` 用例;appSurface 补"只有待发消息、没有回合在跑时不显示终止钮"(撤掉修复会红)
2026-09-30 13:11:45 +08:00
k88936 e976a69f9f 详情页返回按来源回到上一页并改用浏览器原生返回
- GameDetailPage 左上角「返回游戏广场」简化为「返回」,不再写死跳广场
- 详情/游玩页返回优先 window.history.back(),由 popstate 还原真实来源页(我的游戏/广场)
- activeAppPageRoutes 给应用历史条目补深度标记并新增 hasAppHistoryBackEntry()
- 深链直开等无可回退条目时用 replaceAppHistoryPath 兜底回广场或详情
- 新增 activeAppPageRoutes 深度语义用例与 PlatformEntryActiveFlowShell「游戏详情返回」两条用例
- 同步里程碑文档 2026-09-30 与 pitfalls 同日条目
2026-09-30 13:05:55 +08:00
k88936 9f04940c6d 整包工作流恢复只在需要恢复时才取整轮任务锁
- `recover_direct_taonier_regeneration_workflow_at` 先做只读判据(复用 `direct_taonier_regeneration_workflow_requires_recovery_at`),不需要恢复就直接返回
- 真要动手才取 `direct-codex-art`,并在锁下重读一次判据(以锁下那一份为准)
- 原来无条件取锁:正在跑的整包重生成整轮持有它,入队会先同步阻塞约 1 秒再被 `HostStateUnavailable` 拒掉
- 实施计划补一行说明,与 ADR §6"入队不取整轮持有的锁"对齐
- 测试:新增用例"整包重生成在跑(锁被占)时不需要恢复的入队路径不取锁",撤掉修复会红
2026-09-30 13:04:49 +08:00
k88936 0d3937b7eb 广场的发布游戏与我的游戏入口上移到 hero 右上角
- GameGalleryPage 新增 .game-page-actions 一行,把「发布游戏」「我的游戏」从 hero 下方的工具栏动作区移出,右对齐放在 hero 上方
- 工具栏只保留「游戏广场」标题与搜索框,不再和入口按钮挤在一行
- .game-page-actions 设 flex-end、0.6rem 间距与 1.1rem 底部间距;两个入口都不可用时整行不渲染,hero 位置不变
- 实测 390/360/820 三档:按钮在 hero 之上、与 hero 间距 18px、右边缘与 hero 对齐
- 里程碑文档记录该布局调整
2026-09-30 12:57:00 +08:00
k88936 51e4811344 残留回合兜底释放改成 Thread Manager 里的原子动作
- `DirectThreadManager::release_stale_turn` 在同一个临界区里做完"校验 → 解除占用 → 写 aborted 终态"
- 判据不满足(没有活动回合 / 身份对不上 / 没过启动窗口)一个字都不写,占用与事件都保持原样
- 拆成"先校验后释放"两次取锁会让并发认领插进中间,清掉新那一轮的占用并给老回合补假终态
- `direct_stale_turn_for_release` 降级成"调用原子出口 + 把结果翻成人话",文案与对外语义不变
- 兜底终态改由 Thread Manager 写,身份取被释放那一轮自己的 clientTurnId,删掉 app-server 侧的建事件助手
- 测试:管理器侧新增"校验与释放是一个动作"用例;运行时侧用例补上"拒绝时零写入 / 通过时占用与终态一起落地"
2026-09-30 12:55:07 +08:00
k88936 baca440c5d 对齐页签面板左右留白,修掉移动端右侧贴边
- 删除 .platform-tab-panel 里写死的 padding-right: 0.25rem:它是不分层规则,优先级高于 Tailwind @layer utilities 的 padding-inline,把右内边距钉成 0
- 同时删除 @media (max-width: 639px) .platform-tab-panel 与 .platform-desktop-shell--workbench .platform-tab-panel 里各自重复的 padding-right: 0
- 左右留白统一交给使用处的 px-3 / sm:px-6;没有 px 类的舞台(创作主页、我的、游玩页)保持 0/0
- 实测:390 下面板 12/12、列表左右留白 28/28;820 下 24/24、44/44(改前为 12/0、28/16 与 24/0、44/20),横向溢出仍为 0
- pitfalls 与里程碑文档同步该根因(unlayered 覆盖 Tailwind 层级)与测量结论
2026-09-30 12:52:15 +08:00
k88936 3bb1c28a51 修复我的游戏页移动端列表横向溢出并与画廊统一布局口径
- .my-game-list 改 grid-template-columns: minmax(0, 1fr),单列 auto 轨道不再被内容最小宽度撑开
- .my-game-card 加 min-width: 0 与 overflow: hidden,卡片可被压缩并裁掉溢出,与 .game-card 同口径
- .my-game-card__title 加 min-width: 0 与 overflow-wrap: anywhere,长标题不撑宽标题行
- pitfalls 记录该机制(auto 轨道最小尺寸 = 内容最小宽度 + nowrap 简介 + 缺 min-width:0)与 Chromium 夹具判据
- 里程碑文档补上该修复与 390/360 视口的测量结论
2026-09-30 12:44:08 +08:00
k88936 e0ca5ad9b9 前端 bootstrap 用例补齐:在跑的那一轮与在队条目同时还原
- `directThreadChat.test.ts` 队列投影分组里新增一条:bootstrap 同时带 `turn.started` 锚点与两条 `queue.enqueued`
- 断言 `turnRunning` / `turnUserItemId` / `pendingTurns` 三者同时正确,而不是各测一半
- 只加用例,不改实现
2026-09-30 12:43:32 +08:00
k88936 d341a9be13 补中途加入者的合并快照用例
- 新增 `late_subscriber_sees_the_running_turn_and_the_pending_queue_together`
- 钉住:正在跑那一轮的 `turn.started` 锚点(带开口条目身份)与还排着的 `queue.enqueued` 同时进 bootstrap,顺序按事件序
- 原有用例各覆盖一半(一条只测队列、一条只测锚点),这条覆盖两者同时存在的中途加入场景
2026-09-30 12:43:20 +08:00
k88936 e405a4f36f 修复游玩页启动面板居中溢出导致顶部内容滚不到
- .game-player-launch 纵向对齐由 center 改为 safe center(保留 center 作旧浏览器回退),溢出时退回 start,不再把标题裁到 scrollTop=0 也够不到的位置
- 同步修正 ≤820px 与 max-height:26rem 两处媒体查询里的 align-content
- 把 overflow-y: auto 提到 .game-player-launch 基础规则,启动卡片成为唯一的内部滚动兜底,页面与 .platform-tab-panel 仍保持 overflow:hidden
- pitfalls 记录该故障模式(居中溢出叠加内部滚动会让负方向那半不可达)与真实 Chromium 夹具判据
- 里程碑文档补上 safe center 口径与取证说明
2026-09-30 12:04:26 +08:00
kdletters 39823b05c1 修复Jenkins release渠道测试环境污染
Project CI / AI game creator shell Rust smoke (push) Successful in 1m45s
Project CI / AI game creator shell Rust crates (push) Successful in 3m12s
Project CI / Backend tests (push) Successful in 3m53s
Project CI / Frontend tests (push) Successful in 1m45s
Project CI / Native shell tests (push) Successful in 5m36s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m53s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m20s
Project CI / Repository checks (push) Successful in 2m32s
Project CI / AI game creator shell web tests (push) Successful in 1m48s
固定发布构建单测使用dev渠道,避免继承Jenkins的release环境变量。

记录Mac构建在Windows目标测试中读取NSIS配置失败的根因与排障口径。
2026-09-30 12:00:13 +08:00
kdletters b7862288d0 移除AGC正式渠道产品名后缀
Project CI / AI game creator shell Rust crates (push) Successful in 1m31s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m1s
Project CI / Backend tests (push) Successful in 4m0s
Project CI / Frontend tests (push) Successful in 2m3s
Project CI / Native shell tests (push) Successful in 6m16s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
- release 渠道复用正式产品名陶泥儿,安装包与更新归档不再包含 Release 文本。

- 保留 release identifier 与 release-win/release-mac 更新分区,更新渠道身份回归测试。

- 同步客户端发布、运维与项目记忆文档。
2026-09-30 11:51:03 +08:00
k88936 75f9bbacb1 入队前先判容量:满了不再做工程准备
- `direct_thread_manager` 新增只读的 `direct_pending_turn_count`(管理器 `pending_turn_count` + 模块级封装)
- `enqueue_direct_codex_turn_typed` 在前置条件之后、工程准备之前先做一次容量预判,满队直接返回 `QueueFull`
- 工程准备是分钟级、会在磁盘留产物的活,为注定收不下的消息先做它没有意义;权威判据仍是入队临界区里的检查
- 补一条管理器用例钉住这个只读口径:只数在队条目,认领 / 取消后立刻跟着变
2026-09-30 11:50:38 +08:00
k88936 a83ed01313 删掉重复且永不成立的项目切换守卫
- `runTurn` 的 catch 里同一判据写了两遍,两处之间只有同步代码、没有 await,`projectPathRef.current` 不可能变
- 保留 await 之后那一遍,删掉其后永远不会成立的第二遍
- 不改行为:守卫效果由前一处完整覆盖
2026-09-30 11:45:44 +08:00
k88936 25cec7955a 取消失败提示改成普通分支,去掉嵌套三元
- `cancelPendingTurn` 里三路结果(不在队 / 已放行 / 已取消)改用 if / else 表达
- 已放行那一路的说明注释挪到对应的分支上
- 不改任何文案与行为
2026-09-30 11:44:36 +08:00
k88936 301f66da2d 游玩页改成固定画布,移动端不再整页可滚
- PlatformEntryActiveFlowShell 在 game-play 舞台给页签容器加 platform-tab-panel--game-play,不再挂 overflow-auto,也不再叠加双份内边距
- index.css 新增 .platform-tab-panel--game-play,面板 overflow:hidden 并去掉右侧留白
- gameDistribution.css 让 .game-play-page 改 height:100%/min-height:0、播放器 flex:1 1 auto/min-height:0,删除移动端把页面撑高的 calc(100dvh - 8rem)
- 矮视口(max-height:26rem,横屏手机)压扁启动面板并隐藏封面,保证「开始游戏」可达,页面与面板本身仍不滚动
- PlatformEntryActiveFlowShell.test.tsx 双向锁定游玩舞台页签容器不滚动、游戏广场等舞台仍保持滚动
- check-game-distribution-web-e2e.mjs 移动端段新增「移动端游玩页不可滚动(面板与整页都不溢出)」断言
- 里程碑文档补上该修复的根因、口径与验证记录
2026-09-30 11:44:35 +08:00
k88936 055a6d6658 首屏「立即试玩」改为滚动到列表而不是打开第一款游戏
- GameGalleryPage 的 hero 按钮不再取 visibleGames[0] 直接开详情,改为把游戏列表滚进视野
- 滚动按平台页签面板(.platform-tab-panel)算相对偏移并走 scrollTo({behavior:'smooth'}),缺少 scrollTo 时退化成直接赋值
- 新增 gameListRef 锚在列表工具栏,退役只服务该按钮的 featuredGame 派生
- GameDistributionPages.test.tsx 新增「首屏「立即试玩」滚动到列表,而不是打开第一款游戏详情」,断言未触发 onOpenDetail 且滚动落在页签面板上
- 里程碑文档新增「网页侧交互修正(2026-09-30)」记录该修正与验证命令
2026-09-30 11:44:26 +08:00
k88936 20126ead0c 注释用词统一:入队半 / 放行半 改成 入队侧 / 放行侧
- `codex_app_server/mod.rs` 两处、`direct_runtime/mod.rs`、`direct_thread_queue.rs`、`direct_runtime/user_input.rs` 各处的简体表述统一
- 同步实施计划文档里的同一处措辞,保持词汇一致
- 只改措辞,不改任何行为
2026-09-30 11:43:21 +08:00
k88936 f4558475a0 取消待发消息时清掉它的埋点句柄
- 控制器在 `remove_direct_project_pending_turn` 返回 `removed` 时删除该 `clientTurnId` 的埋点句柄
- 被取消的待发消息永远不会放行、也就不会有自己的 `turn.completed`,句柄留着只会泄漏
- 留着还会挤进"身份缺失"的兜底结算候选(挑认领表里最早那一条),把下一次结算算到没跑过的回合头上
- 补一条 appSurface 用例钉住这条不变式:回放没有身份的失败终态时,兜底结算只落到还能收口的那一条
2026-09-30 11:42:57 +08:00
k88936 3e8954548a 测试替身对齐宿主的按身份判定:alreadyDispatched 只认正在跑那一条
- hostQueue 记录被放行的 clientTurnId,cancel 只在身份一致时回 alreadyDispatched,其余回 notFound
- 与宿主 remove_pending_turn(按 active_turn.turn_id 比对)保持一致,避免复用该替身时掩盖 notFound 分支
2026-09-30 11:33:42 +08:00
k88936 354acfd70b 文档:DirectProject 守卫清理落地,ADR 与实施计划标记完成
- ADR 状态改为 2026-09-30 落地完成,§9 守卫退役条目改成已落地口径
- 实施计划状态改为第 0–5 步全部完成,进度表第 5 步写成落地说明;第 4 步的 TurnAlreadyRunning 交还给第 5 步
- 09-23 接单化计划加后续注记:接单/拒单词表与 TurnAlreadyRunning 已退役,正文不再回改
- decision-log 的 09-30 条目补落地与验证结果,09-24 条目加落地指向
2026-09-30 10:41:10 +08:00
k88936 4e8b269816 删掉 TurnAlreadyRunning:入队化后没有并发撞单的生产点
- 删 DirectTurnError::TurnAlreadyRunning 变体,以及 is_reportable / Display 的对应分支与专属用例
- 前端 directTurnEnqueueFailureNotice 删掉 turnAlreadyRunning 分支;ts-rs 绑定同步删除该变体
- 结构化载荷用例的样本换成 queueFull,本地说明用例的文案样本换成队列已满提示
2026-09-30 10:39:53 +08:00
k88936 ecac9d8e15 DirectProject 调用身份归 Thread Manager:删掉第二份进程内守卫表
- 新增 Thread Manager 的只读身份入口:DirectTurnIdentity + read_direct_turn_identity,占用仍只由终态出口解除
- 五个身份读者(执行会话、工具桥、校验预约、上下文预取、付费美术重生成)改读 direct_active_turn_id_at
- 删 DirectTaonierActiveInvocationGuard / DIRECT_TAONIER_ACTIVE_INVOCATIONS / DirectActiveTurnView 与只读探测
- 删 release_stale_direct_taonier_active_invocation,改为 direct_stale_turn_for_release 只做前置校验(身份一致 + 启动窗口),释放仍由 complete_direct_thread_turn + kick_direct_queue_dispatch 完成
- DirectStaleTurnReleaseReason 取代 DirectTaonierStaleGuardReason;终止兜底的注释与文案改成占用口径
- 放行不再另取调用身份:认领时已在 Thread Manager 登记,删掉认领后的守卫进入与失败分支
- 新增前置判据用例 stale_cancel_releases_the_occupancy_and_dispatches_the_next_pending_turn,并补背景拨时测试钩子
- 集成用例改用 DirectTurnReservation::accept_for_test 建占用,不再进守卫
2026-09-30 10:39:32 +08:00
k88936 41c03d7199 文档:核实删调用身份守卫的前置判据,收敛第 5 步口径
- ADR §9 记录核实结论:取消兜底本来就同时释放占用、补写 turn.completed 并踢队列,删守卫不需要新增无条件终态;连接死亡的失败事实由 app-server 连接层落地
- 实施计划第 5 步改写:60 秒启动窗口闸门改挂 Thread Manager 的占用登记年龄,读者改读 direct_active_turn_id_at,TurnAlreadyRunning 一并删
- decision-log 追加 2026-09-30 条目,记录核实过程、决策与影响范围
2026-09-30 10:30:16 +08:00
k88936 7b04830a02 Merge pull request '修复移动端顶栏折行与头像裁剪弹窗被底部主菜单遮挡' (#515) from fix/mobile-style into master
Project CI / AI game creator shell Rust smoke (push) Successful in 1m24s
Project CI / AI game creator shell Rust crates (push) Successful in 1m21s
Project CI / Backend tests (push) Successful in 3m46s
Project CI / Frontend tests (push) Successful in 1m49s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m29s
Project CI / Native shell tests (push) Successful in 5m33s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 7m57s
Project CI / AI game creator shell web tests (push) Successful in 1m36s
Project CI / Repository checks (push) Successful in 2m17s
Reviewed-on: #515
2026-09-30 10:29:38 +08:00
k88936 25f3e41623 CLI 与夹具退役:DirectProject 只剩入队一个命令入口
- cli.rs 删 CliCommand::DirectCodexChat 变体、project_path_mut 分支、--direct-codex-chat 解析与派发
- direct_runtime/mod.rs 删 run_direct_game_creator_turn_at 与 run_direct_game_creator_turn_at_with_creation_type
- 删 scripts/direct-execution-production-fixture.mjs(CLI 唯一消费者)
- user_input.rs 模块注释改成"唯一的命令入口",不再承诺 CLI 分工
- 顺带删掉只剩测试在用的 direct_turn_error_boundary_text,判据只剩 direct_turn_enqueue_failure 一处
- 三条命令边界测试改打 direct_turn_enqueue_failure(...).message,覆盖不变
- 文档:09-22 里程碑把 --direct-codex-chat 从"范围外(保留)"改成退役项,两份 Direct 技术方案的 CLI 承诺删掉,
  09-23 ADR 的"CLI 保持 await"标为口径反转,decision-log 追加口径修正,实施计划标注第 4 步落地
2026-09-30 10:25:38 +08:00
k88936 dfd94c435f Merge remote-tracking branch 'origin/master' into fix/mobile-style
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m29s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m55s
Project CI / Backend tests (pull_request) Successful in 4m9s
Project CI / Frontend tests (pull_request) Successful in 2m15s
Project CI / Native shell tests (pull_request) Successful in 6m6s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m53s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m38s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m45s
Project CI / Repository checks (pull_request) Successful in 2m44s
# Conflicts:
#	docs/project-memory/shared-memory/decision-log.md
#	docs/project-memory/shared-memory/pitfalls.md
2026-09-30 10:20:58 +08:00
k88936 0534e9c678 前端收口:待发消息队列改由事件投影驱动,退役本地队列机器
- 新增 conversation/directPendingTurns.ts:入队/移除两个纯函数,不判上限、不排期、不排序
- reducer 新增 queue.enqueued / queue.removed 分支,折成 pendingTurns 投影
- chip 文案派生搬到 pendingTurnChipLabel.ts,删除 chatComposerQueue.ts 整套本地队列实现
- controller 退役 queuedTurns / queueSequenceRef / completionPendingRef / busyBaselineTurnCountRef
  与看门 counts effect;取消 chip 改调 remove_direct_project_pending_turn 按 typed 结果说话
- 埋点句柄按 clientTurnId 存表,回合终态按本轮开口条目身份结算
- turnBusy 改名 commandInFlight 并收窄成 IPC 在飞;忙态 = 原生在跑 ∨ IPC 在飞 ∨ 待发消息非空
- 提交改成等命令的入队结果:用户自己能改的入队失败保留草稿,其余按已交出处理
- 测试:队列投影单测、入队只发一次 IPC、IPC 在飞挡住第二次提交、满队保留草稿、取消已放行条目
- 文档:实施计划标注第 0–3 步落地并补第 3 步细则,ADR 的埋点与退役面口径改成落地后的写法
2026-09-30 10:20:37 +08:00
lhk229 54e534b101 Merge pull request '清理文档' (#535) from opt/prune-docs into master
Project CI / AI game creator shell Rust smoke (push) Successful in 1m58s
Project CI / Backend tests (push) Successful in 3m53s
Project CI / Frontend tests (push) Successful in 2m4s
Project CI / Native shell tests (push) Successful in 5m52s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m57s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m11s
Project CI / AI game creator shell web tests (push) Successful in 1m43s
Project CI / Repository checks (push) Successful in 2m19s
Project CI / AI game creator shell Rust crates (push) Successful in 1m5s
Reviewed-on: #535
2026-09-29 23:36:24 +08:00
lhk229 16f507ac15 Merge pull request '隐藏策划资源读取提示中的资源名称' (#534) from opt/hide-docs-name into master
Project CI / AI game creator shell Rust smoke (push) Successful in 1m23s
Project CI / AI game creator shell Rust crates (push) Successful in 1m18s
Project CI / Backend tests (push) Successful in 3m55s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m51s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m6s
Project CI / Frontend tests (push) Successful in 2m15s
Project CI / Native shell tests (push) Successful in 6m6s
Project CI / AI game creator shell web tests (push) Successful in 2m3s
Project CI / Repository checks (push) Successful in 2m51s
Reviewed-on: #534
2026-09-29 22:47:03 +08:00
lhk229 716aad24d9 Merge branch 'master' into opt/hide-docs-name
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m34s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m55s
Project CI / Backend tests (pull_request) Successful in 3m59s
Project CI / Frontend tests (pull_request) Successful in 2m15s
Project CI / Native shell tests (pull_request) Successful in 6m8s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m45s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m34s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m5s
Project CI / Repository checks (pull_request) Successful in 2m48s
2026-09-29 22:46:45 +08:00
kdletters 8315d5660a 后台公共组件收口到共享组件库并统一列表实现
Project CI / AI game creator shell Rust crates (push) Successful in 1m27s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m53s
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
- packages/shared/src/components/admin/ 新增 16 个后台共享组件(AdminPage/AdminPanel/AdminButton/AdminAlert/AdminTable/AdminField/AdminInfoList/AdminTagList/AdminPagination/AdminListPanel/AdminDialog 等)与随组件的 admin.css,经 @genarrative/shared/components 导出
- AdminListPanel 统一列表外壳:columns + renderRow、加载两口径(empty/line)、空态三态(state/text/row)、toolbar 与 pagination 槽位、showEmpty 判据、surface=plain(弹窗内列表)
- AdminListPanel 新增列头排序(sortable/sortValue/sortDescription):正序→倒序→不排序循环、同步 th[aria-sort]、稳定排序
- AdminDialog 统一弹窗外壳(遮罩/标题行/关闭动作/role=dialog/aria-modal/Esc/点遮罩关闭/初始聚焦/as=form),12 处各页自写弹窗全部改用它
- AdminFormat 新增 formatAdminDateTime/formatAdminDate,删除 7 份重复的本地时间格式化实现,修掉列表里裸 ISO 时间
- 21 个文件里 26 处列表全部迁到 AdminListPanel(24 处 columns 形态、2 处弹窗内 plain),页内已无手写表头或 AdminTable 当 children 的写法;累计 45 个可排序列
- 页面壳归一:错误报告补 AdminPage wide + AdminPageHeading,详情弹窗移出列表面板;模板管理列表从共享 ui Table 换成 AdminTable
- 样式收口:公共组件规则随组件进入共享 styles,清理 admin.css 重复按钮/面板规则,.admin-tag 与 .admin-table th 改 nowrap,埋点用户列参考按钮紧跟本行并留行距,错误报告修版心
- 新增 scripts/admin-web-fake-api.mjs 本地假 API(含 overview/dashboard/tracking/error-reports/feature-gates/邀请码/兑换码/任务/充值/项目工程/AGC 模型与模板/游戏/账号/用户详情夹具),用于本地核对渲染
- docs 同步:共享基础组件库与展示页(后台组件层/列表排序/收敛范围/本地核对)、decision-log 与 pitfalls 记录迁移口径、排序边界与踩坑
- 验证:npm run admin-web:typecheck、npx vitest run apps/admin-web packages/shared/src/components/admin(26 files / 244 tests)、npm run check:encoding、git diff --check、prettier、eslint 全部通过
2026-09-29 22:39:41 +08:00
suzmii 4cba964234 Merge pull request '修复 DirectProject 流式正文逐 delta 脱敏吃掉段尾换行导致 Markdown 结构损坏' (#533) from fix/direct-delta-markdown into master
Project CI / AI game creator shell Rust crates (push) Successful in 1m27s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m55s
Project CI / Backend tests (push) Successful in 4m6s
Project CI / Frontend tests (push) Successful in 2m10s
Project CI / Native shell tests (push) Successful in 6m4s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m53s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m22s
Project CI / AI game creator shell web tests (push) Successful in 1m44s
Project CI / Repository checks (push) Successful in 2m13s
Reviewed-on: #533
2026-09-29 21:49:44 +08:00
suzmii 2cc7df8074 修复 DirectProject 流式正文逐 delta 脱敏吃掉段尾换行导致 Markdown 结构损坏
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m28s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m58s
Project CI / Backend tests (pull_request) Successful in 4m7s
Project CI / Frontend tests (pull_request) Successful in 2m13s
Project CI / Native shell tests (pull_request) Successful in 6m8s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m4s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m29s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m45s
Project CI / Repository checks (pull_request) Successful in 2m15s
- prompt_context.rs:sanitize_error_context 改为 split_inclusive('\n') 逐段处理并原样保留行终止符,「逐段脱敏」与「整段脱敏」同形(CRLF 仍归一成 LF,私钥块整行吞掉的旧口径不变)
- codex_app_server/mod.rs:新增 direct_thread_delta_sanitization_preserves_line_breaks,钉住逐段脱敏 == 整段脱敏,去掉 split_inclusive 即红
- pitfalls.md:记入本次排障(含 chunk 起点路径误判这一同源未修缺陷)
2026-09-29 21:30:44 +08:00
lhk229 a5664cb1c9 Merge pull request 'Remove Read Tools Path restrictions for gameagent' (#531) from feat/remove-gameagent-path-restrictions into master
Project CI / AI game creator shell Rust crates (push) Successful in 1m50s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m52s
Project CI / Backend tests (push) Successful in 4m25s
Project CI / Native shell tests (push) Successful in 6m15s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m8s
Project CI / Frontend tests (push) Successful in 2m9s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m29s
Project CI / AI game creator shell web tests (push) Successful in 1m37s
Project CI / Repository checks (push) Successful in 2m9s
Reviewed-on: #531
2026-09-29 20:35:42 +08:00
lhk229 0dacfec429 修复 Game Agent 项目外读取的父目录链接绕过
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
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust smoke (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
文件读取和目录列表逐段拒绝符号链接及 Windows 重解析点
新增受保护目录别名与文件链接回归测试,保留普通外部读取
同步技术方案与排障记录,明确真实路径要求
2026-09-29 13:34:59 +01:00
lhk229 5454062423 合并 origin/master 到 Game Agent 读取路径分支
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m26s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m57s
Project CI / Backend tests (pull_request) Successful in 4m8s
Project CI / Frontend tests (pull_request) Successful in 2m17s
Project CI / Native shell tests (pull_request) Successful in 6m44s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m7s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m16s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m38s
Project CI / Repository checks (pull_request) Successful in 2m28s
- 决策记录同时保留外壳状态栏浮层与 Game Agent 读取路径两条 2026-09-29 条目
2026-09-29 13:18:48 +01:00
kdletters 1d6cbd4b67 外壳状态栏退役,状态改由浮层提示承载
Project CI / AI game creator shell Rust crates (push) Successful in 1m29s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m57s
Project CI / Backend tests (push) Successful in 3m57s
Project CI / Frontend tests (push) Successful in 2m0s
Project CI / Native shell tests (push) Successful in 6m5s
Project CI / Repository checks (push) Failing after 42s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m49s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m54s
Project CI / AI game creator shell web tests (push) Successful in 1m40s
- 首页输入框下方与项目组页面头部那行状态栏退役:status 不再由页面渲染,统一由外壳浮层承载(WorkspaceLauncher 合成粘性状态与一次性提示,渲染 notice ?? statusNotice)
- 进行中进度与失败结论走粘性浮层(sticky: true,不自动收起,切页回来仍可见);成功与取消回显走一次性浮层(成功/取消 2.6 秒、失败 6 秒收起),一次性提示优先显示,收起后粘性状态继续显示
- 粘性状态只挂首页与项目组两个页面,进项目工作台、模板库、帮助页不再飘在界面上;运行/预览提示与取消回显不受该限制
- RunNoticeToast/RunNotice 更名为 LauncherNoticeToast/LauncherNotice,新增 sticky 与 neutral 色调,挂点改为 data-launcher-notice-toast,长文案容器限宽 min(680px, 100vw - 2rem) 并换行
- 收起回调只从 ref 读,不再写进 effect 依赖:此前外壳每次重渲染都会换一个内联箭头函数,把收起计时重新起算,长驻页面上的提示可能永远收不回去
- useHomeProjectCreation 三处取消(非空文件夹确认弹窗、打开项目选目录、新建项目选目录)改为清空状态并弹一次性浮层回显「已取消」,不再往页面上那行写文字
- 删除 HomeView 的 status prop 与状态行节点、ProjectsPage 的 status prop 与 .launcher-project-page-status 节点及对应 CSS 规则
- launcherNoticeToast 用例补粘性不收起、父组件重渲染不重新计时、取消回显短时收起;launcherNoticeShellWiring 用例补进行中状态与取消回显都只走浮层、首页不留那一行、粘性状态不进项目工作台
- appSurface/home.suite 三处取消断言改断浮层挂点;homeWebPreflight 与 designProjectRestore 的 hook 夹具补 showTransientNotice
- 技术方案与 decision-log 记录该口径与边界:首页带按钮的「已创建的工作区」提示仍留在页面上
2026-09-29 19:35:49 +08:00
lhk229 59966b55c0 放开 Game Agent 读取工具的绝对路径和项目外路径
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m32s
Project CI / Backend tests (pull_request) Failing after 20s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m56s
Project CI / Frontend tests (pull_request) Successful in 2m26s
Project CI / Repository checks (pull_request) Failing after 15s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m42s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
- agc_read_project_context 与 agc_list_project_files 改走 resolve_game_agent_read_path,绝对路径和离开项目的 .. 可以读
- 落在项目内的路径仍按项目相对路径处理,继续拒绝 .agent、凭据文件名、符号链接和硬链接
- 项目外读取同样拒绝这些受保护名字和链接,目录列表标记为未登记且不可导入
- agc_write_file、agc_apply_patch、素材导入和共享 normalize_relative_path 仍限定在当前项目
- Codex 进程沙箱仍是 read-only,提示词未改
- 决策记录、实施计划和 pitfalls 同步该口径
2026-09-29 12:18:11 +01:00
kdletters 30a190d183 修复 AGC NSIS 安装钩子在模板常量与插件目录之前编译导致的出包失败
Project CI / AI game creator shell Rust crates (push) Successful in 1m32s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m57s
Project CI / Backend tests (push) Successful in 4m6s
Project CI / Frontend tests (push) Successful in 2m11s
Project CI / Native shell tests (push) Successful in 6m11s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 9m0s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m19s
Project CI / AI game creator shell web tests (push) Failing after 1m48s
Project CI / Repository checks (push) Successful in 2m33s
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
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust smoke (pull_request) Has been cancelled
- installer-hooks.nsh 顶层收敛为 !define / Var / !macro:迁移逻辑改成 !macro AgcMigrateLegacyIdentity,由 !macro NSIS_HOOK_POSTINSTALL 在模板插入点(Section Install,addplugindir 之后)展开,避免 include 时 INSTALLMODE 未定义走错分支、nsis_tauri_utils 插件目录还没 add 导致 makensis 报 Plugin not found 中断
- 旧展示名改走运行期变量 $AgcLegacyIdentity(替换 Push/Pop + Function),去掉 section 上下文里不可用的 Return 提前返回,清理与补建语义保持不变
- 文件头补编译期位置纪律:模板在 installer.nsi 第 28 行 include 本文件,早于 !define INSTALLMODE / MAINBINARYNAME 与 !addplugindir,顶层只能放声明
- build-release.test.mjs 新增守卫用例:顶层不得出现 Function、插件调用、模板常量引用或裸可执行语句(对修复前形态命中 36 条,含第 68 行顶层插件调用)
- pitfalls 与 decision-log 记录该踩坑、根因、本机逐字复现与处理口径
- AGC 渠道安装身份隔离里程碑补 2026-09-29 钩子编译位置修正小节与本机探针取证
2026-09-29 18:00:03 +08:00
lhk229 4a0f18e8a2 写明策划工作区是相对路径根目录
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
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust smoke (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Successful in 1m34s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m7s
Project CI / Backend tests (push) Successful in 3m50s
Project CI / Frontend tests (push) Successful in 2m11s
Project CI / Native shell tests (push) Successful in 5m57s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m48s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m3s
Project CI / AI game creator shell web tests (push) Successful in 1m38s
Project CI / Repository checks (push) Successful in 2m16s
- system-prompt.md 说明工作区是相对路径根目录 `.`,策划文件仍放在工作区内并使用相对路径
- 技术方案与决策记录同步该句口径
2026-09-29 10:37:20 +01:00
lhk229 06f7f145b8 Remove Absolute and External Path Restrictions of Design Agent. Fix mac runtime failure (#528)
Project CI / AI game creator shell Rust smoke (push) Successful in 1m19s
Project CI / AI game creator shell Rust crates (push) Successful in 1m7s
Project CI / Backend tests (push) Successful in 3m49s
Project CI / Frontend tests (push) Successful in 2m8s
Project CI / Native shell tests (push) Successful in 6m3s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m25s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m31s
Project CI / AI game creator shell web tests (push) Successful in 1m35s
Project CI / Repository checks (push) Successful in 2m15s
Co-authored-by: kdletters <61648117+kdletters@users.noreply.github.com>
Reviewed-on: #528
Co-authored-by: lhk <ink29535@proton.me>
Co-committed-by: lhk <ink29535@proton.me>
2026-09-29 17:15:28 +08:00
lhk229 68ba4c47d8 将决策记录模板移至项目记忆说明
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m14s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m17s
Project CI / Backend tests (pull_request) Successful in 3m50s
Project CI / Frontend tests (pull_request) Successful in 2m21s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m10s
Project CI / Native shell tests (pull_request) Successful in 6m30s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m34s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m49s
Project CI / Repository checks (pull_request) Successful in 2m47s
在项目记忆 README 的使用原则后恢复决策记录格式模板
说明模板按需填写,简单决策无需补齐全部字段
在决策记录文件顶部增加指向模板的链接
2026-09-29 15:05:14 +08:00
lhk229 6d8969a6fa 清理过期共享记忆与固定文案检查
移除运维和原生壳对记忆文案的固定措辞检查,保留实际契约与权限验证
清理过期决策和踩坑流水账,保留当前兼容约束与未完成验证边界
明确共享记忆维护规则,并同步修正游戏发行计划的现行入口说明
2026-09-29 15:04:32 +08:00
lhk229 5452956682 隐藏策划资源读取提示中的资源名称
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m31s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m44s
Project CI / Backend tests (pull_request) Successful in 4m34s
Project CI / Native shell tests (pull_request) Successful in 6m30s
Project CI / Frontend tests (pull_request) Successful in 2m12s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m11s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m39s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m47s
Project CI / Repository checks (pull_request) Successful in 2m27s
工具提示不再附加资源 ID,保留文件路径展示和实际读写行为。

同步策划 Agent 技术方案,说明新提示与历史消息的适用范围。
2026-09-29 14:31:27 +08:00
suzmii 12d6ed8223 补记打包客户端的启动与只读投影取证
- M3 里程碑「客户端编辑器分支」补本轮实测:安装包解出的客户端在 http://tauri.localhost/ 生产态正常起首页,包内插件与 Skill 包被读取
- 记录 CDP 主世界可读 list_agc_plugins / list_agc_skill_catalog 的自动化路径与 Godot 插件按项目类型可见的现役语义
- 记录「缺适配器 / 缺组件 / 编辑器没开」三类失败文案,供补做时分类记录
2026-09-29 13:55:06 +08:00
suzmii 1099b2dad4 记录 M3 Windows 打包一致性验收结论与两条排障经验
- M3 里程碑补「验收记录(2026-09-29)」:准备步骤连续三次复跑 32 个文件内容与 mtime 不变;NSIS 包内 plugins/ 与 resources/plugins 逐文件 sha256 完全一致;运行时三个相对路径与声明必需产物 17 项在包内全部命中
- 与迁移前两份对照(本机 2026-09-24 已安装包、合并基线 8f59c034f 的 build.rs 产物)逐项比对:路径集合与源码派生内容、Unity/Godot 产物一致
- 记录两条已定性差异:Cocos payload 只构建 windows-injection(导出面与迁移前相同)、MSVC 链接产物不可字节复现
- 记录新风险:准备步骤与应用构建共用 target/<triple>/<profile>/deps/cocos_editor_bridge.dll
- 定性 CI 唯一红项 background_agent_runtime_can_write_memory_and_project_files 与本 PR 无关:合并基线同样失败,本机实测第二个 follow-up 请求 5.18s/4.87s 而预算 2s
- pitfalls 新增 2026-09-29 条目:随包资源编译产物摘要不可复现与共用输出路径的核对口径
2026-09-29 13:42:26 +08:00
kdletters 80bf54c39d 修复 AGC dev 渠道改名后旧快捷方式仍指向旧安装
Project CI / AI game creator shell Rust crates (push) Successful in 1m33s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m6s
Project CI / Backend tests (push) Failing after 3m7s
Project CI / Frontend tests (push) Successful in 1m40s
Project CI / Native shell tests (push) Successful in 5m43s
Project CI / Repository checks (push) Successful in 2m28s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m50s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m53s
Project CI / AI game creator shell web tests (push) Successful in 1m37s
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
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust smoke (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
- 新增 src-tauri/windows/installer-hooks.nsh:安装结束时按旧展示名(陶泥儿、Genarrative AI Game Creator)清理旧快捷方式(先用 IsShortcutTarget 校验目标)、旧安装目录与旧卸载项
- 同一钩子在用户原本就有旧桌面图标时补建当前身份的桌面图标、并始终补建开始菜单图标,解决 /UPDATE 下模板不创建快捷方式导致「点旧快捷方式→更新→自动启动新版」的循环
- build-release.mjs 只在 dev 渠道 + Windows 目标注入 bundle.windows.nsis.installerHooks,并让 node runtime 资源映射与钩子共存
- build-release.test.mjs 新增用例:只有 dev+Windows 注入、钩子文件存在且旧身份表完整、JSON Merge Patch 后钩子不被资源映射顶掉
- pitfalls 与 decision-log 记录改名迁移口径、删除边界与「再改展示名必须追加旧身份」的纪律
- AGC 渠道安装身份隔离里程碑补 2026-09-29 修正小节与真机升级验收项
2026-09-29 12:23:14 +08:00
kdletters 75ca16739a 修复 AGC 登录丢失会话主体导致的身份无效
- auth_session.rs 新增 SessionIdentity:登录主体取自响应用户投影、续期主体取自已持久化凭据文件,漏传主体不再是能写出来的状态
- complete_login 改用 SessionIdentity::Login(payload.user),删掉原先写死的空 user_id 字符串
- commit_authenticated_session 在写 client-session.json 之前解析并校验主体,空主体失败关闭且不再留下半截会话文件
- 新增 validated_session_user_id:主体 trim 归一化,空值报「登录失败:登录服务未返回用户身份」
- 补 auth_session 定向用例三条:登录响应供主体、续期只带主体、空主体失败关闭
2026-09-29 12:14:59 +08:00
kdletters c2a3cafe77 把人工门禁的「本机必然红」与「真缺陷」分开并写入索引
Project CI / AI game creator shell Rust crates (push) Successful in 1m13s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m47s
Project CI / Backend tests (push) Successful in 3m44s
Project CI / Frontend tests (push) Successful in 1m57s
Project CI / Native shell tests (push) Successful in 5m48s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 7m51s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m12s
Project CI / AI game creator shell web tests (push) Successful in 1m38s
Project CI / Repository checks (push) Successful in 2m19s
- 逐条探红:check:nginx-pingora-canary(无 nginx 时明示降级为静态检查)、check:pingora-canary-live-guard、check:pingora-direct-live-guard、check:production-health-patrol-env 全绿
- check:pingora-release-readiness-plan 红:门禁的 assertAbsoluteScriptArg 要求 POSIX 绝对路径(/opt/genarrative/current/scripts/...),Windows 必然失败,属 Linux/CI 专属门禁
- check:api-server-env 红:本机 .env.local 只有 LLM_API_KEY / DASHSCOPE_*,缺 TIANTOKEN_BASE_URL/API_KEY 与阿里云抠图 AccessKey,属本机环境缺口(与 ExternalV1 计划里已记的结论一致),不是代码问题
- 两条结论写入开放事项索引第五节,避免后续重复追查
2026-09-29 07:54:39 +08:00
kdletters 4f47343108 记录 dev 真实部署的发行读取契约与门禁接线审计
Project CI / AI game creator shell Rust crates (push) Successful in 1m21s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m50s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 游戏分发里程碑新增「真实部署只读取证(dev 环境)」小节:平台同源入口 /games/<gameId>/ 与直连发行网关路径匿名 200(nosniff、CORP=cross-origin、ACAO=*、发行专用 CSP、cache-control max-age=60)、同路径带 Cookie 403、带 Cookie 走 nginx 映射仍 200(证明 proxy_set_header Cookie "" 生效);生产 /api/game-distribution/games 当前 0 条已发布
- 索引第三节补该证据;第五节新增 2026-09-29 广度回归(npm test 423 文件 / 4482 passed / 26 skipped)与门禁接线审计(check:* 共 80 个:53 个自动可达、27 个生产/凭据/环境依赖型人工门禁),并给出审计方法
- 一次性审计脚本不入库;接线结论与「加新门禁先问它有没有自动调用方」一起保留在 pitfalls 与索引里
2026-09-29 07:49:18 +08:00
kdletters 02c6d33e9c 把两条路由门禁串进 npm run lint 并用 guardrail 锁住接线
Project CI / AI game creator shell Rust crates (push) Successful in 1m30s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m2s
Project CI / Backend tests (push) Successful in 3m55s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 根因:check:nginx-spa-routes 与 check:pingora-route-parity 从来没有自动调用方(只有切换期聚合门禁 check:pingora-release-readiness 含 parity,而它不在 CI 里跑),所以红了一个月也没人看见
- package.json 的 lint 链在 check:maintenance-page 之后接入 check:nginx-spa-routes 与 check:pingora-route-parity,因此 check:repository-ci、CI 与 pre-push 都会执行
- check-production-ops 新增两条 guardrail:断言 package.json 的 lint 链里必须出现 npm run check:nginx-spa-routes / npm run check:pingora-route-parity,删任一条立刻变红(变异验证已做)
- 文档:索引第五节与 Pingora 试点文档更新为「已接进 CI」;pitfalls 新增「为什么以前会漏:加新门禁先问它有没有自动调用方」
- 验证:npm run lint 全绿(含两条新门禁 + eslint + typecheck)、check:production-ops OK、encoding / doc-index / diff / prettier / eslint 通过
2026-09-29 07:42:58 +08:00
kdletters d67f9e03c0 修正索引第五节的分组数字
Project CI / AI game creator shell Rust crates (push) Successful in 1m32s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m3s
Project CI / Backend tests (push) Successful in 4m1s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 未勾选 11 条的构成更正为 macOS 节点 3 + 桌面会话 6 + 真实 Provider 2(逐份列出对应计划),此前写的 桌面会话 5 / Provider 3 与第二节表不符
2026-09-29 07:36:57 +08:00
kdletters e34efc4675 按 2026-09-29 的真实状态重新盘点开放事项索引
Project CI / AI game creator shell Rust crates (push) Failing after 1m19s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m53s
Project CI / AI game creator shell Rust lane 2/2 (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) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 第一节:占用锁计划补上 2026-09-28 的实测(write_lock 21 / gui_ 31 / project_execution_owner 8 / owner_diagnostic 4 passed),说明只差真机多窗口运行时表现与第 4 条 A/B 收口决定,并注明它用编号式验收标准、不计入复选框口径
- 第二节:重写为 current 口径——未勾选 11 条、6 份计划,按「macOS 节点 + 真机 / 桌面会话 / 真实 Provider」分组;另列 8 份已无未勾选但仍在等签收或外部环境的计划
- 第三节:游戏分发里程碑从「28 条」更正为剩 4 条,两份实施计划均 0 条;并更正解冻前提——2026-09-28 起发行入口改为平台同源路径,不再要求独立 HTTPS 发行域名与通配证书
- 第五节:补 2026-09-29 重新盘点(81 份计划 / 15 条未勾选 / 8 份文件),把 74 份与 43 条标为历史快照,并把 ``check:nginx-spa-routes``/``check:pingora-route-parity`` 从「仍红」更正为已转绿(含新增反向覆盖与 smoke 断言)
- 阶段 A 实施计划:把「本机只到领域单测」更新为已补齐的真实栈证据(13 条 E2E + AGC live 发布 1 passed + 后台列表/ZIP 联调 10/10)
2026-09-29 07:34:14 +08:00
kdletters 38eb5b69ed 给路由 parity 门禁补反向覆盖,模板里的 location 必须被矩阵声明
Project CI / AI game creator shell Rust crates (push) Successful in 1m24s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m58s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- check-pingora-route-parity 新增 validateNginxLocationsAreCovered:两份 Nginx 模板里出现的每条 location 都必须被矩阵某条用例的 nginx 片段(location 前缀)声明,否则判红
- 这条针对的正是 2026-09-29 发行网关路由那类漂移:此前只做正向检查(矩阵片段必须存在于模板),模板单方面加路由时门禁一直是绿的
- 矩阵新增 web_root_spa(samplePath=/ → static/web/spa_fallback,片段 location = / + try_files /index.html =404;)并把三个新 id 列入必查清单;Pingora 试点文档补根路径回退与反向覆盖说明
- 验证:check:pingora-route-parity OK(24 路由)、check:nginx-spa-routes OK(12 路由 / 3 模板)、cargo test -p pingora-gateway 39 passed、check:production-ops、prettier / eslint / encoding / doc-index / diff 全绿;变异验证:往生产模板插一条无矩阵声明的 location → 只有反向覆盖报「production 模板的 location 没有被矩阵覆盖」
2026-09-29 07:29:41 +08:00
kdletters 5fee115f10 实现 Pingora 发行网关路由并关闭两处路由漂移待办
Project CI / AI game creator shell Rust crates (push) Failing after 1m17s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m1s
Project CI / AI game creator shell Rust lane 2/2 (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) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 新增 RouteDecision::ReleaseGateway:/games/game_<32 位小写十六进制 id>/… 重写上游路径到 /api/game-distribution/releases/<gameId><asset>、清空 Cookie、不进 SPA fallback、不套接流保护分组、不受维护闸拦截,与 nginx 同名 location 同口径(只认小写 32 位十六进制)
- 路由矩阵新增 games_release_gateway 用例(含 upstreamPath 期望值)与对应断言;parity 门禁支持 release_gateway 并把 games_spa_fallback、games_release_gateway 列入必查清单
- check:pingora-gateway-smoke 新增三条运行时断言:重写到发行网关且上游拿不到 Cookie、/games/detail 仍走 SPA、/games/game/index.html 仍是真实 404
- 文档:Pingora 试点文档补「平台同源发行入口」语义;pitfalls 记录 SPA allowlist 三处真相源与「发行入口不是 SPA」;按 docs/project-memory/README.md 删除两份已关闭待办,关闭记录写入开放事项索引第五节
- 验证:网关 39 passed、check:pingora-route-parity OK(23 路由)、check:nginx-spa-routes OK(12 路由 / 3 模板)、check:pingora-gateway-smoke 通过、cargo fmt --all --check、check:production-ops、encoding / doc-index / diff 检查全绿;变异验证:矩阵 upstreamPath 写错或拿掉 /games/detail 都会立刻变红
2026-09-29 07:24:52 +08:00
kdletters 16ff10111f 限制 dev 发布目录与 Jenkins 构建暂存的历史堆积
Project CI / AI game creator shell Rust crates (push) Successful in 1m26s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m53s
Project CI / Backend tests (push) Successful in 3m47s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- production-api-deploy.sh 新增 --keep-releases(默认 2):发布成功后保留 current 目标与最近 1 个历史 release,只清理同时含 api-server 或 web 标记的旧目录,清理失败只告警、不改变发布结论
- production-api-deploy.sh 新增 prune_old_releases 与参数校验:非整数或小于 1 的 --keep-releases 在任何动作之前失败
- check-production-api-deploy 增加默认值、显式值和非法值三类夹具,并断言非法参数不会提升 release
- check-production-ops 增加 release 保留策略与三个部署 Job 暂存清理的合同
- Api Deploy、Web Deploy、Stdb Publish 三个 Jenkinsfile 在部署或发布成功后只保留最近 2 个 build/<version> 暂存,失败时保留暂存便于诊断和重跑
- 内联清理片段避开 Groovy 反斜杠转义,并在 set -euo pipefail 下对空 build 目录安全(if [ -d build ] 守卫加兜底)
- 开发运维文档补充 release 与 Jenkins 暂存的保留上限口径
- pitfalls 记录 dev 根盘写满的两处根因(发布与暂存无上限、JNLP 幽灵 agent 刷 syslog)以及 Jenkins 内联 shell 的两个坑
2026-09-29 07:19:00 +08:00
kdletters 589f3582ae 补齐 Pingora 网关的 SPA allowlist 并关闭 SPA 路由漂移待办
Project CI / AI game creator shell Rust crates (push) Successful in 1m16s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m52s
Project CI / AI game creator shell Rust lane 2/2 (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) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- Pingora MAIN_SPA_PATHS 从 5 条补到 12 条(补 /components、/design-system、/games、/games/detail、/games/mine、/games/play、/games/publish),与前端路由源和 nginx 三份模板逐条一致
- 路由对照矩阵新增 games_spa_fallback(/games/detail → static/web/spa_fallback)并同步 Pingora 试点文档的 SPA allowlist 表,让 cargo test -p pingora-gateway matches_nginx_route_parity_matrix 真正覆盖这条
- 门禁与验证:check:nginx-spa-routes OK(12 路由 / 3 模板)、check:pingora-route-parity OK(22 路由)、网关全量 38 passed、check:production-ops OK、cargo fmt --all --check OK;变异验证:临时拿掉 /games/detail 后矩阵用例以 static mode mismatch 变红;dev 与生产 5 条 /games* 深链实测 200
- 关闭【待办】主站SPA路由白名单与前端路由源不一致 并写入关闭记录;另立【待办】Pingora网关缺发行网关路由(三份 nginx 模板都有 /games/game_<32hex>/ → 发行网关,Pingora 缺这条代理,切流后会 404)
2026-09-29 07:16:00 +08:00
kdletters 9112207089 记录游戏分发 E2E 家族 13 条全绿与 AGC 一键发布客户端取证
Project CI / AI game creator shell Rust crates (push) Successful in 1m39s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m12s
Project CI / Backend tests (push) Successful in 4m3s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 里程碑:新增 2026-09-29 小节,记录其余 9 条 E2E(dto-parity / upload-safety / upload-resume 两段 / package-limits / owner-isolation / sandbox / validation-restart 两段 / media / ops-rollback)全部通过及各自要点
- 证据矩阵:第 1 节补上 AGC 一键提交的客户端侧 live 测试证据(真实 publishLocalProjectGame 打真实后端、分片偏移不重传不跳段、同 localProjectId 复用 gameId),第 3 节补 2026-09-29 复跑耗时
- 开放事项索引:补 2026-09-29 的 13 条 E2E 复跑与 AGC live 证据,瓶颈口径不变
2026-09-29 07:08:30 +08:00
kdletters d8011a72fa 游戏分发 web E2E 的冷启动假失败改为浏览器级预热
Project CI / AI game creator shell Rust crates (push) Successful in 1m31s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m56s
Project CI / Backend tests (push) Successful in 3m56s
Project CI / Frontend tests (push) Successful in 2m7s
Project CI / Native shell tests (push) Successful in 6m0s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m34s
Project CI / AI game creator shell web tests (push) Successful in 1m42s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m40s
Project CI / Repository checks (push) Successful in 2m15s
- 现象:冷 Vite 下 check:game-distribution-web-e2e 先卡在目录卡片 20 秒等待,重跑又卡在游玩页「开始游戏」15 秒等待;同一时刻公开目录 API 已把该游戏排在第一
- 根因:原先的 fetch 预热只拿到 SPA 外壳(HTML 里没有路由模块),Vite 仍在断言阶段现编译这些模块图
- 修复:改成起浏览器后用一次性 context 真走 /games、/games/detail、/games/play(domcontentloaded + 2 秒 settle,120 秒上限,失败只告警),首个 goto 的 120 秒超时保留
- 复验:重启 dev 栈(冷缓存)→ 24/24 PASS;四条 web E2E(web / publish / publish-recovery / a11y)全部复跑通过
- 文档:里程碑补 2026-09-29 复跑记录,pitfalls 同日条目按实测证据补正
2026-09-29 06:54:47 +08:00
kdletters 198c208172 用已安装包现场取证随包 Codex,并收窄 Windows 验收边界
Project CI / AI game creator shell Rust crates (push) Successful in 1m34s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m0s
Project CI / Backend tests (push) Successful in 3m56s
Project CI / Frontend tests (push) Successful in 1m59s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m5s
Project CI / Native shell tests (push) Successful in 6m5s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m27s
Project CI / AI game creator shell web tests (push) Successful in 1m36s
Project CI / Repository checks (push) Successful in 2m14s
- Mac 客户端随包运行依赖补齐:记录已安装 陶泥儿开发版 0.1.154 的载荷完整性(coding-agent/win-x64 六个组件 SHA-256 与 manifest.json 6/6 一致、codex-cli 0.155.1)与随包 app-server 能在 Windows 起来的现场证据
- 说明该包在第一条 direct 回合报 items must not be empty 是 7ec984d0d 已修缺陷的现场复现(0.1.154 源码不含、0.1.158 源码包含,master 同用例通过),剩余验收收窄为安装器实跑 + GUI/Cocos 回归
- pitfalls 新增「用夹具 --agc-exe 直接验证已安装渠道包里的随包 Codex」的做法与判读口径
- 开放事项索引同步该行
2026-09-29 06:42:08 +08:00
kdletters fdb09db8a3 打通本机 dev 栈的后台工程列表与 ZIP 联调并记录证据
Project CI / AI game creator shell Rust crates (push) Successful in 1m31s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m59s
Project CI / Frontend tests (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 项目自动上传与后台工程下载:查清「本地数据库 404」的成因是 standalone 未运行(并非库缺失),`npm run dev:spacetime` 启动后自动发布 xushi-p4wfr,`/healthz` 200 且认证投影从 spacetime 表恢复
- 记录联调结果:渠道端点返回 {"channels":["dev","release"]}、未认证 401、游标分页 50+34=84 条、官方门禁 check:agc-project-snapshot-admin-http 对两个真实项目各 10/10 通过(含逐文件 SHA-256 与 .agent 目录还原)
- 开放事项索引同步:该计划只剩「新客户端安装版下的隔离实机自动上传」这一条
2026-09-29 06:37:40 +08:00
kdletters d0b9bdebfe 补齐真机闭环的现场证据,并记下本会话不能跑 GUI 验收的约束
Project CI / AI game creator shell Rust crates (push) Failing after 1m3s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m51s
Project CI / Backend tests (push) Successful in 3m55s
Project CI / Frontend tests (push) Successful in 1m43s
Project CI / Native shell tests (push) Successful in 5m47s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 7m52s
Project CI / Repository checks (push) Successful in 2m22s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m11s
Project CI / AI game creator shell web tests (push) Successful in 1m36s
- 渠道安装身份隔离:记录本机 dev 0.1.154 与旧身份 陶泥儿 0.1.109 同机并存的真实样本、已装产物内嵌 agc/dev-win/latest.json 且不含 release 端点、两个安装包资源串互不串身份,并写明真机条件已具备
- 更新插件里程碑:写明检查一半已由清单核对脚本覆盖,安装一半在本机只差一次点击,并给出点击前后的取证口径
- DirectProject 两条运行时验收:勾选行注明宿主侧已由真 app-server 夹具取证,剩余部分是界面渲染与用户终止路径
- 记录环境约束:本会话不能启动用户可写目录下的可执行文件,GUI 验收必须在桌面会话执行
2026-09-29 06:27:04 +08:00
kdletters 3fa4501c68 用 Jenkins 真实证据关闭渠道化第 5 条,并记录 dev-mac 卡在离线 mac 节点
Project CI / AI game creator shell Rust crates (push) Successful in 1m29s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m57s
Project CI / Backend tests (push) Successful in 4m17s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 7m9s
Project CI / Frontend tests (push) Successful in 2m12s
Project CI / Native shell tests (push) Successful in 6m18s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m18s
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
- 渠道化里程碑:四渠道全量只读核对(dev-win 0.1.158、release-win 0.1.159、release-mac 0.1.139、dev-mac 0.1.142)与真实 Jenkins 日志/归档取证,条目 5「凭据不落日志、不进归档」勾选关闭
- macOS 里程碑:记录节点 genarrative-agc-macos-01 自 2026-09-24 19:54:51 +08:00 起 ChannelTermination 离线(JNLP 只能在 Mac 本机启动)、离线期间不产出半成品,以及日调度 Job 因此连续失败
- pitfalls:新增「AGC 发布类 Job 变红或卡住先看构建节点在线状态」的排查口径与只读检查命令
2026-09-29 06:18:40 +08:00
kdletters e1dacccec5 复核版本守卫在真实 dev-win 构建上的表现并记入里程碑
Project CI / AI game creator shell Rust crates (push) Successful in 1m32s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m0s
Project CI / Backend tests (push) Successful in 5m4s
Project CI / Native shell tests (push) Successful in 6m20s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m44s
Project CI / Frontend tests (push) Successful in 2m15s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 10m3s
Project CI / AI game creator shell web tests (push) Successful in 1m37s
Project CI / Repository checks (push) Successful in 2m14s
- 只读核对线上 dev-win 0.1.157(commit d39931a01a):清单地址、产物签名、PE 身份与版本、统一总号四层同时成立
- 该构建是 assertArtifactVersionMatches 补上后的首个真实 Windows 渠道构建,确认守卫在 CI 不误伤也不漏放
- 渠道化里程碑记录本条证据,并保留仍未取证的 Jenkins 日志边界
2026-09-29 00:51:32 +08:00
kdletters e39abe8b61 复核批量标签的原生写盘与跨窗口路径并记入里程碑
Project CI / AI game creator shell Rust crates (push) Successful in 1m30s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m59s
Project CI / AI game creator shell Rust lane 2/2 (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) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 原生写盘:add_local_project_resource_tags 单次 add_manifest_asset_tags_at(整批校验/一次 manifest 写入/一次 revision/审计记录),前端 CAS 带项目身份与 revision,失败保留草稿
- 跨窗口:handleResourceBatchTagsSaved 用 epoch+路径+项目 ID 丢弃迟到回包,然后调用共用的 reloadManifestAfterAssetCommand 回读广播
- 相关定向用例 24 passed;里程碑记录该复核与仍未验收的真机边界
2026-09-29 00:47:54 +08:00
kdletters c30248c4ad 封面生成客户端合同复核并记入里程碑
Project CI / AI game creator shell Rust crates (push) Successful in 1m25s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m55s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 复核两处:generateGameDistributionCover 返回的 assetObjectId 直接作为封面(无本地二次上传);read_cover_asset_id 取不到平台素材 ID 时失败关闭,不会退回本地文件
- 里程碑 C3 条记录该复核结论与仍未验收的边界(GUI 真实生成、Provider 出图与泥点扣费账实相符)
2026-09-29 00:43:49 +08:00
kdletters a441af25e5 证据矩阵按 2026-09-29 的两次修复更新
Project CI / AI game creator shell Rust crates (push) Successful in 1m26s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m59s
Project CI / AI game creator shell Rust lane 2/2 (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) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 第 3 条:包体上限改为单一来源 shared_contracts 常量,AGC 客户端读包阶段按平台上限预检,本地 512 MiB 导出上限只是防呆线
- 第 5 条:免费生成简介/分类补上客户端侧合同(上下文有界 6,000 字符、素材只带文件名脱敏、失败本地兜底不阻断发布)与用例证据
- 保证 D6 的矩阵与当前代码/证据一致,未取证项分类不变
2026-09-29 00:40:53 +08:00
kdletters e6c3729adb AGC 发布前检查平台包体上限,并把上限单一来源
Project CI / AI game creator shell Rust smoke (push) Successful in 1m55s
Project CI / AI game creator shell Rust crates (push) Successful in 1m46s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- shared-contracts 新增 GAME_DISTRIBUTION_MAX_PACKAGE_BYTES(200 MiB),服务端 module-game-distribution 保留同值常量并在注释里指明;api-server 新增 publish_package_limit_matches_the_shared_contract 守卫测试把两处锁一致
- AGC project/export 新增 ensure_within_platform_package_limit:读包阶段预检,超限返回「发行包 X MiB 超过平台上限 200 MiB;请精简资源后重新导出再发布」,不再让 200–512 MiB 的包白读盘/暂存后吃服务端 413
- 用例:project::export::npm_export_tests::publish_precheck_rejects_packages_over_the_platform_limit(边界=上限放行、超限文案、本地导出上限确实更宽)
- 里程碑 C1 与 pitfalls 记录「本地导出上限 ≠ 平台发布上限」这一口径
2026-09-29 00:36:28 +08:00
kdletters cb44081040 发布资料建议的项目上下文改为脱敏:素材只带文件名
Project CI / AI game creator shell Rust crates (push) Successful in 1m31s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m59s
Project CI / Backend tests (push) Successful in 4m24s
Project CI / Frontend tests (push) Successful in 2m17s
Project CI / Native shell tests (push) Successful in 6m27s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m56s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m24s
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
- GameDistributionPublishPanel:buildPublishProjectContext 不再原样拼接 asset.localPath,新增 contextSafeAssetLabel(统一分隔符、取最后一段、限长 80),绝对路径(含用户目录)不再进入提示词;上下文整体仍截到 6,000 字符
- 新增用例「发布资料建议只带脱敏且有界的项目上下文」:40 个绝对路径素材 + 超长版本说明,断言长度在 5,000~6,000、含文件名、不含 C:\Users 与项目目录;13 tests passed
- 变异验证:改回 `asset.localPath` 原样拼接后该用例立即以 expected ... to not include 'C:\Users' 变红
- 游戏分发里程碑第 C2 条补记该客户端侧口径与剩余边界(GUI 与真实 Provider 仍待验收)
2026-09-29 00:27:07 +08:00
kdletters 1951a88fba 网页侧证据复跑并修掉 Vite 冷启动造成的假失败
Project CI / AI game creator shell Rust crates (push) Successful in 1m33s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m45s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- check-game-distribution-web-e2e:导航前先 fetch 预热 /games、/games/detail、/games/play 三条路由(120s 上限,失败只告警),首个 goto 超时提到 120s,避免 Vite dev 冷启动(实测 /games 首请求 20.2s、warm 后 14ms)被当成页面故障
- 复跑合并 Web 预检改动之后的网页侧四条 E2E:web-e2e 24/24 PASS、web-publish 全过、web-publish-recovery 全过、web-a11y 全过
- 里程碑补「网页侧证据复跑(2026-09-29)」小节;pitfalls 记录冷启动判据与修法
2026-09-29 00:21:43 +08:00
kdletters 25898969fb 给真机 DirectProject 夹具加一键入口
Project CI / AI game creator shell Rust crates (push) Successful in 1m30s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m1s
Project CI / Backend tests (push) Successful in 4m21s
Project CI / Frontend tests (push) Successful in 2m23s
Project CI / Native shell tests (push) Successful in 6m43s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 9m17s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m48s
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
- 新增 scripts/run-agc-direct-execution-fixture.mjs:默认用 src-tauri/target/debug 的 AGC 二进制跑全部 11 个用例,支持 -- --cases 子集与 -- --agc-exe 覆盖;二进制缺失时给出构建提示并以退出码 2 结束
- package.json 注册 npm run check:agc-direct-execution-fixture
- 复验:全量 11/11 passed(completed/passes/mcp/mcp-write/native/native-resources/patch/deadline/native-session/restart/running);-- --cases restart 透传也通过
- DirectProject 里程碑记录该可复跑入口与 11/11 结果
2026-09-29 00:11:11 +08:00
kdletters d39931a01a 把签名凭据卫生收进 check:production-ops 门禁
Project CI / AI game creator shell Rust crates (push) Successful in 1m31s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m58s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 两个 AGC 打包管线必须用 withCredentials 把 AgcUpdaterSigningKey / ...Password 绑到 TAURI_SIGNING_PRIVATE_KEY / ..._PASSWORD
- 禁止 echo $TAURI_SIGNING_PRIVATE_KEY、Write-Host $env:...、%VAR%、set -x 之类会把绑定凭据打进日志的写法;归档 glob 不得出现 *.pem|*.key|*.pfx|*.p12
- 变异验证:往 mac 管线插一行 echo $TAURI_SIGNING_PRIVATE_KEY 后门禁立刻以「不得把签名凭据打印到构建日志」失败退出;还原后 check:production-ops OK
- 渠道化里程碑第 5 条补记该静态门禁与剩余边界(真实 Jenkins 运行日志仍需 CI 取证)
2026-09-29 00:05:54 +08:00
kdletters f6ccabf425 补客户端更新"校验失败不得当成功"的回归用例
Project CI / AI game creator shell Rust crates (push) Failing after 1m15s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m58s
Project CI / Frontend tests (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- appUpdate.test:新增「签名校验失败时拒绝安装、不重启进程,并保留待装更新供重试」——插件抛 signature verification failed 时断言错误原样上抛、restart_agc_app 未被调用、重试仍走安装链路并在成功后重启
- 变异验证:把 restartAppAfterUpdate() 挪到 await downloadAndInstall 之前,该用例立即以 expected "spy" to not be called with arguments: [ 'restart_agc_app' ] 变红;还原后 7 passed
- 客户端更新里程碑补记该覆盖与剩余边界(真机安装闭环与插件侧临时文件清理需真实设备与已发布包);pitfalls 记录"重启必须排在安装成功之后"
2026-09-29 00:02:17 +08:00
kdletters 8b305162c1 给宿主收尾修复补阶段回归断言
Project CI / AI game creator shell Rust crates (push) Successful in 1m27s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m55s
Project CI / Frontend tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
- host_ended_turn_is_not_a_failure 追加断言:宿主自己收尾后账本阶段仍是 Working,不得被改成 Interrupted(这正是 2026-09-28 CLI 回执变成"执行通道已断开"的根因)
- 变异验证:临时补回缺陷版本的 self.interrupt(&reason).await 后该断言以 left=Interrupted/right=Working 变红;还原后 codex_app_server::execution 13 passed
- decision-log 记录该守卫与变异结果
2026-09-28 23:57:59 +08:00
kdletters a59329995e 真机夹具加 running 用例:进程存活期间宿主可观测到运行中回合
Project CI / AI game creator shell Rust smoke (push) Successful in 1m38s
Project CI / AI game creator shell Rust crates (push) Successful in 1m22s
Project CI / Backend tests (push) Successful in 4m21s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m27s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m13s
Project CI / Native shell tests (push) Successful in 6m23s
Project CI / Frontend tests (push) Successful in 2m12s
Project CI / AI game creator shell web tests (push) Successful in 1m46s
Project CI / Repository checks (push) Successful in 2m19s
- direct-execution-production-fixture:新增 running 场景(工具阻塞期间进程存活),轮询宿主账本抓快照,断言 phase=working、active 里恰好一条 kind=execute 在途许可、executorStopped=false;收尾后 phase=completed、active 清空、executorStopped=true,宿主侧条目顺序不变
- 复验:completed,passes,mcp,mcp-write,native,deadline,restart,running 共 8/8 passed
- 记录事实:CLI/无前端宿主既无用户消息也无最终助手回复(前端写入),夹具断言只校验宿主侧条目;宿主侧"正在跑"的可观测事实两路径一致
- 文档:DirectProject 里程碑补该轮核对;pitfalls 扩写 CLI 历史只含宿主侧条目这一坑
2026-09-28 23:39:11 +08:00
lhk229 b0d94ed2d9 Merge branch 'master' into codex/fix-web-preflight-home
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m31s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m43s
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Has been cancelled
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
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / Backend tests (pull_request) Successful in 4m4s
Project CI / Frontend tests (pull_request) Successful in 2m10s
Project CI / Native shell tests (pull_request) Successful in 6m29s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m23s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m10s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m1s
Project CI / Repository checks (pull_request) Successful in 2m42s
2026-09-28 23:37:47 +08:00
kdletters c388803729 给真机夹具加 restart 用例:回合进行中杀进程后部分历史与宿主事实
Project CI / Backend tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Project CI / AI game creator shell Rust crates (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
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
- direct-execution-production-fixture:新增 restart 场景(契约 → 部分助手文本 + 阻塞原生工具 → 工具真开始后 SIGTERM 杀进程),断言部分文本与工具卡片按顺序落盘、被杀工具卡片是最后一行且无回执行、账本不伪造成 completed/executorStopped
- 复验:completed,passes,mcp,mcp-write,native,deadline,restart 共 7/7 passed
- 变异验证:把"等 400ms 再杀"改成"等 20s"(让回合自然跑完)后同一条用例立即变红(AGC must be killed mid-turn)
- 记录事实:CLI/无前端宿主不写用户消息(GUI 由前端写),夹具断言据此只校验部分文本与工具卡片顺序
- 文档:DirectProject 里程碑补该轮核对与剩余 UI 侧边界;pitfalls 记 CLI 不写用户消息这一坑
2026-09-28 23:32:02 +08:00
lhk229 720498c028 合并最新主分支到 Web 环境预检修复分支
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m33s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m2s
Project CI / Backend tests (pull_request) Successful in 4m27s
Project CI / Frontend tests (pull_request) Successful in 2m13s
Project CI / Native shell tests (pull_request) Successful in 6m34s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m41s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m30s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m47s
Project CI / Repository checks (pull_request) Successful in 2m43s
同步远端 master 至 8b67efbcf
保留双方排障记录并解决文档末尾冲突
保留 Web 环境探测隔离与独立测试夹具修复
2026-09-28 23:26:18 +08:00
lhk229 172ef2a16b 修复环境探测测试夹具触发配置检查的问题
Project CI / AI game creator shell Rust lane 2/2 (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 / Frontend tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust smoke (pull_request) Has been cancelled
将 Node 环境断言移入独立测试夹具并通过 include_str 引用
保持生产配置检查规则与预检实现不变
同步定向验证入口说明
2026-09-28 23:24:52 +08:00
kdletters 4415c7a5ff 修复宿主自己收尾被记成本轮未完成(CLI 回执不再是通道断开)
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Has been cancelled
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
Project CI / AI game creator shell web tests (push) Has been cancelled
- fail_turn:宿主自己关的连接(is_closed)只把原因追加进终态说明,不再调 session.interrupt,避免把正常收尾改写成 interrupted
- direct_execution:新增 ExecutionSession::append_terminal_note,与 interrupt 同款留痕但不改阶段;用户主动终止与真实通道故障保持原口径
- 复验:真 AGC CLI → 真 app-server → loopback Responses 夹具 6/6 passed(原来 6/6 失败);completed 用例 phase=completed、executorStopped=true,terminalReport 为宿主真实交付报告
- 定向单测 codex_app_server::execution 13 passed(含 host_ended_turn_is_not_a_failure、user_requested_stop_is_not_recorded_as_a_failure)、direct_execution 26 passed
- 文档:pitfalls 记录 Killer 定位与修复、decision-log 记该决策与边界、DirectProject 里程碑说明该夹具现为可复跑证路(两条 UI 验收仍需真实客户端窗口)
2026-09-28 23:23:56 +08:00
kdletters 8b67efbcff 给 app-server 关闭原因加可观测日志并定位 DirectProject 收尾 Killer
Project CI / AI game creator shell Rust crates (push) Successful in 1m40s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m10s
Project CI / Backend tests (push) Successful in 4m34s
Project CI / Frontend tests (push) Successful in 2m16s
Project CI / Native shell tests (push) Successful in 6m50s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 9m10s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m31s
Project CI / Repository checks (push) Successful in 2m28s
Project CI / AI game creator shell web tests (push) Has been cancelled
- codex_app_server:shutdown_game_creator_codex_app_server_inner 在 GENARRATIVE_AGC_DIRECT_DEBUG=1 下打印关闭原因,避免以后再靠插桩区分「宿主收尾」与「通道自己断了」
- 用该日志定位到:夹具里是宿主自己的 shutdown_and_report(execution.rs:938,reason=宿主执行预算或交付收尾)先置 closed 再关 app-server,关进程给在途回合发 TransportClosed,于是 CLI 回合拿到「连接断开」、账本落 interrupted
- 记录修复方向(宿主主动收尾时先交付结果、不向该回合发 TransportClosed)与影响面(CLI / 单回合宿主,GUI 常驻不走这条路)
- DirectProject 里程碑与 pitfalls 同步:四层排除结论 + Killer 定位;两条运行时验收继续未勾选
2026-09-28 23:10:59 +08:00
kdletters a18a6e84b0 插桩排除 DirectProject 宿主收尾的两个候选原因
Project CI / AI game creator shell Rust crates (push) Successful in 1m29s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m53s
Project CI / Backend tests (push) Successful in 4m36s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 在 Drop for ExecutionBinding 分支插桩后一次都没打印:账本 interrupted 不是它补的 cancel_from_host
- 临时打印 app-server stderr 分段原文:1242 字节全是 ProgramData/模型元数据/PowerShell shell snapshot 告警,没有 panic/error,说明子进程是被优雅关掉的
- 结合上一轮的「不是 codex 版本漂移、不是 stdin 被忽略」,记录下一步插桩点应落在宿主侧关闭 stdin / kill 子进程的代码;所有插桩已回滚,工作树保持干净
- DirectProject 里程碑与 pitfalls 同步该结论,两条运行时验收继续未勾选(本质要真实客户端窗口)
2026-09-28 23:04:26 +08:00
kdletters 90a414ebf3 清理随包 Codex 资源里的旧布局残留
Project CI / AI game creator shell Rust crates (push) Successful in 1m24s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m54s
Project CI / Backend tests (push) Successful in 4m3s
Project CI / Frontend tests (push) Successful in 1m59s
Project CI / Native shell tests (push) Successful in 6m11s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
- src-tauri/build.rs:stage_codex_target 拷贝前调用新增的 prune_stale_codex_components,删掉不在本轮布局也不在 manifest.json/NOTICE.md 白名单里的文件并收掉空目录
- 复验:重建后 resources/codex/win-x64 根目录那份 0.147.0 codex.exe 与临时备份被清除,六个声明组件、manifest.json 与 NOTICE.md 保留;同一二进制下 loopback 夹具仍跑到 requests=3、markers.ready=true
- 文档:DirectProject 里程碑本轮核对细化第二层问题(不是 codex 版本漂移、不是 stdin;指向 Drop for ExecutionBinding 的收尾竞态,需插桩),并说明两条运行时验收本质要真实客户端窗口;pitfalls 记录该环境陷阱与修复
2026-09-28 22:55:41 +08:00
kdletters 7ec984d0d2 修复 DirectProject 空历史注入导致新项目第一条消息失败
Project CI / AI game creator shell Rust crates (push) Successful in 1m30s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m49s
Project CI / Backend tests (push) Successful in 4m20s
Project CI / Frontend tests (push) Successful in 2m13s
Project CI / Native shell tests (push) Successful in 6m19s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 9m1s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m23s
Project CI / AI game creator shell web tests (push) Successful in 1m41s
Project CI / Repository checks (push) Successful in 2m16s
- build_direct_project_history_injection_params 在历史为空时返回 Ok(None),调用方跳过 thread/inject_items(codex app-server 0.155.1 起拒绝 items: [])
- 新增两条单测:空历史不得构造载荷、有历史仍构造 1 条;cargo test direct_project_history_wire 3 passed、cargo fmt --check 通过
- 复验:真 AGC CLI → 真 app-server → loopback Responses 夹具从「4 秒失败、requests=[]」变为「requests=3、markers.ready=true、exit=0」
- 记录第二层未解决问题:同一用例账本仍落 phase=interrupted(app-server 收尾连接终止),两条运行时验收继续未勾选
- decision-log 与 pitfalls 记录缺陷、修复与证据;DirectProject 里程碑补本轮核对
2026-09-28 22:45:47 +08:00
kdletters 93af29314c 只读核对补旧协议指针的分区断言
Project CI / AI game creator shell Rust smoke (push) Successful in 1m21s
Project CI / AI game creator shell Rust crates (push) Successful in 1m37s
Project CI / Backend tests (push) Successful in 3m49s
Project CI / Frontend tests (push) Successful in 1m37s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m20s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m39s
Project CI / Native shell tests (push) Successful in 5m50s
Project CI / AI game creator shell web tests (push) Successful in 2m18s
Project CI / Repository checks (push) Successful in 2m49s
- check:agc-update-channel-manifests:非 dev 的 Windows 渠道核对时断言 agc/latest.json 仍指向 dev-win 分区(全局单对象只属于 dev)
- 渠道隔离里程碑与 decision-log 记录线上证据:release-win 核对通过,指针指向 dev-win 0.1.155
2026-09-28 22:30:15 +08:00
kdletters e055cb1d7c 核对脚本能读 Windows 安装包内部渠道身份与版本
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Has been cancelled
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
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
- 新增 scripts/pe-version-info.mjs:纯 Node 解析 PE RT_VERSION(VS_FIXEDFILEINFO + StringFileInfo),带非 PE 输入失败关闭的用例
- check:agc-update-channel-manifests:下载 Windows 安装包后断言 ProductName 与 FileVersion,与 mac 侧解 Info.plist 对称;实测 dev-win 0.1.155=陶泥儿开发版/0.1.155、release-win 0.1.150=陶泥儿 Release/0.1.150
- 渠道化与渠道隔离里程碑记录:dev-win 0.1.155 于 14:26:13 发布完成(总号/清单/旧协议指针三者对齐),但该构建源码早于 assertArtifactVersionMatches,守卫仍待下次真实构建验证
- decision-log 与 pitfalls 补记 PE 侧核对口径
2026-09-28 22:27:18 +08:00
lhk229 927475f2c7 修复 Web 游戏预检的用户目录依赖
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m28s
Project CI / Backend tests (pull_request) Failing after 17s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m48s
Project CI / Native shell tests (pull_request) Failing after 1m13s
Project CI / Repository checks (pull_request) Failing after 17s
Project CI / Frontend tests (pull_request) Successful in 1m50s
Project CI / AI game creator shell web tests (pull_request) Failing after 1m21s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m44s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 10m11s
为 Node/npm 版本探测设置临时用户目录并隔离配置、缓存和工作目录
补充真实运行时探测及子进程隔离环境回归断言
同步技术方案与排障记忆
2026-09-28 22:23:04 +08:00
kdletters 87a26f74df 渠道清单只读核对补统一总号与线上一致性断言
Project CI / Frontend tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Project CI / AI game creator shell Rust crates (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
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
- check:agc-update-channel-manifests:读 agc/global-version.json,断言任何渠道清单版本不高于统一总号(渠道落后按 INFO 提示,只有反超才失败),复用 agc-global-version 的 compareVersions
- 渠道化里程碑本轮核对补线上总号证据:总号 0.1.155(dev-win 取号),四个渠道 0.1.154/0.1.150/0.1.142/0.1.139 均不高于总号
- decision-log 记录该线上口径
2026-09-28 22:22:31 +08:00
kdletters 7da6de0b4e 补齐跨渠道产物隔离核对并把 dev-mac 缺陷钉到字节级
Project CI / AI game creator shell Rust crates (push) Failing after 1m11s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m59s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- check:agc-update-channel-manifests:新增「不同渠道更新包不得字节相同」断言(需 AGC_UPDATE_VERIFY_DOWNLOAD=1),并核对 Windows 安装包文件名带本渠道产品名
- 只读核对 dev-win/dev-mac/release-win/release-mac:dev-win 0.1.154、release-win 0.1.150、release-mac 0.1.139 身份与版本一致;dev-mac 0.1.142 与 release-mac 0.1.139 的更新包 sha256 相同,字节级证明 dev 分区放了 release 渠道的产物
- 渠道安装身份隔离里程碑补本轮核对(发布产物身份 + 跨渠道唯一性),真机并存仍待验收
- macOS 里程碑与 pitfalls、decision-log 记录字节级取证与新断言
2026-09-28 22:18:37 +08:00
kdletters c6ea0f0e34 给共享产物选择器补版本守卫,避免旧安装包被发出去
Project CI / AI game creator shell Rust crates (push) Successful in 1m34s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m3s
Project CI / AI game creator shell Rust lane 2/2 (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) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- build-release:新增导出的 assertArtifactVersionMatches,generateUpdateManifest 选中的产物若文件名带 _x.y.z_ 版本段就必须等于本轮版本,否则失败关闭(macOS 无版本段的 .app.tar.gz 交给身份断言)
- build-release.test:新增残留旧安装包被拒绝、同版本通过、无版本段返回 null 三条用例
- decision-log 与 pitfalls 补记该通用守卫与完整测试批次(apps/ai-game-creator-shell/scripts/*.test.mjs 110 passed)
2026-09-28 22:13:41 +08:00
kdletters e23b0e871b 修复 macOS 渠道发布挑中残留产物,改为构建期核对包内版本与渠道身份
Project CI / AI game creator shell Rust crates (push) Successful in 1m45s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m4s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- build-macos-ci:构建前按后缀清空 macos/ 下的 *.app.tar.gz / *.sig / *.dmg / *.dmg.sha256,构建后读 Info.plist 核对版本与渠道身份,生成清单后再断言选中本轮更新包
- 新增 macos-release-identity.mjs 与单测:回归用例直接用线上 dev-mac 里那份 0.1.139 release 身份包
- prepare-macos-codex.test:残留清理断言改成按后缀全覆盖,并校验清理在构建前、身份核对在验签前
- Jenkinsfile.ai-game-creator-shell-macos-build:mac Job 增加身份守卫用例
- check:agc-update-channel-manifests:下载后解出 mac 包内 Info.plist 核对版本与身份,并按 2026-09-21 决策只要求 darwin-aarch64
- 文档:两份里程碑按现行决策修正口径并记录线上缺陷,decision-log 记决策与边界,pitfalls 记录「按目录扫描挑产物会选中残留」
2026-09-28 22:09:57 +08:00
kdletters 3702e0f8e0 记录游戏分发阶段 B 第 7 条已按本地可证范围取证
Project CI / AI game creator shell Rust crates (push) Successful in 1m36s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m59s
Project CI / Backend tests (push) Successful in 3m59s
Project CI / Frontend tests (push) Successful in 2m20s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m14s
Project CI / Native shell tests (push) Successful in 6m37s
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
- 作者/管理员下架关闭发行读取、匿名直取 OSS 被拒、撤销传播窗口 60 秒三条都有 2026-09-28 的运行证据,勾选阶段 B 第 7 条并注明真实 CDN 属阶段 D
2026-09-28 22:00:36 +08:00
kdletters a4d4d04d97 补齐 AGC 已发布渠道清单只读核对与线上差异取证
Project CI / AI game creator shell Rust crates (push) Successful in 1m28s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m55s
Project CI / Frontend tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
- 新增 scripts/check-agc-update-channel-manifests.mjs:只读核对 OSS 渠道清单结构、对象存在性、签名对象一致性,AGC_UPDATE_VERIFY_DOWNLOAD=1 时下载产物用内置公钥验签
- package.json 注册 npm run check:agc-update-channel-manifests
- 渠道化里程碑条目 3 勾选:dev-win/dev-mac 产物下载验签通过,dev-win 的 sha256/size 与旧协议指针一致;条目 5 记录 withCredentials 与归档 glob 的静态核对结果
- macOS 里程碑记录线上 dev-mac 清单仍是单架构(0.1.142 / c07c10c0c),universal 需 mac 构建机重发
- pitfalls 记录「单测绿不等于线上清单符合契约」与 dev-mac 更新产物命名待核对
2026-09-28 21:56:50 +08:00
kdletters d5dc95e822 补齐游戏分发主规范逐条证据矩阵
Project CI / AI game creator shell Rust crates (push) Successful in 1m32s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m52s
Project CI / Backend tests (push) Successful in 4m1s
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 新增 docs/project-memory/plans/【证据矩阵】AGC游戏分发主规范逐条证据-2026-09-28.md:按主规范 9 节逐条映射证据与三档结论,HTTP 路由逐行核对,未取证项单列
- 里程碑阶段 D 第 6 条勾选,补「本轮核对(阶段 D 主规范逐条证据矩阵)」并更新阶段 D 现状
- 阶段 D 第 5 条注记告警现状:只有巡检 timer + 日志 operation,独立指标/告警规则未建
2026-09-28 21:50:48 +08:00
kdletters e8b76da809 补齐游戏分发发布回滚窗口与发行网关缓存取证
Project CI / AI game creator shell Rust crates (push) Successful in 1m31s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m59s
Project CI / Frontend tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
- 新增 scripts/check-game-distribution-ops-rollback-e2e.mjs:关闭/开放发布开关、关投稿保在线、管理员批准被拦、拒绝审核与安全下架仍可用、换版保留旧版本、发行网关响应头与 60 秒缓存窗口、日志脱敏、边缘 /games/<gameId>/ 路由映射(40 项 PASS)
- package.json 注册 npm run check:game-distribution-ops-rollback-e2e
- 里程碑阶段 D 第 4、5 条勾选并补「本轮核对(阶段 D 发布回滚窗口与发行网关缓存)」,含变异验证结果
- pitfalls 记录发布开关用例要连拒绝审核与安全下架一起验,以及本机 check:production-health-patrol 必然 FAILED
2026-09-28 21:46:29 +08:00
suzmii 0cf536b675 恢复 --no-bundle 不再强制随包资源 staging,并同步 CI 分组契约
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m18s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m52s
Project CI / Backend tests (pull_request) Successful in 3m55s
Project CI / Frontend tests (pull_request) Successful in 2m2s
Project CI / Native shell tests (pull_request) Successful in 5m54s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m4s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m39s
Project CI / Repository checks (pull_request) Successful in 2m13s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 9m55s
- build-release.mjs:回到「只有出包(非 --no-bundle)才执行 staging」,修复 Linux 上只编译的 release smoke 因强制 staging 去够 Windows 上游包而失败(保留 staging 与 cargo 共用同一 feature 集,以及未覆盖目标的自然跳过)
- scripts/project-ci-workflow.test.ts:check:web 分组新增 bundled-resources:test 后的精确命令串断言同步
2026-09-28 21:35:56 +08:00
kdletters 6afa63a9de 补齐游戏分发校验重启恢复与失败可观测取证
Project CI / AI game creator shell Rust smoke (push) Successful in 1m34s
Project CI / AI game creator shell Rust crates (push) Successful in 1m25s
Project CI / AI game creator shell Rust lane 2/2 (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) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 新增 scripts/check-game-distribution-validation-restart-e2e.mjs:两段式 prepare/resume,在确认校验中途杀掉 api-server,覆盖暂存字节不丢、重新确认可恢复、待审积压可查、坏包 422 失败可诊断、公开版本不被误删
- package.json 注册 npm run check:game-distribution-validation-restart-e2e
- 里程碑阶段 D 第 3 条勾选,并补「本轮核对(阶段 D 重启恢复与失败可观测)」与阶段 D 现状描述
- pitfalls 记录两段式 E2E 的管理员凭据取决于 api-server 启动环境,以及同一状态文件只能 resume 一次
2026-09-28 21:34:24 +08:00
kdletters b58fab7b52 补齐游戏分发 200 MiB 上限档与发包边界复跑
Project CI / AI game creator shell Rust crates (push) Successful in 1m33s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m5s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 5m53s
Project CI / Backend tests (push) Successful in 4m47s
Project CI / Frontend tests (push) Successful in 2m6s
Project CI / Native shell tests (push) Successful in 6m46s
Project CI / Repository checks (push) Successful in 2m49s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m24s
Project CI / AI game creator shell web tests (push) Successful in 1m50s
- 新增 scripts/check-game-distribution-package-limits-e2e.mjs:196 MiB 合法包走通上传+校验+送审并记录耗时与工作集,声明超限 413,文件数/单文件/展开量/压缩比四类边界各自 422 失败关闭并落 upload_failed
- 校验实现无进程拉起,包内脚本未被执行
- 游戏分发里程碑阶段 D 第 2 条改为已勾选,并写明本轮可复核数据
2026-09-28 21:13:50 +08:00
kdletters 76cdb96c55 补齐游戏分发网页侧导航可达性与视觉约定取证
Project CI / AI game creator shell Rust crates (push) Successful in 1m35s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m55s
Project CI / Backend tests (push) Successful in 4m15s
Project CI / Frontend tests (push) Successful in 2m8s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m5s
Project CI / Native shell tests (push) Successful in 6m25s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m15s
Project CI / AI game creator shell web tests (push) Successful in 1m43s
Project CI / Repository checks (push) Successful in 2m11s
- 新增 scripts/check-game-distribution-web-a11y-e2e.mjs:桌面/移动导航切换、键盘焦点一路进到开始游戏、全屏按钮生效、安全区内边距、移动端发布面板无横向溢出,共 11 项 PASS
- 游戏分发里程碑阶段 C 第 8 条改为已勾选,并记录移动端首次进入的阻断提示这一既有门槛
- 第 9 条按共享组件、warm token、无假统计/演示兜底、iframe 未放宽四条约定取证后勾选
2026-09-28 20:52:54 +08:00
kdletters bbe416ca60 补齐游戏分发发布恢复链路并修掉双击提交建两份游戏
Project CI / AI game creator shell Rust crates (push) Successful in 1m37s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m7s
Project CI / Backend tests (push) Successful in 4m12s
Project CI / Frontend tests (push) Successful in 2m9s
Project CI / Native shell tests (push) Successful in 6m20s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m28s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m31s
Project CI / AI game creator shell web tests (push) Successful in 1m40s
Project CI / Repository checks (push) Successful in 2m25s
- 新增 scripts/check-game-distribution-web-publish-recovery-e2e.mjs:上传中断留草稿、关窗/登录失效后重登续传沿用原 versionId、双击只落一份、换账号不显示他人草稿,共 10 项 PASS
- GamePublishPage 加同步 submitInFlightRef 在途守卫与按次稳定的 Idempotency-Key(失败重试复用、成功后清空),双击不再创建第二份游戏
- 游戏分发里程碑阶段 C 第 5 条改为已勾选
- pitfalls 记录「点一次会建资源的入口需要同步守卫或稳定幂等键」
2026-09-28 20:37:48 +08:00
kdletters bbbd91db88 补齐游戏分发网页发布链路并修掉发布灰度按匿名判定
Project CI / AI game creator shell Rust crates (push) Successful in 1m34s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m54s
Project CI / Backend tests (push) Successful in 4m9s
Project CI / Frontend tests (push) Successful in 2m6s
Project CI / Native shell tests (push) Successful in 6m22s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m32s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m31s
Project CI / AI game creator shell web tests (push) Successful in 1m37s
Project CI / Repository checks (push) Successful in 2m17s
- 新增 scripts/check-game-distribution-web-publish-e2e.mjs:网页登录、选封面、选发行包 ZIP、填资料提交,待审不可见、审核后公开、更新沿用同一 gameId 且旧版在线,共 12 项 PASS
- frontendRuntimeConfigService 去掉 skipAuth:发布灰度按作者判定,匿名请求恒为 false,之前只要显式配置过灰度网页端就永远没有发布入口;单测同步更新
- 游戏分发里程碑阶段 C 第 4 条改为已勾选,第 5 条缺口收窄到上传中断/双击/登录失效/窗口关闭与换账号
- pitfalls 记录「按用户灰度配置不能走 skipAuth」的经验
2026-09-28 20:21:34 +08:00
kdletters f0ae3ce52c 补齐游戏分发网页侧链路取证并修掉返回目录丢关键词
Project CI / AI game creator shell Rust crates (push) Successful in 1m31s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m1s
Project CI / Backend tests (push) Successful in 5m4s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m50s
Project CI / Frontend tests (push) Successful in 2m24s
Project CI / Native shell tests (push) Successful in 7m27s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 10m9s
Project CI / AI game creator shell web tests (push) Successful in 1m50s
Project CI / Repository checks (push) Successful in 2m24s
- 新增 scripts/check-game-distribution-web-e2e.mjs:真实 dev 网页栈 + Chromium 游客走目录筛选、空态与重置、详情主动作、分享直达详情、按需加载发行 iframe、失败重试、退出不自动重启、移动端门槛与旋转提示,共 23 项 PASS
- GameGalleryPage 的顶栏搜索词同步改为按 prop 值比对:原来的一次性 ref 守卫在开发态 StrictMode 双跑下会用空值清掉刚从 sessionStorage 恢复的关键词
- vite.config.ts 增加 /games/<gameId>/ 发行入口代理(rewrite 到发行网关并去掉 Cookie),本地网页栈与生产 nginx 同口径
- 游戏分发里程碑阶段 C 第 6、7 条改为已勾选,其余条目列出具体缺口
- pitfalls 记录 StrictMode 守卫击穿与 Vite 发行入口代理两条经验
2026-09-28 20:07:20 +08:00
kdletters eb7c00658a 补齐 External v1 场景生成路由的本地真实栈受理 smoke
Project CI / AI game creator shell Rust crates (push) Successful in 1m27s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m49s
Project CI / Backend tests (push) Successful in 5m9s
Project CI / Native shell tests (push) Successful in 6m14s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m6s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m12s
Project CI / Frontend tests (push) Successful in 2m42s
Project CI / AI game creator shell web tests (push) Successful in 1m41s
Project CI / Repository checks (push) Successful in 2m16s
- 新增 scripts/check-external-v1-scene-generation-smoke.mjs:dev 账号现建外部 API Key,校验非法 Key 401、缺幂等键/空 sceneContent/custom 缺 customStyle 各自 400、合法请求 202 且返回 operationId、同键重放同一 operationId、同键换请求体 409
- 轮询生成状态得到 completed 与 assetObjectId,并用 external read-url 换签名地址下载成功(200 image/png),证明 Provider 出图在本机可用
- 里程碑最后一条验收改为已勾选,并把先前「Provider 出图未验证」的环境结论更新为已实测
2026-09-28 19:52:16 +08:00
kdletters ad2ab4cd60 补齐游戏发行沙箱的真实浏览器取证并勾选阶段 B 第 5/6 条
Project CI / AI game creator shell Rust crates (push) Successful in 1m32s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m49s
Project CI / Backend tests (push) Successful in 5m5s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 新增 scripts/check-game-distribution-sandbox-e2e.mjs:把探针包发布到本地发行网关,再用 Chromium 以 sandbox=allow-scripts 的 iframe 打开,断言 module 载入、storage/cookie/父文档 DOM 隔离、跨源 fetch 与 WebSocket、Worker、弹窗、顶层跳转、敏感权限全部被挡
- 同一次运行核对发行网关策略:最小 CSP(connect-src self / worker-src none)、nosniff、Access-Control-Allow-Origin *、带 Cookie 403、未知扩展名 404,共 22 项 PASS
- 游戏分发里程碑阶段 B 第 5、6 条改为已勾选,并按主规范 2026 决策说明独立发行域名已由「平台同源路径 + sandbox 不透明来源」替代
- 第 7 条缺口收窄到只剩「撤销传播符合最大缓存窗口」需要生产 CDN/TTL
2026-09-28 19:43:59 +08:00
kdletters 2d875377a9 补齐项目快照的客户端上传与后台列表下载联调取证
Project CI / AI game creator shell Rust crates (push) Successful in 1m39s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m58s
Project CI / Backend tests (push) Successful in 5m36s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 新增 scripts/check-agc-project-snapshot-admin-http.mjs:核对后台列表里的快照统计、下载工程 ZIP、逐条与本地项目副本比对 SHA-256,并检查排除项与 .agent 目录
- 里程碑条目 9 改为已勾选,写入真实客户端共享模块上传(首次 synced、紧接着 no-op)与后台列表/ZIP 的 HTTP 联调取证,并把未验证项单独列出
- pitfalls 记录单用户每小时 3000 次文件上传配额对真实链路冒烟的影响与选项目口径
2026-09-28 19:35:22 +08:00
kdletters 25a992468d 写入对象存储时下发对象级 ACL,修掉发行包可匿名直取
Project CI / AI game creator shell Rust crates (push) Successful in 1m30s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m52s
Project CI / Backend tests (push) Successful in 4m55s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m4s
Project CI / Native shell tests (push) Successful in 6m20s
Project CI / Frontend tests (push) Successful in 2m11s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m6s
Project CI / AI game creator shell web tests (push) Successful in 1m40s
Project CI / Repository checks (push) Successful in 2m12s
- platform-oss 的内部 PUT 与分片追加显式下发 x-oss-object-acl(Private 为 private、Public 为 public-read),OssAppendInternalObjectRequest 增加 access 字段
- 直传 policy 增加 x-oss-object-acl 条件,表单字段与 shared-contracts 的 DirectUploadTicketFormFields 同步新增并透传到 ticket 响应
- 媒体链路 E2E 增加匿名直取直传封面与发行包两条探测:默认 WARN,E2E_REQUIRE_PRIVATE_BUCKET=1 时按失败处理
- 里程碑第 7 条、pitfalls 与 decision-log 记录根因、修复与复验(严格模式 65 项 PASS,两处匿名直取都 403)
2026-09-28 19:20:21 +08:00
kdletters fb87e1d4ff 补齐游戏分发安全下架取证并记录发行包对象可匿名直取
Project CI / AI game creator shell Rust crates (push) Successful in 1m32s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m6s
Project CI / Backend tests (push) Successful in 4m55s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m34s
Project CI / Frontend tests (push) Successful in 2m19s
Project CI / Native shell tests (push) Successful in 7m14s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m55s
Project CI / AI game creator shell web tests (push) Successful in 1m57s
Project CI / Repository checks (push) Successful in 2m28s
- 媒体链路脚本新增管理员安全下架与恢复段:suspend 后目录/详情/发行读取全部关闭、过期 revision 的 suspend 被 CAS 拒绝、restore 后重新公开且可玩
- 新增匿名直取发行包对象探测:本地 dev bucket 返回 200(同 bucket 不存在 key 为 404),默认只打 WARN,E2E_REQUIRE_PRIVATE_BUCKET=1 时按失败处理
- 游戏分发里程碑阶段 B 第 7 条补上「不能绕过网关直取 OSS 在当前环境不成立」的实测、根因与剩余缺口
- pitfalls 记录 platform-oss 的 put_internal_object_bytes 从不发送 x-oss-object-acl 的问题与上线前处理
2026-09-28 19:08:51 +08:00
kdletters 6cbc56dd98 补齐游戏分发审核 CAS 与下架可见性取证
Project CI / AI game creator shell Rust crates (push) Successful in 1m19s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m39s
Project CI / Backend tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 媒体链路脚本新增 publicationRevision CAS 段:过期审核与过期下架 409 PUBLICATION_CONFLICT、同 key 重放批准 replayed=true、并发激活只有一次成功、下架前的 revision 不能批准新版本
- 新增作者下架后的可见性段:公开目录不含、详情 404、发行网关 404,且目录与详情不返回对象存储地址
- 游戏分发里程碑阶段 B 第 3、4 条改为已勾选,脚本共 58 项 PASS
2026-09-28 19:04:23 +08:00
kdletters 253f99d921 补齐错误 envelope 的请求上下文并扩展游戏分发审核取证
Project CI / AI game creator shell Rust crates (push) Successful in 1m30s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m59s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 5m26s
Project CI / Backend tests (push) Successful in 4m13s
Project CI / Frontend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
- api-server 的错误响应改用 attach_request_context 建立的 CURRENT_REQUEST_CONTEXT(tokio task_local),错误 envelope 与成功 envelope 一样带 meta.requestId / meta.operation,脱离请求任务时退回原形状
- 越权隔离脚本新增成功/失败 envelope 断言:修复前错误响应 requestId 为空让断言变红,修复后 23 项 PASS
- 媒体链路脚本扩展审核治理段:普通作者不能提交审核动作、更新待审与被拒都不改变在线旧版 URL 与可玩内容、审核结论可在后台追溯,44 项 PASS
- 游戏分发里程碑阶段 A 第 6 条、阶段 B 第 1/2 条改为已勾选并写入取证,阶段 B 其余条目列出具体缺口
- decision-log 补记错误 envelope 同一份 meta 与「按可消费取证」两条口径
2026-09-28 18:58:38 +08:00
kdletters 23de78b476 补齐游戏分发分片续传与失败恢复用例并收口阶段 A 第 5 条
Project CI / AI game creator shell Rust crates (push) Successful in 1m41s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m12s
Project CI / Backend tests (push) Successful in 5m14s
Project CI / Native shell tests (push) Successful in 6m19s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m41s
Project CI / Frontend tests (push) Successful in 2m13s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m41s
Project CI / AI game creator shell web tests (push) Successful in 1m38s
Project CI / Repository checks (push) Successful in 2m12s
- 新增 scripts/check-game-distribution-upload-resume.mjs:prepare 段造 9,437,658 字节真实 ZIP 只传第一片 8,388,608 字节,杀掉 api-server(PID 53844 -> 7728)后 resume 段从对象存储读回权威偏移继续传完、确认 uploaded、送审 202 pending_review
- 上传安全检查脚本改名并扩展为 check-game-distribution-upload-safety:新增「结构合法但摘要与声明不符 -> 409 PACKAGE_MISMATCH -> upload_failed + recoveryAction=reupload -> reset 归零 -> 重传确认成功」失败恢复用例,共 24 项 PASS
- package.json 注册 check:game-distribution-upload-resume 并改名 check:game-distribution-upload-safety
- 游戏分发里程碑阶段 A 第 5 条改为已勾选,写入三段式取证
- decision-log 记录越权一律 404、并发落败给权威偏移两条错误码口径
2026-09-28 18:44:16 +08:00
kdletters 665f88b85f 补齐游戏分发并发上传与幂等重放用例并修掉并发落败的错误码
Project CI / AI game creator shell Rust crates (push) Successful in 1m25s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m52s
Project CI / Backend tests (push) Successful in 5m47s
Project CI / Native shell tests (push) Successful in 6m34s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 9m6s
Project CI / Frontend tests (push) Successful in 2m8s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 10m8s
Project CI / AI game creator shell web tests (push) Successful in 1m36s
Project CI / Repository checks (push) Successful in 2m16s
- 新增 scripts/check-game-distribution-upload-concurrency.mjs:同 key 重放建游戏/建版本返回同一条记录、换请求体 409、同版本同偏移并发写片只成功一片、权威已收字节等于单份包长、确认校验通过落到 uploaded、换 key 重复送审 409 且版本数仍为 1
- 分片追加失败后回读权威已收字节:长度已前进时返回 409 PACKAGE_UPLOAD_OFFSET_MISMATCH 与 receivedBytes,不再把 OSS position 冲突报成 502 UPSTREAM_ERROR
- package.json 注册 check:game-distribution-upload-concurrency
- 游戏分发里程碑阶段 A 第 4 条改为已勾选,并把第 5 条的缺口收窄到「响应丢失与进程退出后的续传编排」
2026-09-28 18:31:39 +08:00
kdletters 0989f9f40e 补齐游戏分发跨账号越权用例并统一送审的 404 口径
Project CI / AI game creator shell Rust crates (push) Successful in 1m40s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m9s
Project CI / Backend tests (push) Successful in 5m4s
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 新增 scripts/check-game-distribution-owner-isolation.mjs:对本地真实栈注册两个账号,逐条验证私有版本读取、上传状态、分片写入、分包确认、送审、撤回与未认证访问的越权口径,并验证请求体伪造 owner 不生效
- api-server 的 submit_version 改用 load_owner_version_or_404:他人送审返回 404 而不是 403,不再用错误码泄露版本是否存在
- package.json 注册 check:game-distribution-owner-isolation
- 游戏分发里程碑阶段 A 第 1 条改为已勾选,写入 21 项 PASS 取证与修复前的 403 变异证据
2026-09-28 18:23:52 +08:00
kdletters 4c4e61255e 给游戏分发 DTO 门禁补上手拼响应构建器的逐键比对
Project CI / AI game creator shell Rust crates (push) Successful in 1m29s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m57s
Project CI / Backend tests (push) Successful in 5m50s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m39s
Project CI / Native shell tests (push) Successful in 7m7s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m42s
Project CI / Frontend tests (push) Successful in 2m20s
Project CI / Repository checks (push) Successful in 2m25s
Project CI / AI game creator shell web tests (push) Successful in 1m38s
- 新增 RESPONSE_BUILDERS:解析 api-server 里 game_payload / public_game_payload / private_version_payload / version_summary_payload 的 json! 顶层键与顶层 object.insert,逐键比对 TS 类型
- 发出的键必须都在 TS 类型里,TS 的必需字段必须都发出,公开投影还必须发出被标成可选的 currentVersion
- game_payload 的 author / deviceSupport 两个嵌套字面量同样逐键比对
- TS 类型解析同时记录必需字段,供这一层比对使用
- 同步游戏分发里程碑第 6 条的构建器取证与剩余缺口
2026-09-28 18:06:56 +08:00
kdletters 4c31f50007 Merge remote-tracking branch 'origin/master' into codex/agc-renderer-io-downshift
Project CI / AI game creator shell Rust crates (push) Successful in 1m38s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m16s
Project CI / Backend tests (push) Successful in 5m15s
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
2026-09-28 17:58:15 +08:00
kdletters 46d8768529 对齐游戏分发响应 DTO 的 Rust 与 TypeScript 字段
- 给 GameDistributionGameSummary 补 coverObjectKey / screenshots / publicationRevision,给 GameDistributionPrivateVersion 补 publicationRevision,与 game_payload / private_version_payload 实际发出的键一致
- packages/shared 的 GameDistributionGame.currentVersion 改为可选,并写明作者侧响应自带同一份 game_payload 但不发这一项
- 删掉 DTO 一致性门禁里豁免这 4 个字段的 TS_ONLY_FIELDS 白名单,现在任一方向多出字段都会失败
- 同步游戏分发里程碑第 6 条的取证与剩余缺口
2026-09-28 17:58:00 +08:00
kdletters 1b2bfa4e74 新增游戏分发 Rust 与手写 TS DTO 的一致性门禁
- scripts/check-game-distribution-dto-parity.mjs:按显式映射表逐字段/逐变体比对 14 组 shared-contracts DTO 与 packages/shared/src/contracts/gameDistribution.ts,未分类的新类型或新字段直接失败
- 脚本登记 7 个服务端逐字段手拼 JSON 的 TS 类型,并记录 4 个已知响应侧附加字段(coverObjectKey/screenshots/publicationRevision)以便后续收口
- package.json 增加 check:game-distribution-dto-parity 并接进 npm run lint
- 变异验证:TS 改名与 Rust 加字段各自都让门禁失败并指出缺哪个字段;里程碑第 6 条写明剩余缺口(两个响应仍是 serde_json 手拼)
2026-09-28 17:52:11 +08:00
kdletters 39a7343079 补齐游戏分发阶段 A 的三条领域用例并勾选失败关闭条目
- module-game-distribution 新增 rejects_symlink_entries:用 ZipWriter::add_symlink 造真实 S_IFLNK 条目(unix_permissions 会掩掉类型位),去掉 is_symlink 守卫时该用例变红
- 新增 failed_validation_keeps_the_previous_publication_and_confirmed_package:第二版校验失败后已公开游戏快照与上一版已确认包身份逐字段不变,变异成顺带更新游戏记录时变红
- 新增 a_version_accepts_only_one_confirmed_package:不同摘要/字节数确认被拒为 PackageMismatch,重复确认同一份内容返回同一身份,去掉守卫时变红
- 里程碑勾选第 3 条并写明「额度超限」按包/文件/展开量/条目数/压缩比上限口径验收(该链路无按用户配额)、第 4 条只剩并发不混写待补
2026-09-28 17:48:06 +08:00
kdletters 9944136b0f 核对游戏分发阶段 A 的服务端验收:勾选一条并列出其余五条缺口
- 阶段 A 第 2 条勾选:真实 ZIP 字节与展开清单由 module-game-distribution 13 passed 覆盖,包上限/分片/422 由 api-server package_ 6 passed 覆盖
- 未勾选五条逐条写明缺口:跨账号读写撤销缺接口级用例、额度超限与失败后旧对象/公开状态不变缺断言、并发上传不混写缺用例、响应丢失与未知结果区分缺用例、gameDistribution.ts 手写 DTO 无 Rust↔TS 一致性检查
2026-09-28 17:43:09 +08:00
kdletters 133b506d35 整理 UI 编辑器实施计划的本轮核对段落
- 去掉重复的小节与误写入的制表符(上一轮 PowerShell here-string 里反引号被当成转义字符)
- 六条验收的证据与各自变异验证方式按条列在一个段落里
2026-09-28 17:40:44 +08:00
kdletters 3ea6c992bc 补齐 UI 编辑器整树渲染定位验收并收口六条验收
- tests/previewWorkspaceZoom.test.tsx 新增「树层按 root.offset.min 定位,原图与子节点随之一起移动」:断言树层 style.left/top 等于 root.offset.min 且根与子节点都挂在该层
- 变异验证:层偏移兜底改成 [0,0] 后只有该用例变红(1 failed / 9 passed)
- 里程碑第 2 条勾选,6 条验收全部有变异验证过的自动化证据(当前四套 77 passed);实施计划同步更新,剩余只有真机目视验收
2026-09-28 17:40:21 +08:00
kdletters beaa6265da 补齐 UI 编辑器整树拖动的历史与保存落盘验收
- tests/uiEditorPage.test.ts 新增「整树拖动写回一个历史条目,保存后能原样读回」:断言 setTreeOffset 进历史、undo/redo 往返、save 落盘快照里的树偏移就是新值
- 变异验证:setTreeOffset 里 commit 换成 applyState(改状态不进历史)后只有该用例在 canUndo 处变红(1 failed / 37 passed)
- 里程碑记录第 2 条已覆盖的两句与仍缺的一句(渲染层随 root 平移的断言方式),并引用既有 pointerup/取消不写回的用例
2026-09-28 17:39:01 +08:00
kdletters 46cb3f1908 补齐 UI 编辑器 activeImageId 与联合适配两条验收断言
- tests/uiEditorPage.test.ts 新增「预览里选择节点不改变左侧选中的界面图」:断言 canvas.selectNode 只改节点选中、不改 hook 暴露的 activeImageId,Inspector 部件切换同理
- tests/previewWorkspaceZoom.test.tsx 新增「进入时按全部树的联合边界适配,选中节点不重新适配」:两棵树横跨 1600 单位时联合适配缩放必须小于单棵,选中态重渲染后缩放不变;夹具补齐第二棵树的界面图(否则不进联合边界)
- 变异验证:selectNode 里加 setActiveImageId 只红那条新用例(1 failed / 36 passed);allBounds 接 slice(0,1) 只红联合适配用例的第一处断言(1 failed / 8 passed)
- 里程碑勾选第 5、6 条验收,剩余未覆盖条目收敛到 1 条(拖动进 undo/redo 与保存恢复)
2026-09-28 17:36:50 +08:00
kdletters e2964b5f31 补齐 UI 编辑器 root 无 resize 控制点的验收断言
- tests/uiEditorPreview.test.tsx 在同一条 handle 可见性用例里补 root 断言:选中 root 时不出现任何控制点,选中 child 时恰好 8 个
- 变异验证:去掉 handle 渲染条件里的 !isRoot && 后只有该断言变红(1 failed / 10 passed),改回后四套用例 73 passed
- 里程碑勾选第 3 条验收,剩余未覆盖条目从 4 条收敛到 3 条
2026-09-28 17:33:58 +08:00
kdletters 84e7aacf80 补齐 UI 编辑器三个独立开关的默认值与独立性验收
- tests/uiEditorPage.test.ts 新增「默认显示框线与原图、隐藏组件,且三个开关互相独立」:渲染真实页面后断言三个复选框初始值,并逐个切换确认互不影响
- 变异验证:把 view/ui-editor/index.tsx 的 showFrame 初值改为 false 后只有该用例变红,改回后四套用例 73 passed
- 里程碑勾选第 4 条验收;并把「预览选择不改 activeImageId」一条的执行方式改成走 hook 暴露的 activeImageId(左侧列表只有 CSS class 标记,无 aria)
2026-09-28 17:32:06 +08:00
kdletters 931250e99a 补齐 UI 编辑器多树排布验收项并列出其余五条缺口
- tests/uiEditorState.test.ts 新增「新树默认落在所有现有树右侧并与最小 top 对齐」:直接跑 createTree 入口,断言第一棵 [0,0]、第二棵按已有右边界加 UI_TREE_PADDING、把第二棵下移后第三棵仍按最小 top 对齐
- 变异验证:把 deriveTreeOffset 的 minY 改成取最后一棵树的 top 后只有该用例变红,改回后四套用例 72 passed
- 里程碑勾选第 1 条验收,并把其余 5 条各自缺什么断言逐条写清(root handle、三个开关默认值、activeImageId、首次联合 fit、拖动 undo/redo 与保存恢复)
2026-09-28 17:30:28 +08:00
kdletters e92d5d5f92 记录 External 场景路由受理 smoke 的本机环境阻塞
- 里程碑与实施计划写明:deploy/env/api-server.env 不存在、无监听中的 dev 端口,npm run check:api-server-env 缺 TIANTOKEN_BASE_URL / TIANTOKEN_API_KEY,该 smoke 在本机不具备执行条件
2026-09-28 17:28:15 +08:00
kdletters 69d798e484 补齐 External v1 场景路由的客户端请求构造用例并勾选该验收项
- 新增 background_stage_posts_the_dedicated_scene_route_and_its_ledger_matches:用规范图夹具驱动真实生成链路,断言背景阶段只发一次 scenes 路由 POST、正文是结构化场景意图(sceneContent/stylePreset=custom/customStyle/referenceImageSrcs,且没有 assetKind/prompt),成功后不留在途账本
- 变异验证:把场景分支的路由改回通用图片路由后该用例变红,改回后恢复绿
- External v1 场景路由里程碑勾选「客户端定向测试」一项,逐条记录账本、恢复与 reuse/regenerate 的实跑证据;剩余仅本地真实栈受理 smoke
2026-09-28 17:25:55 +08:00
kdletters cc01e304c0 External 场景路由里程碑:账本侧取证补全,客户端请求构造保持未勾选并写明原因
- 补记两条实跑通过的账本侧用例:retained_stage_recovery_accepts_the_same_reference_contract_as_submission 与 legacy_route_background_registration_still_counts_as_valid_base
- 写明客户端「背景阶段命中新路由且为结构化字段」缺用例的技术原因:场景分支是内联字面量,且 Scene 必须带规范图引用,单独立用例需要先补规范图上传夹具;不使用镜像断言凑验收
2026-09-28 17:07:33 +08:00
kdletters 6efe7334da 记录 AGC background_agent_runtime 家族的本机 Timeout 抖动与判据
- pitfalls 新增条目:宽过滤 background 一次匹配 138 条慢用例,本轮 47 passed / 91 failed;给出 A/B 判据与本轮实测(一条用例合并前后安静状态都 3/3 通过,两条在合并前的分支尖上同样失败)
- ExternalV1 场景路由里程碑与实施计划的本轮核对改为采信 external_generation_state 10 passed,并把「新路由结构化字段 / reuse-or-create 与 regenerate 端到端」保持未勾选
2026-09-28 17:00:21 +08:00
lhk229 2d22971477 简化策划agent工作流 (#522)
Project CI / AI game creator shell Rust crates (push) Successful in 1m25s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m52s
Project CI / Backend tests (push) Successful in 4m4s
Project CI / Frontend tests (push) Successful in 2m10s
Project CI / Native shell tests (push) Successful in 6m9s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m30s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m48s
Project CI / AI game creator shell web tests (push) Successful in 1m24s
Project CI / Repository checks (push) Successful in 1m51s
Reviewed-on: #522
2026-09-28 16:27:18 +08:00
kdletters b95fd9e5a4 共享记忆补记 AGC 事件驱动与维护态两条长期约定
- team-conventions 增加一条:正式状态变化走 Rust 事件 + 一次受控快照读取、不轮询,Direct 活动回合唯一事实源是 Direct 线程管理器
- team-conventions 增加一条:维护态由 Rust 统一分类并广播单一事件,渲染层只订阅、不解析 HTTP
2026-09-28 16:10:30 +08:00
kdletters 52a3a59a41 收口游戏分发阶段C发布资料AI生成计划的实现状态
- 状态改为 implemented-awaiting-runtime-acceptance,记录服务端建议路由、面板定价与封面生成、截图链路三处实现位置
- 记录本轮实测:Vitest 19 passed(发布服务 + 发布面板),api-server publish_metadata 3 passed
- 记录 generationInputs 补写点随渲染层传输下沉移到 Rust 的同源修复(2026-09-28)
2026-09-28 16:04:56 +08:00
kdletters c7df10b394 把渲染层下沉的现行口径同步回主规范与事件化里程碑
- 主规范新增「AGC 客户端现行分工:离线前端、事件驱动与维护态出口」一节,写明网络与凭据归 Rust、活动回合唯一事实源是 Direct 线程管理器、维护态由 Rust 分类并单一事件广播、失败文案只展示宿主脱敏摘要
- 事件化里程碑的范围与验收第 2 条改为按线程管理器的登记/进度内容变化/收口三处通知点表述,并补 2026-09-28 对齐说明
2026-09-28 15:59:11 +08:00
kdletters f5424ce805 按合并后的真实状态收口六组计划的状态与取证
- 游戏分发阶段A领域合同:状态改为 implemented-awaiting-runtime-acceptance,记录 module-game-distribution 13 passed
- 游戏分发目录详情与在线游玩:里程碑状态与阶段 A 行按 A/B/C 已落地的事实更新,阶段门禁关系保持不变
- 项目客户端占用锁收敛:里程碑与实施计划状态收口,记录 write_lock 21 passed 与 gui_ 31 passed
- UI编辑器多树预览与独立显示开关:里程碑与实施计划状态收口,记录 4 个套件 59 passed
- AGC模型目录上游同步:里程碑与实施计划状态收口,记录上游提交 4234a21ee 与本地真实上游 smoke 出处
- ExternalV1游戏场景生成路由:里程碑与实施计划状态收口,勾选已由 scene 套件 18 passed 覆盖的验收项
2026-09-28 15:53:37 +08:00
kdletters 00537fe742 补记渲染层下沉与 master 对齐里程碑的本轮门禁结果
- 里程碑取证改为逐条列出本轮实际通过的门禁命令与结果,不再指向合并提交说明
- 记录 check:native-shells:agc-rust-crates 在本机 spawnSync npm.cmd EINVAL 的环境限制与对应替代命令
2026-09-28 15:24:45 +08:00
kdletters 1e62d8317a 合并 origin/master 到 AGC 渲染层下沉分支并完成三处对齐
- 活动回合事实源统一到 Direct 线程管理器:删除 direct_runtime 的第二份快照,接单、进度内容变化与收口各广播一次活动回合变更事件
- 平台维护态判定移入 Rust 并在渲染层只订阅单一事件:新增 platform_maintenance 模块与各平台 facade 错误分支的分类入口
- 封面生成请求补 generationInputs.source,保持队列回填后仍能拿到平台素材 ID
- 渲染层按 master 5398a53e6 退役诊断详情入口:删除 agentRuntimeErrorDetail 与「查看详情」交互及其专属用例
- 冲突收口:nginx SPA 白名单、.gitignore、mobile 检查脚本、capabilities 描述取上游,两个已退役计划随上游删除,文档保留双方条目
- 新增并回写本里程碑取证、decision-log 与 pitfalls 的 2026-09-28 记录
2026-09-28 15:07:30 +08:00
kdletters 74b83aa1a8 新增 AGC 渲染层下沉与最新 master 对齐的里程碑与实施计划
- 新增【里程碑】AGC渲染层下沉与最新master对齐-2026-09-28.md,明确活动回合事实源统一、封面队列回填、维护态出口三项验收
- 新增【实施计划】AGC渲染层下沉与最新master对齐-2026-09-28.md,列出五步任务与证据要求
2026-09-28 14:28:16 +08:00
kdletters 2b06394bcc 计划收口与共享记忆更正
- 63 份计划补「逐条勾选依据 / 本轮复验」并统一为 implemented-awaiting-runtime-acceptance,未勾选从 85 条降到 43 条;删除 4 份已收口临时计划,结论回写权威文档。
- 新增待办:主站 SPA allowlist 与前端路由源不一致、高风险审批 Rank 的 PRD 骨架、引用输入区后续收口、计划收口剩余项索引。
- 更正共享记忆:渲染层 HTTP 能力退役、Windows 门禁限制与可跑性、Provider 配置 Debug 脱敏规则、游戏分发本地证据与多轮变异验证记录。
2026-09-28 14:16:11 +08:00
kdletters e1fe1837a2 后台模板上传弹窗表头层级修正与仓库卫生
- AdminAgcTemplatesPage 的上传弹窗把 TableHeader(thead)当列头使用,生成出 th > tr > thead 的非法层级;修正为 TableHeader > TableRow > TableHead,并补列头角色与层级回归。
- .gitignore 补 /server-rs/crates/*/server-rs/.data/:api-server 的相对 outbox 默认路径在嵌套 cwd 下会在仓库内生成内嵌数据目录,避免其被误提交。
2026-09-28 14:16:00 +08:00
kdletters 01394ed238 门禁加固与 Windows 可跑性
- 新增 scripts/check-generated-bindings.mjs 并接入 lint 与 ai-game-creator-shell:check:rust:crates:重跑 export_bindings 前后逐字节比对共享契约绑定。
- check:native-shells 的 AGC 边界改为负向门禁:渲染源码不得出现 fetch(/XHR/EventSource/sendBeacon/WebSocket/plugin-http,客户端 capability 不得授予 http:default。
- check-pingora-gateway-smoke 在 Windows 上找 pingora-gateway.exe,并修掉「API 并发保护」先关客户端连接再读响应的竞态。
- mobile-shell 三个 smoke 改成固定命令串启动 npm(绕开 npm.cmd EINVAL 与 DEP0190),desktop-shell 的 stage-release-binary 改用 fileURLToPath 修掉 F:\F:\… 路径拼接。
- vitest.config.ts 白名单补回现役根用例;三份 nginx 模板的 SPA allowlist 补回 /components 与 /design-system。
2026-09-28 14:15:50 +08:00
kdletters e7309ad71b server-rs 快照回收可测化与 Provider 配置脱敏
- project_snapshots 抽出 plan_project_snapshot_reclamation 纯函数并新增 3 条用例:只回收上一版登记过的对象、上一版清单读不到时一张都不删、单轮回收有硬上限。
- platform-llm / platform-oss / platform-wechat / platform-audio / platform-hyper3d / platform-image / platform-matting / platform-speech 的配置类型改为手写脱敏 Debug,只输出枚举、数值、有界标识与 <redacted> 占位。
2026-09-28 14:15:31 +08:00
kdletters d6c939fa31 AGC 原生侧新增平台 facade,退役渲染层 HTTP 能力
- 新增 account_api、auth_session、platform_asset_upload、game_distribution_publish、llm_catalog、workspace_preferences 与 error_report::submit:凭据、origin、HTTP、队列等待、幂等键与导入队列全部由 Rust 持有。
- 删除 capabilities/main.json 的 http:default 授权与主窗口的 tauri-plugin-http 注册,Cargo.toml / Cargo.lock / AGC package.json 与根 package-lock.json 同步移除该依赖。
- 修复 workspace_preferences 重复 #[test] 造成的分片门禁「同一用例被分到两片」误判,并同步该模块的会话存储与偏好读写用例。
2026-09-28 14:15:16 +08:00
kdletters 8701f43f75 AGC 渲染层网络与状态下沉 Rust,并修复画布交互与失败文案
- 删除渲染层传输层:services/clientApi.ts、clientHttp 的 fetchClientHttp 与超时封装整体退场,账户、认证、素材直传、错误上报与游戏分发发布改走 Rust typed command。
- 新增宿主封装:accountHost、editorAssetHost、platformSessionRetry、agentRuntimeErrorDetail 与 features/app-shell/workspacePreferences;渲染层不再读写 access token / refresh cookie,localStorage 只剩测试态旧键迁移 shim。
- 修复 DirectProject 失败文案 v2 映射与「查看详情」按需读取,画布标签面板高度夹紧、框选每帧重算、文档预览入口与场景标题栏 key、资源筛选面板样式。
- 补齐与调整回归:accountHost、agentRuntimeErrorDetail、clientAuthHost、clientHttp、platformSession、platformSessionRetry、resourceFilterPanelStyle、directThreadChatSubscription 等定向用例,并清理测试 harness 中无调用方的残留。
2026-09-28 14:15:02 +08:00
suzmii c22eb38962 按第五轮评审收尾 M3:跨平台用例、--no-bundle 与并发口径对齐
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m21s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m55s
Project CI / Frontend tests (pull_request) Failing after 43s
Project CI / Backend tests (pull_request) Successful in 3m32s
Project CI / Repository checks (pull_request) Successful in 1m52s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m23s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 7m26s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m24s
Project CI / Native shell tests (pull_request) Has been cancelled
- package_layout 的 source_candidates 用例改用 Path 构造期望值(Windows 上 path.join 产出反斜杠,硬编码正斜杠会让该用例在 Windows 必红)
- 运维文档与技术方案改为「--no-bundle 也执行 staging、只跳过总号发布」;M1 验收行里已删除的 AGC_SKIP_RESOURCE_STAGING 表述同步
- 技术方案 §4.3 第 8 条与风险表的并发口径改为「不做并发支持:失败可读、保留已生成 staging,需要并发时外部串行化」,与实现一致
- 评审结论(Windows 真机):touch build.rs 后 resources 90 个文件 path/size/mtime 零变化;第二次 cargo build 1.13s fresh;三分支产物齐备;幂等、内容变更触发重建、fail-closed 均通过
2026-09-28 12:41:11 +08:00
suzmii ceca4a7669 Merge branch 'fix/agc-rust-staging-idempotency' into feat/agc-bundled-resources-m3
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m24s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 53s
Project CI / Native shell tests (pull_request) Failing after 1m19s
Project CI / Frontend tests (pull_request) Failing after 57s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 5m15s
Project CI / Backend tests (pull_request) Successful in 3m50s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m28s
Project CI / Repository checks (pull_request) Successful in 1m55s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m50s
2026-09-28 12:19:31 +08:00
suzmii acf021de2a 按评估结论落地:门禁交叉校验、CLI 缺值校验、编辑器分支覆盖与文档
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m19s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m51s
Project CI / Native shell tests (pull_request) Failing after 1m10s
Project CI / Frontend tests (pull_request) Failing after 43s
Project CI / Backend tests (pull_request) Successful in 3m26s
Project CI / Repository checks (pull_request) Successful in 1m51s
Project CI / AI game creator shell web tests (pull_request) Failing after 1m29s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m33s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m34s
- 门禁新增交叉校验:plugin 必须指向真实插件目录、features 必须存在于 shell crate 的 [features]、所有声明路径必须是仓库内相对路径(拒绝绝对路径与 ..)
- 准备步骤 CLI:--target/--destination/--features 缺值直接失败(不再静默回退宿主目标),--features 空值也拒绝
- 用例:fixture 补齐 agc-unity-editor/agc-godot-editor/agc-cocos-editor,新增「编辑器分支产物按 prepared 与 library staging 交付」用例;godot_bundle 补 validate 负例单测
- 运维文档:dev 构建下客户端读 target/debug/plugins/**,改资源要重跑准备步骤
- 未做(已按评估结论记录):P2-2 运行时常量锁定需要先把 nativePayloads 也 emit 进 Rust 声明,留作后续
- 验证:准备步骤 14/14、发布入口 39/39、dev 入口 12/12、godot_bundle 19 通过、声明门禁一致、cargo check 通过
2026-09-28 11:36:34 +08:00
suzmii 3fba76fd6e 按审计结论收口 M3:CI 接线、并发口径、feature 单一推导与文档对齐
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m22s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m52s
Project CI / Native shell tests (pull_request) Failing after 1m12s
Project CI / Frontend tests (pull_request) Failing after 44s
Project CI / Backend tests (pull_request) Successful in 3m28s
Project CI / Repository checks (pull_request) Successful in 1m50s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m20s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 7m31s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m14s
- CI:把 bundled-resources:test(13 条,跨平台、注入假执行器)接进 ai-game-creator-shell:check:web,Linux CI 即可覆盖准备步骤逻辑
- 并发:按「无实际场景不做并发支持」定论——不加锁,但替换失败改为可读错误并保留已生成的 staging;技术方案 §4.3 与风险表同步改写
- feature:新增 cargo-features.resolveEditorFeatures 作为唯一推导入口(env > 命令行 --features > 平台默认),dev 与发布入口的 cargo 参数、随包资源准备步骤共用同一集合;--no-bundle 也执行 staging(app 构建本身需要随包资源),只跳过总号发布
- 文档:pitfalls 的校验收口限定到 source 派生内容;里程碑验收清单按实况修正(命令 --、prepared 只查存在性、Windows 侧已复跑)
- 验证:准备步骤 13/13、发布入口 39/39、dev 入口 12/12、声明门禁一致
2026-09-28 10:54:29 +08:00
suzmii 3b4f9b2e10 按系统性审计修复 M3:指纹反判断、守卫死代码、fail-open 与卫生项
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m23s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m55s
Project CI / Native shell tests (pull_request) Failing after 1m26s
Project CI / Frontend tests (pull_request) Successful in 1m36s
Project CI / Backend tests (pull_request) Successful in 3m37s
Project CI / AI game creator shell web tests (pull_request) Failing after 34s
Project CI / Repository checks (pull_request) Successful in 1m49s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 7m37s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m19s
- P1-1:pluginSourceFingerprint 的判断取反(prepared 内容与交付态真正进入指纹);pluginTreeMatches 的「当前目标/feature 下不该存在却存在 → 重建」从死代码修活
- P1-7:package_layout 的 `sha256_file(x).ok() != ...` 改为 map_err 传播,两侧读失败不再被判为「相等」
- P3-2:copyNativePayloads 的 'plugins' 字面量改由声明 sourceDirectory 派生
- P3-5:payload 交付内容一致时跳过写入(命中缓存保持零写入、时间戳稳定)
- P3-7:门禁提示里的脚本名改为 agc:bundled-resources:sync
- P3-8:删除已无写入方的 resources/cocos-editor-bridge 占位目录
- P2-4:root 包装脚本补结尾 `--`,文档里的 prepare 命令可直接复制执行
- 验证:工具用例全绿、声明门禁通过
2026-09-28 10:20:09 +08:00
suzmii 547fb0dbce 按第三轮复测修复 M3:dry-run 零写入、所有权先行、指纹与门禁补口
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m23s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m1s
Project CI / Backend tests (pull_request) Successful in 3m46s
Project CI / Frontend tests (pull_request) Successful in 1m53s
Project CI / Native shell tests (pull_request) Successful in 5m46s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m51s
Project CI / Repository checks (pull_request) Successful in 1m57s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m26s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m39s
- P2:preparePlugins 重排——dry-run 只做只读判断即返回,预缓存交付不再排在 dry-run 之前;所有权断言提到任何写入之前
- P3:pluginSourceFingerprint 放开 origin=source 过滤(prepared 内容哈希分支可达),库文件与 payload 交付态纳入指纹,pluginTreeMatches 增加「不该存在却存在 → 需要重建」判定
- P3:门禁交叉校验 nativePayloads[].destinationSubdirectory 必须是同插件 origin=prepared 的子目录之一
- P2:里程碑验收清单注明 Cocos payload 只在 injection 构建交付并给出对应命令;dry-run 用例补 injection feature 覆盖
- 夹具补齐 agc-cocos-editor 插件(所有权检查要求目标插件真实存在)
- 验证:工具用例 13/13、声明门禁通过
- 已知缺口:injection 构建后切回默认 feature,随包目录里陈旧 payload 的清理尚未生效(已记在 PR)
2026-09-28 01:03:40 +08:00
suzmii 06ffa7b6ac 按复测修复 M3:payload 门槛与交付、缓存键、条件写反与门禁覆盖
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m41s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m8s
Project CI / Backend tests (pull_request) Successful in 3m50s
Project CI / Frontend tests (pull_request) Successful in 1m58s
Project CI / Native shell tests (pull_request) Successful in 5m55s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m12s
Project CI / Repository checks (pull_request) Successful in 1m51s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m24s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m51s
- P0:native/payload 补 features=["cocos-editor-injection"](与 nativePayloads 同门槛,保持迁移前语义),Windows 默认 feature 下不再无条件要求该目录
- P0:copyNativePayloads 真正改用 destinationFileName(此前声明了却仍写 sourceFileName,落盘成 cocos_editor_bridge.dll 而运行时找 cocos-editor-bridge.dll)
- P1:payload 交付移到插件缓存短路之前(先默认构建、之后开 injection 不再整条跳过),并把交付物(含缺失态)纳入 pluginSourceFingerprint,删掉它必须导致重建
- P2:修正 pluginTreeMatches 里被写反的条件(原为 || 短路,导致内容比对整体失效)
- P2:门禁新增 validateExtendedDeclarations,覆盖 prepareSteps/nativePayloads 的字段与引用完整性(含 destinationFileName)
- P2:删除 godot_bundle 的 stage/source_files 及其单测(构建脚本不再有调用方),清掉遗留的 PathBuf 导入
- P3:CLI 支持 --features=a,b 形式
- 验证:工具用例 13/13;声明门禁通过;cargo fmt/cargo check 通过
2026-09-28 00:50:48 +08:00
suzmii e4634928c6 按评审修复 M3:校验按插件收敛、Cocos 链路与 Godot 指纹、门禁与文档收口
Project CI / AI game creator shell Rust crates (pull_request) Failing after 1m26s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m7s
Project CI / Backend tests (pull_request) Successful in 3m46s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 6m9s
Project CI / Frontend tests (pull_request) Successful in 1m52s
Project CI / Native shell tests (pull_request) Successful in 6m4s
Project CI / Repository checks (pull_request) Successful in 2m18s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m40s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 9m42s
- P0:validate_prepared_payloads 遍历所有插件 × 所有子目录 → 与 libraryStaging 分支对称地按插件收敛(声明新增 subdirectories[].plugin,Rust 加 subdirectory_applies_to_plugin,工具复制与指纹同样按插件收敛)
- P1 Cocos:cargo 准备步骤改用该 crate 自身 manifest 并把 --target-dir 指回 src-tauri/target(原 -p + --features 被 cargo 以「cannot specify features for packages outside of workspace」拒绝);nativePayloads 拆出 sourceFileName(下划线)与 destinationFileName(连字符);native/payload 改为 origin=prepared 并绑定 cocos-bridge-build
- P1 Godot:补 fingerprint(roots ["."],排除 bin/.build/native-build,戳文件 bin/win-x64/.agc-source.sha256),不再每次真跑 build.ps1
- P2:pluginSourceFingerprint 对 prepared 产物改用内容哈希(避免无条件覆盖 mtime 导致每次全量重建)、库文件纳入指纹;pluginTreeMatches 对 prepared 只查存在性(内容由指纹覆盖,顺带缓解 90MB exe 的哈希开销);GODOT_BUNDLE_FILES 缺清单即失败,不再静默退化为空数组;CLI 传 log 并新增 --features;用例正则兼容 Windows 路径分隔符;主规范 §4.8 残留的 AGC_SKIP_RESOURCE_STAGING 已清
- 安全:撤出误提交进 .env.local 的真实 token(还原模板并 force-push 分支尖端)
- 验证:npm run agc:bundled-resources:check 通过;cargo fmt + cargo check --no-default-features 通过(含新 plugin 字段与按插件收敛的校验);工具用例 12/13(余 1 条为夹具断言待修)
2026-09-28 00:23:26 +08:00
suzmii faa510e999 AGC 编辑器分支产物归位:构建脚本彻底退出写入
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m29s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m1s
Project CI / Backend tests (pull_request) Successful in 3m52s
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
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
- 声明扩展:subdirectories 新增 origin=prepared;libraryStaging 增加 prepare/files;新增 nativePayloads 与 plugins.prepareSteps(程序类型、工作目录、指纹、必需产物)
- Godot 随包文件清单改由声明提供,godot_bundle::BUNDLE_FILES 从生成的编译期常量取值,不再各写一份
- 准备步骤按声明运行 powershell.exe -File build.ps1(Unity/Godot,Godot 移除 PSModulePath)与 cargo build -p cocos-editor-bridge --target … --features windows-injection,内容指纹命中且必需产物齐全时零写入,命令执行器可注入以便在 macOS 上覆盖调度与失败关闭
- build.rs 删除 prepare_unity_editor_helper、prepare_godot_editor_extension、stage_cocos_editor_payload、stage_build_generated_plugin_payloads 及辅助函数(415 → 193 行),只留只读校验,并新增已准备产物存在性与 Godot 随包库深度校验;AGC_SKIP_RESOURCE_STAGING 开关随写入分支删除
- 删除两份只含 staging 条目的 .taurignore;发布入口传 profile=release 以定位 Cocos 产物
- 文档:技术方案 §4.9/§8、M3 里程碑(含 Windows 验收清单)、运维文档、决策日志与排障经验同步
- 验证:准备步骤 13 条用例通过(三类准备步骤调度、指纹跳过、缺产物失败关闭、幂等);npm run agc:bundled-resources:check 通过;cargo check --no-default-features 通过且第二次 0.62 秒 fresh
- 未验证:Windows 真机(powershell/cargo 路径、产物归位、包内容一致性与客户端加载),按 M3 里程碑验收清单在 Windows 上确认
2026-09-28 00:17:49 +08:00
k88936 132f96581a DirectProject 命令入队化:放行接线、队列移除命令与词表切换
- 命令改名 enqueue_direct_codex_turn:跑完入队检查后只入队,返回结构化的入队失败载荷
- direct_turn_accept.rs 改为 direct_turn_dispatch.rs:放行占用对象改为接管 Thread Manager 认领好的那一轮
- 新增 kick_direct_queue_dispatch:入队、占用释放与中止路径共用同一个幂等放行点
- 放行之后取调用身份、落盘用户条目、下发条目、跑整轮,失败一律收口成回合失败
- 新增 remove_direct_project_pending_turn 命令,取消一条还没放行的待发消息
- 队列条目补 analytics_attempt_id:埋点身份跟着入队走,放行不重算
- DirectTurnRejection 改名 DirectTurnEnqueueFailure,新增 QueueFull 变体
- 退役 accept_turn / accept_direct_thread_turn,测试改用 accept_for_test 建占用
- 前端与生成绑定同步改名,DirectTurnRejection.ts 换成 DirectTurnEnqueueFailure.ts
2026-09-24 21:36:22 +08:00
k88936 b43a663fe2 修复移动端顶栏折行与头像裁剪弹窗被底部主菜单遮挡
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m5s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m26s
Project CI / Backend tests (pull_request) Successful in 4m5s
Project CI / Frontend tests (pull_request) Successful in 2m9s
Project CI / Native shell tests (pull_request) Successful in 6m3s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m46s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m28s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m42s
Project CI / Repository checks (pull_request) Failing after 2m3s
- 主站顶栏在所有断点保持单行:去掉顶栏与动作区的 flex-wrap,品牌和下载、泥点、账户入口不再折成两行
- 窄屏(<640px)下载入口收起为 44×44 图标按钮,保留 aria-label/title,≥640px 恢复「下载客户端」完整文案
- 窄屏(<480px)顶栏品牌只保留 IP 标识,让出空间给下载、泥点与账户入口,并收紧窄屏动作区间距
- 头像裁剪弹窗去掉 portal={false},改由 UnifiedModal 默认 portal 渲染到 document.body
- 个人中心两级弹窗壳层同步去掉 portal={false},昵称等个人中心弹窗一并回到页面级层级
- 弹窗不再受 .platform-desktop-layout 的 z-index:1 stacking context 限制,层级高于固定底部主菜单(z-index:60)
- 共享记忆补记单行顶栏口径与「内联弹窗被固定底栏压住」的排障经验
2026-09-24 21:22:15 +08:00
k88936 053e0bd932 Thread Manager:待发消息队列的入队 / 取消 / 放行认领
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m12s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m31s
Project CI / Backend tests (pull_request) Successful in 4m1s
Project CI / Frontend tests (pull_request) Successful in 2m5s
Project CI / Native shell tests (pull_request) Successful in 6m7s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 10m0s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 10m3s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m52s
Project CI / Repository checks (pull_request) Successful in 2m17s
- `StoredEvent` 增加非序列化的 `pending` 产物字段:它的有无就是队列成员身份,队列的先后就是事件先后,不另建队列表
- 新增 `enqueue_pending_turn`:按 `clientTurnId` 幂等(判重范围「在队 ∪ 正在跑的那一轮」),容量用 `queue_has_room` 挡在队条目
- 新增 `remove_pending_turn`:typed 结果 `Removed | AlreadyDispatched | NotFound`,在临界区里取走产物并追加 `queue.removed{cancelled}`
- 新增 `claim_pending_turn`:同一临界区取队首 → 登记占用 → 追加 `turn.started` 与 `queue.removed{dispatched}`,已有未收口回合或队列为空时返回 `None`
- `mark_queue_events_cleanable` 跳过仍挂着产物的条目,保证在队条目永远不会被回收
- 新增薄包装 `enqueue_direct_pending_turn` / `remove_direct_pending_turn` / `claim_direct_pending_turn`,并补 5 条单测覆盖 bootstrap 可见、幂等、容量、放行原子性与三种取消结果
2026-09-24 21:11:15 +08:00
k88936 faf85837bd 运行态事件:待发消息队列的入队/移除事件与队列条目规则
- 新增 `DirectThreadEvent::QueueEnqueued`(`queue.enqueued`,带 canonical 用户条目与可选 `creationType`,不带 prompt)与 `QueueRemoved`(`queue.removed`,`reason` 为 typed 枚举 `cancelled | dispatched`)
- 新增 typed 枚举 `DirectQueueRemovalReason` 与 `DirectQueueRemovalOutcome`,并重跑 ts-rs 绑定
- 新增 `agent/direct_thread_queue.rs`:`PendingDirectTurn`(入队时冻结 canonical 形状与 prompt)、上限 `MAX_PENDING_DIRECT_TURNS = 5`、`EnqueueOutcome` / `EnqueueRejection`
- Thread Manager 的 `observe_event` 认队列事件:在队期间的 `queue.enqueued` 不可回收,`queue.removed` 把它转成可回收,新订阅者的 bootstrap 因此天然看得见当前队列
- `DirectCodexUserItem` 及其子类型补 `PartialEq`,`DirectThreadEvent` 不再需要 `Eq`
2026-09-24 20:58:08 +08:00
k88936 1e7ea51368 文档:DirectProject 命令入队化与待发消息队列归宿主设计定稿
- 新增 ADR:命令=入队、放行归 Thread Manager、待发消息队列作为运行态事件归宿主
- 新增实施计划:五步落地顺序、标识符映射表、每步不变式与验收证据
- CONTEXT.md:接单/拒单词条替换为入队/入队失败/放行,新增待发消息队列与待发消息词条
- docs/README.md 补两条索引;decision-log.md 追加同日决策记录
2026-09-24 20:46:53 +08:00