Opt/b gfilter worker #103

Merged
kdletters merged 37 commits from opt/BGfilter_worker into master 2026-07-23 18:06:30 +08:00

37 Commits

Author SHA1 Message Date
lhk229 df80f272bf 修正 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
After= 从「只保证 fork 顺序」精确为「只提供进程启动排序、不构成已监听
的 readiness 保证」;readiness 替代方案从单点 Type=notify 泛化为任何
显式 readiness 交接(notify / 阻塞式 ExecStartPost 探活 / socket
activation 等),人质论证对整类方案成立,避免决策依据留下「未考虑其他
手段」的重开口子。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-23 09:03:27 +00:00
lhk229 ed53a5c437 限制BgFilter失败审计堆积
增加进程级1024审计任务硬上限并在spawn前拒绝超额任务。

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

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

同步后端架构、开发运维和项目决策文档。
2026-07-23 09:01:33 +00:00
lhk229 2f875641ff 合并最新 master 分支
带入 Gitea CI 依赖缓存镜像刷新(SpacetimeDB 2.7.0 锁)与 LLM 原文日志
并行测试污染修复。冲突仅 decision-log 双方条目并存;BgFilter 分支代码
零冲突,bgfilter 46 测试全过。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-23 08:28:49 +00:00
lhk229 e54c1ef03a 补齐 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
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>
2026-07-23 07:52:00 +00:00
lhk229 fbe9d5dd99 修复生产部署门禁根用户夹具
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
新增install命令替身,忽略夹具环境无法满足的owner/group。

