proxy-pool/progress.md
2026-07-29 21:47:50 +08:00

117 lines
9.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 项目进度
## 2026-07-29
- `adminstate` 六类命令/查询已封装公用 `Validate()`MemoryStore 改为统一复用;
后续 pgx Adapter 不再重复实现名称、引用、分页和 Outbox 租约输入校验。
- 一次命令装配审计误用了不存在的 `controller/distribution/service.go`;实际领域
服务位于 `controller/extraction`Distribution 包当前只负责 HTTP Handler。
- 根据对话最终定稿统一 Sequential至少两个 Upstream省略 `endBehavior`
默认 `stop`新增领域和严格配置回归测试。disabled candidate、跨实例游标和
`onUnavailable` 请求链仍未提前标记完成。
- 一次并行读取误用了不存在的 `routing/sequential_test.go`,另一次误用了旧 ADR
文件名;已改用 `routing_test.go``006-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.go`Gateway 构建辅助位于 `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` 过滤,不重复原命令。
- 已实现共享 `httpapi`、`httpsecurity` 与 `httpserver`,统一严格 JSON、Problem、
Request ID、认证、可信代理、Client ID、准入、多监听器生命周期和优雅停机。
- Distribution/Admin Handler 已装配到独立监听器Gateway 配置认证统一复用
`httpsecurity`API 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 `ApplicationService`mutation 统一映射到 `adminstate`Status 合并
一个权威管理快照和低基数运行态聚合;配置重载严格执行解析/校验、脱敏摘要、
持久化、原子发布顺序,任何持久化失败都不会替换旧运行配置。
- 已新增公用原子 `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=0`race 继续由 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=0`race 仍由 Linux CI 验证。