Opt/b gfilter worker #103

Merged
kdletters merged 37 commits from opt/BGfilter_worker into master 2026-07-23 18:06:30 +08:00
Owner
No description provided.
lhk229 added 13 commits 2026-07-22 10:44:43 +08:00
动作视频帧在抠图前改为 RGB8 等比缩放且不补边

抠图完成后保留 RGBA8 最终尺寸透明补边

补充像素回归测试并同步权威文档与长期决策
ffmpeg 抽帧显式指定 -pix_fmt rgb24,消除 to_rgb8 截断 alpha 的隐患
抽出 compute_contain_dimensions 与 image_format_from_mime 供两条帧路径共用
尺寸已匹配时跳过无效的 Triangle 重采样

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
保留 master 的单次 FFmpeg filter graph 批量抽帧。

保留 BgFilter 前 RGB8 无补边输入与抠图后 RGBA8 透明补边。

合并并保留对应权威文档规则。
撤掉 extract_video_frames_to_png 里无条件的 -pix_fmt rgb24,共享抽帧不再携带 BgFilter 专属策略
prepare_editor_character_animation_bgfilter_input 解码后先按白底合成 alpha 再转 RGB,补上对应回归测试

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
决策日志、数据契约、画布接入方案和角色形象入口设计四份文档同步最终实现:
解码帧携带 Alpha 时必须先按白底合成再转 RGB8,禁止直接丢弃 Alpha,
共享 FFmpeg 抽帧命令不固定 -pix_fmt,合成职责只在 BgFilter 输入准备阶段

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
在 2026-07-21 补充行注明该函数后续重构(共享 contain 计算、同尺寸跳过重采样)但输出语义不变,
「不修改 contain_rgba_image」应理解为「不改变最终帧的 RGBA/padding 语义」

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
本条决策与其补充均为本分支新增,无需保留旧文再追加更正:
边界行「不修改 contain_rgba_image」改写为「不改变最终帧的 RGBA/padding 语义与透明帧格式」,
并删除补充行中为此加的更正说明

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
同步 SpacetimeDB schema guard 基线扫描修复。

同步相关测试、排障记忆与融合方案文档。
新增同步内部 HTTP 原地等待版架构方案,明确并发、超时、熔断与降级边界

补充外部生成 Worker 化方案和共享决策日志中的受限资源调度约定

更新文档目录并关联 BgFilter 专题方案
新增私有 BgFilter worker,提供内部鉴权、并发限流、超时、顺序重试、flat 熔断和图片校验。
父生成流程改为通过内部二进制 HTTP 原地等待,并保留 flat 降级与 complex 失败语义。
接入本地开发、systemd、生产部署、Provision、健康巡检和配置漂移门禁。
补充动画、部署与运维测试、Linux fixture 隔离以及对应架构文档。
新增32/40/48并发、五类故障与harness自测。
新增真实OSS和BgFilter契约冒烟并严格清理临时对象。
补充本地运行方式、凭据边界与staging验收范围。
保留 master 的画布交互、Agent、VectorEngine 与原生 CI 更新。
解决角色动画测试和项目决策日志冲突,不恢复按帧数放大 BgFilter 超时的旧逻辑。
同步修正融合文档中的 BgFilter worker、N/Q、重试与父侧降级边界。
合并最新 master 分支
Project CI / Frontend tests (pull_request) Failing after 21s
Project CI / Repository checks (pull_request) Failing after 21s
Project CI / Backend tests (pull_request) Failing after 21s
Project CI / Native shell tests (pull_request) Failing after 21s
26ebb527ea
同步 Gitea CI 依赖安装稳定性调整。
保留 BgFilter 本地双进程开发陷阱,并融合 Gitea runner 安全规则。
更新开发流程与本地运维文档。
lhk229 marked the pull request as ready for review 2026-07-22 11:32:31 +08:00
lhk229 marked the pull request as work in progress 2026-07-22 11:32:43 +08:00
lhk229 added 1 commit 2026-07-22 12:24:56 +08:00
完善 BgFilter 失败审计与权威文档
Project CI / Frontend tests (pull_request) Successful in 1m43s
Project CI / Backend tests (pull_request) Successful in 7m28s
Project CI / Repository checks (pull_request) Failing after 2m26s
Project CI / Native shell tests (pull_request) Successful in 6m19s
27f84fc6a7
补充已发出 provider 请求的失败审计判定,并由 shutdown tracker 排空异步审计任务。

统一父流程、BgFilter worker、重试、超时、fallback 与结果持久化的架构和编辑器文档口径。

