k88936
|
9c04561419
|
明确 Raw 编辑零拷贝上传约束
补充 Bytes 所有权与 streaming multipart 注释
增加共享字节缓冲不转换的回归测试
|
2026-09-12 11:18:14 +08:00 |
|
k88936
|
551fb6609a
|
为 Raw 编辑建立独立字节类型
恢复旧图片链路的 Vec 字节契约
让新增 raw_edit 输入和结果类型独立于既有 ReferenceImage
|
2026-09-12 11:15:15 +08:00 |
|
k88936
|
d05440dcca
|
为 Raw 编辑建立独立字节类型
恢复旧图片链路的 Vec 字节契约
让新增 raw_edit 输入和结果类型独立于既有 ReferenceImage
|
2026-09-12 11:13:27 +08:00 |
|
k88936
|
7edf4a8f8b
|
恢复旧图片链路字节类型
Project CI / Repository checks (pull_request) Failing after 13s
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / Frontend tests (pull_request) Successful in 2m43s
Project CI / Native shell tests (pull_request) Failing after 14m6s
撤回非 raw_edit 的全局 Bytes 迁移
保留既有 VectorEngine 与编辑器路径的 Vec 字节契约
|
2026-09-12 11:06:05 +08:00 |
|
k88936
|
545f64cf9e
|
补齐原图编辑失败追踪事件
provider 失败时记录 external_generation_run 失败状态
保留现有外部 API 失败审计与错误映射
|
2026-09-12 10:37:04 +08:00 |
|
k88936
|
478e08fb92
|
将 PNG 依赖限定为测试环境
从生产依赖移除仅测试使用的 png crate
在 dev-dependencies 中声明 PNG 测试依赖
|
2026-09-12 02:13:52 +08:00 |
|
suzmii
|
6cc73b07ac
|
② GameCreationAppManifest 加 deny_unknown_fields:未知顶层字段失败关闭
- shared-contracts 的 GameCreationAppManifest 加 #[serde(deny_unknown_fields)],并写明取向与取舍
- 选「失败关闭」而不是「保留未知字段 round-trip」的理由:AGC 读写 manifest 是「整结构体反序列化 + 整结构体重新序列化覆盖落盘」,放行未知顶层字段就等于让「读一次 + 任意一次写」静默抹掉未来版本新增的字段;而 flatten catch-all 只能覆盖加了它的那一层,tasks / assets / versions / preview / commandRuns 内部的未来新增字段照样被抹掉,且写侧的 skip_serializing_if 会同时把已知字段归一化,落盘结果是「新字段原样 + 旧字段被规范化」的混合体,比直接报错更难排查
- 与既有取向同口径:本批新增的资源布局 sidecar 对未知 schema 就是失败关闭,UpdateLocalProjectResourceClassificationInput 也已 deny_unknown_fields
- 影响面已核实:server-rs 内 game_creation_app 模块只被自身引用,不进 /api/external/v1、不进 SpacetimeDB;全仓 GameCreationAppManifest 的反序列化点只有 src-tauri 的 read_manifest 一处;仓库自带 smoke 脚本写的 manifest 只有 schemaVersion/projectId/name/assets 四个已知键
- 断言:shared-contracts 补契约级用例(未知顶层字段反序列化失败且报出字段名、已知字段含可选字段照旧往返);project/manifest/import_tests.rs 补消费侧用例(纯读报错、读+写入口 mutate_manifest_at 也报错、两次失败后磁盘文件逐字节未变即未知字段没被抹掉)
|
2026-09-11 21:18:29 +08:00 |
|
lhk229
|
d9530047db
|
兼容缺少槽位的非工具 Responses 事件
Project CI / Repository checks (pull_request) Successful in 2m41s
Project CI / Frontend tests (pull_request) Successful in 3m13s
Project CI / Backend tests (pull_request) Successful in 6m10s
Project CI / Native shell tests (pull_request) Successful in 19m54s
非 function_call output item 缺少 output_index 时忽略
保留 function_call 槽位缺失的 fail-closed 契约并补回归测试
|
2026-09-11 12:33:37 +00:00 |
|
k88936
|
e7af7cf4e4
|
校验处理图区域并明确 multipart 字节上传
将处理图真实尺寸传入视觉绑定校验,提前拒绝零尺寸和越界区域。
保持非法区域直接失败,不转换为 NeedRework。
将 image 和 mask multipart 部分改为 Part::bytes。
|
2026-09-11 20:11:11 +08:00 |
|
k88936
|
c743ca146e
|
复用图像下载的共享字节缓冲
将 DownloadedImage.bytes 改为 bytes::Bytes。
让远程下载和图标切片下游避免不必要的完整复制。
同步更新图像处理实现与测试 fixture。
|
2026-09-11 19:53:14 +08:00 |
|
suzmii
|
1be5218aeb
|
kind 别名表查表加 Object.hasOwn 守卫:原型键不再被误当成别名
- `canonicalGameCreationAppAssetKind`(TS)此前用对象字面量直接下标查别名表:`kind` 是外部输入,`constructor` / `__proto__` / `toString` / `valueOf` / `hasOwnProperty` 会命中 `Object.prototype` 上的成员,被当成 canonical kind 返回(`__proto__` 返回原型对象本身);Rust 侧是 `match` 字面量,只会落 `image` 兜底,同一输入两侧分叉
- 改用 `Object.hasOwn(GAME_CREATION_APP_LEGACY_ASSET_KINDS, normalized)` 先确认命中的是表自己的键,再取值;`noUncheckedIndexedAccess` 下仍保留一次取值后的 truthy 判定
- 补断言(无断言的边界修法下次会被改回去):`gameCreationApp.test.ts` 对 `constructor` / `__proto__` / `toString` / `valueOf` / `hasOwnProperty` 逐条断言 `canonicalGameCreationAppAssetKind` 落 `image`、`gameCreationAppAssetCategoryForKind` 落 `unclassified`
- 跨语言对照:`assetKindCanonicalMapping.test.ts` 的 `decided` 表新增 `constructor` 与 `__proto__` 两行(`image` / `unclassified`),与 TS 同一份口径对照
- Rust 侧同步断言:`game_creation_app.rs` 的 `asset_category_mapping_covers_every_canonical_kind` 补 `constructor` / `__proto__` / `toString` / `valueOf` 必须落 `image` 与 `unclassified`,把「两侧一致」这件事写进两侧各自的用例
- 边界范围:只收口「原型成员被当成别名」这一种极端输入;`kind` 的正常词表、大小写口径与读时自愈规则不变,manifest 字段构成与顺序不变
|
2026-09-11 19:44:04 +08:00 |
|
k88936
|
04a0d21351
|
避免原始 PNG 的重复解析
使用解码后的颜色类型校验位深,将读取限制统一留在 image 解码器。
|
2026-09-11 19:03:03 +08:00 |
|
suzmii
|
3082c3e854
|
kind 别名表大小写不敏感并收口 font:堵住 8 条 UI 资产永远落「待归类」
- `canonical_game_creation_app_asset_kind`(Rust)与 `canonicalGameCreationAppAssetKind`(TS)改为对 trim 后的小写值查别名表与 canonical 目录,修正「UI 设计资产的现役写入侧写的是大写 `"UI"`」这条真机事实
- 别名表补 `font → document`:字体上传(`ttf / otf / woff / woff2`)登记的 manifest `kind` 就是 `font`
- 为什么必须在别名表收口、读时自愈救不回来:`"UI"` 与 `"font"` 的派生结果本身就是 `unclassified`,自愈规则「派生值不是 unclassified 才触发」永不成立;真机 8 条 `kind:"UI"` + `mediaType:"application/json"` + `localPath:"ui/UI 设计 N.json"` 与写入路径逐字段吻合
- 改写 Rust 断言 `game_creation_app_asset_category_for_kind("UI") == Unclassified` → `UiInteraction`,并补 `canonical_...("UI") == "ui-design"` 与 `font == Document`:旧断言把这条 bug 钉成了「期望行为」,新形态才是唯一真源——写入侧真实写出的 kind 必须能落进明确栏目,否则真机资产永远归不了类
- 改写 TS 断言 `gameCreationAppAssetCategoryForKind('UI') == 'unclassified'` → `'ui-interaction'`,理由同上
- `game_creation_app.rs` 里「现役写入侧仍会写出这些非 canonical 值,必须在这里收口」的注释此前只收口了小写 `ui`,与大写写入侧矛盾,现按注释本意收口
- 新增写侧→分类的端到端契约用例:`resource_bridge.rs` 的 `bridge_is_idempotent_and_installs_source_image` 走真实生产函数 → 真实 `register_local_asset_at(..., "UI", ...)` → 断言落盘 `category` 为 `ui-interaction`
- 新增 `assetKindCanonicalMapping.test.ts` 的「写侧 kind 字面量 → 分类」用例组:直接解析 UI 编辑器写侧源码第 3 个实参,写点换个新字面量就会红,防下次再漏
|
2026-09-11 18:46:58 +08:00 |
|
suzmii
|
458a65cb5e
|
资源分类读显示口径下沉到 Rust:Agent 投影与 UI 同构
- 新增 `game_creation_app_asset_effective_category`:读显示口径的唯一实现——落盘 `category` 权威,仅在落盘值为 `unclassified` 且该资产 `kind` 能派生出明确的非 `unclassified` 分类时采用派生值,其余信任落盘值
- `GameCreationAppAssetManifestEntry` 的反序列化刻意不做自愈:反序列化结果就是落盘原值,「编辑标签」面板要靠它原样回写;自愈只属于读显示口径
- Agent 资源投影 `bridge_registered_resource` 不再直接透传 `asset.category`,改走有效分类,修掉真机 122 条资产里 55 条「UI 显示 UI 交互、Agent 读到待归类」的跨端口径分歧
- 新增 Rust 决策矩阵 `EFFECTIVE_CATEGORY_CONTRACT` 与用例 `asset_effective_category_follows_the_shared_contract_matrix`,矩阵是「落盘值 / kind 派生 / 读时自愈」三个口径的唯一真源
- 新增跨语言契约:`assetKindCanonicalMapping.test.ts` 解析 Rust 源码里的决策矩阵与 canonical kind→栏目表,逐条喂给 TS `gameCreationAppAssetCategory` 对照,任一侧改口径都会红
- `direct_tool_bridge` 新增 Agent 侧回归用例:`kind:"ui" + category:"unclassified"` 必须投影成 `ui-interaction`
- 既有用例 `..._projects_manifest_classification_verbatim` 更名为 `..._keeps_explicit_manifest_classification`:逐字透传只在落盘值不是 `unclassified` 时成立,旧名字会与新的有效分类语义矛盾
|
2026-09-11 18:43:39 +08:00 |
|
k88936
|
4749339bad
|
补齐图片字节类型导出与转换
Project CI / Repository checks (pull_request) Failing after 31s
Project CI / Backend tests (pull_request) Failing after 13s
Project CI / Frontend tests (pull_request) Successful in 3m56s
Project CI / Native shell tests (pull_request) Failing after 3m33s
导出共享 GPT 图片尺寸阈值常量。
修复编辑器参考图 Bytes 与 Vec 边界转换。
|
2026-09-11 18:02:04 +08:00 |
|
k88936
|
3e85c71060
|
整理图片代理代码格式
按 Rust 格式化规范整理 multipart 与响应解析代码。
|
2026-09-11 17:55:50 +08:00 |
|
k88936
|
4a32ee37c4
|
修复 Bytes 迁移后的图片类型边界
统一使用 Bytes 的只读引用并在旧 Vec 接口处显式转换。
修复编辑器参考图对齐与 Raw PNG 解码编译错误。
|
2026-09-11 17:52:00 +08:00 |
|
k88936
|
31fd1da495
|
修正 GPT 图片响应契约说明
仅保留 GPT-Image-2 原生 b64_json 行为的行内注释。
不发送 response_format 参数,也不引入 URL 兼容下载。
|
2026-09-11 17:48:55 +08:00 |
|
k88936
|
4c88e5e924
|
限制 Raw 图片仅接收八位 PNG
使用 png 解码器读取位深并在 image 解码前拒绝非八位输入。
统一返回稳定的 8-bit PNG 客户端错误并补充十六位 PNG 测试。
|
2026-09-11 17:48:01 +08:00 |
|
k88936
|
99f4961c5f
|
统一 GPT 图片尺寸计费阈值
提取共享的 1536 长边 tier 常量并复用到 raw 与编辑器计费。
同步 Raw 图片代理技术合同中的阈值来源。
|
2026-09-11 17:47:31 +08:00 |
|
k88936
|
b357d36262
|
明确 GPT 图片编辑响应格式
原始图片编辑请求固定声明 response_format=b64_json。
补充 GPT-Image-2 仅返回 b64_json 的契约行内注释。
|
2026-09-11 17:29:11 +08:00 |
|
k88936
|
48c5638893
|
扩大原始图片文本字段上限
multipart 文本字段改为 chunk 流式读取并限制 16KB。
统一 UTF-8 校验和超限错误,避免先完整分配超长 prompt。
|
2026-09-11 17:28:13 +08:00 |
|
k88936
|
46df12c086
|
收敛原始图片 multipart 错误
服务端记录解析原始错误,客户端仅返回稳定分类文案。
|
2026-09-11 17:26:33 +08:00 |
|
k88936
|
4bdbab29c0
|
优化原始图片请求缓冲
将 ReferenceImage 与 multipart 输入改用 bytes::Bytes。
通过流式 multipart part 避免 reqwest 路径的额外整图复制。
|
2026-09-11 17:25:25 +08:00 |
|
suzmii
|
2c9e6fe272
|
修正 BGM 提示词助手限流用例的断言口径:只承诺客户端可见语义
Project CI / Repository checks (pull_request) Successful in 2m34s
Project CI / Frontend tests (pull_request) Successful in 3m4s
Project CI / Backend tests (pull_request) Successful in 6m32s
Project CI / Native shell tests (pull_request) Successful in 18m5s
- server-rs/crates/api-server/src/editor_background_music_prompt_assist.rs:consecutive_valid_requests_are_not_subject_to_a_feature_rate_limit
的 assert_eq!(mock.finish().len(), 4) 改为「到达 provider 的请求不少于 4 次」,并在该断言失败时打印捕获到的请求原文
为什么新形态才是它真正承诺的语义:用例名只承诺「连续合法请求不被特性限流」,那是客户端可见口径;
本模块的简化路径本身允许一轮内容重试(同文件 simplification_retries_* 四条用例正是它的定向覆盖),
因此 provider 的精确调用次数是实现细节,把它钉死会让一次合法重试变成假红。
「4 次调用都到达 provider」与原有的 200/非 429 断言都保留:短路、提前拒绝、限流仍然会红。
根因见 #327 问题 2.2(PR #316 run 1950:left: 5, right: 4)。
|
2026-09-11 16:31:35 +08:00 |
|
suzmii
|
f9e24f4e16
|
修复 bgfilter_worker 测试端口 TOCTOU:不再借用内核临时端口
- server-rs/crates/api-server/src/bgfilter_worker.rs:reserved_loopback_port 不再 bind("127.0.0.1:0") 取临时端口后 drop,
改为在内核动态端口范围之外的固定测试带(20000-29999)内按进程内游标递增分配,并先探测可用性落点
- 同一文件:4 处调用点去掉不再需要的 .await(该 helper 现在是同步分配)
这样「先保持端口关闭、约 700ms 后才开始监听」的重启用例在整个空窗期内独占该端口,
重新 bind 不会再被同一测试二进制里其它用例的 bind(0) 抢走。
根因与证据见 #327 问题 2.1。本机 Windows 复现不出该抢占(动态端口范围 49152-65535,
连续 200 次 bind(0) 无一重复、也已实测刚释放的端口不被立即重新派发),它是 Linux 侧特性。
|
2026-09-11 16:31:17 +08:00 |
|
lhk229
|
f2f786d69b
|
修复策划 Agent 模型选择链路
保存策划会话的模型目录 ID并交由 api-server 解析
移除官方直连路径的固定模型并补齐 AGC 客户端标记
|
2026-09-11 05:51:35 +00:00 |
|
suzmii
|
caa188873d
|
删掉快速编辑目标校验里已失效的 generationInputs 形参
- `ensure_editor_image_edit_target_matches_source` 的 `generation_inputs` 形参在来源类型判据改为静态图集合、且 AGC 例外分支删除后再无任何使用,函数体内已无引用
- 同步删除该形参,并更新 1 处生产调用点与 8 处用例调用点传入的多余实参
- 该形参此前只用于把 generationInputs 透传给已删除的 `_for_request` 包装层,删除后判据与请求体字段彻底解耦
|
2026-09-11 12:14:40 +08:00 |
|
suzmii
|
49a30d51ff
|
修正 icon 全局放行后的两处判据:删掉死分支并更新旧断言
- 删除 `ensure_editor_image_edit_source_kind_allowed_for_request` 里 `AGC && assetKind=="icon" → Ok` 的例外分支:`icon` 已进静态图类型表被全局放行,该分支恒不改变判定结果
- 连带删除因此不再被引用的 `is_game_creator_resource_editor_generation` 与其定向用例(同一 scope 无人调用);AGC 来源别名口径仍由 `EditorGenerationQueueResultContext::from_job` 的 queue consumer 判定承担并有既有用例覆盖
- 两处调用点改为直接调 `ensure_editor_image_edit_source_kind_allowed`,删掉没有行为的 `_for_request` 包装层与 `generation_inputs` 形参
- 旧用例 `game_creator_resource_editor_bypasses_quick_edit_whitelist_only_for_its_source` 改名 `quick_edit_source_kind_policy_ignores_generation_source`,改为断言来源类型判据与 generation source 无关
- 修正 master 侧旧断言 `editor_image_edit_target_binding_prefers_object_id_and_fails_closed`:反例 effective_asset_kind 从 `icon` 换成仍被拒的 `character-animation`,断言保持 Err,守卫意图(目标图层不能借壳成允许来源)不变
|
2026-09-11 12:11:37 +08:00 |
|
suzmii
|
a5aba86493
|
修 rustfmt:editor_project 新增行按仓库格式折行
- `ensure_editor_image_edit_source_kind_allowed` 的 `is_none_or(...)` 折叠为仓库 rustfmt 口径的换行
- 白名单用例里 `ensure_editor_image_edit_source_kind_allowed(Some("art-spritesheet"), Some("video"))` 断行
- `is_game_creator_resource_editor_generation(Some(&json!({})))` 断言断行
- `let queued_payload: Value = serde_json::from_str(...)` 折行
- 仅 `server-rs/crates/api-server/src/editor_project.rs` 一个文件,无其他文件被 rustfmt 改动
|
2026-09-11 12:08:06 +08:00 |
|
suzmii
|
c5df56d855
|
补齐资源 kind 别名表:ui 归 UI 交互,game-* 归代码,animation 归角色
- TS 侧 GAME_CREATION_APP_LEGACY_ASSET_KINDS 补 5 条别名:ui → ui-design、game-entry/game-script/game-style → code、animation → character-animation、asset → image
- Rust 侧 canonical_game_creation_app_asset_kind 同步补齐同一批别名,两侧必须成对维护
- 按拍板口径不往 GAME_CREATION_APP_CANONICAL_ASSET_KINDS 加新 kind,避免出现 ui 与 ui-design 两个同义 kind
- 保持 art-spritesheet-slice → icon → ui-interaction 不动
- 补注释写明别名表的职责是「线上值 → canonical」而非仅收历史遗留,画板导出等现役写入侧同样要在这里收口
- 新增 assetKindCanonicalMapping.test.ts:解析 Rust 源码交叉钉住两侧 canonical 目录与别名映射逐条一致,并逐条断言已拍板的 kind → canonical → 栏目口径
- 新增 resourceCardPreviewRealManifest.test.ts:按真机 manifest 逐条形状可执行地数出预览分支与栏目分布(raster-image 52 / placeholder 8 / code 1;unclassified 58 / ui-interaction 2 / scene 1)
- 真机取证用例同时钉住「别名只救新登记、不救存量」:57 条 ui 的落盘 category 仍是 unclassified,需读时重派生或一次性回填才能归位
- 修正两条按旧错误栏目断言的既有用例:kind=ui 的上传图归「UI 交互」、animation 视频归「角色与对象」
|
2026-09-10 21:18:55 +08:00 |
|
lhk229
|
8a93d69590
|
流式 Responses 从增量事件累积原生 output
completed 未带 output 时保留 output_item 与工具参数
补空 completed 与顶层 output 的回放测试并记录排障
|
2026-09-10 12:21:59 +00:00 |
|
suzmii
|
6f09bf3a00
|
AGC 资源画布分区轴改为 6 类资产分类加独立项目版本栏目(阶段一:契约与读时映射)
- 契约层新增 PROJECT_RESOURCE_CANVAS_SECTIONS:6 类资产分类加末尾独立的项目版本栏目,并补齐分区类型
- 契约层新增旧四 / 五栏目取值白名单、Persisted 联合类型与两个类型守卫
- Rust 契约 ProjectResourceCanvasSection 增补 7 个现行 variant 并保留 Code / Art 旧值,新增同名分区常量
- Rust 契约不升 game-creator-resource-layout.v1 版本、不给未知 section 加兜底,损坏 payload 继续失败关闭
- 新增 resourceCanvasSectionMapping.ts:旧栏目到现行分区的映射表、回落栏目与读时归一化
- 读时归一化只改写 section,x / y / manuallyPlaced 原样保留,无法归并时沿用既有丢弃行为
- resourceProjectionModel 把扩展名分类器更名为 projectedResourceKind 并收敛为准入与显示类型
- resourceProjectionModel 新增 projectResourceCanvasCategory:项目版本独立成栏、Agent 回执归文档、其余按资产分类
- Rust resource_layout 测试夹具改用现行分区值,并新增既有旧 section sidecar 仍可读取的用例
- 新增 resourceCanvasSectionMapping 测试:旧值乘目标栏目矩阵覆盖坐标保留、section 改写、changed 判定与回落列不变量
- projectResourceProjectionModel 测试新增 7 栏分区投影、项目版本独立成栏与只登记游戏代码项目落在待归类
- 同步 PRD、GameAgent 资源自由画板技术方案、AGC 实施计划与共享记忆决策记录的分区口径
|
2026-09-10 19:57:34 +08:00 |
|
k88936
|
a50cbfb6c8
|
过滤图片编辑响应中的空图像数据
忽略上游返回的空 b64_json 条目,避免把空字符串转发为图像结果。
新增空条目与有效条目混合响应的回归测试。
|
2026-09-10 19:04:40 +08:00 |
|
suzmii
|
8c74e5f97c
|
修正 AGC 图片快速编辑的 400 判据测试:补 art-spritesheet / ui 正向用例并钉住请求级链路
- 服务端白名单用例改为按静态图集合断言,新增 `art-spritesheet` / `ui` / `ui-prototype` / `game-art` / `game-background` / `art-spritesheet-slice` 正向用例
- 保留 `future-kind` / `video` / `audio` / `image-sequence` / `character-animation` / `document` / `code` 负向用例,并补 mediaType AND 门用例
- 新增请求级回归用例 `game_creator_client_quick_edit_accepts_local_manifest_static_image_kinds`,按 AGC 客户端真实请求体(source 已改写为 ai-game-creator-client)覆盖放行与拒绝两侧
- 新增 `game_creator_client_source_is_recognized_as_game_creator_resource_editor`,把 source 别名与队列 consumer 判定钉在同口径
- 修正 icon 相关旧断言:`icon` 已是共享契约静态图类型,改断言 non-static 媒体仍被拒
|
2026-09-10 19:01:04 +08:00 |
|
suzmii
|
9e59abde53
|
修复 AGC 图片快速编辑被平台 400 拒绝:来源类型表改为与共享契约对齐的静态图集合
- `ensure_editor_image_edit_source_kind_allowed` 的白名单换成静态图类型表 `EDITOR_IMAGE_EDIT_STATIC_IMAGE_ASSET_KINDS`(canonical 静态图类型 + 合法 legacy 类型)
- 保留 `mediaType == image` 的 AND 门,视频 / 音频 / 序列帧等非静态媒体照旧拒绝
- 覆盖实测被拒的 `art-spritesheet` / `ui`,以及 canonical 映射输入域 `art-spritesheet-slice` / `ui-prototype` / `game-art` / `game-background` / `character-art` / `illustration`
|
2026-09-10 19:00:52 +08:00 |
|
suzmii
|
6a11032084
|
修复 AGC 图片快速编辑被平台 400 拒绝:服务端认 ai-game-creator-client 来源别名
- `is_game_creator_resource_editor_generation` 增加 `GAME_CREATOR_CLIENT_GENERATION_SOURCE` 别名,与 `from_job` 的队列 consumer 判定同口径
- AGC 客户端发送前会把 `generationInputs.source` 改写成 `ai-game-creator-client`,原来只认 `game-creator-resource-editor`,导致该分支对真实请求永远不生效
|
2026-09-10 19:00:44 +08:00 |
|
lhk229
|
a38eec743a
|
补齐 LlmRunRequest 字面量的 responses_input 字段
Project CI / Repository checks (pull_request) Failing after 1m18s
Project CI / Frontend tests (pull_request) Failing after 2m15s
Project CI / Native shell tests (pull_request) Failing after 4m59s
Project CI / Backend tests (pull_request) Successful in 6m10s
api-server LLM 代理与 platform-agent 适配器补 None
避免 cargo run api-server 因缺字段编不过
|
2026-09-10 10:59:13 +00:00 |
|
lhk229
|
aaa52c2b34
|
接入策划 Agent 生产迁移初版
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
新增独立设计会话、工作区工具和随包资源
platform-llm 支持 Responses 原生 input 续轮
无旧 V2 会话的策划入口切换到新设计 Agent
增加阶段审批、澄清卡和工作区文件浏览
同步迁移方案与决策记录
|
2026-09-10 08:45:11 +00:00 |
|
suzmii
|
f84d0ea4d0
|
AGC 资源功能分类与自定义标签数据层
- manifest 资源条目末尾新增 category(单值 6 类,默认 unclassified)与 tags(字符串数组,默认空数组),两字段始终序列化
- shared-contracts 新增 GameCreationAppAssetCategory 枚举、GAME_CREATION_APP_ASSET_CATEGORIES 与穷举 16 个 canonical kind 的默认映射表 GAME_CREATION_APP_ASSET_CATEGORY_BY_KIND
- 历史 manifest 缺少字段时按 kind 派生分类、tags 取空数组;显式合法分类原样保留,未知分类字符串按前向兼容退回 kind 派生
- packages/shared 同步 TS 契约:分类常量与类型、映射表、gameCreationAppAssetCategory / gameCreationAppAssetTags 取值 helper 与 tags 归一化 helper
- 收编壳内 17 处 Rust 构造点:新建条目写 kind 派生默认值,更新既有条目保留已有 category / tags
- 补契约测试:字段 round-trip、默认值、legacy 兼容、未知分类前向兼容、16 项映射穷举、tags 归一化
- 同步 docs/technical 技术方案与 docs/project-memory decision-log
|
2026-09-09 21:10:01 +08:00 |
|
suzmii
|
57a5b642fc
|
建立AGC资源语义类型契约
共享契约新增 canonical 资源类型目录和历史类型读时映射
角色动画派生结果写入 character-animation 主类型
补充角色动画落盘与 legacy 类型映射回归测试
更新资源自由画板技术方案的类型边界说明
|
2026-09-09 15:03:54 +08:00 |
|
k88936
|
0400103a19
|
将 Raw 图片编辑入站改为 multipart
移除 JSON/base64 入站兼容,仅接受 multipart 图片与参数字段
复用扣费前 PNG、尺寸、mask 和 prompt 校验并补充 multipart 测试
优化上游图片字节转发,避免再次克隆 image bytes
同步 Raw 图片编辑技术方案与 Axum multipart 依赖
|
2026-09-09 13:06:22 +08:00 |
|
k88936
|
c049d68b8e
|
收紧 Raw 成功响应字段类型
要求 data 与 b64_json 必填并移除无用 provider id
prompt 上限调整为 4 KiB 原始字节并同步文档
|
2026-09-09 12:03:03 +08:00 |
|
k88936
|
5bbedd9a5c
|
限制 Raw prompt 原始字节大小
将 prompt UTF-8 原始字节限制为 16 KiB
补充超限回归测试并同步请求合同
|
2026-09-09 11:50:30 +08:00 |
|
k88936
|
40316d82c4
|
在扣费前校验 Raw mask 尺寸
解码时保留 image 与 mask 宽高并拒绝不一致输入
同步 Raw 图片编辑请求合同与回归测试
|
2026-09-09 11:45:44 +08:00 |
|
k88936
|
6c77de4a36
|
为 Raw 成功响应收紧类型透传
使用 typed JSON DTO 提取并原样转发 b64_json
不解码图片内容且忽略 output_format 回显
|
2026-09-09 11:44:31 +08:00 |
|
k88936
|
b3693765ef
|
透传 Raw 图片结果避免解码回显字段
仅转发上游 data.b64_json 并忽略 output_format
同步 Raw 技术方案并补充不解码回归测试
|
2026-09-09 11:34:41 +08:00 |
|
k88936
|
f7edc9d0ee
|
区分 Raw 图片 PNG 资源限制错误
Project CI / Repository checks (pull_request) Failing after 11s
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / Frontend tests (pull_request) Successful in 4m43s
Project CI / Native shell tests (pull_request) Failing after 5m14s
将有效但超出解码限制的 PNG 映射为明确的 400 提示
补充超大合法 PNG 的回归测试
|
2026-09-09 11:04:44 +08:00 |
|
k88936
|
f60771dd00
|
提前检查 Raw 图片请求预算
在构造 multipart 表单前校验请求 deadline
避免预算耗尽时复制输入图片并缩短耗时统计范围
|
2026-09-09 10:58:48 +08:00 |
|
k88936
|
f7cccd8592
|
补充 Raw 图片客户端错误上下文
为 HTTP 客户端构造失败统一保留操作上下文
补充配置错误文案回归测试
|
2026-09-09 10:57:04 +08:00 |
|