proxy-pool/progress.md
youfak d6ac783c1d
Some checks failed
ci / openapi (push) Has been cancelled
ci / proto (push) Has been cancelled
ci / image (push) Has been cancelled
ci / deployment (push) Has been cancelled
ci / test (ubuntu-latest) (push) Has been cancelled
ci / test (windows-latest) (push) Has been cancelled
ci / race (push) Has been cancelled
ci / integration (push) Has been cancelled
ci: build linux application image
2026-08-07 21:11:36 +08:00

27 KiB
Raw Permalink Blame History

项目进度

2026-08-07

  • GitHub Actions 新增 Linux Dockerfile 镜像构建 job覆盖多阶段交叉编译和运行时镜像层 本机不具备基础镜像网络,因此未将其替代为本地 Compose 运行验证。
  • 已校正 proxy-loadgen 架构文档HTTP、CONNECT 长连接和 Extract 都已实现;仅故障注入、 进程级资源采样和代表性集群报告仍未完成。
  • Kubernetes 开发 mTLS Overlay 恢复 ConfigMap 内容哈希:配置更新会重写 Controller、Gateway 和 Checker 的 volume 引用并触发滚动;固定名称 Secret 的轮换仍要求显式受控重启。
  • GitHub Actions Deployment job 现同时静态展开生产与测试 Compose并对本地 Compose 配置和 开发 mTLS 配置执行严格校验,避免仅检查 Kubernetes 覆盖层。
  • Docker 构建上下文现由根 .dockerignore 保护:本地控制面证书/私钥、环境文件、凭据文件、 Git 元数据和构建产物不会被 COPY . . 发送到镜像构建器;部署测试固定该清单。
  • OpenAPI 标准验证已固定为 @redocly/cli@2.25.4verify-openapi.ps1 对两份 OpenAPI 3.1 文档运行最小规则集,并将 Tag 描述提升为错误;本地统一校验与 GitHub Actions 均执行该门禁。
  • 运行验证环境探测Windows Go 为 CGO_ENABLED=0,系统没有可用 C 编译器WSL 仅安装 docker-desktop 发行版。Docker Engine 可用,但 Dockerfile 所需的 golang:1.26-bookwormdebian:bookworm-slim 未缓存,且 Docker Desktop HTTPS 代理不可用; 容器端到端验证尚未完成。
  • 控制面 mTLS 身份新增公共 tlsreload.ResolveSPIFFEIdentityGateway 和 Checker 在 PROXY_POOL_AUTO_IDENTITY=true 时只接受与信任域、环境和角色精确匹配的唯一 SPIFFE URI 并在显式 ID 不匹配时拒绝启动。Compose 与 Kubernetes 开发 mTLS Overlay 已移除手工 ID 改由挂载证书派生;定向 Go、文档、Compose、Kustomize 与严格配置校验均通过。
  • SPIFFE URI 解析已下沉到 workerruntime.SingleSPIFFEIdentityController 授权和客户端 自动派生共用同一边界。X.509-SVID 叶证书必须且只能包含一个 URI SAN用户信息、端口、查询、 片段、转义路径、非精确角色路径和跨角色多 URI SAN 均拒绝。
  • Gateway 静态 routing.action: direct 已贯通严格配置、控制面协议、完整 Snapshot、 HTTP/CONNECT 转发和目标地址策略。直连请求不会申请 Proxy 容量、创建粘性绑定或上报 Proxy OutcomeonUnavailable.action: direct 仍保留为代理无候选时的独立回退语义。
  • Loadgen 固定速率模式已修复截止时排队令牌的记账:generated = requests + dropped 防止报告将未执行的请求误记为已发送。
  • Compose 已启用 Controller、两个从开发证书派生身份 Gateway 和 Checker 的本地 mTLS 控制面; PowerShell/.NET 证书生成器输出 7 天 Controller DNS SAN 与角色隔离的 SPIFFE URI 私钥目录被 Git 忽略。Checker 新增 /livez/readyz/metrics,首次成功领取任务 批次后才 Ready后续领取失败会撤销 Ready。
  • 管理态禁用当前 Sequential Upstream 现不依赖 Provider 空结果Controller 以 ExpectedCurrent CAS 推进到后续启用项,loop 可回绕,stop/stayLast 无后继时 原子停用路由并刷新完整 Snapshot。定向测试覆盖无 Provider 读取、末端、回绕和跨副本竞争。
  • Health Scheduler 已与 PostgreSQL Admin 管理态对齐:每轮以同一配置 revision 合并启用状态, 被管理态停用的 Upstream 不再读取 Redis due-index也不会创建 BASIC、EGRESS、TARGET 任务; 管理态停用 Routing 则仅阻止该 Routing 的 TARGET 任务revision 不匹配、状态缺失或重复时失败关闭。
  • Grafana Overview 与 Prometheus 告警已从早期失效指标迁移到当前代码注册的低基数指标,覆盖 Gateway、Controller 容量、Provider、Extraction、Checker 与 Drain。部署测试会解析仪表盘和 规则,拒绝未注册指标以及 upstream/worker 聚合或 selector 标签,防止观测资产再次漂移。
  • Gateway 新增按固定 HTTP/CONNECT protocol 标签聚合的请求总耗时 Histogram覆盖从准入到 HTTP 响应或 CONNECT 隧道结束的完整生命周期Grafana Overview 已恢复该真实指标的 p99 面板, Prometheus 以相同固定标签集监控持续高于 5 秒的 p99。
  • 全仓 go test -count=1 -timeout 60s ./...go vet ./...go build ./...、 Protobuf descriptor、Kustomize Base 渲染及开发证书 SAN/SPIFFE 校验均通过。Compose 容器端到端启动在拉取 Dockerfile 前端与监控镜像时受 Docker Desktop HTTPS 代理缺失阻断, 未把该环境问题记为运行验证通过。

2026-08-02

  • 容量可观测性已接入 Provider 补池对账循环:每个成功 Redis 库存读数更新 Controller 进程级 managed/available/effective/pending/active Gauge失败只增加固定 success/error 的读取计数。Upstream 仅用于进程内聚合,领导任期结束即清除, 不成为 Prometheus 标签;不进入 Gateway 10 万 QPS 容量热路径,也不增加 Redis 查询。
  • Extraction 可观测性已接入公用 MetricsObserverController 暴露固定 result 的请求计数、请求 Proxy 总数和响应交付 Proxy 总数。事件在服务单一出口分类,覆盖 complete/partial/empty/insufficient/idempotency_conflict/rate_limited/unavailable/ invalid/error不带 Client、Request、Filter、Upstream、Proxy 或错误文本标签。 幂等重放统计响应交付而不误计为新的 Redis 消费。
  • Provider 拉取可观测性已接入公用 ResultObserverController 暴露 proxy_pool_controller_provider_fetch_results_total{class}proxy_pool_controller_provider_valid_candidates_totalproxy_pool_controller_provider_new_proxies_totalclass 仅允许 validemptyduplicate_onlyerror;指标不包含 Upstream、Proxy、IP、错误文本或凭据标签。 Provider 指标已完成。
  • 新增统一 JSON 结构化日志出口Controller、Gateway、Checker 的进程级致命错误只输出 组件和稳定错误类型不输出原始错误文本。敏感字段、错误对象、Bearer、URL 用户信息和 查询 Secret 均由 platform/logging 脱敏;回归验证使用真实 Secret 标记,且不在请求 热路径逐条写日志。
  • 已实现管理态驱动的即时完整快照刷新:SnapshotRefreshBroker 以每个 Worker 流一格的 非阻塞通道广播连续变更自动合并。Admin 成功提交 Upstream 启停、Routing 切换和配置 发布时触发通知Worker 保留原有定时刷新作为失效保护。Routing 切换不按旧 Upstream 强制 Drain共享上游不会受误伤Sequential 的后续预留直接使用新 CurrentUpstream 旧 Proxy 和活跃连接自然排空。Worker/Admin/Bootstrap 定向测试已通过。
  • Drain 可观测性已落地:proxy_pool_controller_drain_candidates_totalproxy_pool_controller_drains_started_total 只允许 unhealthyupstream_disabled 两种 reason。健康异常与上游停用 Reaper 复用领域接口上报, 不产生 Proxy、Worker、上游或地址标签Collector 注册复用与两类 Reaper 都有单测。
  • 已实现上游停用的自动 Drain有效策略由静态配置与 PostgreSQL Admin 管理态共同计算, Controller 持续发布到 Redis每个候选绑定上游 revision只从 owned(upstream) 有界索引 读取。Redis 在创建 Drain Ticket 前原子复核策略 revision、Proxy 上游、Worker、assignment epoch 和租约,重启用或重新分配后的旧候选不会排空当前归属。
  • 新增 Memory/Redis 契约与 Controller Reaper 测试,并修复 Provider Supervisor 只看管理态 而可能重新启动静态停用上游的问题。go test -count=1 -timeout 60s ./... 和 Redis 集成标签 测试已通过。
  • 已提交并推送 2af504f feat: expose gateway outcome metricsGateway 请求路径使用 领域 Metrics Observer将固定阶段的成功/失败聚合到 proxy_pool_gateway_outcomes_total{stage,result},并暴露本地 Outcome 队列满时的 proxy_pool_gateway_outcome_queue_dropped_total。指标不包含 Proxy、路由、目标、客户端或凭据。
  • 新增队列、Prometheus 注册复用和 Gateway 启动装配测试;go test ./...scripts/verify.ps1 全部通过,后者按环境跳过 CGO_ENABLED 未启用的 race 测试。
  • 已完成持续 UNHEALTHY 后的安全淘汰:首次异常时间写入 Redis TTL 活动池, check.unhealthyRemoveAfter 按 Upstream 生效Controller 通过公用、有界的 Reaper 回收未分配代理。仍持有 Worker ownership 的候选以 (proxy, worker, assignment epoch, unhealthySince) 有界返回,并由条件式 Drain 原子复核后创建 Ticket排除 Snapshot ACK 与 Runtime 零计数收尾后再删除,避免影响仍在 Gateway Snapshot 中使用的代理。
  • Redis 集成标签测试在未设置 PROXY_POOL_TEST_REDIS_URL 时现能正确跳过所有契约 子测试;go test ./...go test -tags=integration ./internal/adapters/redisactivityscripts/verify.ps1 已通过race 仍由 Linux CI 执行。
  • Worker 控制面改为持续完整 Snapshot 发布Controller 在每份 Snapshot 有效期的一半 前重建并下发递增版本Gateway 在同一长连接内原子替换视图;构建失败或流中断时才由 SessionSupervisor 按原有退避重连。该机制复用 RefreshingSnapshotSource,不降低 Delta 的 fail-closed 校验。
  • Health Scheduler 现在先建立 EGRESS 与 Routing TARGET 的独立 due 引用,再投递 BASIC 任务;在单项小批次下,短 TTL Proxy 不会因 BASIC 先出队而错过首次出口/目标探测。
  • 修复 Snapshot epoch/version 栅栏Worker 流的 version 在 ownership epoch 前进时 仍严格递增Gateway 以连续版本加非倒退 epoch 进行完整快照原子替换,避免动态分配后的 有效刷新被错误拒绝。这是后续自动 Drain 编排的必要前提。
  • Drain 首次发起现在原子推进 ownership epoch并写入由 Proxy、Worker、原 assignment epoch 与所需 Snapshot epoch 组成的待绑定 TicketRedis 使用 drain-tickets 与按 Worker 的 worker-draining 索引ACK、过期和硬删除会清理 Ticket。Worker Handler 在持久登记完整 Snapshot 引用后,核验代理确实不在完整视图内,再绑定 Ticket 的 session/version/epoch/checksum 屏障;同一 Redis Runtime 替换事务验证当前 session ACK、 Ticket 屏障和完整报告零计数后自动删除 owner/Ticket/Drain 索引并恢复 AVAILABLE 代理的 可分配索引,避免读写分离竞态。

2026-07-30

  • Gateway Capacity 新增一次打包原子读取,snapshot.Store 可生成完整稀疏 Active/Reserved 运行态报告;当前快照已移除但仍有连接的 Proxy 会持续以 draining 上报,归零后从后续报告消失。

  • 新增公用 workerruntime session/report/read seam 与并发安全 MemoryStore 完整替换、空报告清零、session fencing、单调 sequence、同内容幂等重放、 冲突/倒序拒绝和 TTL fail-closed 均已有单测。

  • 生产 redisactivity Adapter 新增 Worker session/运行态 Lua 和权威 pool.InventoryReaderManaged/Available Slots 原子计入状态、TTL safety、 MaxConcurrency、ownership 及 Active/Reserved未知或过期运行态贡献零容量。

  • 真实 Redis 8.2 已覆盖 ACK snapshot/epoch、旧 session、空报告、超前 epoch、 报告过期、扫描预算耗尽及容量聚合。Managed 使用已有权威计数Available Slots 只扫描目标 Upstream 的未分配/已分配可用索引Gateway 报告扫描当前 Snapshot并用分片索引补充已移除但仍非零的 runtime历史注册表设置硬上限。 WorkerControlPlane 接收端、Provider Fleet/bootstrap、全局 fetch.maxTotal 和健康执行链仍待完成,总验收计数保持 51/73。

  • Gateway 当前 Proxy 禁用活跃索引回调,只有移出 Snapshot 后才开启分片追踪; 本机 100k Proxy Acquire 三轮 1 秒基准为 893.9-1047 ns/op、256 B/op、 2 allocs/op。该数据只证明本地调度微基准不代表 100k QPS 集群验收。

  • 新增公用 Provider Coordinator.RunLeader / LeaderSession 深 seam 和独立 redisprovider AdapterRedis Lua 原子维护 generation、epoch、Leader 租约、 全局 requestInterval 与带 TTL 的 maxInFlight Permit异常时 fail-closed。

  • 真实 Redis 8.2 已验证两个 Controller 同 Upstream 只有一个 Leader、取消后 epoch 单调接管、跨实例请求限速/在途上限、Permit 幂等释放,以及 Redis 协调 状态丢失后使用新 generation 自动重建。

  • 新增显式 refill.reconcileInterval/minimumAvailableSlots/targetAvailableSlotsfetch.estimatedIPsPerCall20 份示例、主配置、Compose/Kubernetes 配置均通过 严格解析和理论容量边界校验。

  • Pool Reconciler 已按并发槽位实现 minimum/target 迟滞并计入 pending 预估; FetchBudget 只在没有 pending 请求时接受 Redis Managed 同步,消除 Upsert 与 Permit Complete 短窗口中的重复计数风险。

  • Provider Fleet、Worker Active/Reserved 容量汇总和 Controller bootstrap 接线 尚未完成,本轮不增加 51/73 的总验收计数。

  • 新增公用 platform/metrics.NewHandler,固定提供 /livez/readyz/metricsReadiness 失败只返回脱敏状态,不泄露底层存储错误。

  • Metrics 地址进入严格配置校验Controller Runtime 支持 Metrics-only 和 Distribution/Admin/Metrics 三监听器隔离、首错联动及统一优雅停机。

  • Controller bootstrap 使用同一根生命周期装配 Prometheus 默认 Gatherer Metrics Readiness 按启用能力低成本检查 PostgreSQL/Redis不触发 Provider 或 扫描 Proxy 明细。

  • go test 定向包和 .\scripts\test-controller.ps1 通过;真实 PostgreSQL 18 + Redis 8.2 fixture 已验证 /readyz 与 Prometheus 输出,临时容器和网络已清理。

  • 新增 cmd/proxy-controller 与公用 controller/bootstrap.Run;配置只加载一次, 同一快照用于存储连接、PostgreSQL 管理态提交和 HTTP Runtime 构造,避免启动 期间二次读取产生配置撕裂。

  • Bootstrap 已封装 PostgreSQL Ping/迁移/pgx Adapter、Redis Ping/活动池、 Distribution/Admin 服务构造、运行错误与关闭错误合并;main 仅处理 -configPROXY_POOL_CONFIG、信号上下文和退出码。

  • 活动池新增公用 StateInventoryReaderMemory/Redis 使用同一契约Redis 通过低基数 Hash 和五个原子 Lua 维护七类状态计数,不扫描 Proxy 明细。

  • 新增 controller/operations.Reader,把当前配置中的 Upstream 与活动状态映射到 Admin StatusWorker/Snapshot 与 Provider 统计尚无来源时保持空/零,不用 Managed 冒充 Available

  • Redis 状态读取在有界过期清理仍有积压或检测到负计数时 fail-closed避免 Admin 返回包含失效代理或损坏计数的成功响应。

  • 本轮全仓 go test -count=1 -timeout 60s ./...go vet ./...go build ./cmd/proxy-controllergit diff --check 通过;新加的 Redis backlog/负计数场景也已通过真实 Redis 8.2 fixture。

  • 新增 test-controller.ps1 双存储 fixture真实 PostgreSQL 18 + Redis 8.2 已 通过迁移、启动配置提交、Redis Readiness 与 Admin Status 组合验证。

  • 固定 github.com/jackc/pgx/v5 v5.6.0,实现封装在 adminstate.Store 后的 PostgreSQL 深适配器配置、Upstream、Routing mutation 在同一事务中提交 revision、管理状态、审计与 Outbox数据库错误不泄漏 DSN、SQL 或参数。

  • 实现只读 Repeatable Read Snapshot、审计分页、FOR UPDATE SKIP LOCKED Outbox 领取和整批 ACK具体 Adapter、SQL、pgx 类型及 codec 不向业务层暴露。

  • 新增同一物理连接迁移执行器和 PostgreSQL 18 隔离 fixture每个测试使用唯一 Schema回环端口和 tmpfs 不保留数据CI 已加入 Redis/PostgreSQL 集成任务。

  • 真实 PostgreSQL 18 已通过完整公用契约配置事务、Upstream 幂等、100 并发 Routing CAS、Routing no-op、审计分页、Outbox 租约/重领、原子 ACK 和 Context。

  • 审计与 Outbox 触发器故障注入证明状态、revision、审计和事件完整回滚迁移 重复执行及 information_schema 检查确认仅有六张管理表,无 Proxy、凭据、 逐次提取、Worker ownership 或幂等明细。

  • Docker Hub 直连因 Docker Desktop 未配置 HTTPS 代理超时,改从 Google 官方 Docker Hub 公共缓存拉取相同 postgres:18-alpine 镜像并本地重标记;未修改 Docker Desktop 全局镜像配置。

  • implementation-plan.md 中 PostgreSQL 两项验收已完成,总进度由 49/73 更新为 51/7369.9%生产命令装配、分布式协调、Checker 和 100,000 QPS 集群压测 仍未完成。

2026-07-29

  • 新增公用 verify-proto.ps1:自动发现 Google well-known types include固定 编译控制面 Proto 的 imports/source-info descriptor并拒绝空输出本机生成 30,972 字节 descriptor。verify.ps1 在存在 protoc 时执行CI 强制安装待补。
  • 新增 Distribution/Admin OpenAPI 公用 CI 结构门禁,递归验证本地 $ref、 operationId 唯一性、HTTP operation 响应和 security scheme 引用;完整 OAS 工具验证与 Protobuf descriptor CI 编译仍保持未完成。
  • 一次 OpenAPI 检索在 PowerShell 双引号中误触发 $ref 变量解析;已改用单引号 模式继续审计,未重复原命令。
  • 新增 PostgreSQL 18 隔离测试服务的静态契约:回环端口、正确 PG18 tmpfs 数据 根目录、零持久卷Redis 测试改用独立 Compose 项目和显式服务启动,避免两个 fixture 相互影响。未拉取或启动容器pgx Adapter/真实契约仍待依赖确认。
  • 扩展 adminstate/contracttest 公用契约:审计完整字段和 AfterID 分页、Routing no-op 审计且不写 Outbox、批量 ACK 零部分提交,以及六个 Store 方法的 Context 取消MemoryStore 全部通过,后续 PostgreSQL Adapter 必须运行同一套契约。
  • adminstate 六类命令/查询已封装公用 Validate()MemoryStore 改为统一复用; 后续 pgx Adapter 不再重复实现名称、引用、分页和 Outbox 租约输入校验。
  • 一次命令装配审计误用了不存在的 controller/distribution/service.go;实际领域 服务位于 controller/extractionDistribution 包当前只负责 HTTP Handler。
  • 根据对话最终定稿统一 Sequential至少两个 Upstream省略 endBehavior 时 默认 stop新增领域和严格配置回归测试。disabled candidate、跨实例游标和 onUnavailable 请求链仍未提前标记完成。
  • 一次并行读取误用了不存在的 routing/sequential_test.go,另一次误用了旧 ADR 文件名;已改用 routing_test.go006-postgresql-admin-state.md,未重复命令。
  • 新增文档契约测试,递归验证 README、docs、deploy、diagrams 的相对链接,并 拒绝公开指南引用不存在的具体 Go 命令目标;修正配置参考中尚未实现的 cmd/proxy-controller 启动命令,改为当前真实可执行的严格配置校验工具。
  • 已复核 implementation-plan.md 的验收项机器契约、OpenAPI/Protobuf 验证、 完整文档导航、20 份配置示例和 35 张 Mermaid 图已有仓库及验证证据,修正 滞后勾选;进一步核对发现 descriptor 编译尚未进入 CI同时验证脚本和双平台 CI 已完成,最终校正为 49/73约 67%。
  • 正在并行审计 Routing/Sequential 与 Proxy Capacity 的剩余边界;本轮只收敛 已确认公共接口和既有需求,不把 Checker、pgx 或 100,000 QPS 目标提前记为完成。
  • Routing 审计确认五种策略尚未进入真实请求链、onUnavailable 只有配置校验、 Sequential 仅有进程内 CASCapacity 审计确认固定 Max 不超卖,但动态降容、 Reservation 完整生命周期观测和短 TTL 运行态回收待完成。追踪矩阵已降级为 准确的“已完成证据 + 待办”描述。
  • 定向执行 Proxy、Routing、Config、Gateway Dispatch/Server 测试,全部通过; 该结果只证明现有行为基线,不替代上述缺失运行链的验收。
  • 一次组合检索因包含不存在的 config 路径返回退出码 1有效输出已保留 后续检索改用实际目录 internal/config,未重复原命令。
  • Routing Runtime 设计核对确认采用 Controller 权威状态 + Gateway 不可变本地 快照的混合模型;已定位 Extract direct、默认值、disabled 推进和单 Upstream Sequential 四项需确认语义,尚未在未批准设计上开始实现。
  • 一次读取误用了不存在的 controller/runtime/bootstrap.go 路径;实际文件为 runtime.goGateway 构建辅助位于 gateway/server/bootstrap.go,已改用真实 文件继续核对,未重复失败命令。
  • 架构证据审计确认 Provider 分布式 Leader、Health Reducer/Checker、Prometheus 指标模块和四个生产命令仍缺实现;追踪矩阵已把这些条目的配置/领域基础与 完整运行时证据拆开描述。
  • 新增独立 Capacity 生命周期测试,覆盖 Cancel 后复用、重复 Commit/Cancel/ Release、Release-before-Commit、1,000 轮并发 Commit/Cancel 及 100 并发 ReleaseProxy、Dispatch、Snapshot、Gateway Server 定向测试全部通过。
  • 一次 rg 同时包含不存在的 cmd 路径,以及两次使用 PowerShell 不展开的 通配路径,分别返回退出码 2/123后续改用实际目录和 -g 过滤,不重复原命令。
  • 已实现共享 httpapihttpsecurityhttpserver,统一严格 JSON、Problem、 Request ID、认证、可信代理、Client ID、准入、多监听器生命周期和优雅停机。
  • Distribution/Admin Handler 已装配到独立监听器Gateway 配置认证统一复用 httpsecurityAPI 401 与代理 407 语义保持分离。
  • 部署配置已使用 ${VAR} 真实环境变量解析ConfigMap 与本地配置通过 LoadResolved 回归测试。
  • 已新增公用 activitypool 契约和并发安全内存参考实现Provider 按各供应商 TTL 与安全余量写入,独占提取、短期幂等和 Worker 所有权在同一原子边界内。
  • 已实现生产 Redis Activity AdapterUpsert、健康更新、原子提取、所有权、 Drain/ACK、库存读取与有界过期清理均封装为窄领域端口和 Lua 原子操作。
  • MemoryPool 与 Redis Adapter 运行同一套公用契约;真实 Redis 8.2 fixture 已覆盖 100 轮并发提取和 100 轮所有权竞争,本地 Compose 不持久化短效代理数据。
  • Proxy 明细不写 PostgreSQLPostgreSQL 仅保存配置版本、管理状态、Admin 审计、管理 outbox 和可选聚合指标。
  • usableUntil 已进入 Worker Snapshot 契约Gateway 在供应商硬过期前按安全 余量停止新分配。
  • PostgreSQL 管理面 Adapter、Provider Leader/分布式限流与心跳装配、生产命令 入口、Redis 故障转移验证和代表性 100,000 QPS 集群压测仍待实现。
  • 已新增 ADR-006 与公用 adminstate 事务 seamMemoryStore 在同一锁内提交管理 状态、Admin 审计与 Outbox覆盖配置冲突、Upstream 幂等、100 并发 Routing CAS、Outbox claim/ack 租约、上下文取消和不可变快照。
  • PostgreSQL 管理 Schema 已限制为六张配置/状态/审计/Outbox 表,并由静态测试 拒绝 Proxy、凭据、逐次提取、ownership 和短期幂等明细pgx Adapter 和真实 PostgreSQL 18 契约仍待实现。
  • Admin Handler 现在复用 httpsecurity.Identity,把 Actor ID 与可信 SourceIP 传给 enable/disable/switch/reload mutation供持久化审计直接使用。
  • 已实现 Admin ApplicationServicemutation 统一映射到 adminstateStatus 合并 一个权威管理快照和低基数运行态聚合;配置重载严格执行解析/校验、脱敏摘要、 持久化、原子发布顺序,任何持久化失败都不会替换旧运行配置。
  • 已新增公用原子 config.Store 与标准 FileConfigurationLoader;覆盖 100 组 并发读写、typed-nil、未知字段、主配置/Secret 文件 I/O、取消、Secret 轮换和 Admin 禁止依赖 Redis Extract/Proxy 明细的架构边界。
  • 本轮 .\scripts\verify.ps1.\scripts\test-redis.ps1、Compose 静态展开和 Compose 非持久化策略测试通过Windows CGO_ENABLED=0race 继续由 Linux CI 执行。
  • 本地 PostgreSQL 管理面基础已提交为 7951c29;推送 build/proxy-pool-architecture 时远端返回 Authentication failed,未重复执行 相同推送。当前本地提交保持完整,等待可用 Git 凭据后同步。

2026-07-28

  • 用户删除了先前基于不完整网页内容生成的设计文件。
  • 已重新读取当前 对话内容.md 全部 9,404 行。
  • 已按主题定位配置定稿、实施方案、Distribution API、认证、安全、并发、 故障语义和最终 Exclusive Extraction 修订。
  • 已建立新的任务计划与事实记录,旧网页摘要不再作为需求证据。
  • 已建立需求追踪矩阵、统一领域语言、产品设计、总体架构、项目结构、ADR、 开发、配置、API、安全、测试与运维文档。
  • 已提供 20 个严格校验的配置示例、Distribution/Admin OpenAPI、Controller/ Worker/Checker Protobuf 契约和 35 张 Mermaid 图。
  • 已实现并测试 Proxy 状态/TTL/唯一键、打包原子容量、首条路由、Sequential 并发切换、Fetch 分类、一次性独占提取、严格配置、Snapshot 与本地 Dispatch。
  • go test ./...go vet ./...go build ./... 通过。
  • Protobuf 描述符编译、Compose 静态展开、Kustomize 渲染、Grafana JSON 与 配置示例校验通过。
  • Windows 当前 CGO_ENABLED=0 且无 C 编译器race 测试由 Linux CI 承担。
  • 100,000 QPS 仍是未验证设计目标;运行进程、存储适配器、完整网络转发与 代表性集群压测尚未实施,已在完成审计中明确列出。
  • 历史文档压缩包已由用户删除,当前交付以仓库内可追踪文档为准。
  • 已实现 random、roundRobin、weighted、leastConnections并将 Sequential 拆成共享 Upstream 空结果状态与每 Routing 版本化游标。
  • 已实现 Provider 合并通知、完整 attempt 超时、永久错误契约、指数退避、 Retry-After、原子 FetchBudget 以及 Pool Reconciler。
  • 已强制 Worker 所有权与 Exclusive Extraction 注入同一权威 Repository 覆盖 100 轮并发竞争、续期、Drain ACK 和 Worker 过期回收。
  • 已实现提取服务层策略映射、Redis 短期幂等语义、来源身份准入和公共 FixedWindow 全局/Client 限流器;不保存逐代理提取审计记录。
  • 已为 100k Proxy 快照建立 scheme/upstream/tag 索引;本机持续基准中 Acquire 为 640 ns/op、256 B/op、2 allocs/op。该数据仅证明本地选择热路径 不代表 100k QPS 集群端到端容量。
  • 本轮 go test -count=1 ./...go vet ./...go build ./...git diff --check 通过Windows CGO_ENABLED=0race 仍由 Linux CI 验证。