修正本地 dev 进程角色、live smoke 端口、OTEL identity、journal 与端口路由 skill。

明确当前容器拓扑不包含 BgFilter worker,仅覆盖非 BgFilter 路径和 unsupported queue smoke。
lhk229 added 1 commit 2026-07-22 16:42:28 +08:00
重构 BgFilter 排队与调用双预算
Project CI / Native shell tests (pull_request) Successful in 7m50s
Project CI / Frontend tests (pull_request) Successful in 1m46s
Project CI / Repository checks (pull_request) Failing after 6m46s
Project CI / Backend tests (pull_request) Failing after 6m6s
2f8019c901
按 N 与单图估时公式化派生 provider attempt、调用预算和队列等待上限

将内部协议拆分为 maxQueueWaitMs 与 callBudgetMs,并补齐停机、熔断和审计语义

同步部署配置、运维门禁、smoke 测试及权威文档
lhk229 added 1 commit 2026-07-22 18:03:36 +08:00
修复画布编辑器测试会话隔离
Project CI / Repository checks (pull_request) Failing after 36s
Project CI / Frontend tests (pull_request) Successful in 1m16s
Project CI / Backend tests (pull_request) Failing after 3m24s
Project CI / Native shell tests (pull_request) Failing after 2m56s
7b9025b201
在画布编辑器测试开始前清理 sessionStorage,避免项目快照跨用例污染

验证素材批量删除与关联图层清理测试在完整测试文件中稳定通过
lhk229 added 1 commit 2026-07-22 18:07:52 +08:00
合并最新 master 分支
Project CI / Repository checks (pull_request) Failing after 23s
Project CI / Frontend tests (pull_request) Successful in 29s
Project CI / Native shell tests (pull_request) Successful in 2m32s
Project CI / Backend tests (pull_request) Successful in 3m27s
733fbb55d9
lhk229 marked the pull request as ready for review 2026-07-22 18:08:01 +08:00
lhk229 added 1 commit 2026-07-22 18:17:21 +08:00
修复开发脚本导出排序
Project CI / Repository checks (pull_request) Successful in 1m12s
Project CI / Frontend tests (pull_request) Successful in 31s
Project CI / Native shell tests (pull_request) Successful in 2m19s
Project CI / Backend tests (pull_request) Successful in 3m3s
c03da0de0c
按 ESLint 规则调整开发脚本导出项顺序

恢复仓库完整 ESLint 检查通过
lhk229 added 2 commits 2026-07-22 20:16:10 +08:00
发布窗口内 callBudget 漂移改为告警计数并按 Worker 当前预算执行

Provision 验活地址改为从已校验的自定义端口派生

同步 BgFilter 调度方案与后端数据契约文档
补充 BgFilter 巡检端口配置说明
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / Frontend tests (pull_request) Successful in 1m14s
Project CI / Native shell tests (pull_request) Successful in 1m51s
Project CI / Backend tests (pull_request) Failing after 6s
b804b96c40
说明健康巡检独立读取 health-patrol env

提醒自定义 Worker 端口时同步更新巡检地址
lhk229 added 1 commit 2026-07-22 20:24:35 +08:00
合并最新 master
Project CI / Frontend tests (pull_request) Successful in 29s
Project CI / Repository checks (pull_request) Successful in 42s
Project CI / Native shell tests (pull_request) Successful in 2m9s
Project CI / Backend tests (pull_request) Successful in 2m47s
f5db8f4c1e
kdletters added 1 commit 2026-07-23 12:15:44 +08:00
修复生产发布 worker unit 路径渲染
Project CI / Repository checks (pull_request) Failing after 11s
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / Frontend tests (pull_request) Successful in 29s
Project CI / Native shell tests (pull_request) Successful in 1m52s
798098e064
按部署参数渲染 BgFilter、外部生成 worker 与 controller unit
补齐 controller 环境文件参数及 Jenkins 全链路透传
新增安装后 unit 内容与流水线参数回归门禁
同步生产运维文档和共享项目记忆
lhk229 added 8 commits 2026-07-23 14:49:13 +08:00
统一校验 BgFilter 内部 Token 并限制启动角色

部署与 provision 预检拒绝内部空白和多行 Token

补充定向测试、运维门禁与架构文档
为 flat 与 complex 分别维护熔断状态并补充双模式指标。

将统一熔断冷却默认值从五分钟降为两分钟。

为部署和 Provision 增加旧默认值定向迁移及门禁测试。

