suzmii
|
888ea76cb2
|
Merge origin/master (b1c89fbba) into chore/rust-compile-warnings:按「让路 master + 最小集恢复」收口跨文件契约冲突
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 crates (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 web tests (pull_request) Has been cancelled
解冲突口径(本次同步 master 16 个提交):
- `agent/generation/canvas_generation.rs`、`command_exec.rs` 两个冲突文件不再整文件取一边,改为按
hunk 三分法:master 的功能 hunk 全量移植;我们的清理只在 master 调用方不依赖时才保留。
未恢复整块模块 / 整文件,未新增任何 `#[allow]` / `#[expect]`。
- 成对回退我们的「摘掉 brief 传参空转」清理:master #628 等新代码仍按带 briefs 的契约调用生成链,
故 cg 的 8 处签名与 6 个调用方(direct_runtime / direct_tool_bridge / commands / commands/desktop /
asset_generation_tasks)回到 master 形状,并按最小集恢复 `main.rs` 的 `AgentRoleBrief` /
`AgentGroupBrief`(未恢复其它已删模块)。
- master #628 已收敛切片用途判定:客户端不再暴露/发送 `sliceCount`,本次跟 master 走(
`PlatformArtAssetGenerationOptions` 不再有该字段),只保留结果侧 256 上限门。
- command_exec 的 `project_command_actual_target` 采用 master 的 `Vec<OsString>` 字节精确契约,
同时保留我们「调用点全在 Linux 编译面」的 `#[cfg(target_os = "linux")]` 收窄(与 master 调用方不冲突)。
- 脚本缺陷修复:`scripts/check-rust-warnings.mjs` 编译失败不再可能假通过(cargo 退出码非 0 一律 exit 1,
并把 stderr 尾部提到前面打印;去掉 `warnings.length === 0` 条件)。
- 取 master 版本带来的回流告警 2 条(`main.rs` 两个 brief 结构体的字段未被读)已登记进
`scripts/warning-baseline.json`(agc-windows 16 条 / agc-linux 71 条,server-rs 0 条);
按既定口径「不修上游告警」,只做记账。
|
2026-10-07 21:01:34 +08:00 |
|
kdletters
|
b1c89fbbae
|
默认模型目录补上 claude-opus-5-5 的 Claude Code CLI 绑定
Project CI / AI game creator shell Rust crates (push) Successful in 5m5s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m28s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 7m34s
Project CI / Frontend tests (push) Successful in 3m26s
Project CI / Backend tests (push) Successful in 8m3s
Project CI / AI game creator shell web tests (push) Failing after 3m38s
Project CI / Repository checks (push) Successful in 7m30s
Project CI / Native shell tests (push) Successful in 9m17s
module-runtime:from_upstream_models 为上游模型 claude-opus-5-5 额外生成一条 agentMode=cc + protocol=anthropic 的目录项,保留原 Codex 条目与默认项,超出目录项数上限时不再追加
module-runtime:新增 claude_code_default_binding 与单测,覆盖 cc 条目生成、协议配对与非该模型不额外生成
docs/project-memory/shared-memory/pitfalls:记录本地目录全是 codex 的现象、默认绑定口径,以及本地 8082 跑的是另一个 worktree(harness 分支)这个环境陷阱
|
2026-10-07 20:24:26 +08:00 |
|
kdletters
|
47655d880c
|
cc 工具未就绪不再让模型自述
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 7m41s
Project CI / AI game creator shell Rust crates (push) Successful in 4m42s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 6m40s
Project CI / Frontend tests (push) Successful in 2m29s
Project CI / Backend tests (push) Successful in 7m18s
Project CI / AI game creator shell web tests (push) Failing after 3m51s
Project CI / Repository checks (push) Successful in 7m43s
Project CI / Native shell tests (push) Successful in 10m4s
claude_code_cli:解析 SDK system/init 的工具清单与 agc MCP 状态并写入 agent.direct_codex.claude_init 日志,让"工具到底有没有下发"变成可查证据
claude_code_cli:init 明确 failed/missing/connected-但无工具且本轮没请求过工具时,判成可重放的 McpUnavailable 并按既有上限自动重试,不再把"我没有任何可调用的工具"这种回复当成功
claude_code_cli:pending/connecting/看不到状态只留证据不判死,真调用过工具的一轮不翻案
claude_code_cli:新增单测覆盖 connected / failed / missing / connected 无工具 / pending / 无 mcp_servers 六种 init 事实,并补 McpUnavailable 的重试策略断言
docs/project-memory/shared-memory/pitfalls:记录同版本"能用工具"与"自称没工具"并存的现场、受控探针结论与现行口径
|
2026-10-07 19:40:09 +08:00 |
|
lhk229
|
27e385785f
|
修正美术包 API 指南、AGC 调用与切片用途判定 (#628)
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 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
AGC 美术包此前把内容、风格和排布要求放在未被提示词消费的元数据中,并要求恰好四张切片、按返回顺序分配用途。本 PR 完成以下三项修正:
- [x] API 文档:修正整个 `generationInputs` 的定位、保存与读取方式、接口保留/重建规则及已知消费者。任意元数据不会自动进入提示词,服务端行为和校验约束保持不变。
- [x] AGC 请求:美术包将原 brief 和内容、风格、排布要求写入实际消费的 `iconDescriptions`;普通图标入口继续原文单项透传。参考图、比例和尺寸使用正式参数,同步工具说明与随包 skill。
- [x] 客户端切片处理:美术包和直接生图工具不再暴露或发送 `sliceCount`,取消固定四片和按序赋义;按实际产物保存、登记和返回。切片目录按源图集隔离,文件名使用中性序号,普通清单指向真实总图。
四类素材需求只表达内容覆盖,不能证明四个连通区域或固定语义顺序。两个工具返回总图、完整切片路径及资源身份,预览逐项标注路径,未内嵌的图片列出路径供 Agent 查看。Agent 看图识别实体、状态和用途后再接入或处理;有效总图零切片时仍交付并保留告警。
本轮切片改造仅限客户端:服务端 API、请求侧 sliceCount 契约、切分算法和计费行为不变。不新增为数量不符找回、补切或凑数的工作流。保留文件完整性、平台身份、资源预算、事务与重生成恢复;兼容历史四用途产物和旧数量参数账本,旧请求正文、幂等键及 operation 不改写,候选身份不唯一时要求对账。完成结果快照补存切分声明,避免重放丢失响应字段。
验证:
- API 文档阶段:MCP 25 项、External editor API 30 项测试及 OpenAPI 约束等价检查通过。
- 本轮:317 项定向 Rust 测试通过(生成 118、Direct 运行时 93、工具桥 44、MCP 32、账本 6、提示词 24)。覆盖新请求完全省略字段、0/2/4/6 片、目录隔离、完整资源投影、动态事务回滚、旧请求和旧输出槽恢复;已受理任务恢复不新增生成 POST。
- cargo check、rustfmt、skill-pack:check、文档索引、变更文件编码及 git diff --check 通过。
- 未调用真实付费 Provider,未做客户端视觉试玩;PR 保持草稿,等待视觉及产品验收。
Closes #525
Reviewed-on: #628
Co-authored-by: Linghong <ink29535@proton.me>
Co-committed-by: Linghong <ink29535@proton.me>
|
2026-10-07 19:35:20 +08:00 |
|
suzmii
|
b846f04dab
|
chore: 加 Rust 告警的 pre-push + CI 基线感知检查(单一脚本 + 基线)
目的:不再用 Werror,改为「推送前 + CI」的显式检查,并且只拦**基线之外的新增**告警,
这样上游新代码的存量不会挡住任何人,本地开发构建也不会因为告警变红。
单一真源(本地与 CI 调同一份实现):
- 新增 `scripts/check-rust-warnings.mjs` + `npm run check:rust-warnings`:
用 `cargo check --message-format=json` 收集告警,键 = `路径|符号|lint`(**不含行号**,抗上游行号漂移),
与 `scripts/warning-baseline.json` 比对:新增 → 退出码 1 并逐条打印;存量减少 → 只提示可更新;
更新用 `--profile=<name> --update-baseline`。
- 新增 `scripts/pre-push-rust-warnings.mjs`:读 pre-push 的 ref 行,**只在本次推送触碰
`*.rs`/`Cargo.toml`/`Cargo.lock`** 时才跑(无关推送不受影响);Windows 跑 `agc-windows`+`server-rs`,
Linux/macOS 只跑 `server-rs`。
- `.husky/pre-push`:把 ref 行落一份临时文件供两段检查共用,然后调用上面的脚本(原有的
`check:pre-push-master` 保持不变)。
- `.gitea/workflows/project-ci.yml`:新增 `rust-warning-check` job(`runs-on: genarrative-ci`,Linux),
跑 `--profile=server-rs --profile=agc-linux`,复用 Rust lane 的隔离编译缓存,只 `cargo check` 不 build。
- `scripts/warning-baseline.json`:`agc-windows` 14 条(上游 `b04aceb57` 等引入,逐条见
`local://commit-1a86675f4-inventory.md`);`agc-linux` 433 条(从 CI lane 日志抽取去重,**刻意取超集**,
含测试实例产物,首轮 CI 的多余项只显示为「存量减少」不判失败);`server-rs` 0 条。
- 文档:dev 运维「Rust 编译告警门禁」改写为现役口径(目的/命令/基线更新/覆盖分工与缺口/局限),
旧 Werror 段落标注为历史;development-workflow 的门禁句同步改写。
覆盖分工:CI 覆盖 `server-rs` + AGC 壳 **Linux** 档;AGC 壳 **Windows 生产口径**(GTK/ring 无法在
Linux 交叉编译)**只由本地 pre-push 覆盖**。局限:`--no-verify` 可绕过;本机 target 目录污染要先
`cargo clean -p`;CI 不跑 clippy;基线只保证「不新增」。
|
2026-10-07 19:22:29 +08:00 |
|
k88936
|
9cd290362c
|
Merge pull request 'fix/#663回归问题' (#665) from feat/support-more-node into master
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 6m28s
Project CI / AI game creator shell Rust crates (push) Successful in 4m11s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 7m51s
Project CI / Frontend tests (push) Successful in 3m14s
Project CI / Backend tests (push) Successful in 7m50s
Project CI / AI game creator shell web tests (push) Failing after 4m22s
Project CI / Repository checks (push) Successful in 7m51s
Project CI / Native shell tests (push) Successful in 10m9s
Reviewed-on: #665
|
2026-10-07 17:54:36 +08:00 |
|
lhk229
|
d7ddf5fbc1
|
修复 CI 领取冲突导致网关永久锁定
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 crates (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 web tests (pull_request) Has been cancelled
识别 Gitea 已回滚的任务分配冲突,允许 runner 正常重试。
保留未知响应与未完成领取的保护,增加脱敏原因日志。
补充冲突重试及错误边界测试,同步部署文档与共享记忆。
|
2026-10-07 09:20:04 +00:00 |
|
suzmii
|
47b5a17f54
|
合并 origin/master 到 chore/rust-compile-warnings(第二次同步):按 M/D/G 分桶解冲突
origin/master = e6933762d(落后 106 提交);合并前本分支 HEAD = 1612ee944。
冲突只有 5 处,codex 区域 0 冲突。
M 桶(master 改过的文件 → 取 master 版本,不把我们的删除加回去):
- agent/codex_app_server/**(mod.rs、model_catalog.rs、model_catalog/auth_handoff.rs、real_tests.rs)、
agent/codex_cli.rs、agent/codex_provider_proxy.rs、build_support/codex_bundle.rs 均与新 master 逐字节相同。
其中 real_tests.rs / codex_bundle.rs / direct_project_identity.rs 一并取 master 版本,清掉了本分支先前
在这几个文件里留下的多余 diff(口径:codex 区域一行不删不改)。
- 唯一保留的 codex 侧差异是 codex_app_server/mod.rs 的 1 行:resolve_direct_codex_project_authority
的 `pub(super)` → `pub(in crate::agent)`。挂载到 codex_provider 后 `pub(super)` 对兄弟模块
direct_tools_mcp.rs 不可见(E0603),这是收敛必需的适配,不是清理残留。
D 桶(master 未动过、我们删的死码 → 保留删除):patchset.rs、git_inspect.rs、
process_session/{io,lifecycle,persistence,recovery}.rs、generation/pass_artifacts.rs、
agent/runtime_models.rs、debug.rs(+debug/debug_drafts.rs)、process_session/tests/owner_fixture_cleanup.rs 等。
⚠ 复核发现 D 清单里 3 个文件本轮被 master 改过(`git log a8ae81720..origin/master -- <path>` 非 0),逐条判定:
- repository_context.rs(ad0877219:should_ignore_directory 的 "exports" → ".export"):该函数所在的
仓库扫描实现已在更早的退役批次(6d5436541)判为不可达并删除,全仓已无该符号 → 改动无处生效,保留删除。
- generation/pass_artifacts.rs(b04aceb57:黑板字符串去掉「发布包装:exports/README.md」):内容已并入
project/memory.rs(fbea59251),全仓已无该字符串 → 无需承接,保留删除。
- generation/draft_writer.rs(b04aceb57 −16:删掉 exports/README.md 写入):属 legacy draft 生成链,
已在 22540a874 整体退役;全仓 grep 0 引用,恢复只会留下未挂载的孤立文件 → 保留删除。
G 桶(双方都改、我们那侧不改变行为 → 以 master 语义为准):
- agent/generation/trace.rs:唯一冲突块里 master 只把 "exports/README.md" 从产物清单里删掉,而该函数
(append_local_artifact_write_step)已由我们在退役批次里整段删除 → 保留我们的删除。
- useGameDistributionPublishForm.ts:master 本轮删除该文件(b04aceb57),我们侧只有上一轮同步带来的错误
正文改动 → 取 master 语义(删除)。
其余文件由 git 自动合并。本提交不含新写的功能改动:收敛形态与残留清理见后续提交。
|
2026-10-07 16:58:52 +08:00 |
|
kdletters
|
e6933762d2
|
cc 回合静默超时改为宿主自动重试
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 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
claude_code_cli:一次用户回合最多尝试 3 次,只有"静默超时 + 本轮没请求过任何工具"才自动重放,硬上限与已请求工具的超时仍交回用户
claude_code_cli:抽出 claude_direct_turn_once / ClaudeDirectTurnFailure / claude_direct_failure_action,重试策略变成可单测的纯函数
claude_code_cli:每次重试前落一条 role=system 过程行(正在自动重试(第 N/M 次)),停下时也说明原因,避免"没有重试"又被读成静默兜底
claude_code_cli:失败详情尾部的重试次数标记由分类器还原成结构化 attempts 并摘除,用户可见的"已尝试 N 次"与实际尝试次数一致
claude_code_cli:新增三条单测覆盖重试策略矩阵、静默超时/工具已请求的判定、attempts 结构化与标记不外泄
docs/project-memory/shared-memory/pitfalls:记录现象、CLI 自身不重试的真实二进制证据、现行重试口径与验证方式
|
2026-10-07 15:48:07 +08:00 |
|
k88936
|
23fa91895d
|
Merge remote-tracking branch 'origin/master' into feat/adapt-taonier-skill
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 crates (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 web tests (pull_request) Has been cancelled
|
2026-10-07 15:34:04 +08:00 |
|
kdletters
|
692de8c806
|
修复 cc 会话重进项目后丢失历史对话
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 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
claude_code_cli:新增 claude_code_project_dir_name / newest_claude_code_session_in / latest_claude_code_session_id_at,按 Claude Code 的目录派生规则从隔离 home 取本项目最新的会话轨迹
claude_code_cli:新增 resolve_claude_direct_resume,恢复顺序改为「进程内会话表 → 磁盘最新轨迹」,并在 agent.direct_codex.claude_resume 记录本回合恢复来源(memory/disk/none)
claude_code_cli:新增两条回归测试,覆盖目录派生与最新轨迹选取、以及内存优先的恢复顺序
docs/project-memory/shared-memory/pitfalls:记录该问题的现场证据、现行口径与真实环境验证方式
|
2026-10-07 15:22:45 +08:00 |
|
k88936
|
809cea5707
|
让 .nvmrc / .node-version 只改变搜索顺序而不阻塞
- resolve_pinned_managed_runtime 命中已安装版本时优先采用;NoMatch 不再返回 node-version-pinned-not-installed,与 Unsupported 一样按未 pin 回退
- fnm / nvm 共用同一条宽松路径;用例覆盖 fnm .nvmrc、fnm .node-version 与 nvm .nvmrc 的命中优先与未安装回退
- PinSelection 补注释说明 NoMatch / Unsupported 都只影响搜索顺序
- 同步 Runtime V1.1、实施计划、decision-log、pitfalls 与里程碑口径,去掉“未安装失败关闭”的旧约定
|
2026-10-07 14:01:43 +08:00 |
|
suzmii
|
ef56bc0174
|
docs: 登记 codex_provider 的 #[allow(dead_code)] 限定例外
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 crates (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 web tests (pull_request) Has been cancelled
仓库原有口径明文禁止新增 `#[allow(dead_code)]`(开发运维文档「Rust 编译告警门禁」、
development-workflow「验证路由」)。本次按用户决策登记**限定例外**,两处同步,避免文档与代码自相矛盾。
- 作用域:AGC 壳 `agent/codex_provider`(`app_server` = `agent/codex_app_server/**`,含凭据、模型目录与
OAuth 交接;`cli` = `agent/codex_cli.rs`,含 CLI 请求路径)。其它 crate、其它目录、其它 lint 与 CI 不受影响。
- 理由:该子树在 AGC 交付口径下休眠(生产恒走平台会话 / DirectProject 路由,原生 app-server 与内置 CLI
请求入口在 Windows 生产构建里没有调用方),而上游 master 正在活跃编辑这些文件,删除会与其在飞工作反复冲突。
- 失效边界:该子树内今后新增的 `dead_code` 不再被任何机器检查发现;`unused_imports` / `unused_variables`
等其它 lint 仍必须真修(已实测:allow(dead_code) 压不住未使用的 `use`)。
- 退出条件:该子树被重新启用(恢复个人 Codex OAuth 登录态或原生 app-server 路径)或确定整体退役删除时,
必须一并移除该 `#![allow(dead_code)]` 并删除登记条。
- 同时修订原「不得模块级 `#![allow]`」一句,指向唯一登记例外。
|
2026-10-07 14:00:36 +08:00 |
|
suzmii
|
3e13a6e407
|
合并 origin/master 到 chore/rust-compile-warnings:按 M/D/G 分桶解冲突
origin/master = 441be8d62(落后 143 提交);合并前本分支 HEAD = aeebbee28。
冲突 11 处,按「master 侧是否活跃」分三桶处理。
M 桶(master 改过该文件 → 取 master 版本,不把我们的删除加回去):
- agent/codex_app_server/mod.rs(master +348/-108)
- agent/codex_app_server/model_catalog.rs(master +38/-18:CatalogSource::Authenticated / source_for_credential / verify_authenticated_source)
- agent/codex_app_server/model_catalog/auth_handoff.rs(modify/delete → 保留 master 版,OAuth 轮换交接)
- agent/codex_cli.rs(master +190/-44)
- agent/codex_app_server/model_catalog/real_tests.rs:我们把该文件裁到 59 行以适配自建的 capture 签名;master 的 model_catalog.rs 恢复 4 参 capture 后取回 master 的 244 行用例,否则 --all-targets 报 2 处 E0061。
D 桶(master 未动过、我们删除的死码 → 保留删除):
- 合并前已删:patchset.rs、git_inspect.rs、repository_context.rs、generation/pass_artifacts.rs、agent/runtime_models.rs、debug.rs(+debug/debug_drafts.rs) 等。
- process_session/{io,lifecycle,persistence,recovery}.rs 与 process_session/tests/owner_fixture_cleanup.rs → 裁决为「保留删除」:master 在这 4 个文件里只改「死码的错误正文」;实测整棵子树在 AGC 生产构建里 69 条 dead_code、且只被 tests.rs 引用;生产只用到 recovery.rs 的 2 个 shutdown 函数,而那 2 个我们已搬进 process_session/shutdown.rs。
G 桶(双方都改、我们那侧非语义 → 以 master 语义为准,手工合并):
- agent.rs:取 master 的 claude_code_failure_to_turn_error(改名,codex_app_server/mod.rs:5323 依赖该再导出);保留我们的模块集合(provider_request_snapshot,去掉 runtime_models 与 dispatch 的再导出)。
- thread_manager/dispatch.rs:master 的 host_dropped_with_detail(panic 详情)+ 我们的 cfg(not(test))/cfg(test) 收口(测试态不读兜底结果,避免 harness 未用变量告警)。
- generation/llm_request.rs:取 master 的 AgentProgressEmitter(其唯一消费方 maybe_generate_platform_art_asset_step 已在我们那侧删除,随之成为残留,交由后续提交处理)。
- process_session/model.rs:master 的 8 处错误正文(WindowsProcessJob 的 last_os_error)**全部落在我们未裁的区间**,逐 hunk 叠加到我们的 382 行版本(结果 406 行;last_os_error 出现次数与 master 版一致,均为 13)。
- process_session/shutdown.rs:把 master 在 recovery.rs 里给 shutdown 广播加的诊断搬进我们的实现(`process_session.shutdown.send_failed processId=… detail=…`;收敛后的 LiveProcessSession 不再有 process_id 字段,进程身份取注册表 key)。
- docs/project-memory/shared-memory/pitfalls.md:两侧各新增一节,两节都保留。
|
2026-10-07 13:59:31 +08:00 |
|
k88936
|
a2e538e2d1
|
让 lts 通配与 codename 一样按未 pin 回退
- version_matches_pin 不再把 lts/* 当作匹配任意版本:它和 lts/<codename> 一样需要 LTS 行映射,未维护时返回 None,交回退链而不是静默选中已安装最高版本(最高版本通常不是 LTS)
- 更新单测:lts/* 断言 None,并加入不支持 pin 的回退用例;修正 nvm default 别名注释
- 同步技术方案 V1.11.2 与 decision-log 的比较子集口径
|
2026-10-07 13:39:15 +08:00 |
|
k88936
|
61ca2127cf
|
Merge remote-tracking branch 'origin/master' into feat/adapt-taonier-skill
# Conflicts:
# docs/project-memory/shared-memory/pitfalls.md
|
2026-10-07 13:35:15 +08:00 |
|
k88936
|
f6e3e19cd8
|
将npm install联网放行绑定到可信node launcher
Project CI / Backend tests (pull_request) Failing after 35s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 5m43s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 7m2s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m6s
Project CI / Repository checks (pull_request) Failing after 21s
Project CI / Frontend tests (pull_request) Successful in 2m31s
Project CI / Native shell tests (pull_request) Successful in 10m18s
Project CI / AI game creator shell web tests (pull_request) Successful in 4m18s
- prepare_command_sandbox_launch 新增 trusted_npm_install 参数,command_exec 把 spec.node_launcher 的 (node, npm_cli) 透传给沙箱
- command_sandbox_requests_npm_install 改为与可信 (node, npm_cli) 精确比对(executable、首个参数、install 子命令),删除只看 basename 的判定;拿不到可信对时一律不放网
- LinuxSandboxPlan 增加 npm_install_network,build_linux_bwrap_launch 直接采用,避免重复推导
- 新增/更新单测:项目同名 npm-cli.js 不放网、无可信 launcher 不放网、--share-net 开关、可信 (node, npm_cli) 与实际目标逐字一致
- 同步技术方案 V1.11.2、decision-log 与 pitfalls 记录该安全边界
|
2026-10-07 12:19:00 +08:00 |
|
k88936
|
deecebf0bb
|
删除未生效的活动版本分支,回退链只认默认别名
- 删除 active_managed_prefix(FNM_MULTISHELL_PATH / NVM_BIN):激活时活动版本已在 PATH 里,而该分支拿到的 multishell 前缀与枚举出的安装前缀不相等,永远不命中
- resolve_managed_fallback_runtime 回退顺序收敛为 engines 最高匹配 > 默认别名 > 已安装最高版本
- 同步 decision-log、里程碑与两处技术方案的版本选择口径
|
2026-10-07 11:59:42 +08:00 |
|
k88936
|
d905fa1c02
|
按未 pin 回退 lts/codename 避免静默选中错误版本
- version_matches_pin 对 lts/<codename>(如 lts/iron)返回 None,不再当作匹配任意已安装版本
- 补充单测:lts/iron 回退、lts/* 仍匹配,并加入不支持 pin 的回退用例
- decision-log 记录 lts/<codename> 需要 codename → 版本行映射,当前按未 pin 回退
|
2026-10-07 11:43:00 +08:00 |
|
k88936
|
7ed3696959
|
修复nvm默认别名并补真实nvm沙箱验证
Project CI / AI game creator shell Rust crates (pull_request) Successful in 4m41s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 7m1s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m46s
Project CI / Frontend tests (pull_request) Successful in 3m17s
Project CI / Backend tests (pull_request) Successful in 7m25s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m52s
Project CI / Repository checks (pull_request) Successful in 6m9s
Project CI / Native shell tests (pull_request) Successful in 8m28s
- nvm 的 alias/default 只写主版本号(如 22),改为按同一 pin 子集在已安装版本里选最高匹配,避免按 (22,0,0) 精确匹配永远落空
- 新增 opt-in 真机测试 command_sandbox_real_linux_opt_in_runs_nvm_installation_prefix,在 bwrap 内跑真实 nvm 安装前缀的 node 与 npm
- 新增单测 nvm_major_only_default_alias_selects_the_installed_patch 守住主版本号别名
- 里程碑、decision-log 与 pitfalls 记录真实 nvm v0.40.8 + Node v22.23.3 验证与 default 别名口径
|
2026-10-07 11:12:49 +08:00 |
|
k88936
|
51e6d1d9b9
|
AGC命令沙箱原生支持fnm/nvm托管Node
- 新增共享窄叶校验 validate_node_installation_prefix,只接受含 bin/node 与 lib/node_modules/npm/bin/npm-cli.js 的完整 Node 安装前缀,拒绝 HOME、管理器根、宽泛目录和逃逸 symlink
- 开发构建枚举 fnm node-versions/<ver>/installation 与 nvm versions/node/<ver>,按 .nvmrc / .node-version 权威 pin、PATH、engines.node 偏好、活动版本、默认别名、最高版本选择
- .nvmrc / .node-version 能理解但未安装时返回 node-version-pinned-not-installed 失败关闭;engines.node 与无法解析的 pin 不阻塞
- Linux 命令沙箱只读挂载通过校验的完整 Node 安装前缀,并在内联环境剔除 FNM_MULTISHELL_PATH
- Linux npm 改以受信任 node <npm-cli.js> 启动,npm install 联网判定跟随真实启动形态
- 非 Node 程序在 Linux 受信任 PATH 前置 Node 工具链 bin,npx / corepack 等随 node 同版本
- 同步技术方案 V1.11.2、实施计划切片、里程碑规范、decision-log 与 pitfalls
|
2026-10-07 11:07:16 +08:00 |
|
suzmii
|
43c1b2fe2c
|
合并 origin/master 到 chore/rust-compile-warnings
合入 master 自 256e6fe34 起的 **159** 个提交(含小红书小工具导出、导出产物面板、发布会话网关等;master 改动 133 文件,本分支 119 文件,重叠 9 个)。
唯一冲突:`apps/ai-game-creator-shell/src-tauri/src/git_inspect.rs` 为 modify/delete(本分支删除、master 修改)→ 按裁决**保留删除**(git rm)。依据:该模块在 master 上仍只有 `mod` + glob 引入、零调用方;master 对该文件的修改只是把 3 处调用从 `should_skip_project_snapshot_path` 换成另一个判断函数 `should_skip_project_derived_path`(该函数在 `project/filesystem.rs` 有定义、共 10 处使用,与旧函数并存,并非全局改名)。
守卫 1:`git_inspect` 在 AGC src 内 **0 命中**;main.rs 未被 master 带回 `mod`/`use` 行;unmerged=0。
守卫 2:四个旧名文件(loop_orchestration/draft_validation/runtime_models/process_session::recovery)在合并树内**均不存在**,四个新名文件均在预期路径;无任何 `??` 条目。
守卫 3:本分支删/改过的 22 个符号全树扫描仅命中 15 处——全部是既有工具 id 残留(prompts 与两侧契约里的 `project.patchset`),无一处来自 master 新代码;master 新前端字符串调用的 3 个 Tauri 命令(append_local_permission_log / save_local_project_asset_file / reveal_local_project_asset_file)均有定义且仍注册。
本提交未附任何额外修改(只包含 master 侧改动 + 冲突解决);①/② 的修复另开提交。
|
2026-10-07 10:58:04 +08:00 |
|
k88936
|
5142c26011
|
文档同步游戏分发 owner 媒体读
- 后端契约/玩法链路/AGC 实施计划补 owner 作用域读路由与作者预览口径(软删仍 404)
- decision-log 2026-10-06 条目记录 owner 读决策,并改「临时计划已删除」为保留计划与里程碑文档
- pitfalls 新增作者预览必须走 owner 读、不能回退素材库 ACL 的排障口径
|
2026-10-07 10:27:19 +08:00 |
|
k88936
|
5e8ecaa35b
|
回写陶泥儿导出与发布媒体直传文档并删除临时计划
Project CI / AI game creator shell Rust crates (pull_request) Failing after 57s
Project CI / Backend tests (pull_request) Failing after 16s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 6m27s
Project CI / Repository checks (pull_request) Failing after 13s
Project CI / Frontend tests (pull_request) Successful in 2m5s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 5m50s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m30s
Project CI / Native shell tests (pull_request) Successful in 6m1s
- 技术方案/后端契约/玩法链路三份主规范改成当前状态:文件草稿、build:taonier、multipart objectKey 直传与域内公开读
- decision-log 2026-10-06 条目由计划态改写为落地态,含命名约定、硬切、E1、taptap skill-pack 例外
- pitfalls 新增 multipart 幂等摘要、发布账本、skill-pack 红与 zip 存档根入口四条
- 删除临时实施计划与里程碑规范,历史由 Git 保存
|
2026-10-07 01:26:37 +08:00 |
|
k88936
|
2fdf4078d0
|
新增陶泥儿导出与游戏分发媒体直传主规范与里程碑
- AGC 实施计划追加「2026-10-06 陶泥儿导出文件草稿化与游戏分发媒体直传」章节
- 玩法链路新增「游戏分发发布媒体直传合同(2026-10-06)」
- 后端数据契约补充 game_distribution_game 的媒体直传与 schema 变更约束
- decision-log 记录文件草稿、build:taonier/dist-taonier、快照桶+新读路由、硬切、exports 全退役、AI 建议/封面退役
- 新增里程碑规范与实施计划两份 plans 文档
|
2026-10-07 00:05:24 +08:00 |
|
k88936
|
7bcef53494
|
合并 origin/master 到 feat/adapt-xhs-skill:发布表单吸收平台版本号与买断定价,并合入播放会话网关与导出 Skill 更新
Project CI / AI game creator shell Rust crates (pull_request) Successful in 5m56s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 7m16s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m24s
Project CI / Repository checks (pull_request) Failing after 59s
Project CI / Backend tests (pull_request) Successful in 8m46s
Project CI / Frontend tests (pull_request) Successful in 2m31s
Project CI / AI game creator shell web tests (pull_request) Failing after 2m27s
Project CI / Native shell tests (pull_request) Successful in 6m17s
- 发布表单 hook 保留本分支的 hook + 视图拆分,移植 master 的平台版本号回读(nextVersionNumber)、买断定价状态与提交校验,删除由工程内部版本派生的 projectVersion
- GameDistributionPublishFormView 接入只读「项目版本」与共享 PlatformGamePricingField,版本号未知时禁用提交
- DirectProjectComposer 同时保留本分支的草稿回填 / 回写 props 与 master 的 actionsPortalTarget 挂点
- 发布表单测试改用平台版本号 mock(nextVersionNumber: 1),补齐买断定价与缺省版本号禁用用例,并修正 Promise 类型标注
- decision-log.md 保留双方新增条目(小红书导出与 Skill 安装工具 + 播放会话前缀清 Cookie)
|
2026-10-06 23:28:57 +08:00 |
|
k88936
|
3e6d0f39e5
|
合并 origin/master 到 feat/adapt-xhs-skill:发布入口迁入导出产物面板并吸收发布绑定、内部版本与上传进度
Project CI / Backend tests (pull_request) Failing after 18s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 6m18s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m28s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 4m20s
Project CI / Repository checks (pull_request) Failing after 33s
Project CI / Frontend tests (pull_request) Successful in 3m7s
Project CI / AI game creator shell web tests (pull_request) Failing after 2m55s
Project CI / Native shell tests (pull_request) Successful in 8m39s
- 陶泥儿 tab 发布面板去掉前端灰度:删除 readGamePublishAvailability 调用、发布权限占位与对应测试 mock,与 master 删除原生灰度命令保持一致,只在项目清单就绪前显示「正在读取项目清单」
- App.tsx 保留本分支导出产物面板架构,发布入口不再挂 Direct 聊天头;useTaonierTab 收敛 allowed/availabilityPending 状态并同步注释
- 发布表单 hook 合并本分支表单状态与 master 的发布绑定回读、AGC 工程内部版本派生、线上最近提交与上传进度阶段
- GameDistributionPublishFormView 接入发布状态面板、只读「项目版本」标签、发布阶段步骤与「更新游戏」等文案
- 合并发布表单与发布反馈测试:恢复封面/试玩包断言,补 readGameDistributionPublication mock
- agc-skills/manifest.json 取本分支新增的 platform-abstract、vite-export-xhs-minitool 与 master 的三处 sha256,version 提升到 2026-08-26.66
- decision-log.md 保留双方新增条目;技术方案文档补回双方新增章节;玩法链路文档取 master 重写后的发行合同
|
2026-10-06 20:01:16 +08:00 |
|
suzmii
|
2a3d1b3d65
|
Merge origin/master into chore/rust-compile-warnings
- 合入最新 base(2 个提交,15 文件),满足 CI 守卫步骤要求的 "pull request head 必须包含最新 base commit"。
- 自动合并无冲突;重叠文件(claude_code_cli.rs / codex_app_server/mod.rs / direct_runtime/mod.rs / config.rs / pitfalls.md / 技术方案文档)均为两侧改动互补。
|
2026-10-06 19:05:25 +08:00 |
|
lhk229
|
9f1c5df446
|
规划移除GameAgent宿主运行时间上限 (#652)
Project CI / AI game creator shell Rust crates (push) Has been cancelled
Project CI / Backend 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
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
补充移除累计执行与整轮墙钟上限的行为规范
新增里程碑及实施计划,明确保留独立超时与生命周期控制
明确删除退役代码并限制旧配置和执行账本的数据迁移范围
Reviewed-on: #652
Co-authored-by: lhk <ink29535@proton.me>
Co-committed-by: lhk <ink29535@proton.me>
|
2026-10-06 18:13:39 +08:00 |
|
k88936
|
f3f52dc5e0
|
小红书导出技能:Chrome 61 能力改为硬性 ERROR,pack 自带白名单
- validate.mjs 恢复 CSS_UNSUPPORTED_PATTERNS / MODERN_RUNTIME_API,命中判 ERROR
- 删除「基线层 + 增强层」写法,references 明确 Chrome 61 为硬基线
- pack.mjs 复制白名单与遍历实现,不再 import validate.mjs
- SKILL.md 参数表补 validate / pack / vite.config 的默认值
- 修正 decision-log 中与本次相反的旧结论
|
2026-10-06 18:03:00 +08:00 |
|
k88936
|
a96c0e6209
|
AGC 小红书导出:validate 去 strict 与增强层告警,pack 加落点预警
- validate.mjs:scanJsSyntax 先 stripJsNoise 剥注释与字符串,`"#e8f4ff"` / `'#hit'` 不再误判为 ES2018
- validate.mjs:删除 MODERN_RUNTIME_API、CSS_MODERN_PATTERNS / CSS_MODERN_FEATURE 与 --strict,退出码只由 ERROR 决定
- pack.mjs:--zip-out 相对 cwd 且落在 <cwd>/.export/ 时打 workdir 警告,打印 cwd 与绝对落点
- SKILL.md:产物为项目根 .export/xhs-minitool.zip,game/ 子工程写 ../.export/...;参数表去掉 --strict
- 测试:增强层放行、JS 噪音不误报、真私有字段仍报、warning 也退出 0、workdir 预警
- manifest:vite-export-xhs-minitool 指纹与 version 同步到 2026-08-26.56
- decision-log.md:记录本次 validate/pack 收敛
|
2026-10-06 17:09:49 +08:00 |
|
k88936
|
df744ae155
|
新增 agc_install_skill_resource:宿主直落 Skill 附件,复用写入合同门
- 新增内置 MCP 工具 agc_install_skill_resource(skillName/relativePath/destinationPath),宿主直接读 AGC_SKILL_PACK_FILES 已审核字节
- 组装成 agc_write_file 的 {path,content} 转发客户端工具桥,复用同一份合同、lease、项目写锁与保护面校验
- read/install 共用 skill_resource_relative_path_is_unsafe;模型自带正文无旁路,正文不过模型上下文,不依赖原生 cp 审批
- direct-tools.json 增补工具描述与 destinationPath,direct.json engineering 指引改用本工具复制 Skill 文件
- 新增两条 install_skill_resource 测试并登记工具目录;同步技术方案与 decision-log
|
2026-10-06 16:47:32 +08:00 |
|
suzmii
|
e0ea9d2c7f
|
文档收口:写入 Rust 编译告警门禁口径与 AGC 检查命令
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 3m54s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 3m50s
Project CI / AI game creator shell Rust crates (pull_request) Failing after 4m56s
Project CI / Frontend tests (pull_request) Successful in 2m44s
Project CI / Repository checks (pull_request) Failing after 2m35s
Project CI / Native shell tests (pull_request) Failing after 5m29s
Project CI / Backend tests (pull_request) Successful in 10m36s
Project CI / AI game creator shell web tests (pull_request) Successful in 4m2s
- dev 运维文档新增「Rust 编译告警门禁」整段:口径、落法(workspace lints + 成员继承 + 独立 crate 自持)、依据(--deny=warnings、不改 RUSTFLAGS、CI 缓存不受影响)、覆盖范围、检查命令与实测基线(server-rs workspace 1 → 0、AGC 壳 613 条批次清理中、desktop-shell/三 bridge/4 个 exclude crate 均 0)。
- dev 运维文档在编译警告清理段尾补门禁口径:能直接修的一律修掉、与口径冲突优先改口径、不能修的登记关闭条件。
- dev 运维文档 AuthBridge 条目改为已决策:2026-10-06 不支持用户 Codex OAuth 登录态、统一走中转站,按决策表第一行删除链路,warning 随之归零。
- dev 运维文档 ts-rs 条目补「待上游」关闭条件;Vite chunk 条目补门禁范围与关闭条件。
- dev 运维文档 cfg(not(test)) 拆分边界补「拆分不作为消警手段」;allow 表述收紧为登记后最窄范围使用。
- dev 运维文档 AGC 检查命令(bin 与 --tests)补编辑器 feature,基线句由「复核通过」改为当次快照。
- shared-memory/development-workflow 验证路由补 Rust warning 门禁与「拆分不作为消警手段」。
- shared-memory/pitfalls 顶部新增条目:AGC 壳新工作树缺 gitignored 随包/源码侧产物时 build.rs 报「未声明文件」的真实成因与最小处理。
- AGC 主方案 OAuth 契约冲突节改为已决策(决策内容、日期、执行动作、保留项、关闭条件),SDK 串行工具节的 OAuth 状态同步。
|
2026-10-06 16:36:49 +08:00 |
|
k88936
|
58f8c2065f
|
AGC 小红书导出 skill:测试按模块命名,取舍记录改回清单
- 隐藏测试 .vite-config.test.mjs 重命名为 .vite.config.xhs-minitool.test.mjs,与 pack.mjs → .pack.test.mjs、validate.mjs → .validate.test.mjs 的命名口径一致;
- .selective_rule.txt 去掉日期段落,把「二次清理」的条目并进 SKILL.md / zip-artifact-spec.md 对应条目,恢复为逐文件「删除与去处」清单;
- decision-log 补记 dist 收尾归 Vite 插件、pack 只读打 zip 的决策、失败语义与验证口径;
- skill-pack 指纹无需重算:本次改动均为隐藏文件与文档,manifest 仍为 2026-08-26.51。
|
2026-10-06 16:21:19 +08:00 |
|
k88936
|
eccaa5f79c
|
回退 sandbox 启动失败诊断日志,恢复 application.log 默认脱敏
- 回退 6311bb583:移除 sandbox 启动失败时采集子进程 stdout/stderr 的宿主日志及保留绝对路径的变体;
- application.log 恢复对所有行统一脱敏绝对路径的既有行为;
- 真实 npm 启动故障改从宿主 Node 环境修复,不改日志代码。
|
2026-10-06 15:41:58 +08:00 |
|
k88936
|
6311bb5837
|
为 sandbox 启动失败补保留源路径的宿主诊断日志
- `command.exec` 在 sandbox-ready 失败时先取走子进程 stdout/stderr,再终止受控进程组,避免 `Child` 回收时丢掉 bwrap/trampoline 的真实报错;
- 采集结果在有界时间(2s)和字节(8 KiB/流)内读空;新增 `sanitize_diagnostic_message_preserving_paths`、`append_application_log_line_preserving_paths` 与 `app_log_with_paths!`,只做凭据脱敏、保留绝对路径(bwrap `Can't find source path` 的路径就是唯一证据),写入宿主 `application.log`;
- 默认 `sanitize_diagnostic_message` 仍整行脱敏绝对路径,新增项按 `target_os = "linux"` 门控;诊断只进宿主诊断包,不进入模型可见错误、command log、receipt 或 Agent DB;
- 新增 `sandbox_launch_diagnostics_keep_source_paths_and_redact_secrets`,覆盖源路径保留、凭据脱敏与空白流不产出行;
- `pitfalls.md` 记录 sandbox 启动失败丢弃子进程 stderr 的排障经验。
|
2026-10-06 15:30:36 +08:00 |
|
suzmii
|
d2e05dbeb7
|
Merge remote-tracking branch 'origin/master' into fix/agc-composer-layout
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m3s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 5m24s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 4m14s
Project CI / Frontend tests (pull_request) Successful in 3m48s
Project CI / Backend tests (pull_request) Successful in 8m5s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m0s
Project CI / Repository checks (pull_request) Successful in 7m30s
Project CI / Native shell tests (pull_request) Successful in 9m44s
合并 master be9f74f42(付费游玩泥点付费规范 #635 等):保留双方条目/内容
- 唯一冲突:`docs/project-memory/shared-memory/pitfalls.md` —— 本分支 2 条(2026-10-05「PR #607 复核修复」+「模型菜单的观感是组件自带的共享样式面」)在前,master 新增 2 条(「给 shared-contracts 请求 DTO 加字段」+「付费游戏播放会话前缀落在 /api/*」)紧随其后,**两侧 4 条都保留**(grep 逐条命中 1)
- 其余 286 个文件自动合并(master 侧含 server-rs / admin-web / 主站 / vite.config.ts 等,与本分支不重叠;`styles.css` 也是自动合并、无冲突)
- 门禁(本轮只合并、未改内容):`vitest run appSurface + chatDialogFrameLayout + conversationModelSelect` **258 passed / 9 skipped**;`npm run agc:typecheck` pass 3 / fail 0;`npm run check:encoding` 5418 files;`git diff --check` rc=0;prettier 已对合并后的 pitfalls 重新折行
|
2026-10-06 15:19:31 +08:00 |
|
k88936
|
af19af0a2f
|
清掉错误类型相关的过时文档
- 删两份 ADR:`AGC命令错误结构化与错误报告口径`、`AGC认证失败的JS侧载体与抛出时机`;错误通道的现行口径只留在代码与该专题技术方案里;
- 删导出面板的【实施计划】与【里程碑】两份计划,落地情况回到技术方案里一句话;
- `docs/README.md` 去掉对上述四份的链接,技术方案里的失败通道段落跟着删;
- `decision-log` 去掉 2026-10-01 那一段,2026-10-05 那段的标题与四条决策改成「同步细节与文案归属」;`pitfalls` 去掉两份 ADR 的引用。
|
2026-10-06 14:32:16 +08:00 |
|
suzmii
|
f0cad9dddc
|
合并 origin/master(52c83cc2a,248 个提交)到 feat/game-purchase
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 5m28s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m26s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 4m41s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m56s
Project CI / Backend tests (pull_request) Successful in 9m4s
Project CI / Repository checks (pull_request) Successful in 7m13s
Project CI / Native shell tests (pull_request) Successful in 10m16s
Project CI / Frontend tests (pull_request) Successful in 2m26s
- 同步 master 侧 248 个提交:会员与泥点计费(PR #588 / #603)、创作者主页与关注粉丝(PR #638)、运行页刷新真重载(PR #640)、AGC 模板 templateVersion 递增(PR #643)等;确认 master 未触碰发行网关与 `api-server/src/modules/game_distribution.rs`。
- 冲突 1(server-rs/crates/module-runtime/src/domain.rs:1157-1162)`RuntimeProfileWalletLedgerSourceType` 两侧各自在末尾追加变体:保留 master 的 `MembershipUpgradeGrant` 为索引 16(线上已落库口径),本分支 `GamePurchase` 顺延为索引 17,并保留其「每账号每游戏一次扣费」注释。
- 冲突 2(server-rs/crates/module-runtime/src/domain.rs:1184-1188)`as_str()` 同时保留 `membership_upgrade_grant` 与 `game_purchase` 两个分支。
- 冲突 3(server-rs/crates/spacetime-client/src/active/mapper/runtime_profile.rs:95-101)bindings→领域枚举映射同时保留 `MembershipUpgradeGrant` 与 `GamePurchase` 两支,按新索引顺序排列。
- 冲突 4(server-rs/crates/spacetime-client/src/module_bindings/runtime_profile_wallet_ledger_source_type_type.rs:43-47)生成枚举按模块源码顺序合并为 …`MembershipUpgradeGrant`、`GamePurchase`;随后 `npm run spacetime:generate` 复核该文件与生成结果逐字节一致。
- 冲突 5(server-rs/crates/api-server/src/admin.rs:4849-4853)sats 索引映射改为 `16 => membership_upgrade_grant` 与 `17 => game_purchase` 两条并存。
- 冲突 6(server-rs/crates/api-server/src/admin.rs:6368-6461)索引断言并入 master 的 `[16] => membership_upgrade_grant`,并把 master 的「17 尚未映射」占位断言替换为 `[17] => game_purchase`;本分支的后台消耗统计两个用例原样保留。
- 冲突 7(server-rs/crates/api-server/src/runtime_profile.rs:219-226)来源文案格式化同时保留 `MembershipUpgradeGrant` 与 `GamePurchase` 两支,注释随 `GamePurchase` 保留。
- 冲突 8(docs/project-memory/shared-memory/decision-log.md:3-24)两条决策记录并列保留:本分支 2026-10-05「播放会话前缀在三处入口清空 Cookie」在前,master 2026-10-03「每日免费发放额为 0 时前端隐藏该池」在后。
- 保住 master 侧:发行响应 ETag/304/gzip(`release_asset_response_with_cache` 五参形态与 `release_asset_etag` / `if_none_match_matches` / `accepts_gzip_encoding` / `gzip_release_asset` / `release_asset_not_modified_response`)、共享加载面 `PlatformGameLoadingSurface` 及其使用方、三池钱包与会员档位目录改造。
- 保住本分支侧:付费作品 404 守卫(`price_mud_points > 0` 且位于 `load_package` 之前)、购买与播放会话网关路由、nginx×3 / Pingora / Vite 的播放会话 Cookie 清空与 `nginx-route-parity.matrix.json` 登记、viewer 感知公开详情、后台审核价格、`PlatformGamePricingField` 共享定价组件与两端接入、AGC 项目版本只读 + 平台派发下一版本号、schema 与迁移白名单、钱包来源 `game_purchase`。
- 验证:`git merge-base --is-ancestor origin/master HEAD` 返回 0;`check:encoding`、`check:doc-index`、`check:spacetime-schema`、`check:server-rs-ddd`、`check:rustfmt`、`check:npm-workspaces`、`check:game-distribution-dto-parity`、`check:game-distribution-price-limit-parity`、`check:pingora-route-parity`、`check:nginx-spa-routes`、根/admin-web/AGC typecheck、`git diff --check` 全绿。
- 测试:`cargo test -p module-game-distribution` 30 passed,`cargo test -p api-server game_distribution` 61 passed,`cargo test -p spacetime-module game_distribution` 7 passed;定向 vitest 28 个文件 252 个用例全通过。
- `npm run spacetime:generate` 除 11 个 procedure 文件的纯空白格式差异外无任何语义改动(`git diff -w` 为空),已保留 master 的生成产物形态,提交内无 schema/绑定语义变化。
|
2026-10-06 13:12:32 +08:00 |
|
suzmii
|
811efc102c
|
Merge remote-tracking branch 'origin/master' into fix/agc-composer-layout
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 crates (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 web tests (pull_request) Has been cancelled
合并 master 76166b08c(模型目录不可用项 / 管理端等):保留双方条目
- apps/ai-game-creator-shell/src/services/clientApi.ts:取 master 的 typed 目录读取(`ClientLlmModelCatalog` 已含 unavailableModels,不再手写 agentMode 映射),但保留本分支的文案「模型服务不可用」(本 PR 的口径,master 那侧还是旧的「本地…」)
- ConversationModelSelect.tsx:import 取并集(`Lock` + `ReactNode`),渲染结构保留本分支的「强度区外壳」(`strengthSection ? <shell>{strengthSection}{modelMenu}</shell> : modelMenu`)——master 把菜单内联展开、并加了不可用项列表,那段已自动合并进 `modelMenu` 变量里,两边语义都在
- tests/conversationModelSelect.test.tsx:取 master 的新文案「所选模型已下线,已切换为默认模型」,保留本分支的异步查询(`await screen.findByText`,文案走 portal toast)
- docs/project-memory/shared-memory/pitfalls.md:两侧条目都保留(本分支在前,master 新增在后)
- 校验:typecheck pass 3 / fail 0;`appSurface + chatDialogFrameLayout + conversationModelSelect` 257 passed / 9 skipped
|
2026-10-06 11:00:40 +08:00 |
|
suzmii
|
7e036a7199
|
润色钮挪到发送钮左边(右组相邻成组)
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 crates (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 web tests (pull_request) Has been cancelled
- 口径:AI 润色 / 恢复原文与发送钮同为圆角矩形按钮,放一起更协调 → 从「左组 `@` `+` 之后」挪到**右组最末、发送钮左侧**,最终顺序 `@` `+` | 模型 麦克风 润色 发送(`space-between` 左右分组不变)
- 实现:portal 挂点搬进右组(`DirectProjectComposer` 里把 `.project-chat-composer-controls-actions` 移到 `-controls-right` 内、发送钮之前),`actionsPortalTarget` 的「可选 prop、不传则行为不变」契约保持;用显式槽位而不是 CSS `order`,因为 DOM 顺序即 Tab 与读屏顺序(现在就是 模型 → 麦克风 → 润色 → 发送,与视觉一致)
- 注释/文档同步:composer 与 styles.css 里「与 `@` / `+` 同组、排在左组最后一个」那类旧口径全部改成新口径(「与发送同为圆角矩形按钮、相邻成组」),pitfalls 同段一并更新;全仓 grep `输入类动作` / `生成类动作` / `排在左组` / `左组最后一个` 命中 0
- 测试:`chat-composer.suite.ts` 的 DOM 断言改成新挂点——润色钮必须在 `.project-chat-composer-controls` 内、父链是 `-controls-right`、**`slot.nextElementSibling` 就是发送钮**、且 `compareDocumentPosition` 证明润色在发送之前;`chatDialogFrameLayout.test.ts` 的源码顺序断言改成「挂点在 `-controls-right` 之后、`{canStopTurn` 之前」;空态「工具条之外无第二个按钮」计数仍为 6;七宽度单行/不相交用例不变(含新位置)
- min-width 复核(无头 Chromium 夹具,240/280/296/320/360/438/900 七档):控件排仍 **252px** 所需、外壳仍 **278px**;自然宽度 290.4(438/900 档)→ 算式不变;七档 `topSpread ≤ 1px`、控件两两相交 **0** 处、`outsideControlsRow` 空、润色钮与发送钮间距固定 **8px**(同一行、同一组)
- 截图:240px 改前→改后 + 438px 改后 + 438px toast 已换新(正文引用与附件 1:1:12 = 12,未引用的旧图已删)
Refs #600, PR #607
|
2026-10-06 10:57:19 +08:00 |
|
k88936
|
796cf9843c
|
Merge remote-tracking branch 'origin/master' into feat/pricing-plan
Project CI / AI game creator shell Rust crates (pull_request) Successful in 6m0s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 6m43s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m42s
Project CI / Frontend tests (pull_request) Failing after 1m16s
Project CI / Backend tests (pull_request) Successful in 8m51s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m34s
Project CI / Repository checks (pull_request) Successful in 5m34s
Project CI / Native shell tests (pull_request) Successful in 7m18s
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
|
2026-10-06 10:14:15 +08:00 |
|
k88936
|
febbdd59d5
|
Merge branch 'feat/pricing-plan-fix' into feat/pricing-plan
|
2026-10-06 10:12:41 +08:00 |
|
suzmii
|
57ae4d5251
|
Merge remote-tracking branch 'origin/master' into fix/agc-composer-layout
合并 master 51cb05f41(创作者主页 / 关注链路等):保留双方条目
- docs/project-memory/shared-memory/pitfalls.md 冲突:本分支 2 条(2026-10-05 PR #607 复核修复 / 模型菜单共享样式面)在前,master 新增 2 条(自定义作者插槽昵称降级 / 页面返回兜底不新增历史)紧随其后,其余各节原样保留
- 其余文件自动合并(master 侧的 CreatorControls / GameCard / creator 服务与本分支不重叠)
- 顺带修本分支行为:模型状态文案改走底部 toast 后,conversationModelSelect.test.tsx 两处同步 getByText 改成 await findByText(toast 是 portal 的异步更新,同步查询在慢机上会竞态)
|
2026-10-06 00:34:02 +08:00 |
|
suzmii
|
959ed4fd53
|
合并 origin/master(51cb05f41,22 个提交)到 feat/game-purchase
- 逐块合并 server-rs/crates/api-server/src/modules/game_distribution.rs:以 master 的 ReleaseAssetResponseInput / 5 参 release_asset_response_with_cache / ETag / 304 / gzip 结构为准,并在其上保留本分支的付费 404 守卫(price_mud_points > 0 仍在 release_package_bytes 读包之前返回);播放会话资源响应改用同一结构(etag None、cache_control no-store、沿用 accept-encoding 协商)。
- 合并 src/components/game-distribution/GamePlayPage.tsx:接入 master 的共享 PlatformGameLoadingSurface 与 PLATFORM_GAME_LOADING_TIMEOUT_MS,删除本地重复常量 GAME_PLAY_STARTUP_TIMEOUT_MS 与裸 div,买断制播放会话准备态改由共享加载面承载。
- 合并 src/components/game-distribution/GameDetailPage.tsx:同时保留 master 的 onOpenCreator 作者插槽与本分支的买断制购买弹窗、onOpenRecharge 充值入口。
- 合并 vite.config.ts:保留 master 的 /api/creators 代理,并保留 play-sessions 前缀清 Cookie 规则(顺序仍在通用 /api/game-distribution 之前)。
- 合并 deploy/nginx/README.md:保留 master 的 SPA allowlist 门禁口径(含 /creators、/creators/connections)与本分支的播放会话前缀章节;三份 nginx 模板的 ^~ play-sessions location 与清 Cookie 原样保留。
- 合并 apps/admin-web/src/pages/AdminGameDistributionReviewPage.test.tsx:保留 master 的加载面/超时用例与本分支的审核价格(冻结价优先、历史按 0)用例。
- 合并 src/components/game-distribution/GameDistributionPages.test.tsx:保留双方 mock,并新增「付费作品在会话签发期间显示共享加载面」用例。
- 合并 docs/【玩法创作】平台入口与玩法链路-2026-05-15.md(保留买断制合同并回填 master 的创作者主页与关注粉丝合同)、decision-log.md、pitfalls.md:追加双方条目,不改写任一侧正文。
- 保留 master 侧新增能力:release_asset_etag / if_none_match_matches / accepts_gzip_encoding / gzip_release_asset / release_asset_not_modified_response、SPA 加载面、创作者主页与关注粉丝(user_follow 表、creator 查询与 author_id 过滤)。
|
2026-10-06 00:28:36 +08:00 |
|
suzmii
|
870d6457bc
|
输入区工具条改回唯一一行:润色钮并入工具条,nowrap + 实测 min-width
Project CI / Backend tests (pull_request) Failing after 26s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 5m45s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 6m30s
Project CI / Repository checks (pull_request) Failing after 14s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m4s
Project CI / Frontend tests (pull_request) Successful in 2m51s
Project CI / AI game creator shell web tests (pull_request) Failing after 4m12s
Project CI / Native shell tests (pull_request) Successful in 10m32s
- 口径:工具条只允许一行——`@` / `+` / 「AI 润色 / 恢复原文」/ 模型 / 语音 / 发送 六颗控件平铺,任何面板宽下都不换行、不堆叠、不重叠;宽度不够时按 `min-width` 横向溢出可见,发送钮仍在可视区内
- 换行来源(首轮为「避免重叠」加的 wrap):styles.css:11893 `.project-chat-composer-controls`(6 类)`flex-wrap: wrap`、styles.css:11933 `.project-chat-composer-controls-left` `flex-wrap: wrap`、styles.css:13747 `.conversation-model-select` `flex-wrap: wrap` → 三处都改 `nowrap`;左组补 `flex: 0 0 auto`(固定 28px 动作钮不参与收缩,否则槽位被压窄会把润色钮挤到模型钮上)
- 润色钮进工具条:`ResourceReferenceInput` 新增 `actionsPortalTarget`(portal 目标,不传时行为不变,策划面照旧),`DirectProjectComposer` 在左组 `+` 之后放挂点 `.project-chat-composer-controls-actions` 并传入 → 空输入态不再为它留一行;输入盒第二行只剩「润色状态」(无内容时 0 高,`gap` 的 row 分量 6→0、状态自带 `margin-top: 6px`)
- min-width 算式(落到两个元素):控件排 `.project-chat-composer-controls` = `@`28 + `+`28 + 润色28 + 模型钮 64(`min-width: 64px`,名字省略号)+ 语音28 + 发送28 = 204,加 5×8px 列间距 = 244,再留 8 余量 → **252px**;外壳 `form.project-chat-composer.is-direct-codex` = 252 + 左右内边距 12×2 + 边框 1×2 → **278px**。夹具实测:自然宽度 290.4、七档(240…900)控件 `top` 差值 ≤1px、两两相交 0 处、`outsideControlsRow` 空
- 低于 min-width:外壳保持 278px、**内容按自身宽度溢出可见**(面板与 composer 都不裁切,选它而不是给工具条 `overflow-x: auto` 是因为工具条里挂着模型菜单浮层,加滚动容器会把它裁掉——#600 的老问题);240px 实测发送钮 rect 仍在窗口内且 `elementFromPoint` 命中它
- 测试:`chatDialogFrameLayout.test.ts` 新增「工具条只有一行…」——七个宽度下 `flex-wrap` 必须 `nowrap`(右组本来就不换行)、控件排 `min-width: 252` / 外壳 `min-width: 278`、组件源码里润色钮渲染在控件排之后的挂点;最高高度算式按新结构更新为 222。**改前红已记录**:把三个源文件 stash 回旧实现后单跑,`240px 下工具条必须保持单行: expected 'wrap' to be 'nowrap'` 与 `expected 228 to be 222` 两条同时红
- 校验:`npx vitest run tests/appSurface.test.ts tests/chatDialogFrameLayout.test.ts` → **225 passed / 9 skipped**;`agc:typecheck` pass 3 / fail 0;eslint、prettier、encoding 5280 files、spacetime-schema 91 tables、`git diff --check` 全绿;对照图与 PR 正文已更新
Refs #600, PR #607
|
2026-10-06 00:19:17 +08:00 |
|
lhk229
|
51cb05f418
|
补充创作者主页与关注粉丝工程文档 (#638)
Project CI / AI game creator shell Rust crates (push) Successful in 5m56s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 6m36s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 7m37s
Project CI / Backend tests (push) Successful in 9m22s
Project CI / Frontend tests (push) Successful in 4m40s
Project CI / AI game creator shell web tests (push) Successful in 3m50s
Project CI / Repository checks (push) Successful in 6m30s
Project CI / Native shell tests (push) Successful in 8m32s
本 PR 补齐创作者主页与关注粉丝功能的产品合同和工程设计,供后续按里程碑实施;本次只修改文档。
桌面导航第四项进入自己的创作者主页,“我的”移到第五项。游戏详情可进入作者主页并关注/取消关注;自己或他人的关注、粉丝列表均公开可查看,点击用户头像或昵称可进入其主页。本人支持取消/重新关注、回关和移除粉丝,并明确两个关注方向独立。
工程设计包含关系表与 DTO、认证和事务边界、跨页状态同步、共享组件、深链及验收要求,拆分关系查询和页面交互两个里程碑。按用户要求,游戏列表沿用最多 48 项的现有限制,不增加游戏目录分页改造。
验证:
- 已合入最新 origin/master(21c79f54a);共享决策记录冲突保留双方新增内容。
- npm run check:encoding 通过。
- npm run check:doc-index 通过。
- git diff --check 与暂存差异检查通过。
- 相对 master 仅六份文档发生变化;没有业务代码或 schema 修改,未执行业务测试或部署。
Reviewed-on: #638
Co-authored-by: Linghong <ink29535@proton.me>
Co-committed-by: Linghong <ink29535@proton.me>
|
2026-10-05 22:05:11 +08:00 |
|
suzmii
|
342cc75d20
|
Merge remote-tracking branch 'origin/master' into fix/agc-composer-layout
Project CI / AI game creator shell Rust crates (pull_request) Successful in 4m59s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m17s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 6m38s
Project CI / Frontend tests (pull_request) Successful in 3m1s
Project CI / Backend tests (pull_request) Successful in 7m16s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m15s
Project CI / Repository checks (pull_request) Successful in 5m19s
Project CI / Native shell tests (pull_request) Successful in 7m2s
合并 master 96859666f(AGC 运行画面点选 #624 等):保留双方条目
- docs/project-memory/shared-memory/pitfalls.md 冲突:本分支 2 条(2026-10-05 PR #607 复核修复 / 模型菜单共享样式面)在前,master 新增 6 条(运行画面点选 ×5、Phaser 4 ×2)紧随其后,其余各节原样保留
- 其余文件自动合并(master 侧改动与本分支不重叠)
|
2026-10-05 21:01:39 +08:00 |
|
suzmii
|
3204758f34
|
模型不可用与模型状态一律走组件自带的底部 toast:删掉宿主分支
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m40s
Project CI / Backend tests (pull_request) Failing after 21s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 4m34s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 5m52s
Project CI / Repository checks (pull_request) Failing after 29s
Project CI / Frontend tests (pull_request) Successful in 2m54s
Project CI / AI game creator shell web tests (pull_request) Failing after 4m1s
Project CI / Native shell tests (pull_request) Successful in 9m1s
- 现象:`errorPresentation` 默认 `inline`,只有工作台那只传 `toast` + 宿主回调;首页/策划/画布的输入区里「模型服务不可用」还是**常驻占位文本**,不是浮层——同一个组件在不同宿主表现不一致
- 改法:浮层收进组件内部。新增 `components/common/composerNotice.ts`(模块级单例:`publishComposerNotice` + `useComposerNoticeHost`)与 `components/common/ComposerNoticeToast.tsx`(portal 到底部居中、6s 自动收起);`ConversationModelSelect` 与 `ComposerReasoningEffortSelect` 自己在失败/状态出现时报一条(各自去重:同一条只弹一次、清空后可再弹),失败 `tone="error"`、状态 `tone="neutral"`
- 单宿主:同一输入区里两个调用点只有一个真正渲染(编号最小的那个),保证同一时刻只有一条浮层、不会互相叠;输入区整体卸载时把待显示的提示一并丢掉,不留给下一个宿主
- 删宿主分支:`errorPresentation` / `onUnavailable` / `onNotice` / `noticePresentation` 四个 prop 与工作台宿主的 toast state / `pushModelNotice` / `pushModelStatus` 一并删除(grep 命中 0);任何宿主的输入区子树里都不再有常驻 `role="alert"` / `role="status"` 行
- 语义不变:不可用时发送仍禁用(`!modelReady`);文案仍是「模型服务不可用」;档位持久化通道不变
- 测试:新增「首页模型不可用与状态也走组件自己的底部 toast(子树不留常驻行)」;`design-agent.suite` 的推理档保存失败改成断言底部 toast + 控件子树无 `role="status"`;`chat-composer.suite` 的失败去重用例改成断言 toast 节点(同一条不重复弹、清空后再出现换新节点)
Refs #600, PR #607
|
2026-10-05 20:22:41 +08:00 |
|
suzmii
|
93de2a0d6c
|
文档:AGC 发布面板补齐买断制定价口径
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Frontend 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 crates (pull_request) Has been cancelled
Project CI / Backend 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
- 主规范「入口与边界」改为网页与 AGC 两个发布入口一致支持定价,并写明给已上线作品发新版本的预填规则
- 主规范「定价与冻结」补充发布新版本必须预填并保持现有价格、不允许因默认免费静默改价,定价 UI 由 packages/shared 共享组件承载
- 主规范「契约与迁移」补记 AGC 版本请求 priceMudPoints 字段与 #[serde(default)] 仅作旧客户端兼容的口径
- 主规范验收表新增「定价(AGC 入口)」行,AGC 侧证据标注待补及其来源
- 里程碑范围补上 AGC 发布面板定价,删除「不在范围内」的 AGC 后续切片条目
- 里程碑验收标准新增 AGC 入口复选框(保持未勾选并注明等待实现证据)
- 排障记录 pitfalls 把 AGC 按免费提交改为历史口径 + 现行口径,保留「改请求 DTO 必须同时编译 AGC 壳」的排障经验
- docs/README.md 合同/里程碑条目同步为两个入口一致并标注 AGC 证据待补
|
2026-10-05 20:04:43 +08:00 |
|