Commit Graph

63 Commits

Author SHA1 Message Date
lhk229 38e195060b 合并 master 的付费生成预检与调试输出脱敏
Project CI / Repository checks (pull_request) Successful in 1m14s
Project CI / Frontend tests (pull_request) Successful in 2m52s
Project CI / Backend tests (pull_request) Successful in 3m54s
Project CI / Native shell tests (pull_request) Has been cancelled
合入 master 的编辑器付费生成目标预检与应用状态调试输出密钥泄漏两项修复。

SFX 直连与入队沿用 master 预检,源码顺序回归改为锁定本分支的 ElevenLabs worker 编排入口。

画布 Agent 音效参数恢复通用 null 缺省兼容,但保留 duration null 表示自动时长的 SFX V2 语义。

音效时长越界断言按 SFX V2 的 0.5-30 秒边界上移,重算契约测试期望。

哨兵测试补入 ElevenLabs base URL 与 API key,锁定其默认缺席于 AppConfig 调试输出。
2026-08-08 05:33:40 +00:00
kdletters 4974844090 修复应用状态调试输出密钥泄漏 (#150)
Project CI / Frontend tests (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
修复 Issue #148。

- AppConfig、AppState、AppStateInner 改为封闭的手写 Debug 安全摘要
- SpacetimeClientConfig 隐藏 token、URL 与数据库自由字符串,SpacetimeClient 复用安全摘要
- 唯一哨兵覆盖五条独立 Debug 路径,并精确锁定 AppConfig 允许输出字段
- 补充运行时日志规约与项目排障记忆

验证:
- cargo test -p api-server debug_summaries_redact_all_runtime_credentials
- cargo check -p spacetime-client -p api-server --all-targets
- cargo fmt --all --check
- npm run check:encoding
- git diff --check

剩余边界:报告第二档中的历史 provider 配置类型独立 Debug 脱敏另行处理,本 PR 聚焦第一档主泄漏链。

Closes #148

Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/150
2026-08-07 23:56:01 +08:00
lhk229 c3b3b47c9a 实现 SFX V2 T3 ElevenLabs 音频适配
新增 ElevenLabs 直接二进制适配、固定请求契约和单次 POST 边界。
实现 40 MiB 有界读取、MIME/MP3 校验和 600 秒纯 Rust 时长探测。
接入服务端环境配置、失败关闭 settings guard 与持久化来源解耦。
补齐 mock 回归测试、环境模板和 T3 tracked 文档记录。
2026-08-07 02:50:59 +00:00
lhk229 a2ee879fc8 添加gfilter专用worker (#103)
Project CI / Repository checks (push) Successful in 1m3s
Project CI / Frontend tests (push) Successful in 2m0s
Project CI / Native shell tests (push) Successful in 2m26s
Project CI / Backend tests (push) Successful in 3m1s
Co-authored-by: kdletters <kdletters@qq.com>
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/103
Co-authored-by: Linghong <ink29535@proton.me>
Co-committed-by: Linghong <ink29535@proton.me>
2026-07-23 18:06:29 +08:00
kdletters f748dc72c3 收口图片生成任务超时预算
- 将四类 VectorEngine 图片任务纳入长任务预算并预留终态写回窗口
- 通过请求上下文传递绝对截止时间并约束发送重试与图片下载
- 允许显式下调单次请求超时并补齐预算回归测试
- 同步外部生成 Worker 运维文档与项目记忆
2026-07-20 20:57:34 +08:00
kdletters 7ea463ed08 退役旧创作模板业务并保留数据壳
保留 SpacetimeDB 历史表、迁移白名单与最小兼容读取定义
移除旧创作前后端、worker、业务过程及纯业务 crate 的编译依赖
恢复现役创作、项目、我的入口及桌面移动导航
收紧 Vite、TypeScript、ESLint、Vitest 与静态资源退役边界
补齐开发栈、网关、原生壳和文档退役约束
2026-07-18 22:02:22 +08:00
lhk229 aecabdacfd 新抠图算法 (#85)
Co-authored-by: 段舒康 <kdletters@qq.com>
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/85
Co-authored-by: Linghong <ink29535@proton.me>
Co-committed-by: Linghong <ink29535@proton.me>
2026-07-16 18:33:06 +08:00
kdletters 8862887baa 新增后台充值退款管理与微信V3退款闭环
新增充值订单查询、通用用户详情、钱包冻结与部分退款操作
接入微信V3退款申请、回调、主动查单、交易账单对账与安全诊断
新增退款占用、权益追回、异常欠账和消费限制事务
补齐Native支付SSE自动收口及退款编号与部分退款校验
同步SpacetimeDB schema、生成绑定、测试与项目文档
2026-07-14 12:16:01 +08:00
kdletters 36a8719d0f 补齐微信虚拟支付发货确认
在虚拟支付商品入账后调用微信发货确认接口
允许已入账商品订单只重试发货而不重复发放权益
遇到失效 access token 时强制刷新并最多重放一次
要求使用微信 paid_time 并完善历史补单文件清理和回归测试
2026-07-13 13:39:59 +08:00
kdletters 2f69f2fda2 补齐微信虚拟支付查单与补偿
接入微信官方虚拟支付查单并缓存稳定接口令牌
让用户确认与订单过期补偿统一核对支付类型、状态、金额和单号
增加单笔历史订单的 dry-run 与确认指纹补单工具
隔离运行时身份与敏感 openid 文件并补充配置契约和回归测试
2026-07-13 13:12:44 +08:00
kdletters 187d7735b9 修复编辑器定价持久化与资源预览
将模型定价改为 SpacetimeDB 强类型持久化并兼容旧配置种子迁移
修复快速编辑支付弹窗期间框选显示和交互冻结
补齐后台图片放大以及视频音频资源预览
收紧主站和 External 资源换签授权并记录管理员跨用户审计
固化外部生成入队价格、attempt 钱包结算和最终 lease 失败收口
加固运行时身份轮换、bootstrap secret 与生产构建发布门禁
同步生成绑定、定向测试、运维脚本和项目文档
2026-07-10 18:28:06 +08:00
lhk229 5c9b5ef69e 动作视频/生图背景色链路升级 + 阿里云抠图接入 (#75)
主要改动
1. 阿里云通用抠图接入(新增 platform-matting crate)

手搓阿里云 VIAPI 通用抠图接口(ACS3-HMAC-SHA256 签名),跨区输入走临时桶通道。
图片抠图升级为三档降级:BgFilter → 阿里云 → 本地键色兜底。
动作视频逐帧抠图改用阿里云,remove_editor_generated_green_screen_background 降为最后兜底。
2. 背景色不再写死绿色,改多背景色自动决策

动作视频背景色和生图一样从候选调色板自动选,选项继承。
3. 视觉背景色决策(修"蓝撞蓝")

让 LLM 看参考图选背景色(gpt-4o-mini 视觉模型,路由到 VectorEngine 视觉客户端),修复原纯文本盲选。
4. 背景色候选硬过滤器(新增 editor_screen_background_filter)

按参考图前景配色算 Lab 危险质量 + 皮肤专属三判据(ΔE 距离 / 色调投影 / RGB 分离)剔除撞色候选,LLM 只在安全集合里审美选。露肤角色自动收敛到冷区。新增"灰竹绿"候选补齐安全弧绿色段。
5. 源图合成到背景色(修视频背景变白)

透明源图先填成选定实色再发给 Ark,视频背景确定性等于抠图键色,不再赌模型服从提示词。
6. screenColorHex 结构化记录 + 死代码清理

四条链路统一把实际背景色写进 generation_inputs,修复生图链路"抠图背景色"字段从未生效的旧逻辑。
清理前端抠绿 + qwenSprite 死代码,移除一次性探针示例。

Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/75
Reviewed-by: kdletters <kdletters@qq.com>
Co-authored-by: Linghong <ink29535@proton.me>
Co-committed-by: Linghong <ink29535@proton.me>
2026-07-10 18:22:17 +08:00
kdletters 2cf3953bad 收紧外部生成任务租约和超时保护
缩短 worker lease 并新增普通和长任务执行预算配置

让 worker 超过执行预算后写失败并释放槽位

降低 BgFilter 默认超时并加入连续失败熔断兜底

补充资产计费 future 取消时的退款补偿保护

同步生产 env 示例、部署脚本和运维文档
2026-07-09 01:32:23 +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 d7d98acfd4 接入VectorEngine画布Agent规划
切换画布 Agent 与通用 LLM 代理到 VectorEngine gpt-5.4-mini。

为画布 Agent 注入上一轮生成结果并默认承接上一张图编辑。

补齐规范图工具分流、规范展板 prompt 要求和 JSON 残片回复兜底。

同步前后端契约、测试脚本、环境示例和项目文档。
2026-07-05 17:42:27 +08:00
kdletters 08f188e26e 切换图片画布抠图到 BiRefNet
新增图片画布去背景 BFF 配置与路由,服务端代理 BiRefNet 并持久化结果。

将手动去背景、角色图、图标 spritesheet、UI 素材提取和角色动作帧抠图切到 BiRefNet。

新增画布右上角任务侧栏并展示去背景任务耗时与状态。

同步图片画布技术文档和项目决策记录。

(cherry picked from commit 495fcc8801)
2026-06-30 17:12:13 +08:00
kdletters 73a17193d4 升级外部生成为正式任务列表
将 external_generation_job 扩展为含价格、确认时间、退款流水和事件审计的正式生成任务事实源

新增外部生成任务列表与确认 BFF,并让平台入口按后端任务补弹完成或失败提示

保护画布生成队列超时、快照回写和自动保存覆盖场景

将 worker 计费退款流水写入 externalGenerationJobId,并补充冷备份后 worker/controller 恢复守护
2026-06-24 15:17:12 +08:00
JenkenB 55469a2198 UI extraction selection + local FFmpeg dev env
Require an explicit red-box selection before extracting UI-design assets: add rectangular/ellipse/brush selection UI, render red-outline marks into a marked Data URL on the client, and update the extraction prompt to "仅提取被红色框框选的素材并整理成spritesheet". Add frontend overlay/raster models and tests to support the selection flow and adjust numerous image-editor tests and views to wire up the selection lifecycle. On the dev ops side, enhance scripts/dev to detect a local %LOCALAPPDATA%/Genarrative/ffmpeg/bin installation on Windows, prepend it to PATH and inject CHARACTER_ANIMATION_FFMPEG_PATH/FFPROBE_PATH (with tests), and export the helper. Server config now prefers GENARRATIVE_*-prefixed FFmpeg env vars and includes a Rust test to validate reading the prefixed variables. Update docs to describe the new UI extraction behavior and local FFmpeg handling.
2026-06-22 19:13:37 +08:00
JenkenB 163b2fa077 Add editor generation model pricing admin UI & API
Introduce centralized model pricing for editor generations: add EditorGenerationPricing types and admin API client methods (GET/POST), backend default config and runtime override support, and server route/handler changes to expose admin editor-generation-pricing. Add an AdminEditorGenerationPricingPage component, styles, route entry, icon, and tests, plus a test for admin routes. Update docs and decision log to describe the pricing contract and management workflow. This enables managing per-model pricing (perGeneration / perSecond, flat or tiered) from the admin panel and exposes runtime pricing to the main site.
2026-06-22 16:57:29 +08:00
kdletters 4a6c126366 完善外部生成Worker动态扩缩容
新增外部生成controller进程角色与systemd服务

补齐队列统计procedure与spacetime-client绑定

更新生产部署脚本、健康巡检和server provision的worker/controller口径

新增容器worker smoke脚本并同步运维文档与团队记忆
2026-06-12 15:21:35 +08:00
kdletters f87ae3f915 合并 origin/master
合入 master 的钱包退款 outbox、拼图后台编译互斥与公开链路更新

保留当前分支外部生成 worker 队列语义,并对齐拼图首图 claim 释放顺序
2026-06-11 23:06:41 +08:00
kdletters f8a80cd795 修复资产计费边界风险
资产生成预扣费改为 fail-closed,避免钱包异常时继续调用外部生成

新增钱包退款 outbox,退款失败时本地落盘并后台重放

拼图首图后台任务改用 SpacetimeDB claim 表实现跨实例互斥

计费 ledger id 统一绑定 request_id,并让前端重试复用 x-request-id

同步 SpacetimeDB bindings、后端架构文档和 Hermes 决策记录
2026-06-11 15:55:23 +08:00
kdletters 31ad55b0cf 合并 master 并保留外部生成 worker 模式
合入 master 的生产健康巡检、JumpHop 和 SpacetimeDB 更新
保留外部生成 worker、队列/内联模式与 lease guard 口径
合并 Server-Provision 工具复用、health patrol 和外部生成 worker systemd 配置
补齐 SpacetimeDB 生成绑定并通过本地检查
2026-06-10 21:26:53 +08:00
kdletters 9db467d23f 补充 release SpacetimeDB 健康检查与巡检防回退
增加 SpacetimeDB 阶段化健康检查与 /readyz 阶段输出
记录 procedure/reducer/read 失败的阶段和耗时
补充 release 健康巡检 systemd timer 与生产 ops 预检
同步 API 构建部署、provision 脚本和运维文档
2026-06-10 11:35:39 +08:00
lhk229 2d30fd808d replace all apimart call with vectorengine counterpart 2026-06-09 19:01:41 +08:00
kdletters 4f86c1a75b 合并 master 并保留外部生成 worker 模式
合入 master 的拼消消、微信能力、OpenSSL 3.2 和 SpacetimeDB 2.4.1 更新
保留外部内容生成 queue/inline、worker lease 与动态扩缩容口径
补齐拼图后台图片生成队列轮询和运行态返回恢复
同步容器、生产运维和 Hermes 共享记忆中的 worker 文档
2026-06-09 16:55:32 +08:00
kdletters 088470a315 收口微信领域能力
将 api-server 微信 HTTP/BFF 适配统一迁移到 wechat 目录。

将微信支付和虚拟支付消息协议细节下沉到 platform-wechat。

拆分 platform-wechat 的订阅消息与支付模块并补齐依赖。

修正微信相关测试的用户 ID 夹具并同步后端架构文档。
2026-06-08 21:05:37 +08:00
kdletters 38d9c292ae feat: send puzzle result subscribe messages 2026-06-08 11:49:11 +08:00
kdletters 4bb6d0bd1e feat: add inline external generation mode 2026-06-07 00:56:53 +08:00
kdletters 8d54ea3374 feat: workerize external generation 2026-06-05 17:29:08 +08:00
kdletters e5592304a5 feat: add graceful api shutdown readiness 2026-06-05 11:44:27 +08:00
kdletters 3db956ec81 feat: add wechat mini program virtual payment 2026-05-31 22:44:22 +08:00
kdletters 0edfc21a46 Merge remote-tracking branch 'origin/master' into codex/wechat-mini-program-virtual-payment
# Conflicts:
#	.hermes/shared-memory/decision-log.md
2026-05-28 00:43:00 +08:00
kdletters 418fcb0548 Fail closed when SpacetimeDB auth restore is unavailable 2026-05-27 20:58:37 +08:00
kdletters f36b90ebdb feat: switch mini program recharge to virtual payment 2026-05-26 22:32:16 +08:00
kdletters 41075e41a2 fix: stabilize rpg creation entry and opening cg 2026-05-21 17:21:38 +08:00
kdletters c9b3468b29 Merge branch 'codex/container-simulate'
# Conflicts:
#	.hermes/shared-memory/decision-log.md
#	server-rs/crates/api-server/src/puzzle.rs
#	server-rs/crates/spacetime-client/src/mapper.rs
2026-05-19 10:07:45 +08:00
kdletters 05a0f34722 perf(api-server): batch route tracking through local outbox 2026-05-19 01:47:13 +08:00
kdletters 8038b6a6ee perf(api-server): tune gallery load shedding 2026-05-19 01:00:33 +08:00
JenkenB d1adfa3406 Improve local auth env handling and fallbacks
Allow local env files to reliably override authentication feature flags (SMS/WeChat) by whitelisting keys in scripts/dev-utils.mjs and adding a unit test. Add SMS checks to scripts/check-api-server-env.mjs. Make server config.parse_bool tolerant of shell-wrapped quoted values (e.g. '"true"') and add tests so SMS_AUTH_ENABLED is parsed correctly when shells supply quotes. Update docs to clarify SMS env behaviour, restart requirements, and add guidance + a CSS fallback for old mobile browsers (QQ/X5) so public cover images render even when aspect-ratio is unsupported. Also include related frontend test and component adjustments and add puzzle onboarding handlers/endpoints in server-rs/crates/api-server/src/puzzle.rs.
2026-05-18 23:13:49 +08:00
kdletters 4f6c97ae92 Merge branch 'codex/cache-view-procedure-hotpaths' 2026-05-17 21:18:07 +08:00
kdletters 7b74d129a5 Merge remote-tracking branch 'origin/codex/send-sms' 2026-05-17 05:04:59 +08:00
kdletters 02271e6c73 feat(api-server): add request backpressure controls 2026-05-17 04:56:45 +08:00
kdletters 0305b79440 chore: add loadtest observability setup 2026-05-16 22:44:30 +08:00
kdletters c3ad28577c fix(auth): send sms verify codes via aliyun 2026-05-16 22:33:29 +08:00
JenkenB 74fd9a33ac Increase VectorEngine timeouts and add image UI
Add VectorEngine image generation config and raise request timeouts (env + scripts) from 180000 to 1000000ms. Introduce a reusable CreativeImageInputPanel component with tests and wire up mobile keyboard-focus helpers; update generation views and related tests (CustomWorldGenerationView, BarkBattle editor, Match3D, Puzzle flows). Improve API error handling / VectorEngine request guidance (packages/shared http.ts and docs), and apply multiple backend/frontend fixes for puzzle/match3d/prompt handling. Also include extensive docs and decision-log updates describing UI/UX decisions and verification steps.
2026-05-15 02:40:59 +08:00
JenkenB 7a75f5d612 Merge branch 'master' of https://git.genarrative.world/GenarrativeAI/Genarrative 2026-05-14 13:42:12 +08:00
JenkenB 2dc9d752e4 1 2026-05-14 13:40:50 +08:00
kdletters ae58a443a3 feat: 接入微信小程序支付 2026-05-14 00:16:17 +08:00