[CTR] 冻结 Brain→Sense 推理运行与健康状态契约 v1 (#149) #157

Merged
ila merged 3 commits from feature/149-runtime-status-contract into dev 2026-08-31 09:34:59 +08:00
Owner

关联工单

Closes #149(仅在用户验收并合并后关闭)

实现

  • 冻结 runtime-status/v1 Draft 2020-12 JSON Schema
  • 明确运行状态机、30 秒未来偏差、90 秒陈旧边界、offline/recovery 与 last-known 回退
  • 明确配置 revision、稳定错误码、版本兼容和 Brain→Sense mapper 字段责任
  • 提供有效/无效样例,拒绝未知主版本、凭据、内部路径、用户会话和业务 Alert
  • 提供无第三方依赖的可复制契约测试

验证

  • python -m unittest discover -s contracts/tests/runtime-status-v1 -p "test_*.py" -v:13/13 通过
  • python -m unittest discover -s tests -v:48/48 通过
  • python dev_scripts/harness.py check --strict:通过
  • git diff --cached --check:通过

边界

未修改 Sense、Brain、Bell、docs/Wiki 或其他 contracts 路径;不包含产品 adapter 和真实传输联调。

## 关联工单 Closes #149(仅在用户验收并合并后关闭) ## 实现 - 冻结 `runtime-status/v1` Draft 2020-12 JSON Schema - 明确运行状态机、30 秒未来偏差、90 秒陈旧边界、offline/recovery 与 last-known 回退 - 明确配置 revision、稳定错误码、版本兼容和 Brain→Sense mapper 字段责任 - 提供有效/无效样例,拒绝未知主版本、凭据、内部路径、用户会话和业务 Alert - 提供无第三方依赖的可复制契约测试 ## 验证 - `python -m unittest discover -s contracts/tests/runtime-status-v1 -p "test_*.py" -v`:13/13 通过 - `python -m unittest discover -s tests -v`:48/48 通过 - `python dev_scripts/harness.py check --strict`:通过 - `git diff --cached --check`:通过 ## 边界 未修改 Sense、Brain、Bell、docs/Wiki 或其他 contracts 路径;不包含产品 adapter 和真实传输联调。
ila added 1 commit 2026-08-31 08:44:49 +08:00
ila added 1 commit 2026-08-31 08:49:52 +08:00
Author
Owner

交叉一致性修订(2026-08-31)

按 #148/#150 的契约命名约定,仅在本工单授权路径内将 schema_version 统一:

  • v1:runtime-status/v1 → yovision.runtime-status/v1
  • 未知主版本样例:runtime-status/v2 → yovision.runtime-status/v2
  • 同步更新 Schema 常量、README、mapping、全部 10 个样例与测试断言;未调整其他字段或语义。

验证结果:

  • 专用契约测试:13/13 通过
  • 仓库测试:48/48 通过
  • python dev_scripts/harness.py check --strict:通过
  • git diff --check:通过
  • 修订提交:54c58551ae1a3738889510984115ec38313ac2de
  • PR #157 已更新到该提交,仍开放且可合并;未合并、未关闭工单。
  • 工作区干净;未修改授权路径之外的文件。
## 交叉一致性修订(2026-08-31) 按 #148/#150 的契约命名约定,仅在本工单授权路径内将 `schema_version` 统一: - v1:`runtime-status/v1` → `yovision.runtime-status/v1` - 未知主版本样例:`runtime-status/v2` → `yovision.runtime-status/v2` - 同步更新 Schema 常量、README、mapping、全部 10 个样例与测试断言;未调整其他字段或语义。 验证结果: - 专用契约测试:13/13 通过 - 仓库测试:48/48 通过 - `python dev_scripts/harness.py check --strict`:通过 - `git diff --check`:通过 - 修订提交:`54c58551ae1a3738889510984115ec38313ac2de` - PR #157 已更新到该提交,仍开放且可合并;未合并、未关闭工单。 - 工作区干净;未修改授权路径之外的文件。
ila added 1 commit 2026-08-31 08:59:49 +08:00
Author
Owner

多配置流语义修订完成(2026-08-31)

对齐结果

  • 将单个顶层 configuration 改为 configurations[]。
  • 每项固定包含 config_id、apply_state、applied_revision(integer ≥ 1 或 null)和 error_code。
  • config_id 采用 #148 stable_id 的长度与字符规则;Sense 按 config_id 对比自身期望 revision。
  • 明确 not_configured、applying、applied、rejected 的 revision/error 约束;重复 config_id 使整条消息无效且不得覆盖 last-known。
  • 更新全部既有样例,新增空配置、四状态多配置和重复 config_id 样例。
  • 测试新增空/多配置、重复 ID、四种应用状态、integer revision mismatch,以及未知版本/倒序/重复 ID 均不覆盖投影的回退检查。
  • 保持既有运行状态、健康状态、错误码、时间和陈旧语义不变,未修改其他契约。

验证

  • 专用契约测试:14/14 通过。
  • 所有契约 JSON:python -m json.tool 解析通过。
  • 仓库测试:48/48 通过。
  • python dev_scripts/harness.py check --strict:通过。
  • git diff --check:通过。
  • 工作区干净,分支与远端一致。

Git / PR

  • 修订提交:a22d3ce0f16912af699af3269f7595bb8df53390
  • PR #157 已更新到该提交,仍为开放、可合并状态。
  • 未合并 PR、未关闭 #149、未创建任务归档。
## 多配置流语义修订完成(2026-08-31) ### 对齐结果 - 将单个顶层 `configuration` 改为 `configurations[]`。 - 每项固定包含 `config_id`、`apply_state`、`applied_revision`(integer ≥ 1 或 null)和 `error_code`。 - `config_id` 采用 #148 `stable_id` 的长度与字符规则;Sense 按 `config_id` 对比自身期望 revision。 - 明确 `not_configured`、`applying`、`applied`、`rejected` 的 revision/error 约束;重复 `config_id` 使整条消息无效且不得覆盖 last-known。 - 更新全部既有样例,新增空配置、四状态多配置和重复 config_id 样例。 - 测试新增空/多配置、重复 ID、四种应用状态、integer revision mismatch,以及未知版本/倒序/重复 ID 均不覆盖投影的回退检查。 - 保持既有运行状态、健康状态、错误码、时间和陈旧语义不变,未修改其他契约。 ### 验证 - 专用契约测试:14/14 通过。 - 所有契约 JSON:`python -m json.tool` 解析通过。 - 仓库测试:48/48 通过。 - `python dev_scripts/harness.py check --strict`:通过。 - `git diff --check`:通过。 - 工作区干净,分支与远端一致。 ### Git / PR - 修订提交:`a22d3ce0f16912af699af3269f7595bb8df53390` - PR #157 已更新到该提交,仍为开放、可合并状态。 - 未合并 PR、未关闭 #149、未创建任务归档。
ila merged commit 4c35da9ef6 into dev 2026-08-31 09:34:59 +08:00
Sign in to join this conversation.