Skip to content

fix(compose): make runtime bootstrap verifiable#87

Draft
ULookup wants to merge 2 commits into
fix/82-push-thread-handofffrom
fix/78-compose-runtime
Draft

fix(compose): make runtime bootstrap verifiable#87
ULookup wants to merge 2 commits into
fix/82-push-thread-handofffrom
fix/78-compose-runtime

Conversation

@ULookup

@ULookup ULookup commented Jul 22, 2026

Copy link
Copy Markdown
Owner

背景

这是 Issue #78 的运行时部分,堆叠在 #86(以及其基础 #85)之上。按评审要求,本 PR 不修改任何 GitHub Actions workflow;CI 门禁与隔离存储将在独立后续 PR 中提交。

变更

  • 将 MinIO 接入根 Compose,区分 Media 容器内部 endpoint 与客户端可达的 presign endpoint,并修正 Conversation 公共媒体 URL。
  • 增加 checksum 驱动的 MySQL one-shot migrator、17 张当前 ODB 表、五个最小权限应用用户;所有数据库消费者等待迁移成功。
  • 增加有界 Redis Cluster、RabbitMQ、MinIO initializer;固定 Redis/Rabbit 持久节点身份,避免容器重建后保留临时 IP/节点名。
  • 增加 Gateway 无认证、依赖感知的 GET /health,以及覆盖 MySQL/Redis/RabbitMQ/ES/MinIO/etcd/Gateway/Push 的语义 readiness helper。
  • 修复 RabbitMQ host double-port 契约与 credential URI 编码;bootstrap secret 不进入 Rabbit/MinIO 命令参数或持久化生成物。
  • 同步 README、canonical operations 与 Agent architecture/testing references;运行时状态明确标记为 Unverified。

RED / GREEN 证据

先观察到契约 RED:缺失 MinIO、完整 schema、readiness helper、Gateway health、稳定 Redis/Rabbit 节点身份、可执行 MinIO init 镜像、AMQP credential encoding,以及错误的 Conversation/Transmite 配置。实现后对应 contracts 全部 GREEN。

已通过:

  • go test ./pkg/... -count=1
  • go vet ./pkg/contracts
  • make -C tests test-agent-policy
  • docker compose --env-file .env.example config --quiet,以及缺失 secret 的负向失败检查
  • Bash/sh syntax 与 Rabbit Python compile
  • docker build -t chatnow-minio-init:local docker/minio-init,镜像内 /bin/sh/mc smoke 与缺参失败检查
  • Release 完整构建:Conversation、Gateway、Media、Message、Push、Transmite
  • AMQP userinfo 特殊字符动态编码检查
  • git diff --check

尚未运行

未启动或清理完整 Compose 栈,未运行 BVT/Functional/Reliability/Performance。当前主机磁盘余量很低且存在不属于本任务的运行中容器/数据;本 PR 不执行破坏性 down -v。因此保持 Draft,且不声称 cold-start 已通过。独立 CI PR 将提供命名卷隔离、两次 cold-start 和真实门禁证据。

Refs #78

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant