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
|
842d080a75
|
锁定图片缓冲依赖
将 platform-image 使用的 bytes 依赖写入 Cargo.lock。
|
2026-09-11 17:37:32 +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 |
|
k88936
|
a50cbfb6c8
|
过滤图片编辑响应中的空图像数据
忽略上游返回的空 b64_json 条目,避免把空字符串转发为图像结果。
新增空条目与有效条目混合响应的回归测试。
|
2026-09-10 19:04:40 +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
|
acfcf0c158
|
同步 platform-image 的 serde 锁定依赖
为 Raw typed 响应记录 serde workspace 依赖
|
2026-09-09 11:51:25 +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 / Frontend tests (pull_request) Successful in 4m43s
Project CI / Repository checks (pull_request) Failing after 11s
Project CI / Backend tests (pull_request) Failing after 10s
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 |
|
k88936
|
5ee2d940c1
|
修正 Raw 图片尺寸校验错误语义
尺寸校验失败改用请求参数无效语义
补充错误文案回归测试
|
2026-09-09 10:55:36 +08:00 |
|
k88936
|
c75a7725ce
|
Merge remote-tracking branch 'origin/master' into feat/expose-image2edit
Project CI / Repository checks (pull_request) Successful in 2m51s
Project CI / Native shell tests (pull_request) Failing after 4m9s
Project CI / Backend tests (pull_request) Failing after 4m58s
Project CI / Frontend tests (pull_request) Successful in 3m46s
|
2026-09-09 10:42:22 +08:00 |
|
k88936
|
ed86963de2
|
修正 Raw 图片追踪结果类型
明确输出数据集合类型
保持 API 编译检查通过
|
2026-09-08 23:38:25 +08:00 |
|
k88936
|
65e73eee02
|
补充 Raw 图片生成成功追踪
记录成功任务与输出数量
完善上游响应和失败阶段日志
|
2026-09-08 23:25:47 +08:00 |
|
k88936
|
6068eeda83
|
补充 Raw 图片编辑请求日志
记录上游响应状态与耗时
记录传输失败阶段和结构化上下文
|
2026-09-08 23:22:56 +08:00 |
|
k88936
|
0e244c64ea
|
统一 GPT Image 2 尺寸常量
集中维护像素边界和对齐规则
供生成与编辑路径共同引用
|
2026-09-08 22:11:35 +08:00 |
|
kdletters
|
1f904d28e9
|
AGC 客户端 MCP 能力暴露 (#274)
Project CI / Frontend tests (push) Successful in 4m2s
Project CI / Repository checks (push) Successful in 2m16s
Project CI / Backend tests (push) Successful in 10m14s
Project CI / Native shell tests (push) Failing after 19m54s
## 目标
保留现有客户端对话与 Codex app-server 链路,把客户端自身受控业务能力通过 MCP 暴露给 Codex。
## 范围
- 客户端会话、项目文件、资源、画布、生成、预览等稳定能力
- 审核 Skill 的索引与按需指导资源
- 复用现有账号、项目路径、权限、计费、幂等、锁和恢复边界
## 明确不做
- 不替换客户端对话入口或 Codex app-server
- 不让客户端替 Codex 判断高层意图、完成状态或规划
- 不暴露任意 Tauri command、shell、凭据、内部 URL、数据库和管理能力
当前 PR 先建立独立分支与审查边界,后续提交实现与定向验证。
Reviewed-on: #274
|
2026-09-08 22:01:29 +08:00 |
|
k88936
|
ad7c059603
|
遵守 Raw 图片请求截止时间
发送前裁剪有效超时预算
预算耗尽时提前返回结构化错误
|
2026-09-08 21:54:22 +08:00 |
|
k88936
|
55d2a393d1
|
完善 Raw 图片尺寸错误类型
为公开错误实现 Error trait
支持通用错误链处理
|
2026-09-08 21:52:15 +08:00 |
|
k88936
|
e7f66ce950
|
修正 Raw 图片传输失败阶段标记
区分请求发送和响应读取失败
让错误详情准确反映故障阶段
|
2026-09-08 20:03:13 +08:00 |
|
k88936
|
35dcfea3ef
|
修正 Raw 图片输出格式回退
忽略空值后再使用载荷级格式
补充空字符串和 null 回归测试
|
2026-09-08 19:56:41 +08:00 |
|
k88936
|
cea8bf77fa
|
减少 Raw 图片编辑请求拷贝
移动 multipart 选项字段而非克隆
降低掩码和字符串的峰值内存
|
2026-09-08 19:52:13 +08:00 |
|
k88936
|
0136bfe564
|
移出 Raw 图片同步解码
将请求预校验放入阻塞线程
避免占用 Tokio 异步工作线程
|
2026-09-08 19:48:58 +08:00 |
|
k88936
|
22785b4d7b
|
限制 Raw 图片解码资源
为 PNG 解码设置边长和分配上限
避免压缩图片膨胀导致内存耗尽
|
2026-09-08 19:45:02 +08:00 |
|
k88936
|
a86a2ee4d2
|
简化 Raw 图片编辑响应类型
移除无必要的 JSON Value 转换
保持响应结构由类型系统校验
|
2026-09-08 19:32:55 +08:00 |
|
k88936
|
b22eae2726
|
收紧 Raw 图片编辑输入契约
Project CI / Frontend tests (pull_request) Successful in 3m51s
Project CI / Native shell tests (pull_request) Successful in 20m20s
Project CI / Repository checks (pull_request) Failing after 14s
Project CI / Backend tests (pull_request) Failing after 14s
新增 3840 边长、16 像素对齐、3:1 比例和总像素范围校验
要求 image 与 mask 为可完整解码的 PNG 并在扣费前拒绝非法输入
将 Raw 路由 JSON body limit 提升至 64 MiB
同步 Raw 图片编辑技术方案和边界测试
|
2026-09-08 18:18:58 +08:00 |
|
k88936
|
35d0db6377
|
修复 Raw 图片失败审计与响应格式
Project CI / Frontend tests (pull_request) Successful in 6m7s
Project CI / Native shell tests (pull_request) Successful in 19m41s
Project CI / Repository checks (pull_request) Failing after 11s
Project CI / Backend tests (pull_request) Failing after 9s
为 Raw provider 失败分支补齐结构化 failure audit 并接入 api-server 记录链
使用 VectorEngine 响应 output_format 生成返回图片 MIME 与扩展名
补充响应格式和审计字段定向测试并同步技术方案
|
2026-09-08 16:19:29 +08:00 |
|
suzmii
|
456cc42dd3
|
优化泥点流水的素材消耗原因展示 (#302)
Project CI / Repository checks (push) Successful in 1m59s
Project CI / Frontend tests (push) Successful in 3m7s
Project CI / Backend tests (push) Successful in 6m13s
Project CI / Native shell tests (push) Successful in 19m24s
Close #296
## 问题
钱包流水目前只把素材类扣费暴露为 `asset_operation_consume`,共享账单组件统一显示“资产操作消耗”,无法说明本次泥点实际用于哪类素材生成。
## 落地方案
- 在既有钱包流水 metadata 中记录服务端确定的 `assetKind`,不修改 SpacetimeDB schema。
- `api-server` 只将内部素材类型白名单映射为用户可见 `reason`,不暴露原始 metadata、资源 ID 或任务 ID。
- 共享钱包流水契约与组件优先展示具体原因;历史、未知或空 metadata 继续回退为“资产操作消耗”。
- 主站、图片画布与 AGC 继续复用同一共享账单组件。
## 当前进度
- [x] 补充权威后端数据契约
- [x] 写入素材操作类型 metadata
- [x] 扩展钱包流水公开 DTO 与安全映射
- [x] 更新共享账单展示与回归测试
- [x] 完成定向验证与边界检查
## 用户可见映射
- 图片、图标图集、美术规范、UI 设计、发布素材:生成美术素材
- 图片修改:编辑美术素材
- UI 素材提取:提取美术素材
- 角色动画:生成角色动画
- 视频:生成视频素材
- 音效:生成音效素材
- 背景音乐:生成背景音乐
- 历史、未知、空 metadata:资产操作消耗
## 验证
- `cargo fmt --all -- --check`
- `cargo test -p api-server profile_wallet_ledger_reason_only_exposes_known_asset_operations`
- `cargo test -p api-server worker_billing_context_freezes_charge_and_preserves_job_metadata`
- `cargo test -p shared-contracts profile_wallet_ledger_response_uses_camel_case_fields`
- `npx vitest run packages/shared/src/components/PlatformProfileWalletLedgerModal/index.test.tsx`
- `npm run typecheck`
- `npx eslint packages/shared/src/components/PlatformProfileWalletLedgerModal/model.ts packages/shared/src/components/PlatformProfileWalletLedgerModal/index.test.tsx packages/shared/src/contracts/runtime.ts`
- `npm run check:encoding`
- `npm run check:spacetime-schema`
- `git diff --check`
以上均通过;Rust 仅输出仓库已有 dead-code warnings。
## 未验证边界
- 未执行真实登录、生成并读取新钱包流水的端到端联调。本机 `8082/3101` 已由另一套本地栈占用,为避免当前分支挂接同一数据库并带起 worker 处理现有队列,本轮未启动 `npm run dev:api-server`。
- 四项远端 CI 已全部通过,PR 已转为 Ready for review。
## 不变项
- 不修改历史流水数据。
- 不调整泥点价格、扣费顺序、幂等 ledger、失败退款或余额结算。
- 不修改 SpacetimeDB schema。
---------
Co-authored-by: 段舒康 <kdletters@qq.com>
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/302
Co-authored-by: Suzumiya <suzmii@qq.com>
Co-committed-by: Suzumiya <suzmii@qq.com>
|
2026-09-08 14:56:16 +08:00 |
|
k88936
|
f087ba3e2b
|
隔离 Raw 图片代理实现
Project CI / Repository checks (pull_request) Failing after 14s
Project CI / Backend tests (pull_request) Failing after 14s
Project CI / Frontend tests (pull_request) Successful in 36m40s
Project CI / Native shell tests (pull_request) Successful in 54m1s
移除对现有图片编辑 client 与 curl transport 的复用
将 Raw GPT Image 2 请求、multipart 构造和响应解析收敛到独立文件
保持现有 editor 图片链路代码不变
|
2026-09-08 13:54:31 +08:00 |
|
k88936
|
7fc1b841be
|
收口 Raw 图片 base64 校验错误
客户端仅返回稳定的 base64 格式错误提示
补充测试避免泄露解码器内部诊断细节
|
2026-09-08 12:30:55 +08:00 |
|
k88936
|
a576fdcc37
|
移除未使用的 multipart 请求包装函数
无选项测试直接调用统一传输入口
避免生产构建保留未使用函数告警
|
2026-09-08 12:29:59 +08:00 |
|
k88936
|
4dcf38715b
|
补充图片编辑选项 multipart 测试
覆盖质量、背景、输出格式与 mask 文件字段
断言文件名、MIME 类型和字节内容均正确发送
|
2026-09-08 12:21:11 +08:00 |
|
k88936
|
d1f9f4e1ef
|
减少图片编辑 multipart 字节复制
将已克隆的选项按值传入阻塞传输函数
构造 mask 与参考图表单时直接移动字节缓冲
|
2026-09-08 12:16:00 +08:00 |
|
k88936
|
5836aaec26
|
简化图片编辑 multipart 请求分支
统一通过带选项的 multipart 传输函数发送请求
移除冗余包装函数调用与未使用导入
|
2026-09-08 12:10:56 +08:00 |
|
k88936
|
18d60feb04
|
补充 Raw 图片参数预检查
在计费前校验质量、背景和输出格式
规范化可选参数并保持单图请求契约
|
2026-09-08 10:40:09 +08:00 |
|
k88936
|
4e1316e272
|
实现 Raw GPT Image 2 图片编辑代理
新增受 Bearer 保护的 /api/raw/v1/images/edit JSON 路由
按单图 image 与可选 mask 转发 GPT Image 2 参数
固定 model 与 n 并返回仅含 data[].b64_json 的响应
复用钱包计费与退款边界并补充单元测试
|
2026-09-08 10:36:48 +08:00 |
|
suzmii
|
e15e3b455f
|
修复AGC大上下文请求体限制 (#295)
Project CI / Repository checks (push) Successful in 3m12s
Project CI / Frontend tests (push) Successful in 3m21s
Project CI / Backend tests (push) Successful in 7m42s
Project CI / Native shell tests (push) Successful in 20m14s
Project CI / Frontend tests (pull_request) Successful in 50m43s
Project CI / Repository checks (pull_request) Successful in 20m21s
Project CI / Backend tests (pull_request) Successful in 6m18s
Project CI / Native shell tests (pull_request) Successful in 18m19s
## 背景与问题
AGC(AI 游戏创作智能体 App)Direct Codex 模式在携带图片工具结果等大上下文调用 LLM 时,`/api/llm/responses` 与 `/api/llm/chat/completions` 会命中 Axum 默认 **2 MiB** 请求体上限,直接被 413 拒绝,大上下文任务无法执行;同时 Codex app-server 的 failed turn 未把上游 413 映射为稳定错误分类,前端只能显示笼统的“其他错误”,无法引导用户处理。
## 改动内容
**1. api-server(server-rs)**
- 新增常量 `LLM_REQUEST_MAX_BODY_BYTES = 32 MiB`,作为两个 LLM 代理路由的正式请求体上限;
- 两个路由显式配置 `DefaultBodyLimit::max(32 MiB)`,避免 Axum 默认 2 MiB 提前拒绝;handler 内保留超限检查,超过 32 MiB 仍返回 `413 PAYLOAD_TOO_LARGE`;
- 补充回归测试:>2 MiB 大上下文请求不再命中默认限制;超过 32 MiB 仍返回 413。
**2. AGC 壳(apps/ai-game-creator-shell)**
- `codex_app_server` 错误映射:上游/连接层 HTTP 413、`PAYLOAD_TOO_LARGE`、`provider request too large` 等统一映射为稳定分类 `codex-app-server-error:request-too-large`,不再落入 `other` 或误判为权限/安全策略错误;
- 前端新增用户可见文案“模型请求体过大,请减少参考图或上下文后重试”,并补充单测断言。
**3. 文档**
- 【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md 补充“2026-09-06 AGC LLM 代理请求体合同”:明确 32 MiB 上限、必须显式配置 `DefaultBodyLimit`、413 映射规则与用户文案。
## 验证
- `cargo test -p api-server llm_routes_accept_large_context_bodies_beyond_axum_default` 通过
- `cargo test -p api-server llm_responses_rejects_bodies_above_explicit_limit` 通过
- `cargo test ... ai-game-creator-shell ... codex_app_server_failed_turn_maps_request_too_large_details` 通过
- `npm run test -- apps/ai-game-creator-shell/tests/agentRuntimeModel.test.ts`(27 通过)
全量 workspace 测试与 CI 门禁待推送后由 CI 覆盖。
Reviewed-on: #295
Reviewed-by: 段舒康 <kdletters@qq.com>
Co-authored-by: 董羽秦 <suzmii@qq.com>
Co-committed-by: 董羽秦 <suzmii@qq.com>
|
2026-09-07 17:05:42 +08:00 |
|
suzmii
|
736a1b6ac6
|
接入 LLM Router 累计额度结算
Project CI / Repository checks (pull_request) Successful in 2m36s
Project CI / Frontend tests (pull_request) Successful in 3m15s
Project CI / Backend tests (pull_request) Successful in 7m35s
Project CI / Native shell tests (pull_request) Failing after 7m43s
按 Router used_quota 累计值与首次基线结算泥点
新增原子 checkpoint 事务及 llm_router_consume 钱包流水
同步额度查询校验、前端展示、生成绑定和技术文档
|
2026-09-06 00:36:31 +08:00 |
|