-
Notifications
You must be signed in to change notification settings - Fork 1
Runtime Invariants zh
pawaca edited this page Aug 30, 2026
·
1 revision
上游的可配置断言注册表和 Edge 的平台级不变量契约。
上游参考:Runtime Invariants
提供 ——一个可配置的注册表,每个工作区包在其 npm 名下发布运行时检查。关键设计:
-
范围:检查只审查权威事件流或可变数据,不检查服务或方法是否存在。
- 选择: 开关 + / 正则模式。黑名单优先。
- 隔离:每个安装器在独立的 cordis 子 fiber 中运行。失败产生归因到违规包的 。
- 约定:每个工作区包提供 伴生插件,由工具链验证。
存在于 standalone 依赖闭包中(通过其他上游包传递),但没有显式安装为插件。没有 调用。上游的伴生不变量插件未注册。
Edge 在 (第 30–39 行)定义了自己的不变量契约,通过代码审查和 CI 而非运行时注册表强制执行。这些覆盖了上游以包为单位的断言模型未涉及的平台级保证:
| 不变量 | 执行方式 |
|---|---|
| 请求路径无关联子查询 — DO SQL 查询必须使用物化表,不得对无界事件表做逐行扫描 | 代码审查 + |
| 凭据安全 — 不得记录 、bearer token 或 owner cookie。Provider 凭据按调用解析,不跨请求缓存,不写入会话事件 | 设计 + 代码审查 |
| 投影推送顺序 — seq N 的投影在其对应 帧和 flush 之后到达 | 中的同步捕获 + seq 匹配 drain |
| DO SQL 原子性 — 事件批次和摘要更新在单个 中提交 | 事务边界 |
| 单一上游版本 — 所有 standalone 依赖锁定同一精确版本 | CI + |
| Gzip 预算 — direct 模式 Worker 必须低于 921,600 字节 gzip | 构建脚本预算检查 |
| 补丁纪律 — 每个保留的上游补丁需有版本绑定文件名、缺少时的失败测试、理由和移除条件 | 代码审查 + 补丁验证脚本 |
| cordis 子注册表 provide — 当其他插件使用 时, + 必须配对 | 代码审查(源自 的经验) |
- 上游 包 API、 类型和伴生插件约定
- 会话事件排序和追加式保证(上游 类)
- Flush/checkpoint 契约(上游 接口)
| 组件 | 分类 | 备注 |
|---|---|---|
| 注册表 | 可用 | 在依赖闭包中但未安装为插件 |
| AGENTS.md 契约 | Edge 专有 | 8 个平台不变量,通过审查 + CI 执行 |
| DO SQL 约束 | Edge 专有 | 表、 约束、 |
关键观察:上游的不变量系统是以包为单位的运行时断言注册表。Edge 的不变量是平台级契约(SQL 原子性、凭据安全、投影排序),运作在不同层面。两者互补——上游注册表可以安装以增加包级运行时检查,不会与 Edge 的结构性不变量冲突。
- Home
- Architecture
- Core & Scope
- Session & Persistence
- Model & Context
-
Execution & Tools
- Tools
- Bash
- Subprocess 🚫
- PTY Session 🚫
- Background Jobs 🚫
- Filesystem
- LSP Navigation 🚫
- Code Runtime 🚫
-
Web Access
⚠️ -
Skills
⚠️ - Workflow 🚫
- Subagent 🚫
-
Policy & Interaction
- Goal
- Approval 🚫
- Permission Presets 🚫
-
Sandbox
⚠️ - Plan Mode 🚫
- User Interaction 🚫
- Commands 🚫
- Schedule 🚫
- Message Feedback 🚫
- Platform & Access
- Development
- 首页
- 架构
- 核心与作用域
- 会话与持久化
- 模型与上下文
- 执行与工具
- 策略与交互
- 平台与接入
- 开发