统一根用户与非根用户测试的目录创建、文件复制和权限设置。
2026-07-23 07:27:20 +00:00
lhk229 5c4ff0fa72 合并最新 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
带入手机号区域码前后端校验修复(#104)。触及 auth 契约与前端登录链路,
与 BgFilter 分支零冲突,自动合并。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-23 07:05:07 +00:00
lhk229 19a8fc2df0 合并最新 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
带入 SpacetimeDB 2.7.0(hotfix3)工具链升级、后台灰度发布控制面恢复、
精选顺序分列瀑布流及后台素材预览统一。冲突仅三处文档:decision-log 与
pitfalls 双方条目并存,运维文档更新时间取新值。BgFilter 分支代码与部署
脚本零冲突;依赖升级后 bgfilter 46 测试全过。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-23 07:02:17 +00:00
lhk229 65a36e4c97 合并远端并行的 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
远端 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>
2026-07-23 06:47:27 +00:00
lhk229 732900b696 BgFilter 连接重连冷启动宽限并收口重试契约一致性
一并落地评审的三个 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>
2026-07-23 06:30:20 +00:00
lhk229 2995447192 API 部署按参数渲染 worker systemd unit 后再安装
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>
2026-07-23 06:15:42 +00:00
lhk229 b93ace708c BgFilter 父侧连接失败有界重试,跨过 worker 重启窗口
主机重启 / 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>
2026-07-23 06:05:47 +00:00
kdletters 798098e064 修复生产发布 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
按部署参数渲染 BgFilter、外部生成 worker 与 controller unit
补齐 controller 环境文件参数及 Jenkins 全链路透传
新增安装后 unit 内容与流水线参数回归门禁
同步生产运维文档和共享项目记忆
2026-07-23 12:15:28 +08:00
lhk229 94f005c031 补齐 Gitea CI 行为检查
将 BgFilter smoke harness 接入 Frontend tests。

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

同步更新开发运维文档与共享工作流。
2026-07-23 04:13:48 +00:00
lhk229 c3fc51599f API 部署 BgFilter 验活 URL 缺省时从已校验 env 派生
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>
2026-07-23 02:52:32 +00:00
lhk229 ec4fd552e3 为 complex 增加独立 BgFilter 熔断
为 flat 与 complex 分别维护熔断状态并补充双模式指标。

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

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

补充熔断状态隔离测试并同步架构、运维与项目决策文档。
2026-07-22 14:39:41 +00:00
lhk229 835fe20c63 修复 BgFilter 内部 Token 单段校验
统一校验 BgFilter 内部 Token 并限制启动角色

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

补充定向测试、运维门禁与架构文档
2026-07-22 14:15:13 +00:00
lhk229 f5db8f4c1e 合并最新 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
2026-07-22 12:21:57 +00:00
lhk229 b804b96c40 补充 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
说明健康巡检独立读取 health-patrol env

提醒自定义 Worker 端口时同步更新巡检地址
2026-07-22 12:15:07 +00:00
lhk229 070f8f8fa4 修复 BgFilter 发布窗口配置漂移
发布窗口内 callBudget 漂移改为告警计数并按 Worker 当前预算执行

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

同步 BgFilter 调度方案与后端数据契约文档
2026-07-22 12:10:40 +00:00
lhk229 c03da0de0c 修复开发脚本导出排序
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
按 ESLint 规则调整开发脚本导出项顺序

恢复仓库完整 ESLint 检查通过
2026-07-22 10:15:40 +00:00
lhk229 733fbb55d9 合并最新 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
2026-07-22 10:06:45 +00:00
lhk229 7b9025b201 修复画布编辑器测试会话隔离
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
在画布编辑器测试开始前清理 sessionStorage,避免项目快照跨用例污染

验证素材批量删除与关联图层清理测试在完整测试文件中稳定通过
2026-07-22 09:47:09 +00:00
lhk229 2f8019c901 重构 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
按 N 与单图估时公式化派生 provider attempt、调用预算和队列等待上限

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

同步部署配置、运维门禁、smoke 测试及权威文档
2026-07-22 08:41:59 +00:00
lhk229 27f84fc6a7 完善 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
补充已发出 provider 请求的失败审计判定,并由 shutdown tracker 排空异步审计任务。

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

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

明确当前容器拓扑不包含 BgFilter worker,仅覆盖非 BgFilter 路径和 unsupported queue smoke。
2026-07-22 04:24:11 +00:00
lhk229 26ebb527ea 合并最新 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
同步 Gitea CI 依赖安装稳定性调整。
保留 BgFilter 本地双进程开发陷阱,并融合 Gitea runner 安全规则。
更新开发流程与本地运维文档。
2026-07-22 02:38:05 +00:00
lhk229 14721ce25e 合并最新 master 分支
保留 master 的画布交互、Agent、VectorEngine 与原生 CI 更新。
解决角色动画测试和项目决策日志冲突,不恢复按帧数放大 BgFilter 超时的旧逻辑。
同步修正融合文档中的 BgFilter worker、N/Q、重试与父侧降级边界。
2026-07-21 14:37:15 +00:00
lhk229 7ea7dce395 补充BgFilter全进程与真实链路冒烟验证
新增32/40/48并发、五类故障与harness自测。
新增真实OSS和BgFilter契约冒烟并严格清理临时对象。
补充本地运行方式、凭据边界与staging验收范围。
2026-07-21 14:03:05 +00:00
lhk229 566f2f2194 落地 BgFilter 单实例受限资源 Worker
新增私有 BgFilter worker,提供内部鉴权、并发限流、超时、顺序重试、flat 熔断和图片校验。
父生成流程改为通过内部二进制 HTTP 原地等待,并保留 flat 降级与 complex 失败语义。
接入本地开发、systemd、生产部署、Provision、健康巡检和配置漂移门禁。
补充动画、部署与运维测试、Linux fixture 隔离以及对应架构文档。
2026-07-21 12:05:27 +00:00
lhk229 a51b625101 补充 BgFilter 单实例同步调度方案
新增同步内部 HTTP 原地等待版架构方案,明确并发、超时、熔断与降级边界

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

更新文档目录并关联 BgFilter 专题方案
2026-07-21 08:09:48 +00:00
lhk229 55f71e13fc 合并最新 master 分支
同步 SpacetimeDB schema guard 基线扫描修复。

同步相关测试、排障记忆与融合方案文档。
2026-07-21 06:43:16 +00:00
lhk229 8143726095 决策日志边界行直接改为行为级表述
本条决策与其补充均为本分支新增,无需保留旧文再追加更正:
边界行「不修改 contain_rgba_image」改写为「不改变最终帧的 RGBA/padding 语义与透明帧格式」,
并删除补充行中为此加的更正说明

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 06:33:14 +00:00
lhk229 e312f1632b 更正决策日志中 contain_rgba_image 的边界表述
在 2026-07-21 补充行注明该函数后续重构(共享 contain 计算、同尺寸跳过重采样)但输出语义不变,
「不修改 contain_rgba_image」应理解为「不改变最终帧的 RGBA/padding 语义」

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

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 05:55:27 +00:00
lhk229 0f0a8d52df 还原共享抽帧像素格式并在 BgFilter 消费点合成 alpha
撤掉 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>
2026-07-21 03:12:06 +00:00
lhk229 0150837d69 合并 master 并保留角色动作抠图修复
保留 master 的单次 FFmpeg filter graph 批量抽帧。

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

合并并保留对应权威文档规则。
2026-07-20 13:58:17 +00:00
lhk229 75184d0771 固定抽帧像素格式并收敛动作帧图像处理重复代码
ffmpeg 抽帧显式指定 -pix_fmt rgb24,消除 to_rgb8 截断 alpha 的隐患
抽出 compute_contain_dimensions 与 image_format_from_mime 供两条帧路径共用
尺寸已匹配时跳过无效的 Triangle 重采样

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 13:37:55 +00:00
lhk229 41f578f0ac 修复角色动作抠图前透明补边
动作视频帧在抠图前改为 RGB8 等比缩放且不补边

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

补充像素回归测试并同步权威文档与长期决策
2026-07-20 13:02:59 +00:00