Commit Graph
24 Commits
Author SHA1 Message Date
wangbo 773d310214 fix(cluster): 强制关键副本跨节点分散
避免同站点 Worker 与容量控制器在滚动发布时集中到同一节点,并让 Kubernetes 运行态清单变更进入可追溯的 API release。\n\n验证:bash -n、ShellCheck、manual-release-test、生产集群 server-side dry-run。
2026-08-01 12:33:19 +08:00
wangbo 70b0ffb9ae feat(cluster): 接入深圳专用 Worker 节点
新增深圳 K3s agent 与四节点 WireGuard 全互联接入脚本,将深圳归入香港逻辑 Worker 池并用污点限制为 Worker 专用。\n\n生产验收支持宁波 0、香港逻辑池 2 的双物理节点基线,补充副本拓扑分散、容量档位、链路巡检和零副本站点校验。\n\n已通过 Go 全量测试、go vet、govulncheck、迁移安全检查、ShellCheck、发布脚本测试、前后端 lint/test/build、Compose 与 Kubernetes 渲染校验。
2026-08-01 09:38:10 +08:00
wangbo 709434a256 fix(acceptance): 自举线上隔离验收身份
线上验收此前依赖人工准备管理员 Token、专属用户、API Key、参考图片和数据库连接,导致跳过本地验收后仍无法安全、可重复执行。

本提交增加短期 Manager 登录、隔离用户/钱包/API Key 幂等创建、Pod 内脱敏快照导出和合成图片真实上传;敏感材料仅保留在进程或 0600 临时文件中。

验证:bash -n、ShellCheck、验收报告测试、参考图片生成测试、git diff --check。
2026-07-31 23:25:43 +08:00
wangbo 0b681275ed fix(acceptance): 支持显式跳过本地验收
在用户明确授权时,将本地原生与 amd64 制品阶段记录为 skipped/waived,并直接使用当前生产脱敏快照进入线上模拟。修复线上报告合并未写入生产 Run ID 导致后续 promote CAS 必然失败的问题。已通过报告回归测试、bash -n、ShellCheck 和 diff 检查。
2026-07-31 23:15:22 +08:00
wangbo a95184b5b6 fix(acceptance): 阻断本地控制面漂移污染验收
本地 K3s 节点此前在 Kubelet 中登记为宿主机资源,负载可挤压 etcd 并在 server 重启后继续污染同一 Run。现在为三节点设置真实可调度预算、独立 etcd/数据卷和锁定依赖镜像,并持续核对 server 与 API/etcd 健康。\n\n每次验收生成独立 Run ID,报告使用独占或原子写入,负载错误记录具体阶段;数据库鉴权不可用返回带 Retry-After 的 503,避免基础设施故障被误报为 401。\n\n验证:Go 全量测试、go vet、gofmt、OpenAPI、bash -n、ShellCheck、报告测试和 k3d 配置解析均通过。
2026-07-31 23:07:19 +08:00
wangbo 0b9634b74c fix(postgres): 修正跨地域 WAL 归档带宽预算
将生产 archive_timeout 从 60 秒调整为 5 分钟,避免 16 MiB WAL 段在当前宁波香港链路上持续产生高于复制吞吐的空闲流量。\n\n同步复制保持开启,双库健康时 RPO 仍为 0;单库降级时对象存储归档 RPO 保持在 5 分钟目标内。补充发布回归门禁,防止配置退回无法追平的 60 秒。\n\n验证:kubectl kustomize、bash -n、ShellCheck、manual-release-test。
2026-07-31 18:42:46 +08:00
wangbo e05922b0f4 feat(acceptance): 建立同构验收与弹性容量体系
实现本地三节点 K3s 同构环境、脱敏生产快照、Gemini 图片和多参考图视频协议模拟、统一验收报告及故障注入。\n\n新增 Worker 容量控制器、资源与连接预算、任务恢复保护,并将生产验收拆分为 validation 执行和人工 CAS 放量。\n\n验证包括 Go 全量测试、PostgreSQL HTTP 集成测试、go vet、OpenAPI、ShellCheck、前端检查、迁移及发布脚本测试。
2026-07-31 18:02:24 +08:00
wangbo 39b1541fa1 build(migrations): 固化 OIDC 迁移安全复核
为已进入主干且会重建约束的 OIDC 迁移增加 SHA-256 锁定的精确规则豁免,文件内容或违规类型变化时仍会拒绝发布。

生产只读预检确认受影响表规模很小,现有 6 条身份配置均为 schema v1,OIDC 会话和撤销水位均为空;新增校验器测试覆盖允许项和校验和篡改。
2026-07-29 16:19:00 +08:00
wangbo 810dcfeee6 perf(storage): 极简化任务历史并增加保留治理
停止持久化 provider 原始响应、兼容响应快照、attempt/event/outbox 重复 JSON,并由标准任务结果动态生成 Kling/Keling/Volces 兼容响应。

