lhk229
|
fa64bfb475
|
源图解码加尺寸/分配上限,堵住解压炸弹风险
两处在缩图前直接 image::load_from_memory:背景色过滤的参考图(请求体 data URL)
与阿里云抠图源图。缺省 image::Limits 无尺寸上限、仅 512MiB alloc 兜底,12MB 请求体
即可构造巨幅压缩图在解码阶段撑爆内存,逐帧动画并发时叠加。
改用带 Limits 的 ImageReader(边长 ≤8192、alloc ≤128MiB),与结果解码同口径。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-10 08:38:07 +00:00 |
|
lhk229
|
0dd34d1a65
|
抠图结果下载/解码加大小与尺寸上限,防止上游响应撑爆内存
response.bytes() 直接分配任意大小响应,作为 BgFilter 降级路径且逐帧动画可并发多次
调用,异常/恶意上游会造成 API 进程内存压力。复用 BgFilter 路径的做法:
- 下载:先按 Content-Length 拒绝,再流式 chunk 累加,超 32MB 立即中断
- 解码:ImageReader + Limits(边长 ≤8192、max_alloc 上限)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-10 07:56:37 +00:00 |
|
lhk229
|
25d5baed8f
|
背景色决策挪到预扣泥点之后,避免余额不足/失败时白发决策
生图 / 动作生视频 / 图标 spritesheet / UI 提取四条链路此前都在扣费前跑 gpt-5-mini
背景色决策,导致用户余额不足或生成注定失败时仍白发一次决策,平台白付 token。
改为:预扣前只做颜色无关的算价 / 校验 / settings(动画用默认色占位算价,与队列
路径一致),把决策及颜色相关的 prompt / 合成 / generation_inputs 搬进
execute_billable_asset_operation_with_cost 的闭包,闭包把决策结果带出供后续抠图
与落库使用。语义:余额不足则决策不跑(平台零成本);决策失败则闭包返 Err 走失败
退款(用户不损失泥点)。四条 _for_owner 函数同时覆盖 worker / inline / agent /
external-API 所有入口。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-10 07:02:20 +00:00 |
|
lhk229
|
899687e6e0
|
无图背景色决策改走独立文本档 gpt-5-mini
无源图路径此前继承 state.llm_client()(Ark/豆包),选色能力弱、且线上从未
调用过 VectorEngine。新增独立常量 EDITOR_SCREEN_BACKGROUND_TEXT_LLM_MODEL,
让无图决策也走 VectorEngine gpt-5-mini(Responses 协议 + reasoning=low),与
有图视觉档区分、便于各自调参;gpt5 客户端未配置时才降级回默认文本客户端。
附两个 #[ignore] 真机联调测试,验证有图/无图两条路径真实调用 VectorEngine。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-10 07:01:57 +00:00 |
|
lhk229
|
d125f9ca54
|
Merge remote-tracking branch 'origin/master' into feat/video-BGfilter
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
|
2026-07-10 02:57:50 +00:00 |
|
lhk229
|
cf7f75cb6f
|
脱敏 VIAPI 临时桶上传错误体,避免泄漏 STS 临时凭证
OSS 签名类错误(如 SignatureDoesNotMatch)会在错误体里回显 StringToSign
(含 x-oss-security-token 明文)、StringToSignBytes(十六进制)和 SignatureProvided。
原实现把该错误体裸拼进 MattingError 消息,随后经 aliyun_matting 进入
external_api_call_failure 审计的 errorMessage/rawExcerpt 与 OTLP 日志,
泄漏 STS 临时凭证。
- 上传非 2xx 分支改用 sanitize_oss_upload_error_body:剥掉 StringToSign /
StringToSignBytes / SignatureProvided 三个元素,并把已知 security_token
在正文任何位置的出现替换为 ***,保留 <Code> 供诊断后再记录。
- 新增 redact_xml_element(无正则依赖)与单测覆盖脱敏效果。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-10 02:49:30 +00:00 |
|
kdletters
|
2de9b79e69
|
修复充值过期补偿确认竞态
调整微信充值确认终态判断,未完成补偿查单的 expired 不再提前结束。
让 SSE 客户端和前端确认流程等待补偿后的 paid 或已检查 expired。
补充 unchecked expired 到 paid 的回归测试。
|
2026-07-10 02:09:59 +08:00 |
|
kdletters
|
00ff425e03
|
改造充值订单过期补偿流程
新增 SpacetimeDB 原生充值订单过期 timer 与 expired 状态。
移除 api-server 轮询 worker,改为 HTTP 角色订阅 Pending 到 Expired 事件并查单补偿。
统一微信下单 5 分钟 time_expire,并恢复前端支付通道选择与 expired 展示。
补齐生成绑定、前后端契约、测试和项目文档。
|
2026-07-10 01:37:53 +08:00 |
|
lhk229
|
d3c3823c43
|
Merge remote-tracking branch 'origin/master' into feat/video-BGfilter
|
2026-07-09 13:58:50 +00:00 |
|
lhk229
|
b342f1eecb
|
修复问题:阿里云未配置/禁用会被记录成可重试的外部 503 失败。
|
2026-07-09 13:53:12 +00:00 |
|
lhk229
|
1aaf075724
|
阿里云抠图输入按格式/大小/分辨率限制归一化
原实现只按边长缩放,未缩放时直接上传原始 bytes 却固定声明 image/png:
小尺寸大体积 PNG、JPEG/WebP 原图、或异常位深 PNG 可能被上游 4xx 拒绝,
静默降级到低质量本地扣色。按阿里云 SegmentCommonImage 输入限制归一化:
- 格式:统一 to_rgba8 + encode_rgba_png,永远产出 8 位 RGBA PNG,消除 MIME
名不副实与 8/16/64 位 PNG / 非 PNG 不受支持的问题。
- 大小:MAX_INPUT_BYTES=3MB,编码后超限则等比降尺寸重编码,直到达标。
- 分辨率:最长边 ≤1999 保留;新增每边 >32 的短路,过小图直接 InvalidRequest
让调用方走本地兜底,省一次注定 4xx 的往返。
- URL:object 叶子名 ASCII 过滤,保证 ImageURL 不含中文/非 ASCII。
- 抽出 normalize_matting_input_png(_within),alpha 上采样按实际上传尺寸是否
变化判定(覆盖边长缩 + 体积缩两种情况),补 3 个单测。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-09 13:50:55 +00:00 |
|
lhk229
|
e796cefe9f
|
脱敏阿里云抠图结果下载错误
避免临时 OSS 签名 URL 进入日志和审计 metadata
补充结果下载错误脱敏单测
|
2026-07-09 13:02:29 +00:00 |
|
kdletters
|
6ddde830ef
|
修复钱包流水枚举追加顺序
将会员周期流水枚举追加到已发布枚举末尾
重新生成 SpacetimeDB Rust 绑定保持枚举判别序号兼容
补充 SpacetimeDB 持久化枚举追加约束文档
|
2026-07-09 20:12:16 +08:00 |
|
kdletters
|
12ba0e95f3
|
修复会员旧档迁移与周期权益
修正旧月季年会员迁移到新同级档位的购买判定
修正 active 升级后续周期天数切换为新商品配置
修正 mock 立即结算订单先按支付前会员状态定价
修正会员商品周期泥点文案按周期天数展示
补充会员迁移升级与前端周期文案测试
|
2026-07-09 18:16:34 +08:00 |
|
lhk229
|
778b94e0ea
|
修复 BgFilter 熔断打开时绕过阿里云兜底直接本地扣色
circuit open 时直接 return 本地键色扣除,使同函数后面的阿里云兜底不可达;
BgFilter 一旦连续失败触发 cooldown,整段冷却期从「BgFilter→阿里云→本地」
双供应商降级退化成只剩低质量本地扣色。
- 抽出统一兜底链 fallback_editor_screen_background_removal(阿里云→本地),
熔断打开与 BgFilter 调用失败两条路径共用:熔断只跳过 BgFilter HTTP 调用本身,
仍先试阿里云。阿里云失败审计逻辑原样搬入 helper,零行为改动。
- 日志 tag 改为 editor_bgfilter_circuit_open_fallback_to_aliyun_matting,如实反映。
- 结构测试升级为 in-order 断言,钉死「熔断→fallback→请求→fallback」与
helper 内「阿里云→本地」顺序,防止回退成直接本地扣色。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-09 10:16:26 +00:00 |
|
lhk229
|
e15e86729e
|
Merge remote-tracking branch 'origin/master' into feat/video-BGfilter
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
|
2026-07-09 09:37:12 +00:00 |
|
lhk229
|
00ce3a275c
|
修复非超时 transport 抠图失败被记为不可重试
record_matting_external_api_failure 计算 retryable 时把 connect(transport)
参数硬编码为 false,导致 DNS / 连接重置 / body-read 中断这类 status_code=None、
timeout=false 的传输失败落在 statusClass=transport 却 retryable=false,与
"transport failures actionable" 语义冲突,误导告警 / 重试分析。
- status_code=None 恰好等价于 statusClass=transport,据此派生 has_transport_error
传入 retryable 计算,无需改签名或调用点。
- 抽出可测的 build_matting_external_api_failure_draft。
- 补回归测试:非超时 transport → transport ∧ retryable=true;上游 4xx → retryable=false。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-09 09:24:29 +00:00 |
|
lhk229
|
623afdcd3c
|
修复 BgFilter body-read 失败被误记为 502/5xx
response.chunk() 在 HTTP 状态已成功后中断,属于「读 body 时链路断裂」
的传输层故障,但原先只抛 BAD_GATEWAY+message,外部 API 失败审计取不到
transport/timeout/upstreamStatus,回落 Some(502) → statusClass 5xx,
漏掉了 transport 场景。
- 新增 editor_image_removal_body_read_error:timeout 走 504、其余 502,
统一带 transport/timeout/latencyMs/rawExcerpt,审计正确归类为 transport。
- read_editor_image_removal_response_bytes 加 request_started_at,BgFilter
与 birefnet 两条读体路径都透传,chunk 失败可算出 latencyMs。
- BgFilter 空 body 补 latencyMs,与 Aliyun 兜底口径对齐。
- 补两个回归测试覆盖 body-read 传输故障与 timeout 分类。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-09 09:16:56 +00:00 |
|
lhk229
|
2971352cfc
|
修复抠图失败审计元数据
区分抠图传输失败与上游 HTTP 状态
补齐 BgFilter 与阿里云抠图失败 latencyMs
同步阿里云抠图配置与角色动作背景色文档口径
|
2026-07-09 08:32:44 +00:00 |
|
lhk229
|
1847fde8b7
|
修复抠图外部失败审计分类
保留 BgFilter 上游真实 HTTP 状态与超时标记
保留阿里云抠图上游状态、超时与错误摘要
补充审计分类单测覆盖 429 与 timeout 场景
|
2026-07-09 07:26:10 +00:00 |
|
kdletters
|
5f6f4d0ba6
|
接入会员周期泥点制度
新增 Starter、Basic、Pro、Ultimate 会员商品配置与权益字段。
拆分会员有效期、周期重置时间、周期限时泥点和永久泥点余额。
实现升级补价补点但不延长有效期或移动重置时间,同级购买只延长有效期。
补齐钱包扣费与退款中的会员周期泥点消耗、重置和流水记录。
同步后台商品配置、前端充值展示、共享契约、SpacetimeDB 迁移与生成绑定。
|
2026-07-09 14:48:26 +08:00 |
|
lhk229
|
14a5cde9dd
|
Increase BGfilter TIMEOUT to fit 2048x2048 Graphs
|
2026-07-09 06:30:45 +00:00 |
|
lhk229
|
a2b64290a1
|
删除抠图上海自有 OSS 死分支并清理审查发现的死代码
代码审查发现 4 项问题,本次一并处理:
- 抠图输入"上海地域自有 OSS 上传"分支整体删除:我们没有上海地域
OSS,region marker 判定永远为假,该分支任何环境都不会触发,且其
matting-input/ 中间对象无清理会造成存储泄漏(若将来启用)。抠图
输入统一走 VIAPI 官方临时桶(1 天自动过期,天然无泄漏)。
- platform-matting:segment_image_to_transparent_png 去掉恒为 None
的 accessible_url 参数,简化提交分支;修正"生产建议用上海自有
OSS"的误导注释。
- editor_green_screen:删除不可达的 #00FF00 绿幕特判分支(legacy
绿幕色产生点已删、调色板无此色)。
- segment_smoke example:默认参数里的个人路径改为用法提示 + 退出。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-09 04:32:11 +00:00 |
|
lhk229
|
b8c2efaf24
|
抠图背景色只作内部 screenColorHex 元数据,不再暴露进用户可见 fields
apply_editor_screen_background_decision_to_generation_inputs 之前会往
generationInputs.fields 追加「抠图背景色」条目,把内部自动决策/兜底细节
暴露给用户,违反「用户可见输入快照不记录抠图背景色/抠图模型」的产品契约(P2)。
- 去掉 fields 注入,只保留顶层内部可追踪元数据 screenColorHex(不进用户快照)。
- 删除因此变成死代码的 format_editor_screen_background_decision_input 及其 import。
- 重写两个单测:断言 fields 不被注入/不被修改,只写 screenColorHex。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-09 03:52:43 +00:00 |
|
lhk229
|
31117ffdb9
|
BgFilter/阿里云兜底抠图失败接入外部 API 失败审计
架构要求外部供应商调用失败必须进 OTLP + tracking_event
external_api_call_failure,但 BgFilter 和阿里云通用抠图失败原来只
warn! 后静默兜底,生产故障在审计链路里不可见(P1)。
- external_api_audit:新增 ExternalApiAuditContext 与统一入口
record_matting_external_api_failure(复用 record_external_api_failure,
自动填 status_class/retryable);is_retryable_external_api_failure 去掉
cfg(test) 门供生产复用,内部 StatusCode 换字面量避开测试专用导入。
- 三处失败点接入:BgFilter 请求失败、生图链路阿里云兜底失败、
动作视频逐帧阿里云兜底失败(带 frame_index)。
- user/profile/request_id 从各入口 caller / owner+project+request_context
透传进兜底函数,沿用现有 external_api_audit 上下文映射。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-09 03:38:00 +00:00 |
|
lhk229
|
ef8ac94395
|
BgFilter 请求超时保持 120s(合并 web/master 时误取 45s)
BgFilter 目前跑 CPU 推理,单次抠图耗时较长,超时必须 120s(见文档)。
合并 web/master 的「收紧超时保护」时该常量被误解成 45s,改回 120s。
web/master 新增的熔断器配置(失败阈值/冷却)保留不变。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-09 03:13:55 +00:00 |
|
lhk229
|
c78f199f4e
|
修复 shared-contracts 测试构建:补 screen_color 字段初始化
EditorCharacterAnimationGenerateRequest 新增 screen_color 后,
shared-contracts 的 camelCase 契约测试初始化漏补该字段,导致
`cargo test -p shared-contracts --no-run` 编译失败(P0,阻塞 PR 合入)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-09 03:09:57 +00:00 |
|
lhk229
|
2939d2c0be
|
Merge remote-tracking branch 'web/master' into feat/video-BGfilter
# Conflicts:
# server-rs/crates/api-server/src/config.rs
|
2026-07-09 03:01:40 +00:00 |
|
kdletters
|
2cf3953bad
|
收紧外部生成任务租约和超时保护
缩短 worker lease 并新增普通和长任务执行预算配置
让 worker 超过执行预算后写失败并释放槽位
降低 BgFilter 默认超时并加入连续失败熔断兜底
补充资产计费 future 取消时的退款补偿保护
同步生产 env 示例、部署脚本和运维文档
|
2026-07-09 01:32:23 +08:00 |
|
lhk229
|
ed748092bd
|
Merge remote-tracking branch 'origin/master' into feat/video-BGfilter
|
2026-07-08 14:42:56 +00:00 |
|
lhk229
|
1c1db17215
|
背景色决策 max_tokens 768 → 1024
给 gpt-5-mini low 推理档再留余量(实测推理 320~384 token),
降低复杂图触顶后走空响应兜底的概率。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-08 14:39:44 +00:00 |
|
lhk229
|
13411eb595
|
背景色视觉决策改用 gpt-5-mini(Responses + low 推理档)
- 视觉模型 gpt-4o-mini → gpt-5-mini。
- gpt-5-mini 是推理模型:视觉决策走 Responses 协议并设 reasoning_effort=low,
否则默认档会把 token 预算全烧在推理上、返回空答案;纯文本路径仍走 ChatCompletions。
- max_tokens 96 → 768,给 low 档推理(实测 320~384 token)留足余量。
已真机验证:/responses 端点网关可用,暖肤色主体正确选中冷色背景。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-08 14:25:17 +00:00 |
|
kdletters
|
f1ca3e79c1
|
轻量化外部生成队列进程
worker 和 controller 改为订阅 external_generation_job 队列变更来唤醒 claim 与扩缩容评估
非 HTTP 角色关闭 API 读模型订阅并将 SpacetimeDB 连接池收敛为 1
更新 worker/controller 环境模板和运维记忆,明确 poll interval 只作兜底
|
2026-07-08 22:16:51 +08:00 |
|
lhk229
|
d163247d62
|
Merge remote-tracking branch 'origin/master' into feat/video-BGfilter
|
2026-07-08 13:40:52 +00:00 |
|
lhk229
|
923993ea6c
|
背景色决策升级:视觉选色 + 皮肤硬过滤 + 源图合成 + 结构化记录
修复动作视频背景色的三类真实事故并加确定性防线:
1. 视觉背景色决策:让 LLM 看参考图选背景色(gpt-4o-mini 视觉模型,
路由到 VectorEngine 视觉客户端),修复原纯文本盲选导致的"蓝撞蓝"。
2. 背景色候选硬过滤器(新增 editor_screen_background_filter):
按参考图前景配色算 Lab 危险质量 + 皮肤专属三判据(ΔE 距离、
色调投影、RGB 分离)剔除撞色候选,LLM 只在安全集合里审美选。
露肤角色自动收敛到冷区。新增"灰竹绿"候选补齐安全弧绿色段。
3. 源图合成到背景色:透明源图先填成选定实色再发给 Ark,视频背景
确定性等于抠图键色,不再赌模型服从提示词(修复背景变白)。
4. screenColorHex 结构化记录:四条链路统一把实际背景色写进
generation_inputs,并修复生图链路"抠图背景色"字段从未生效的旧逻辑。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-08 13:37:44 +00:00 |
|
kdletters
|
542fb09365
|
接入微信 Native 充值与订单过期处理
调整网页端充值渠道,微信内浏览器在开放平台接入前走 Native 支付。
拆分 Native 支付二维码弹窗,展示金额和充值内容并取消无效 code_url 跳转。
修复微信 Native 下单 time_expire 秒级 RFC3339 格式,避免小数秒参数错误。
新增充值订单 5 分钟过期调度,过期前查询微信真实订单状态。
补充微信授权绑定、路由加载恢复和后台表时间显示等配套逻辑。
更新 SpacetimeDB schema、绑定和相关文档测试。
|
2026-07-08 21:35:02 +08:00 |
|
kdletters
|
1462ec2920
|
优化灰度规则判定与后台表单
按需读取灰度用户标签
新建 Gate Target 时重置表单规则
补充灰度语义和踩坑文档
|
2026-07-08 12:22:48 +08:00 |
|
lhk229
|
c53d6ffef0
|
移除一次性的抠图尺寸探针示例
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-08 04:03:10 +00:00 |
|
lhk229
|
ba8662f844
|
动作视频背景色多色自动决策并接入阿里云抠帧
- 动画生成请求新增 screenColor,继承生图入口的 auto 决策行为,
提示词从写死绿幕改为纯色背景条款(LLM 决策 11 色)
- 后端抽帧抠图改为逐帧阿里云优先(并发 3 保序),单帧失败降级
本地键色算法(使用决策出的背景色)
- 清理 legacy 纯绿幕常量与提示词
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-08 03:50:44 +00:00 |
|
lhk229
|
d0412705c4
|
新增阿里云通用抠图链路,图片抠图升级三档降级
- 新增 platform-matting crate:手搓 SegmentCommonImage ACS3 签名调用、
VIAPI 临时桶上传、分辨率守卫(缩图送抠 + alpha 回贴原图)
- api-server 接入 GENARRATIVE_ALIYUN_MATTING_* 配置与 MattingClient
- 画布生成图片抠图链改为 BgFilter → 阿里云 → 本地键色三档降级
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-08 03:50:32 +00:00 |
|
kdletters
|
25cac367c6
|
接入功能灰度与画布 Agent 灰度
新增 SpacetimeDB 灰度配置表与后端判定链路
新增后台灰度发布页面和两段式 Gate Key 选择器
将画布 Agent 入口接入灰度配置与运行时能力下发
修复灰度配置刷新读取空本地缓存的问题
补充灰度规则和后台下拉维护约定文档
|
2026-07-08 11:26:41 +08:00 |
|
lhk229
|
308d440816
|
新抠图算法(轻量版)上线 (#73)
新抠图算法(轻量版)上线,生图背景色同步改为多颜色+自动决策
---------
Co-authored-by: kdletters <kdletters@qq.com>
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/73
Reviewed-by: kdletters <kdletters@qq.com>
Co-authored-by: Linghong <ink29535@proton.me>
Co-committed-by: Linghong <ink29535@proton.me>
|
2026-07-07 14:57:10 +08:00 |
|
kdletters
|
2a98b60830
|
改为运行时控制画板 Agent 入口
新增前端运行时配置接口下发画板 Agent 开关
将画板 Agent 入口改为读取后端运行时配置
把开关变量改为 GENARRATIVE_ENABLE_IMAGE_EDITOR_AGENT_SIDEBAR
补充前后端测试和生产环境变量文档
|
2026-07-07 14:04:08 +08:00 |
|
kdletters
|
2d631becc7
|
显示精选审核提交失败原因
统一素材精选审核提交资格判断
在素材菜单显示不可提交和后端拒绝原因
将编辑器业务拒绝映射为 400 并保留中文原因
补充精选审核原因展示测试和文档口径
|
2026-07-06 21:35:10 +08:00 |
|
kdletters
|
be7f0375e5
|
记录精选活动卡图片宽高
后台上传活动卡图片时读取并保存原始宽高
隐藏活动卡 Object Key 输入,重复上传替换图片引用
公开精选按活动图宽高设置卡片比例
同步 SpacetimeDB schema、bindings 和后端数据契约文档
|
2026-07-06 21:00:21 +08:00 |
|
kdletters
|
b5aa68fc6a
|
调整精选后端公开契约
新增精选活动卡图片 objectKey 存储字段和迁移兼容。
新增后台活动卡图片 OSS 直传凭证接口。
移除素材包精选分类约束,允许未设置分类素材进入全部精选。
同步 admin 和前台读取活动卡 objectKey 的类型契约。
|
2026-07-06 18:56:49 +08:00 |
|
kdletters
|
b288b091b2
|
完善精选审核与素材查询展示
移除素材查询分类筛选和分类列
精选审核通过后改为手动设置展示分类
公开精选按分类展示并补充底部点赞按钮
使用文档大拇指透明图标并同步点赞测试
同步精选审核数据契约、绑定和文档
|
2026-07-05 18:01:02 +08:00 |
|
kdletters
|
d7d98acfd4
|
接入VectorEngine画布Agent规划
切换画布 Agent 与通用 LLM 代理到 VectorEngine gpt-5.4-mini。
为画布 Agent 注入上一轮生成结果并默认承接上一张图编辑。
补齐规范图工具分流、规范展板 prompt 要求和 JSON 残片回复兜底。
同步前后端契约、测试脚本、环境示例和项目文档。
|
2026-07-05 17:42:27 +08:00 |
|
kdletters
|
a4a7aed024
|
合并画布 Agent 侧边栏聊天
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
# server-rs/crates/spacetime-client/src/module_bindings.rs
|
2026-07-04 18:39:40 +08:00 |
|
kdletters
|
1671d35995
|
修复画布Agent聊天生成体验
让画布 Agent 消息统一走后端规划与 LLM 回复
修复生成图片在聊天、画布和素材库中的展示与恢复
补齐右键删除、画布焦点、聊天滚轮和面板避让交互
同步 Agent 事件契约、文档和定向回归测试
|
2026-07-04 16:41:33 +08:00 |
|