kdletters
|
a5fd25f10a
|
客户端更新切换到官方更新插件并按渠道分发
- 客户端接入 tauri-plugin-updater:原生侧注册插件,删除自研更新下载命令、下载进度事件与安装器启动逻辑
- 客户端更新服务与更新提示改走官方插件接口,删除自研清单解析、版本比较与下载实现
- 更新能力只授予客户端主窗口,移除只为自研清单放行的 OSS 白名单与 CSP 连接项
- 新增构建期更新检查开关:开发态默认关闭,agc 启动不请求更新清单、不显示更新入口
- 发布脚本按渠道生成官方更新插件清单与签名,universal macOS 产物同时挂两个平台键,缺签名失败关闭
- 发布脚本按渠道上传安装包、签名与渠道清单,并为 dev-win 生成旧协议 sha256 迁移清单
- 构建期按渠道注入更新端点配置,渠道与目标平台不匹配时发布失败关闭
- Jenkins 流水线新增渠道参数与签名凭据注入,归档补充签名与迁移清单
- 新增发布上传 dry-run 开关,只打印 ossutil 命令且不回显凭据
- 更新技术方案与开发运维文档,登记 macOS 渠道落地待办
|
2026-09-17 17:56:53 +08:00 |
|
kdletters
|
5db407c3dc
|
新增 AGC 模板库与由模板创建项目链路 (#396)
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 7m12s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 7m18s
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 7m25s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 7m22s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m49s
Project CI / AI game creator shell Rust crates (push) Successful in 2m36s
Project CI / Repository checks (push) Failing after 1m11s
Project CI / Frontend tests (push) Failing after 4m37s
Project CI / AI game creator shell web tests (push) Failing after 4m6s
Project CI / Native shell tests (push) Successful in 9m39s
Project CI / Backend tests (push) Successful in 10m12s
## 交付范围
- OSS `agc-dev` bucket 的 `templates/` 前缀作为 AGC 游戏模板库(**去掉 `agc/` 这一层**;`agc/` 继续只放客户端安装包与更新清单)。
- 模板正文改为 zip(zip 根 == AGC 项目根,如 `game/index.html`);清单补齐 `tags`、封面字段与包大小/摘要,`templateVersion` 用于判断是否需要重下。
- 客户端:Rust 模板库模块、模板库全屏页、首页模板推荐位、左侧导航入口。
## 客户端行为
- `fetch_game_template_library`:读取并校验清单(≤4 MiB),缓存到 `<app_data>/templates/index.json`;网络失败回退本机缓存并标注 `source=cache`。
- `download_game_template`:按清单下载 zip(≤512 MiB),校验字节数与 SHA-256 后解压到 `<app_data>/templates/installed/<id>/<version>/`,最后写 `installed.json` 作为安装完成标记。
- `create_automatic_local_game_project_from_template`:先把模板文件铺进新项目目录,再走既有 `init_local_game_project_at` 补 `.agent` 清单与标准目录;失败删除半成品目录。
- 解压只接受普通文件与目录(拒绝绝对路径、`..`、盘符、符号链接),安装目录名由标识符白名单拼出;远端只信「受信任 OSS 主机 + 对象键」,清单里的地址字段不参与请求。
- UI:搜索(空白分隔多关键词「与」)、标签/运行时筛选、仅看已下载、封面卡片与已下载徽标;「使用模板」在版本落后时先重下再建项。
## 文档与脚本
- 主规范 `docs/technical/【技术方案】AGC模板库与模板建项-2026-09-17.md`;里程碑与实施计划见 `docs/project-memory/plans/`;`decision-log.md` 记录库路径、清单 schema、安装缓存目录与 CSP 约定。
- 发布脚本 `scripts/agc-template-library-publish.mjs`(`--dry-run` 校验 → 上传 → 回读校验)。
- 首页「灵感推荐」替换为模板库推荐位,删除本机灵感图目录与 `InspirationGallery.tsx`;`tauri.conf.json` 的 `img-src` 放行受信任 OSS 主机用于加载封面。
## 验证
- `cargo test --bin genarrative-ai-game-creator-shell template_library`:9 passed;`--ignored` 真连检查 `fetches_the_live_template_library_index` 通过。
- `npx vitest run src/features/template-library`:9 passed。
- `npm run typecheck`、`cargo fmt --check`、`npm run check:encoding`、`node scripts/check-doc-index.mjs`、`git diff --check` 均通过。
- OSS 侧匿名复核:`templates/index.json`、各 `cover.png` 与 `template.zip` 均返回 200。
## 未做 / 待确认
- 本轮未做客户端点击级人工验收(下一步单独验证并把结果补进此 PR)。
- 模板封面目前是占位标题卡,正式封面由后续模板包提供。
---------
Co-authored-by: kdletters <61648117+kdletters@users.noreply.github.com>
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/396
|
2026-09-17 17:48:06 +08:00 |
|
lhk229
|
ebc5dfe7db
|
修复策划工具乱序局部修改导致的中断 (#399)
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 6m39s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 5m11s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m2s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 5m29s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 4m18s
Project CI / AI game creator shell Rust crates (push) Successful in 2m47s
Project CI / Repository checks (push) Successful in 4m9s
Project CI / Frontend tests (push) Successful in 5m20s
Project CI / Native shell tests (push) Successful in 8m16s
Project CI / Backend tests (push) Successful in 9m49s
Project CI / AI game creator shell web tests (push) Successful in 4m4s
按原文位置排序并顺序拼接补丁,避免替换偏移失效。
新增乱序、中文与长度变化的局部修改回归测试。
同步策划 Agent 批量局部修改技术说明。
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/399
|
2026-09-17 14:58:21 +08:00 |
|
kdletters
|
cd9faae9b2
|
修复 agc_tools 媒体资源提示词上限并按 kind 暴露 (#398)
Project CI / AI game creator shell Rust shard 3/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 1/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 2/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (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
## 改动
- 提示词上限收敛为 `resource_edit_prompt_max_chars` 单一权威:`agc_tools` MCP 工具层、客户端受控工具桥与提交校验共用同一数字与拒绝文案,不再出现「schema 写 4000、真实上限按 kind 分」的分叉。
- `agc_create_or_derive_resource` 的 schema 逐 kind 声明 `prompt.maxLength`(background-music / sound-effect / video 与 character-animation),`prompt` 描述写明每个数字;`agc_edit_image` 继续用图片口径 32000。
- 工具桥不再用通用 4000 校验 prompt:图片编辑 4000~32000 的提示词不再被误报成「超出安全边界」。
- 源资源未登记时的错误文案补上可执行两步:先用 `agc_list_registered_assets` 选已有 localAssetId;只在项目里的文件先 `agc_list_project_files` 确认 `assetImportable=true`,再用 `agc_import_account_assets.localPaths` 登记后重试。`agc_remove_background` 复用同一条文案。
- skill 包 `agc-client-projection` 的 SKILL.md 与 projection-contract.md 写明四个上限,并说明超限要在本地收敛而不是原样重发;清单指纹同步到 `2026-08-26.18`(已合并 master 的抠图文案)。
- 前端 `resourceEditModel.ts` 补注释指向 Rust 权威函数,数字未动。
- decision-log、pitfalls 与《AI游戏创作智能体App实施计划》记录本轮口径;未改 External v1 契约 / OpenAPI、SpacetimeDB schema 与客户端 UI 行为。
## 问题
| 编号 | 问题 | 本 PR 状态 |
| --- | --- | --- |
| P1 | 背景音乐提示词真实上限 140,但 schema 只写 4000、skill 未写明,agent 写一句正常长度描述必被硬拒 | 已修复:口径单源 + 逐 kind 暴露 + skill 写明 |
| P2 | 音效 1900 与图片编辑 32000 的上限只在 Rust 内部生效,MCP 与工具桥各自硬编码或误报 | 已修复:三处共用同一函数,图片编辑不再误报安全边界 |
| P3 | 源资源未登记时只报「不属于当前项目已登记资源」,模型会原地重试 | 已修复:文案给出 `agc_list_registered_assets` 与登记工具两步动作 |
| P4 | 这两个工具此前没有端到端用例,同类漂移无法被门禁拦住 | 已补:MCP 工具层 → 真实工具桥 → 假平台的契约用例 + 两条按 kind 上限门禁 |
## 验证
- `agent::direct_tools_mcp::tests` 23 passed / 0 failed:含新增的按 kind 上限门禁、图片快速编辑契约(断言 `POST /api/editor/images/edits` 的路径、Bearer、Idempotency-Key、正文且不得回填 assetKind)、背景音乐契约(断言 `POST /api/editor/audios/background-music/generations` 的 `gptDescriptionPrompt` 与 `makeInstrumental`)、超限零桥请求、未登记源资源提示。
- `agent::direct_tool_bridge::tests` 18 passed / 7 failed;`agent::skill_pack` 4 passed;`npm run agc:skill-pack:check` 与 `skill-pack:test` 通过(version `2026-08-26.18`)。
- AGC `typecheck`(tsc + skill-pack check + check-config)、`resourceEditModel` 6 项前端测试、`npm run check:encoding`、`npm run check:doc-index`、`cargo fmt --check`、`git diff --check` 通过。
- 那 7 条(以及 `project::resource_editor` 45 条)失败与本 PR 无关:全部是 `tempfile::tempdir()` 的 `Windows 安全对象不属于当前用户`,已 stash 改动并用基线复跑确认失败集合一致。
- 未跑整包 AGC Rust 全量分片、`npm run lint` 聚合门禁与 CI;未做任何付费生成。工具 schema 与 skill 文案都在应用内,终端用户需重新构建客户端才能看到修复效果。
---------
Co-authored-by: kdletters <61648117+kdletters@users.noreply.github.com>
Reviewed-on: #398
|
2026-09-17 14:56:56 +08:00 |
|
suzmii
|
036395c6c9
|
修复历史重读后旧消息追加到末尾的乱序
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 7m9s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m24s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 6m26s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 6m49s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 7m23s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m49s
Project CI / Repository checks (pull_request) Failing after 4m16s
Project CI / Frontend tests (pull_request) Successful in 5m46s
Project CI / Native shell tests (pull_request) Successful in 9m22s
Project CI / Backend tests (pull_request) Successful in 10m6s
Project CI / AI game creator shell web tests (pull_request) Failing after 4m22s
区分历史回读与实时消息来源,保留运行时所有权语义
防止旧页消息在历史刷新后追加到最新回复末尾
增加重新读取历史后再次翻页的顺序和去重回归
同步对话历史规范与实施计划
|
2026-09-17 13:54:00 +08:00 |
|
suzmii
|
d1f53fda4d
|
Merge branch 'master' into fix/agc-canvas-json
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 6m49s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 7m3s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m21s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 7m56s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 6m50s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 3m1s
Project CI / Frontend tests (pull_request) Successful in 4m38s
Project CI / Repository checks (pull_request) Successful in 3m43s
Project CI / Backend tests (pull_request) Successful in 8m30s
Project CI / AI game creator shell web tests (pull_request) Successful in 4m7s
Project CI / Native shell tests (pull_request) Successful in 25m34s
|
2026-09-17 13:05:33 +08:00 |
|
lhk229
|
9b6ed8a4cf
|
整理抠图测试导入并明确对外说明边界
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 7m13s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 5m52s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m49s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 4m50s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 6m48s
Project CI / AI game creator shell Rust crates (push) Successful in 2m41s
Project CI / Frontend tests (push) Successful in 5m30s
Project CI / Repository checks (push) Successful in 4m22s
Project CI / Native shell tests (push) Successful in 9m3s
Project CI / Backend tests (push) Successful in 9m19s
Project CI / AI game creator shell web tests (push) Successful in 5m12s
将主站与客户端抠图测试模块的导入统一放到模块顶部
明确 provider 选择与兜底策略仅保留在内部技术方案中
|
2026-09-17 00:54:28 +08:00 |
|
lhk229
|
16deb0ad61
|
补齐抠图参数透传与验收
修复flat自动识别门禁并严格校验模式和颜色
保持旧请求幂等指纹并区分客户端抠图意图
同步工具说明和Skill契约并补充定向测试
记录真实BgFilter验证及本地数据库阻塞的待验收项
|
2026-09-17 00:54:28 +08:00 |
|
lhk229
|
13f56e644d
|
补充抠图模式调用说明
说明complex语义分割与flat纯色背景抠图
明确纯色背景优先使用flat并移除内部实现术语
|
2026-09-17 00:54:28 +08:00 |
|
lhk229
|
fa64819b6e
|
冻结BgFilter抠图服务契约
记录flat与complex模式及auto背景色行为
补充服务器认证头和当前运行版本
|
2026-09-17 00:54:28 +08:00 |
|
lhk229
|
f748d36d21
|
补充AGC抠图模式透传方案
新增主站与BgFilter模式及背景色契约
补充AGC客户端同步任务与兼容性规则
记录联调验收和发布回滚边界
|
2026-09-17 00:54:28 +08:00 |
|
suzmii
|
ecaf1e8cec
|
Merge branch 'master' into fix/agc-canvas-json
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 4m50s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 6m22s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 5m19s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m9s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m45s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 5m38s
Project CI / Frontend tests (pull_request) Failing after 3m50s
Project CI / Repository checks (pull_request) Failing after 4m18s
Project CI / Native shell tests (pull_request) Successful in 8m2s
Project CI / AI game creator shell web tests (pull_request) Failing after 3m31s
Project CI / Backend tests (pull_request) Successful in 8m50s
|
2026-09-16 22:58:25 +08:00 |
|
lhk229
|
cec971c438
|
修复局部修改工具的缺陷和偶发锁问题 (#386)
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m49s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 4m50s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m53s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 5m16s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 4m1s
Project CI / AI game creator shell Rust crates (push) Successful in 2m14s
Project CI / Frontend tests (push) Failing after 4m6s
Project CI / Repository checks (push) Successful in 4m33s
Project CI / Native shell tests (push) Successful in 6m33s
Project CI / Backend tests (push) Successful in 8m26s
Project CI / AI game creator shell web tests (push) Successful in 3m43s
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/386
Co-authored-by: Linghong <ink29535@proton.me>
Co-committed-by: Linghong <ink29535@proton.me>
|
2026-09-16 19:53:23 +08:00 |
|
suzmii
|
ac8a51ca79
|
同步master最新基线并准备画布修复PR
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (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 / 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
合入平台会话与主线测试修复
保持画布交互、JSON识别和对话历史分页修复范围不变
|
2026-09-16 18:59:32 +08:00 |
|
suzmii
|
1b010fb1f8
|
修复DirectProject对话历史分页卡页
聊天历史按有效消息分页并返回原生游标,保留默认原始切片接口
工具和推理记录不占聊天页名额,逐行过滤避免传回大段工具输出
隔离重新加载和项目切换的迟到响应,补齐单飞、重试与消息去重
补充原生和真实App回归测试,增加人工只读日志重放入口
更新B05状态、规范与PR验收记录,不提交用户原始日志
|
2026-09-16 18:46:47 +08:00 |
|
lhk229
|
a1cafde7e9
|
修复 AI 创作壳测试稳定性
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (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 / 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 shard 1/4 (push) Failing after 4m35s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m32s
Project CI / AI game creator shell Rust shard 3/4 (push) Failing after 4m48s
Project CI / AI game creator shell Rust shard 4/4 (push) Failing after 4m59s
Project CI / AI game creator shell Rust shard 2/4 (push) Failing after 5m37s
Project CI / AI game creator shell Rust crates (push) Successful in 2m42s
Project CI / Native shell tests (push) Failing after 2m47s
Project CI / Frontend tests (push) Failing after 3m29s
Project CI / AI game creator shell web tests (push) Failing after 49s
Project CI / Repository checks (push) Failing after 3m16s
Project CI / Backend tests (push) Successful in 7m7s
调整 Agent 项目打开测试的异步就绪等待
延长权限策略连续命令测试超时预算
同步 taonier-art-assets skill-pack 内容指纹
补充对应实施计划中的测试约定
|
2026-09-16 09:57:21 +00:00 |
|
suzmii
|
825ea76b7b
|
同步master最新变更
合入当前主线的多窗口与配置更新
保留AGC画布交互和JSON识别修复
保留双方新增的项目排障记录并解决文档冲突
|
2026-09-16 17:45:06 +08:00 |
|
kdletters
|
0594a90bdd
|
合入平台会话身份与凭据分离
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 4m15s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m32s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 4m58s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 6m13s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 5m3s
Project CI / AI game creator shell Rust crates (push) Successful in 3m1s
Project CI / Frontend tests (push) Failing after 4m24s
Project CI / Repository checks (push) Successful in 4m1s
Project CI / Native shell tests (push) Successful in 7m45s
Project CI / AI game creator shell web tests (push) Failing after 3m4s
Project CI / Backend tests (push) Successful in 8m20s
平台会话快照拆分身份代次与写入 revision,凭据续期轮换不再中断在途生成
AGC Runner 请求参数新增 platform_auth_revision,并按 revision 做单调写入判定
解决与多窗口共享 Runner 的冲突,保留 claim adopt/publish 与界面参与锁语义
同步刷新轮换竞争、appSurface 鉴权用例与客户端 API 测试
补录平台会话身份与凭据分离的实施计划、共享记忆与决策记录
|
2026-09-16 17:42:00 +08:00 |
|
suzmii
|
910862fd06
|
修复AGC画布交互并识别UI设计JSON
稳定工作台与窗口标题栏状态同步,消除重复更新循环
支持画布右键平移并保留左键框选及资源拖动,完善中断清理
解耦运行不可用提示与资源选中状态
复用原生UI状态校验区分UI设计JSON和普通JSON,接入现有编辑器与代码预览
补充前端和原生回归测试、规范及待验收记录,明确对话历史分页尚未修复
|
2026-09-16 17:39:23 +08:00 |
|
kdletters
|
e08171fd2e
|
补记平台会话身份与凭据分离的规范与记忆
- 主规范新增平台会话身份与凭据分离条款,并修正长回合保活的口径
- 共享记忆补充并发生图登录态冲突的排障口径与验证方式
- 决策记录补充身份代次、凭据轮换、刷新失败语义的长期决策
- 新增本次里程碑与实施计划,记录证据与未验证项
|
2026-09-16 17:08:47 +08:00 |
|
kdletters
|
737a2266b9
|
支持同 AppData 多窗口共享 Agent Runner
- owner 独占锁改为可多窗口同时持有的界面参与锁 agent-runner.gui-participant.lock
- Runner 启动检查、attach 门禁与 watchdog 改用参与锁存活判定,最后一个窗口退出才关停 Runner
- 窗口启动只采纳现有 owner claim,登录/refresh/退出/换号才发布新 epoch claim
- 同 claim 重复 attach 改为幂等空操作,不再清空 Runner 平台登录态
- manifest 失效与 Runtime update relay 接收端改为按 token 去重的注册表并广播,失败只淘汰该接收端
- GUI 退出先释放参与锁,仍有其它窗口时保留 Runner 并记录 retained_for_other_windows
- Runner 启动失败时按最新 endpoint 复用一次,避免两窗口同时冷启动被实例锁竞争误报
- 更新 runner 定向测试、GUI 生命周期集成测试与自检用例
- 同步 AGC 技术方案、决策记录、踩坑记录与多窗口里程碑/实施计划
|
2026-09-16 16:56:21 +08:00 |
|
kdletters
|
c36a5170f8
|
AGC 新增本地自定义 LLM 配置与展示模型勾选
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m28s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 5m29s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 6m6s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 6m6s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m46s
Project CI / AI game creator shell Rust crates (push) Successful in 2m51s
Project CI / Frontend tests (push) Successful in 4m44s
Project CI / Native shell tests (push) Successful in 6m31s
Project CI / Repository checks (push) Successful in 4m17s
Project CI / Backend tests (push) Successful in 7m48s
Project CI / AI game creator shell web tests (push) Successful in 3m43s
- 本地配置新增 llm.customEnabled 与 llm.visibleModels,显式开启后保留自定义连接和勾选列表,官方路由下仍清空凭据
- 配置迁移始终写出 customEnabled、visibleModels、apiKey、baseUrl、model、apiKind、reasoningEffort,便于手写自定义连接
- 新增 discover_game_creator_llm_models 命令,直连自定义端点 GET /models,限制超时与响应大小并脱敏错误
- codex_app_server 自定义模式改用配置里的地址与 Key 走本地凭据代理,不再经过平台 /api/llm,也不回退官方路由
- 模型目录按官方与自定义来源隔离缓存,自定义模式只展示勾选模型,选项失效时回退第一项
- 设置页在自定义模式展示 API 地址、API Key、协议与推理档,并提供模型读取、搜索、勾选与已勾选预览
- 补齐固定项排版与读取按钮样式,同步 AGC 模型选择规范、实施计划与共享概览
|
2026-09-16 16:39:15 +08:00 |
|
suzmii
|
5cd02aa8b0
|
统一智能体对话层级并完善素材导出与文档预览
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Failing after 2m44s
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Failing after 2m45s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 2m46s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Failing after 2m49s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m53s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 3m18s
Project CI / Frontend tests (pull_request) Failing after 4m6s
Project CI / Native shell tests (pull_request) Successful in 6m12s
Project CI / Repository checks (pull_request) Failing after 3m48s
Project CI / Backend tests (pull_request) Successful in 7m8s
Project CI / AI game creator shell web tests (pull_request) Failing after 3m59s
当前Agent与策划Agent共用正文和过程表现组件,统一思考及工具调用的小字号浅色样式
素材工具栏按实际动作分组,导出紧邻删除并修复空分组重复分隔线
文档与代码使用共享Markdown预览和代码高亮,复用按需读取与缓存
移除未调用的活跃回合查询命令,保留正式快照恢复链路
补充回归用例并同步技术方案和团队约定
|
2026-09-16 03:59:27 +08:00 |
|
suzmii
|
d3c117de01
|
合并master最新变更
同步主分支的错误反馈重试与工作台入口调整
保留回合流去重、快照落盘收尾与对话输入文案
|
2026-09-16 03:39:21 +08:00 |
|
suzmii
|
60d6619598
|
统一对话区域文字颜色
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Failing after 2m2s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 2m15s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Failing after 2m10s
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Failing after 2m2s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m8s
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / AI game creator shell web tests (pull_request) Failing after 51s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m5s
Project CI / Native shell tests (pull_request) Failing after 2m10s
Project CI / Frontend tests (pull_request) Failing after 3m11s
正文、工具内容、执行过程和时间统一使用主题正文色
保留错误与禁用状态语义,移除硬编码字体颜色并同步文档
|
2026-09-16 03:03:45 +08:00 |
|
suzmii
|
7a7a841733
|
修复回合重进状态并收起已完成执行过程
活动回合快照与Direct事件统一管理生命周期,避免历史终态回放恢复忙碌态
用户消息显示发送时间,历史信封保存时间并通过独立映射回读
完成后统一折叠中间输出和工具调用,最终回复与失败提示保持可见
同步回归用例与规范文档,保留原生实机验收待办
|
2026-09-16 02:57:27 +08:00 |
|
Git Hooks Test
|
bca198a17e
|
让 AGC 错误反馈给 LLM 后继续修复
DirectProject 对可修复的工具、构建、验证和试玩错误最多反馈三次
补充 AGC 工作流与试玩 Skill 的错误反馈合同
保留鉴权、身份、传输和操作状态不确定等安全终止边界
|
2026-09-16 02:39:13 +08:00 |
|
Git Hooks Test
|
d650bf9b74
|
完善项目工作台入口与账户兑换码
修复 DirectProject 提交时的项目快照空值类型错误
将运行中项目列表移入窗口标题栏并支持展开查看
增加项目内打开项目目录按钮
在账户资产条中直接显示兑换码入口并保留兑换弹窗
补充相关测试、类型检查与产品文档
|
2026-09-16 02:39:12 +08:00 |
|
suzmii
|
09791eb9e4
|
统一对话回合投影并优化工具命令展示
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (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 / 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
按回合唯一归属渲染正文与工具,修复完成快照冲刷和历史归并
补齐工具输入输出,Windows命令卡片隐藏PowerShell启动器包装
时间显示精确到秒,结束信息右对齐并调整输入框文案与引用按钮间距
同步回归用例与规范文档,保留实机验收待办
|
2026-09-16 02:30:28 +08:00 |
|
Git Hooks Test
|
e90f1473c6
|
修复DirectProject历史图片注入超限
Project CI / AI game creator shell Rust shard 2/4 (push) Failing after 5m19s
Project CI / AI game creator shell Rust shard 4/4 (push) Failing after 5m24s
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m36s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 5m49s
Project CI / AI game creator shell Rust crates (push) Successful in 1m41s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m51s
Project CI / Repository checks (push) Successful in 4m2s
Project CI / Frontend tests (push) Successful in 5m9s
Project CI / Native shell tests (push) Successful in 6m49s
Project CI / Backend tests (push) Successful in 8m11s
Project CI / AI game creator shell web tests (push) Successful in 3m16s
压缩MCP大图回传并限制恢复图片预算
保留canonical历史并更新恢复文档
|
2026-09-16 02:30:10 +08:00 |
|
suzmii
|
a7dc2a9553
|
合并master并对齐Direct回合协议
合并主线Thread Manager订阅和历史分页能力
保留对话工具卡片、流式输出和回合终止恢复
发送队列携带结构化用户内容,附件接入规范用户消息
|
2026-09-16 02:10:52 +08:00 |
|
kdletters
|
e72a2da733
|
修复构建测试隔离并对齐 Direct 消息契约
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 5m25s
Project CI / AI game creator shell Rust shard 4/4 (push) Failing after 5m24s
Project CI / AI game creator shell Rust shard 3/4 (push) Failing after 5m45s
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m48s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m36s
Project CI / AI game creator shell Rust crates (push) Successful in 2m1s
Project CI / Frontend tests (push) Failing after 3m5s
Project CI / Repository checks (push) Failing after 3m22s
Project CI / Native shell tests (push) Successful in 6m27s
Project CI / AI game creator shell web tests (push) Successful in 2m35s
Project CI / Backend tests (push) Successful in 7m6s
隔离 Git hook 测试子进程环境并验证外层仓库不变
恢复被测试污染的完整 ESLint 与 Prettier 配置并清除测试产物
撤销无依据的聊天参数和资源初始化时序变更
严格验证 canonical userItem 和现行历史切片契约
同步开发运维文档与共享排障约定
|
2026-09-16 01:40:58 +08:00 |
|
Git Hooks Test
|
0ce5eb35b0
|
提升图集切片上限并保留原始告警
图标图集自动、手动和网格切片上限统一提高到 256。
同步 SpacetimeDB 批次与生成结果 item 上限,覆盖 256/257 边界。
严格图集提交校验透传 sliceWarning 原始原因,避免通用文案覆盖根因。
补充 Rust 定向测试、文档和共享决策记录。
|
2026-09-16 01:06:34 +08:00 |
|
kdletters
|
01e97d3a02
|
补齐 Direct 回合跨页面恢复
新增活动 Direct 回合只读快照与状态更新
接入重进项目的忙碌态恢复和运行中项目面板
补充生命周期规范、决策记录与定向测试
|
2026-09-15 23:38:09 +08:00 |
|
kdletters
|
9a9d1d6b72
|
补齐 DirectProject 更早历史入口
补充 DirectProject 初始历史 hasMore 时的按钮与滚动入口
修正 rebase 后 Tauri 命令与 Rust 测试辅助函数可见性
同步更新 DirectProject 历史恢复规范与里程碑验收记录
|
2026-09-15 23:38:09 +08:00 |
|
k88936
|
bd0c499773
|
更新DirectProject事件协议文档
区分JSONL完整item与Thread Manager运行态事件\n明确公开事件必须经过安全投影
|
2026-09-15 23:38:03 +08:00 |
|
k88936
|
62466de01a
|
补充DirectProject事件订阅规范
补充Thread Manager全局事件队列、subscriber cursor与consume契约
补充持久化顺序、队头回收、过期重订阅和历史锚点规则
新增Thread Manager里程碑规范与小步实施计划
|
2026-09-15 23:38:00 +08:00 |
|
k88936
|
6d190e2f8c
|
补齐 Response item 严格合同测试
拒绝资源引用额外身份字段与未知 content part
补充历史 item wire 投影边界测试
同步 DirectProject 历史文档为无 fallback 合同
|
2026-09-15 23:37:58 +08:00 |
|
kdletters
|
34503990f2
|
修复 AGC 维护期登录错误提示
Project CI / AI game creator shell Rust shard 2/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 3/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (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 shard 1/4 (push) Has been cancelled
按 HTTP 状态展示认证服务不可用、超时和维护提示
增加 503 非 JSON 维护页认证界面回归测试
同步 AGC 启动认证错误提示技术方案
|
2026-09-15 23:31:00 +08:00 |
|
suzmii
|
7970bc68bd
|
Merge remote-tracking branch 'origin/master' into feat/chat-codex-ui
# Conflicts:
# apps/ai-game-creator-shell/src/App.tsx
|
2026-09-15 23:26:00 +08:00 |
|
kdletters
|
c7ba007463
|
修复 AGC 长回合鉴权与素材验收循环
Project CI / AI game creator shell Rust shard 1/4 (push) Failing after 4m39s
Project CI / AI game creator shell Rust shard 2/4 (push) Failing after 4m50s
Project CI / AI game creator shell Rust shard 3/4 (push) Failing after 4m18s
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 shard 4/4 (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 / AI game creator shell Rust smoke (push) Has been cancelled
修复 DirectProject 长回合平台会话保活与 401 分类
允许已登记普通平台图片通过运行时素材完成门禁
兼容预览 UUID 图片路径并补充技术方案说明
|
2026-09-15 22:16:12 +08:00 |
|
suzmii
|
1c1009c1d1
|
合并 origin/master(真合并:AGC 统一错误诊断 / 图集连通域切分)
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Failing after 5m31s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 5m19s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Failing after 5m44s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m54s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Failing after 4m13s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m18s
Project CI / Native shell tests (pull_request) Failing after 2m14s
Project CI / Repository checks (pull_request) Failing after 1m17s
Project CI / AI game creator shell web tests (pull_request) Failing after 51s
Project CI / Frontend tests (pull_request) Failing after 3m26s
Project CI / Backend tests (pull_request) Successful in 7m9s
- canvas_generation.rs:接入 master 新增的 slice_mode / grid_x / grid_y 结构体字段
- commands.rs:master 的 read_agent_runtime_error_detail 命令与本分支 read_direct_tool_calls 并存(两侧都保留)
- main.rs:两条命令都注册
- 冲突按"两侧语义都保住"处理;未跑测试
|
2026-09-15 20:51:19 +08:00 |
|
kdletters
|
361daf374d
|
修复 AGC 统一错误诊断与素材验收 (#376)
Project CI / AI game creator shell Rust shard 1/4 (push) Failing after 4m49s
Project CI / AI game creator shell Rust shard 2/4 (push) Failing after 5m9s
Project CI / AI game creator shell Rust shard 3/4 (push) Failing after 4m34s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m1s
Project CI / AI game creator shell Rust shard 4/4 (push) Failing after 4m20s
Project CI / AI game creator shell Rust crates (push) Successful in 2m27s
Project CI / Native shell tests (push) Failing after 2m36s
Project CI / AI game creator shell web tests (push) Failing after 47s
Project CI / Frontend tests (push) Successful in 4m23s
Project CI / Repository checks (push) Failing after 3m14s
Project CI / Backend tests (push) Successful in 7m17s
## 变更内容
- 新增统一 Agent Runtime 错误事件和项目内诊断 sidecar,统一 DirectProject、Agent Runtime、app-server 与 AGC 工具桥的失败记录。
- 失败回执写回 DirectProject 对话历史,下一轮可读取上一轮失败证据;前端支持读取脱敏诊断详情。
- 区分 app-server 终态、空闲/硬超时、工具参数错误和试玩次数越界。
- 素材完成门扫描实际 npm 源码模块,并识别 manifest 中合法的自定义登记素材路径。
- 更新 AGC 技术规范、项目决策记录、里程碑和实施计划。
## 验证
- cargo check --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml --tests
- 统一错误测试 6/6 通过
- DirectProject 失败诊断测试 4/4 通过
- npm 场景模块素材引用回归测试通过
- npm run --prefix apps/ai-game-creator-shell typecheck
- npm run check:encoding
- npm run check:doc-index
- git diff --check、Rust 格式检查
真实 Provider / 安装包 smoke 尚未在本 PR 中运行。
---------
Co-authored-by: Git Hooks Test <git-hooks-test@example.invalid>
Reviewed-on: #376
|
2026-09-15 20:21:53 +08:00 |
|
suzmii
|
1427ce31af
|
合并 origin/master:解 4 处冲突并接入 master 的真思考过程
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 4m42s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 4m57s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m6s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m51s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 4m52s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 4m31s
Project CI / Frontend tests (pull_request) Failing after 3m38s
Project CI / Native shell 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 / Backend tests (pull_request) Has been cancelled
- 合并 origin/master(领先 355+ 提交),冲突 3 文件 4 块,全部按"两侧语义都保住"处理:
- useHomeProjectCreation.ts:保留我们抽出的 uploadLocalFilesAsAttachments(首页与输入盒共用上传链路),同时接入 master 的建项兜底期限(HOME_CREATION_DEADLINE_MS / resolveRecoverableHomeProjectPath)
- ProjectSupervisorView.tsx(属性):接入 master 新增的 designReasoningEntries 属性
- ProjectSupervisorView.tsx(渲染):把我们的工具调用折叠块(按回合锚定、实时兜底到列表末尾)与 master 的每消息思考过程(message.reasoningText 折叠块 + designReasoningEntries 兜底)合并,两者同时生效
- view/project-development/index.tsx:接入 master 新增的图标 import(Settings2 / Shapes)
- 类型检查通过(0 错),未跑测试
|
2026-09-15 19:56:35 +08:00 |
|
suzmii
|
5728e64742
|
Merge branch 'feat/chat-toolcall-hardening' into feat/chat-codex-ui
|
2026-09-15 18:57:52 +08:00 |
|
suzmii
|
b395185580
|
补记工具调用卡片契约(脱敏范围、路径形状、状态单调、200 条上限语义)
- docs/technical/【技术方案】GameAgent对话工具调用卡片-2026-09-14.md:
写明同一 id 的快照按 updatedAt 单调合并(旧快照不得把 completed / failed 打回 running,
并发来源是逐条快照落盘与回合末整批落盘两条路径)
- 写明 detail.changes[].path 用项目相对路径(分隔符统一成 /)、项目外绝对路径用 <absolute-path> 占位
- 写明必须脱敏的具体函数链路(sanitize_detail_text:路径归一化 → redact_absolute_path_tokens →
redact_secret_tokens → sanitize_error_context),含敏感 CLI 标志的行整行 fail-closed
(--password 后面即使只是 $VAR 占位符也整行替换),且脱敏必须幂等
- 写明 200 条上限语义是"按时间保留最新 200 条",超出时更早回合的卡片会被静默丢弃(老回合卡片会消失),
不做分页与历史回填(行为不变,只补文档)
- 写明单行损坏(含非法 UTF-8)逐行读取跳过继续,黏连形态只丢那一行
- 新增单测:tool_call_cap_drops_oldest_turn_cards(超出后保留最新 N 条 + 按时间正序)
|
2026-09-15 18:22:53 +08:00 |
|
suzmii
|
9f7aed0b2d
|
工具调用折叠块补齐耗时与时间
- 新增 toolCallGroupPresentation.ts 的耗时 / 时间纯函数:toolCallDurationMs、formatToolCallDuration(0.4s / 12.3s / 2m 5s)、turnToolCallDurationMs、formatTurnDuration(42秒 / 4分钟 / 5分钟 45秒)、formatClockTime、turnToolCallTimeLabel
- ToolCallGroup:块头右侧显示总用时(min(startedAt) → max(updatedAt))与该回合结束时间(拿得到同回合用户消息时间时显示 发送 → 结束)
- ToolCallGroup:展开态每行右侧显示该工具自己的耗时;startedAt 为 0 或时间倒序时不显示耗时(不出现 0s / 负数),running 行显示 执行中
- ToolCallGroup:块与行都带 data-duration-ms(无法计算时为空串),块尾补一行 结束于 HH:mm
- ProjectSupervisorView:按回合把用户消息的 updatedAt 传给块,用于 发送 → 结束 时间显示
- 用例:耗时格式化边界(0 / <1s / 整秒 / ≥60s / 时间倒序)、总用时、每行耗时、无时间戳不渲染耗时
- 技术方案文档补耗时 / 时间 / data-* 契约
|
2026-09-15 17:37:12 +08:00 |
|
suzmii
|
35a46e9a44
|
工具调用改成「一回合一个折叠块」:结构与锚点
- 新增 ToolCallGroup.tsx:块头一行汇总(按 kind 固定顺序计数拼接),展开态每行一条工具,行可二级展开看命令 / 文件变更 / 输出
- 新增 toolCallGroupPresentation.ts:汇总与行文案纯函数(组件文件不导出非组件值)
- 删除 ToolCallCard.tsx:一回合多卡片的旧形态不再使用
- ProjectSupervisorView:工具调用块插到该回合 assistant 消息之前;实时回合还没有 assistant 消息时先落在消息流末尾
- 汇总 / 行文案按契约固定:已执行 N 个命令、… / 已运行、已编辑、已调用、已搜索、已整理上下文、已执行
- appSurface 用例改为断言折叠块:默认折叠、行数 = 工具数、回读历史插在 assistant 消息之前
- 新增 tool-call-group.suite.ts:汇总文案、行文案、默认折叠、行二级展开、空集合不渲染
- 技术方案文档同步第 4 节:一回合一个折叠块的 DOM 与文案契约
|
2026-09-15 17:29:36 +08:00 |
|
kdletters
|
a319a24cba
|
回退Direct回合生命周期规范提交3dfb8056d
回退 3dfb8056d:删除新增的《Direct回合跨页面生命周期与运行中项目可见性》里程碑与实施计划两份文档
回退 3dfb8056d:移除 AGC 主规范中的 Direct 回合跨页面生命周期章节及其快照失败重试条款
|
2026-09-15 15:58:42 +08:00 |
|
kdletters
|
3dfb8056d0
|
新增Direct回合跨页面生命周期规范并固定快照失败重试3次
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 5m13s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 5m19s
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m33s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 5m45s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m33s
Project CI / AI game creator shell Rust crates (push) Successful in 2m57s
Project CI / Frontend tests (push) Successful in 4m7s
Project CI / Repository checks (push) Successful in 3m15s
Project CI / Native shell tests (push) Successful in 6m49s
Project CI / Backend tests (push) Successful in 7m55s
Project CI / AI game creator shell web tests (push) Successful in 2m52s
新增《Direct回合跨页面生命周期与运行中项目可见性》里程碑与实施计划,约定离开项目页面不终止回合、重新进入需恢复忙碌态与进度并以快照 sequence 续接
主规范补充 Direct 回合跨页面行为合同、左上角运行中项目面板契约与验收标准
读取活动回合快照失败改为最多重试 3 次,3 次全部失败才向用户告知失败原因,且不得改写成业务、权限或审批结论
|
2026-09-15 15:54:16 +08:00 |
|