diff --git a/docs/refactor/backend-architecture-next-stage.md b/docs/refactor/backend-architecture-next-stage.md index 31db556fc..da0936de0 100644 --- a/docs/refactor/backend-architecture-next-stage.md +++ b/docs/refactor/backend-architecture-next-stage.md @@ -222,6 +222,12 @@ flowchart TB **回滚**:恢复旧 CLI 解析器即可;不得回滚已审查的 fixture 内容。 +**实施记录(2026-08-21)**: + +- `baseline.py` 已提供 host/plugin 的显式 check/write scope,性能基线提供 print/check/write;默认行为只读, + write 前列出目标,宿主检查不依赖外部插件仓存在。 +- CLI、只读工作树和 fixture 定向写入测试已覆盖,提交为 `7bc3ea83`。 + #### ARCH-202:把语义基线与诊断位置分开 **目标**:正常行号移动、时间戳或插件仓 HEAD 变化不再触发“架构语义变化”;真实方法、事件、导入、签名和结果契约变化仍失败。 @@ -237,6 +243,12 @@ flowchart TB **完成标准**:只插入空行不改变 semantic fixture;改 `run_module("...")`、EventType、SDK 导出或 Compat 映射仍稳定失败。 +**实施记录(2026-08-21)**: + +- semantic key 与行号/来源 revision 诊断已分离;时间、位置和外部仓 HEAD 不再参与硬比较,真实 import、method、 + event、SDK/compat 变化仍产生精确 diff。 +- 旧 fixture 可兼容读取,语义稳定性与真实变更失败测试通过,提交为 `37c442b0`。 + #### ARCH-203:把架构与跨仓兼容纳入持续 CI **目标**:当前只手工执行的架构/插件观察变成分层 CI。 @@ -250,6 +262,12 @@ flowchart TB **完成标准**:宿主 PR 不因外部仓普通版本变化随机红灯;真实兼容破坏能定位到插件和符号。 +**实施记录(2026-08-21)**: + +- 主测试 workflow 增加独立宿主 Architecture Contract Gate,跨仓插件检查进入定时/手工 observation workflow, + 只上传报告、不自动写 baseline。 +- Pylint 硬门禁只检查本次改动 Python 文件,全仓结果保留 advisory artifact;提交为 `6c7c54d2`、`0959831b`。 + ### 阶段 1:固定部署拓扑和统一入口 #### ARCH-210:V3 全功能模式强制单 worker @@ -279,6 +297,12 @@ flowchart TB **完成标准**:不再存在看似支持、实际重复运行控制面的多 worker 配置。 +**实施记录(2026-08-21)**: + +- Startup 边界、launcher 与 Doctor 共用单 worker 拓扑合同;全功能模式拒绝 worker>1,safe mode 与旧配置键保持 + 兼容,部署文档解释控制面重复风险。 +- worker=1/>1、safe mode 和配置解析专项测试通过,提交为 `d89d2961`。 + #### ARCH-211:修正 Uvicorn app factory 与开发 reload **目标**:生产、开发 reload、测试和外部 ASGI supervisor 使用明确、可验证的入口,不依赖 app 实例在 multiprocessing/reload 下的未支持行为。 @@ -301,6 +325,12 @@ flowchart TB tests/test_testing_bootstrap.py -q ``` +**实施记录(2026-08-21)**: + +- reload/监督进程统一使用 `app.factory:create_app` import-string factory;生产入口保留单 worker 和既有优雅停止, + import/create 阶段不启动 DB、插件或后台线程。 +- launcher、lifespan、factory/TestClient 与信号关停测试通过,提交为 `bb57b229`。 + #### ARCH-212:统一数据库准备与健康语义 **现状证据**:`run_application()` 会调用 `prepare_database()`,外部 supervisor 直接加载 @@ -323,6 +353,12 @@ flowchart TB **回滚**:生命周期组件可暂时委托回 `app.main` 旧调用,但同一版本不能同时保留两个主动迁移入口。 +**实施记录(2026-08-21)**: + +- 数据库准备已成为最早生命周期组件,`app.main` 不再重复迁移;所有受支持入口共享 prepare/head/readiness 状态。 +- `/health/live` 与 `/health/ready` 使用最小响应,准备失败阻止 ready;入口矩阵、失败和探针测试通过,提交为 + `dd1c4c32`。 + ### 阶段 2:统一数据访问和事务所有权 #### ARCH-220:建立 Model/Repository 事务 ratchet @@ -343,6 +379,12 @@ flowchart TB **完成标准**:装饰器基线不增长;新写用例可从测试中明确观察 `stage -> commit -> after-commit effect` 顺序。 +**实施记录(2026-08-21)**: + +- host architecture baseline 新增 transaction debt 域,记录 Model decorator 和直接 commit/rollback;新增或增长会 + 失败,减少允许通过。 +- Repository/Oper 的 Session 所有权与可组合 stage 规则已有静态和生命周期测试,提交为 `de2957b9`。 + #### ARCH-221:以订阅写入做首个完整事务切片 **范围**: