历史 · 当前状态
重构前档案,仅供追溯,不作为新版本执行指令
历史档案 · 2026-09-11 重构前快照。 本文中的“当前”“已冻结”和实施顺序属于旧基线。新版本以现行总览和实施计划为准。
当前工作安排:需求、设计与原型优先
2026-09-09 本人决定先补齐并统一全平台需求、产品设计与原型,随后按确认流程排后台 API、前端、API 文档与联调。总体和各平台计划见总体实施计划,实时工作包和决定进入本机协调。计划补全不等于需求/原型已验收。
下方为此前技术进度和 B1 工作包的历史快照,不代表当前唯一派工顺序。Core 存储回归已由 #21 → #19 合入 118f232c,主线 CI 123 单测/105 PG 通过;Console 目录/入口、Design 移交已合并。既有候选和运行限制保留,R1 需求设计轮次不等同 B1 完成。新状态以工作台的带日期核验为准。
2026-09-09 较早技术校正(历史)
以 B1 控制页最新核验 为当前依据,下方 9 月 8 日状态保留为历史记录。Contracts #11、Core #12/#15/#16/#17、Admin #9/#10、Infrastructure #18 已合并;Admin P4 #8 与 Infrastructure #17 已关闭。Core 已实现休眠 Schema 和事务 Repository,但合并态 CI 34308928860 失败(PG 72/73),原 Writer 正修复;独立 Reviewer 已在扩大范围复现四项 P2(回滚断言、B0 角色权限、Gap/Receipt 互斥、SAVEPOINT 事务识别),整体高风险,需修复及专业人工复核。P5 与 B1 真实联调仍未验收。
Studio #20 当前远端检查均通过,本地 #21 失败仍保留;Console #4 尚缺长期机器可读组合证据。下一步依次是 Core 修复与完整 head 接收、Contracts P5、Core Append/Bootstrap;不重开架构。普通包执行独立 AI 审查加用户完整 head 验收,高风险仍须专业人工复核。各仓治理模板同步另列独立包,当前不重复派发。
2026-09-08 历史记录
更新时间:2026-09-08;固定证据与核验范围见 B1 控制页。
OceanWay 已从“架构收敛”进入“共享执行骨架实施”。十四仓边界已经建立,Contracts 0.2.0、Organization-backed Core Run Admission、API Edge V1 受控入口及 Edge → Core → PostgreSQL 隔离联调均已通过门禁。Outbox Publisher/Dispatcher 与 Ops Explorer 的实施架构由 ADR-030 冻结;Execution → Gateway → Metering → Billing 的终局协议由 ADR-031 冻结。Contracts 0.3.0 已正式发布,Core/Admin 包资格及无副作用代码候选已进入独立评审输入阶段;B1 真实链路未验收。当前下一动作是 P3/P4 评审接收与 P5 收口,再推进持久化链路,ADR-031 是后续 Metering/Settlement 阶段的目标契约,不代表运行时已经具备这些能力;Personal Space API Admission 同样尚未实现。
状态定义
| 状态 | 含义 |
|---|---|
| 已发布 | 已生成固定版本和可追溯发布制品 |
| 已发布 / 扩展待验收 | 既有版本已发布,但当前新增契约仍需固定发布与消费者门禁 |
| 已验收 | 对声明范围已有评审和约定运行证据;B1 必须包含真实联调与故障恢复,单仓 CI 不足;不等于生产上线 |
| 已验收 / 扩展待验收 | 既有基线已验收,但当前新增契约或纵切扩展仍需独立门禁 |
| 待验收 | 已有实现候选,但独立 CI 或目标环境门禁尚未全部通过 |
| 已确认 | 已形成正式决策,后续实现必须遵守 |
| 已文档化 | 目标模型、边界和验收原则已经写入架构文档 |
| 开发中 | 已进入代码、数据或基础设施实现 |
| 待实施 | 已明确方向,但尚未进入完整实现 |
当前实施基线
| 领域 | 当前状态 | 已完成 | 下一门禁 |
|---|---|---|---|
| Polyrepo 与职责边界 | 已确认 | Site、Developer Center、Console、Studio、Drama、Commerce、Admin、Core、API Edge、Contracts、双网关、Docs 与 Infrastructure 已分仓 | 持续校验唯一 Owner、固定依赖和禁止跨仓源码导入 |
| Contracts | 0.3.0 已发布 / P5 待接收 | 0.2.0 保留 B0;B1 0.3.0 固定 004401c1、正式 tgz d30e9e67…,发布与双源校验通过 | Core #16/Admin #9 已有通过 CI,独立评审/合并/接收待完成;不能据此启用 v2 Writer |
| Core Run Admission | 已验收 / 扩展待验收 | main Commit f9e55b6 与 CI 33777925718 已通过;当前只包含 Organization-backed Credential Snapshot、Workload JWT 私有接口、publicModelId 解析、不可变 Run Input、credits 预占、Manifest、幂等与事务 Outbox | Producer 原子切换为配对的 Run/Wallet v2,保持准入原子性和幂等事件数量,不允许 v2/v1 混搭;Personal Space 继续拒绝 |
| API Edge | 已验收 / 扩展待验收 | main Commit f97cf5f 与 CI 33774539995 已通过;受控入口只承载 POST /v1/responses,完成强制幂等、22/43 Credential、本地 constant-time 校验和短期 Workload JWT Core 调用 | 接入低敏 best-effort Observation,同时保持 Intake 故障不改变客户请求;公网继续默认关闭 |
| 受控跨服务链路 | 已验收 | Infrastructure main Commit e72e5f3 已固化真实 HTTPS JWKS、JWT、Socket HTTP 与一次性 PostgreSQL 门禁;正式证据 evidence/controlled-admission-e2e-9cc3c9c49b16-f9e55b6e56e4-f97cf5f27027.json 绑定门禁 9cc3c9c、Core f9e55b6、Edge f97cf5f 和 Contracts 0.2.0 tgz | 不扩大为公网、Gateway 输出、Outbox 发布或结算完成;证据继续随源 Commit 固定 |
| Outbox 与运维投影 | 候选代码 / 未联调 | Core #17 实现 v2 无副作用折叠及 11 项新测试;#12 仅 Schema 准备文档 | Receipt/Mutation 事务、Dispatcher、Intake、Shadow/Integrity/Query 尚缺真实链路证据 |
| Admin Run Explorer | 身份壳已合并 / 包资格候选 | #5 Host-only 外壳已合并;#9 13 项测试与当前 head CI 通过,403 已解除 | 真实 Grant/Audit/Core Query、Explorer 与故障恢复未验收 |
| Metering 与 Billing | Reservation 基线已验收 / 终局协议已文档化 | credits 预占与不可变 Price Snapshot 已进入 Admission 纵切;ADR-031 已冻结 Dispatch Slot、Attempt 关闭、Settlement Input、三组 Validation Bundle、严格经济身份、Billing 本地终局、迟到 Transition/Exposure、Funding 与 Command Result | 在固定 Contracts Release 中实现严格 DTO/Golden/负测,再实现各 Owner 的版本化 Read/Validate Contract;未完成前不得把预占解释为结算、释放或可人工补扣 |
| Text/Media Gateway | 边界已确认 | 文本与媒体网关同级、私有且不拥有客户/售价/钱包事实 | 先接 Text Gateway canary;Media 在同级契约上随后接入 |
| Asset 与产品迁移 | 待实施 | Asset Version、Lineage、Console /ai 和 Studio 边界已经定义 | 文本结果登记 Asset;随后按命令切换 Console /ai 与 Studio Writer |
| 文档体系 | 已上线 | docs.oceanway.site 已发布并自动同步 main;架构、十四仓实施计划和项目进度已经分层 | 持续以 ADR、仓库证据和验收结果更新状态,任务级进度留在 GitHub |
已冻结的不变量
- 网页、公共 API 与内部模型使用不同发布面;内部规划、审核和评测模型不能进入公共目录。
- API Edge 只终止机器凭据并建立受信上下文,不保存第二份 Run、余额或模型事实。
- 首期 DeveloperCredential 固定为
ow_sk_<keyId>.<secret>,其中keyId为 22 字符、secret为 43 字符无填充 base64url。调用时 Raw Secret 只到 API Edge;Edge 按keyId从 Core 读取请求级验证快照,在本地执行 SHA-256 constant-time 比较,不持久化 Digest 或 Snapshot。 developerCredentialId本身是不可变 Credential Version 身份,不再叠加独立credentialRevision;轮换创建新 ID/Key/Secret 并撤销旧 ID,Core Admission 再次校验确切 Credential ID 与完整父链。- Edge 到 Core 只使用短期 Workload JWT;Core 解析
publicModelId、持久化不可变 Run Input,并继续拥有 Credential、Offering、Run 与 Billing 事实。 - 首期
POST /v1/responses强制要求Idempotency-Key;内部 Admission 强制apiVersion="v1",成功使用 flat{requestId, runId, status: "reserved", createdAt},错误使用 nestederror与 underscore 稳定错误码。 - 当前 Trace 能力只校验 W3C Version 00
traceparent并将合法 Trace ID 写入 Run/Manifest;未建立远端 Parent Span、Sampling State 或 OpenTelemetry Exporter。 - Core 是租户、授权、Billing、Run、Asset 和模型控制的事实 Owner;产品仓与网关不直连 Core 数据库。
- Run Admission 中
projectId由 Environment Execution Binding 唯一解析且可选,billingAccountId必填并由同一服务端绑定验证;客户不能声明或覆盖,首版只接受 credits。 - Event Envelope 使用
aggregateId与正整数aggregateRevision,不使用subjectId或orgId。 - 目标资源归属统一使用严格
tenantKind = organization | personal_space与tenantId;当前已验收 API Admission 和wallet.reserved@1.0仍只支持 Organization。Personal Space 不得通过字段映射伪装接入,必须等待 tenant-aware Manifest、Run/Wallet Event 与真实授权、账务门禁共同发布。 - Outbox Event Envelope/Payload 与已接受的 Observation Source 由数据库权限/约束强制不可变;Delivery/Attempt/Quarantine 与 applied receipt 分离,Consumer Receipt、Projection Mutation 和 Checkpoint 必须同事务。
- 首期 Outbox 使用 PostgreSQL 与
core-operations-worker,不新增 Broker 或仓库;Mandatory Delivery Set 在 Event Append 同事务冻结,Checkpoint 不使用会被 PostgreSQL 提交乱序或回滚空洞误导的全局标量 Position。 run.created@1.0 + wallet.reserved@1.0只能形成 Legacy/Partial 运维投影;下一 Contracts 版本配对发布run.created@2.0 + wallet.reserved@2.0形成低敏、自包含准入快照,不通过 Domain Query 或日志水合历史,也不收紧 v1 Optionality。- Run 准入、实际 Attempt 与网关私有路由分别由
RunAdmissionManifest、AttemptExecutionManifest、AttemptRouteBinding和GatewayRouteSnapshot固定;同一 Attempt 不允许换路,Metering 必须逐层验证 Binding、Route Snapshot 与 Evidence。 - Gateway 以唯一 Dispatch Slot 将每个 Attempt 原子收敛到
bound | terminal_rejected;只有可证明无 Provider Side Effect 的拒绝才能进入 Not-dispatched,状态未知必须保留为 Attempt-bound 并查询或对账。 - Execution 以不可逆关闭事实冻结完整 Attempt 集;Billing 先保存严格 Finalization Input,再取得 Execution、Metering、Gateway 三组 Purpose-bound Receipt,最后只在 Billing 本地事务原子写 Decision、Ledger 与 Reservation 终态。成功终局不重开,边界后的更正只走追加式 Transition、Exposure 与对账。
- Finalization Fence 进入
reconciliation_required后,普通 Closure/Settlement 输入只能推进已接受 Watermark,不能创建后继 Work 或离开 Case;只有当前代 Billing-owned Resolution Applied Event 能统一冻结最新 Watermark 并生成下一代评估 Work。完整 Resolution Command、Grant、Applied Fact 与双 Destination Event 必须先于任何可进入该状态的 Producer 上线。 - Finalization Case Identity Reservation 只绑定稳定 Tenant/Account/Reservation/Run/Fence/Generation/Predecessor,不绑定可能被并发取代的 Work;Case Requested Event 才冻结获胜 Work、Work Generation 与 Finalization Operation。Operations/Admin 对
late_settlement_dimension | billing_finalization_run两种 Billing 来源均禁止本地终结,终态必须绑定来源专属 Billing Applied Fact。 - 当前正式 Operations Reconciliation Case 只允许上述两种 Billing
sourceScope。Execution、Gateway、Metering、Provider Cost、Asset 与 Webhook 的其他确定性冲突留在唯一 Owner 内形成内容寻址 Conflict Fact 与 Active Blocked Work;暂态错误不写领域冲突事实。没有 Canonical Event、Mandatorycore_operationsDelivery、严格 Owner Read、Identity 与终态 Authority 时,不得伪造第三种 Case 或可靠 Admin 队列。 - Metering 新 Current Generation 必须以
supersededFinish 收敛旧 Started Attempt;Blocked Work 保留相同 Work/Operation/Generation、释放 Lease,并在修复后重领。同一 Work 不能同时被展示为 Running、Finished 与 Case。 - Admin Command Grant Exchange 使用稳定 Operation-first Result;同 Assertion Issuer/JTI 的相同 Candidate/Workload 在 Core 已提交但响应丢失后返回首次 Grant,异 Candidate/Workload 冲突,只有 Result 不存在才校验当前时间并消费 Assertion JTI。
- 客户结算始终携带严格
credits | entitlement{entitlementKey,unit} | money{currency}经济身份;人工迟到补结还必须绑定 Funding Policy、一次性 Funding/Command Grant 与内容可验证的 Command Result,不能跨价值桶重放。 - Edge Observation 与领域事实分离:到 Core Intake 前是 best-effort,一旦接受则按 Observation ID 幂等耐久保存;首期只描述已接受记录范围、健康窗口和已知投递失败,请求级完整性保持 Unknown/Not Measurable。
- Error Producer 提交版本化标准错误,Core Projector 是
Error Fingerprint的唯一计算者;Fingerprint 只基于单条 Accepted Error Observation 的固定七字段、NFC + RFC 8785 JCS 与 SHA-256,不能信任 Producer 自报服务或指纹。 - Operations Snapshot 只有在存在定义匹配的已完成一致性快照且 Guard 可比较时才可声明
verified;否则必须以严格unverified联合返回unknown,不能用缺失证据推断 Current 或 Stale。Shadow Rebuild 先冻结 Candidate 集合,追平该集合后再排空旧 Active 并原子切换,切换边界不得在最后事务中扩张。 - Operations Read Model、Projector 与 Private Query 归 Core,Admin 只通过 Workload JWT + 由 Core Authorization 签发的 Signed Workforce Grant 的 BFF 查询;特权或跨租户查询在返回数据前必须耐久写入 Audit,失败时关闭查询,首期完全只读。
- Agent 只拥有 Definition、Revision 与 Deployment;Run、Step、Attempt、Manifest 与 Output 由 Execution 拥有。
- 同一业务命令只有一个 Writer,不允许旧、新实现同时创建 Run、Reservation、Ledger、Asset 或 Provider Task。
- B0 的 Core/API Edge 固定 0.2.0 证据保持原范围;Core #16 与 Admin #9 候选已固定正式 0.3.0。包升级不等于运行时已启用;所有消费均限定私有 GitHub Packages 的精确制品。
本轮旁线与证据限制
- Studio #18 目录/候选隔离与 #20 生成入口强制尚未评审合并;#20 新 head 65f77c59 远端 CI 核验时仍运行,本地全浏览器仍为 140 pass / 19 skip / 1 fail(#21)。不声称网页/API 隔离已生产生效。
- Core #15 与 Console #4 已有真实隔离 HTTP/PostgreSQL 和本地浏览器组合报告;正式接口、Workload 身份和长期 Evidence 未接收。临时目录中的报告可能过期,不能充当永久验收索引;纯目录不代表 Console 登录、钱包或执行能力。
- Infrastructure #6 临时 K3s 拒绝/允许测试不能替代 Core/Admin 真实身份、DB Role 或目标环境故障恢复。B1 尚无完整 Event → Delivery → Receipt → Projection → Admin Query 的组合 Manifest。
- 完整测试数、固定 head、失败记录及唯一下一工作包见 控制页与下一阶段。
当前不代表已经完成的内容
- V1 Contracts/Core/API Edge 受控准入和隔离联调已经验收,但生产部署、Public API 公网切流、Gateway 输出、Outbox 发布、Metering 与 Settlement 尚未完成。
- ADR-029 的受控准入基线已经验收;当前
/v1/responses仍不接一般客户公网流量,也不产生模型输出。 - API Edge 默认
PUBLIC_ADMISSION_MODE=disabled且监听回环地址;controlled只授权隔离联调,不等于公网切流。 - 分布式限流、Developer Credential IP/细粒度 Scope 策略、完整 OpenTelemetry 链路和公网容量/压力测试尚未完成,是未来公开切流前置而不是当前完成项。
- 预占不等于完整结算;Gateway
ProviderUsageEvidence/ProviderCostEvidence、Metering 唯一 Writer 的规范MeterEvent/ProviderCostFact、释放、退款和对账仍需实施。 - Outbox 表不等于事件已经可靠发布,也不等于 Admin 已有可用的 Run Explorer。
- ADR-030、ADR-031 与 Operations 文档“已采用/已文档化”不等于 Run/Wallet v2、Dispatcher、Observation Intake、Projection、Query、Gateway Evidence、Attempt Closure、Metering、Finalization、Ledger Release 或 Admin 页面已实现。
- ADR-031 中的 Finalization Resolution 命令出口、Command Grant Exchange 恢复和 Billing-authoritative Case 终结同样只是已冻结契约;在其运行时与故障注入门禁通过前,不得启用会把 Finalization Fence 置入
reconciliation_required的路径。 - tenant-aware Run/Wallet v2 契约已在 0.3.0 发布;Personal Space API Admission 仍未实现或验收。Attempt/Route Binding/Evidence/Metering 不因 B1 发包成为已发布运行能力。
- 现有 Studio、Console、Drama、Commerce 与 FDE 尚未完成统一身份、钱包、资产和 Run 的生产切换。
- Canvas Runtime、完整 Agent/MCP 链路和 Media Gateway 执行不属于首个 Run Admission 基线。
Core 纵切见 ADR-028,API Edge 边界见 ADR-029,Outbox/Ops 决策见 ADR-030,执行、计量与账务终局见 ADR-031,详细实施契约见运维事件与读模型,执行顺序见下一阶段。