补充熔断状态隔离测试并同步架构、运维与项目决策文档。
Jenkins job 不传 --bgfilter-worker-health-url,旧默认值固定 8083 会把
父子 env 已对齐的合法自定义端口在切 current 前错误阻断。缺省时改为在
预检中从已校验的 worker HOST/PORT 派生 readiness URL;显式传入时仍
严格三方比对,配置漂移照旧 fail-closed。守卫测试默认改为不传该 flag
以对齐真实 Jenkins 调用形态,另保留显式匹配放行与显式漂移拒绝用例。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
将 BgFilter smoke harness 接入 Frontend tests。

将生产健康巡检、API 发布与部署行为检查接入 CI。

同步更新开发运维文档与共享工作流。
主机重启 / worker 崩溃拉起期间,父侧对 127.0.0.1 worker 的 TCP 连接
失败此前直接映射 internal_error:complex(max_attempts=1)终态失败不可
自愈,flat 被迫降级。现仅对连接从未建立的失败(无副作用、天然幂等)做
有界退避重试:每轮按公式重算 maxQueueWaitMs,不突破「预算不足不发送」
不变量;complex 用完整序列(约 22.5s,覆盖 RestartSec=5s + 启动窗),
flat 只取前 2 项(≤1.5s,不侵蚀 39s fallback 预留)。收到任何 HTTP
响应(含 5xx)立即停止重试;新增 bgfilter_internal_connect_retry_total
指标。设计文档与数据契约同步刻出「已建立连接后不重试」禁令的精确例外。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
deploy 此前把发布产物里的三个 worker unit(bgfilter / worker@ / controller)
原文安装,unit 模板硬编码 /opt/genarrative/current 与默认 env 路径:自定义
--current-link/env 部署会覆盖 provision 渲染过的定制 unit,服务重启后指向
旧二进制并加载默认 env,可能静默发布错误版本。现安装前按部署参数执行与
provision render_*_service 同语义的替换(current 链接 + 共享 API env +
角色 env),并新增 --controller-env-file 补齐 controller 此前无法表达的
自定义 env 路径。默认参数下渲染输出与模板逐字节一致,生产现状零行为变化。
守卫测试改为断言安装后的 unit 含 fixture 自定义路径、不残留模板默认字面量。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
一并落地评审的三个 P2:
1. 冷启动宽限:重连配额按「本进程是否已连通过 worker」分档(AppState 级
   标记,收到任意 HTTP 响应即算)。首连前 flat 升级为完整序列 22.5s、
   complex 追加 8×5s 至约 62.5s,覆盖主机开机竞态与慢开机;首连后回落
   flat ≤1.5s / complex 22.5s 保持运行中途快速收口。档位单次调用内锁定。
2. 安全不变量测试:TCP 已 accept、未回任何 HTTP 字节即断开 → 不得发起
   第二次连接,以 mock listener accept 计数证明;另补冷启动档 flat 跨过
   超出常规配额监听空窗的集成测试。
3. 文档契约全局一致:设计摘要表 / 实施步骤 / 运维文档 / 外部生成方案 /
   编辑器专题 / 前端画布方案中的旧禁令统一改为「不重试已被 worker 接收
   的内部 RPC(连接从未建立时按 §5.1 有界重连)」;数据契约澄清计量单位
   (重连只增加连接尝试次数,不产生第二次被接收的 RPC)并写明分档配额;
   decision-log 追加 2026-07-23 决策条目(含 Windows 平台差异)并在两条
   历史更正处补指针。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