增加事件去重与预算、极简 callback 投递、7/30 天分批清理、安全删除条件、并发迁移索引及可实际恢复的任务域排除备份。历史清理默认关闭,待兼容协议和异步恢复在线验证后单独启用。

验证:Go 全量测试与 go vet、PostgreSQL 18 集成与实际备份恢复、迁移安全测试、bash -n、ShellCheck、Compose 配置和人工发布脚本测试均通过。
2026-07-24 18:23:22 +08:00
wangbo 22ee5bb624 fix(release): 修复首次发布基线解析 2026-07-23 23:54:31 +08:00
easyai dae5d16a58 refactor(release): 改为 Agent 双阶段人工发布
删除 Gitea Actions、Tag/Main 自动流水线和旧 Runner 配置,取消 Git 操作与发布授权的绑定。\n\n新增本地镜像发布、固定生产部署助手、digest manifest、迁移安全检查、simulation 冒烟及显式回滚流程。\n\n验证:pnpm lint、pnpm test、pnpm build、Go 全量测试、ShellCheck、Compose 配置、人工发布测试和 linux/amd64 完整栈冒烟。
2026-07-22 15:13:40 +08:00
chengcheng 0aa9b3e88f fix(ci): 使用隔离服务运行 PostgreSQL 集成库
ci / verify (pull_request) Successful in 11m30s
将 PostgreSQL 16 改为固定 digest 的 Actions service container,并通过专用 Job 网络向 Go migrator 和集成测试提供数据库。

移除 PR Job 对 Docker CLI 的依赖,继续禁止宿主及内层 Docker API 暴露;同步发布工作流、契约测试和镜像代理恢复说明。
2026-07-21 10:45:52 +08:00
chengcheng 3561efa7da fix(ci): 允许复用固定摘要的 Runner 镜像
ci / verify (pull_request) Failing after 8s
本地已存在完全相同 digest 的 Runner 镜像时跳过外部拉取,继续执行二进制校验与隔离探针;仅在镜像缺失时访问仓库。

避免 Docker Hub 瞬时不可达导致专用 CI Runner 无法恢复。
2026-07-21 10:36:56 +08:00
chengcheng b7bb9ed8d5 fix(ci): 为集成测试提供固定 Docker CLI
ci / verify (pull_request) Failing after 8s
从固定 digest 的 Runner 镜像提取 Docker CLI 29.6.0,校验二进制 SHA-256 后通过只读工具链挂载给 Job。

同步 PR 与 Tag 工作流的版本探针,并增加流水线契约测试,避免 PostgreSQL 集成测试再次因缺少 docker 命令失败。
2026-07-21 10:33:39 +08:00
chengcheng f8f8e9a7ca ci: 限制 Go 门禁并发峰值
ci / verify (pull_request) Successful in 14m35s
将 GOFLAGS=-p=1 与 GOMAXPROCS=1 收窄到 Go 验证步骤,降低 2 GiB rootless DinD runner 冷编译时的峰值资源占用。\n\n同时增加流水线结构契约测试,确保主分支与发布工作流都保留相同限制且不会扩散到 Trivy 等其他工具。
2026-07-17 20:02:58 +08:00
chengcheng 86509d5c43 fix(ci): reject procedural migration bodies
ci / verify (pull_request) Successful in 9m24s
2026-07-17 17:04:05 +08:00
chengcheng f226f9c953 ci: enforce production-safe database migrations
ci / verify (pull_request) Successful in 8m50s
2026-07-17 16:59:50 +08:00
chengcheng a6e95be0c5 fix(ci): use reachable vulnerability database mirror
ci / verify (pull_request) Successful in 11m20s
2026-07-17 15:38:59 +08:00
chengcheng e77ec9e842 security(ci): bound runner resources 2026-07-17 15:22:44 +08:00
chengcheng 06f95c5d86 ci: validate runner before registration
ci / verify (pull_request) Failing after 6m9s
2026-07-17 15:08:37 +08:00
chengcheng 1f8c5a3d03 fix(ci): support digest-verified runner mirrors
ci / verify (pull_request) Failing after 7m54s
2026-07-17 14:50:38 +08:00
chengcheng 6ba46514c1 fix(ci): expose pinned node during runner setup
ci / verify (pull_request) Failing after 6m8s
2026-07-17 14:43:27 +08:00
chengcheng 91ea0e6a2d ci: harden production quality gates
ci / verify (pull_request) Failing after 4m18s
2026-07-17 14:23:49 +08:00
chengcheng 745811cc6d ci: 建立生产镜像与 Tag 发布流水线
新增独立仓库级 Gitea Runner,main 和 PR 执行完整质量门禁与不可变 SHA 镜像构建;只有来自 main 历史的语义版本 Tag 才调用受限生产发布助手。专属 Buildx builder 将缓存限制为 2 GB。\n\n验证:流水线结构测试、ShellCheck、Go vet/test、govulncheck、前端 lint/test/build、Compose 渲染及高危依赖审计通过。
2026-07-17 12:39:07 +08:00