合并远端并行的 worker unit 渲染实现
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / Repository checks (pull_request) Failing after 12s
Project CI / Frontend tests (pull_request) Failing after 1m12s
Project CI / Native shell tests (pull_request) Successful in 2m4s
65a36e4c97
远端 798098e06 与本地 299544719 并行修复了同一问题(deploy 原文安装
unit 覆盖自定义路径)。合并采纳远端实现为准:python3 字面量渲染(含
模板占位路径存在性校验)、install_worker_systemd_units 参数化、Jenkins
双流水线暴露并透传 CONTROLLER/BGFILTER env 参数、guardrails 门禁——
其中流水线透传补上了本地版本刻意未覆盖的传输层缺口。保留本地独有的
readyz 派生修复、connect 重连与冷启动宽限、契约文档收口;删除本地
sed 渲染实现与合并产生的重复参数定义;decision-log 双条目并存。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
lhk229 added 1 commit 2026-07-23 15:03:16 +08:00
合并最新 master 分支
Project CI / Backend tests (pull_request) Failing after 12s
Project CI / Repository checks (pull_request) Failing after 12s
Project CI / Frontend tests (pull_request) Failing after 58s
Project CI / Native shell tests (pull_request) Successful in 2m32s
19a8fc2df0
带入 SpacetimeDB 2.7.0(hotfix3)工具链升级、后台灰度发布控制面恢复、
精选顺序分列瀑布流及后台素材预览统一。冲突仅三处文档:decision-log 与
pitfalls 双方条目并存,运维文档更新时间取新值。BgFilter 分支代码与部署
脚本零冲突;依赖升级后 bgfilter 46 测试全过。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
lhk229 added 1 commit 2026-07-23 15:07:09 +08:00
合并最新 master 分支
Project CI / Repository checks (pull_request) Successful in 1m38s
Project CI / Backend tests (pull_request) Failing after 1m31s
Project CI / Frontend tests (pull_request) Failing after 2m2s
Project CI / Native shell tests (pull_request) Successful in 2m2s
5c4ff0fa72
带入手机号区域码前后端校验修复(#104)。触及 auth 契约与前端登录链路,
与 BgFilter 分支零冲突,自动合并。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
lhk229 added 1 commit 2026-07-23 15:28:25 +08:00
修复生产部署门禁根用户夹具
Project CI / Repository checks (pull_request) Successful in 1m2s
Project CI / Frontend tests (pull_request) Successful in 1m55s
Project CI / Native shell tests (pull_request) Successful in 2m25s
Project CI / Backend tests (pull_request) Successful in 4m8s
fbe9d5dd99
新增install命令替身,忽略夹具环境无法满足的owner/group。

统一根用户与非根用户测试的目录创建、文件复制和权限设置。
lhk229 added 1 commit 2026-07-23 15:54:04 +08:00
补齐 BgFilter 文档核对发现的三处遗留
Project CI / Repository checks (pull_request) Failing after 12s
Project CI / Backend tests (pull_request) Failing after 12s
Project CI / Native shell tests (pull_request) Successful in 2m10s
Project CI / Frontend tests (pull_request) Successful in 2m18s
e54c1ef03a
1. decision-log 2026-07-13「全帧流水线与单次重试」条目按本文件惯例补
   「后续更正」注记:父进程单次重试与不设 Semaphore 的旧决策已被唯一
   bgfilter-worker(两次顺序 attempt + Semaphore(N))取代,避免单独阅读
   该条得出与现行架构相反的结论。
2. 运维文档标准发布序列不再写死 readyz 字面 URL,并补记 deploy 侧
   --bgfilter-worker-health-url 缺省从已校验 env 派生的行为(Jenkins
   不传该参数所依赖的语义此前未落本文档)。
3. decision-log 2026-07-23 条目对数据契约的行号引用改为条目名引用,
   避免随文档增长再次漂移。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
lhk229 added 3 commits 2026-07-23 17:04:18 +08:00
带入 Gitea CI 依赖缓存镜像刷新(SpacetimeDB 2.7.0 锁)与 LLM 原文日志
并行测试污染修复。冲突仅 decision-log 双方条目并存;BgFilter 分支代码
零冲突,bgfilter 46 测试全过。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
增加进程级1024审计任务硬上限并在spawn前拒绝超额任务。

启用BgFilter-worker独立tracking-outbox并接入启动与退出flush生命周期。

增加outbox-only审计策略、丢弃指标及相关单元和故障验证。

同步后端架构、开发运维和项目决策文档。
修正 decision-log 中 systemd 否决理由的表述精度
Project CI / Frontend tests (pull_request) Successful in 2m13s
Project CI / Native shell tests (pull_request) Successful in 2m44s
Project CI / Backend tests (pull_request) Successful in 3m15s
Project CI / Repository checks (pull_request) Successful in 1m1s
df80f272bf
After= 从「只保证 fork 顺序」精确为「只提供进程启动排序、不构成已监听
的 readiness 保证」;readiness 替代方案从单点 Type=notify 泛化为任何
显式 readiness 交接(notify / 阻塞式 ExecStartPost 探活 / socket
activation 等),人质论证对整类方案成立,避免决策依据留下「未考虑其他
手段」的重开口子。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
kdletters scheduled this pull request to auto merge when all checks succeed 2026-07-23 18:06:13 +08:00
kdletters approved these changes 2026-07-23 18:06:28 +08:00
kdletters merged commit a2ee879fc8 into master 2026-07-23 18:06:30 +08:00
kdletters deleted branch opt/BGfilter_worker 2026-07-23 18:06:30 +08:00
Sign in to join this conversation.