Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
b0c42af
refactor(kernel): decouple declaration codecs from lease runtime
cocolord Nov 8, 2026
131bafa
docs(rfc): qualify lexical scope loading and backend parity
cocolord Nov 8, 2026
3b27598
test(browser): anchor the conversation quiet-time clock
cocolord Nov 8, 2026
57b783e
style(kernel): remove the trailing blank codec line
cocolord Nov 8, 2026
928a11e
Merge current main for combined small-kernel validation
cocolord Nov 8, 2026
40b8e5e
Merge feedback loading fix into small-kernel proposal
cocolord Nov 8, 2026
f90a5f2
Reconcile clock component with current main implementation
cocolord Nov 8, 2026
8ff7ab3
fix(kernel): preserve property paths for scalar staged reads
cocolord Nov 8, 2026
b26cf57
docs(rfc): record combined loading and real-path qualification
cocolord Nov 8, 2026
7858d96
Load report construction providers only when consumed
cocolord Nov 8, 2026
532ecfd
Record report composition isolation and qualification limits
cocolord Nov 8, 2026
a4ce613
Read synthetic delegation Host input as UTF-8
cocolord Nov 8, 2026
107c4fa
Record synthetic Host UTF-8 recovery qualification
cocolord Nov 8, 2026
0119b66
Integrate original report loading proposal with current main
cocolord Nov 8, 2026
9f2df5c
Integrate reviewed scope codec and feedback loading repairs
cocolord Nov 8, 2026
251d7ea
Integrate synthetic Host UTF-8 recovery repair
cocolord Nov 8, 2026
d643f2a
docs(rfc): qualify integrated loading and recovery paths
cocolord Nov 8, 2026
953ceba
Integrate Turn loading isolation and stabilize scoped interruption ch…
cocolord Nov 8, 2026
09963ef
Reconcile current loading and recovery evidence with latest main
cocolord Nov 8, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
133 changes: 133 additions & 0 deletions docs/architecture/rfcs/monorepo-distribution-split-v0.md
Original file line number Diff line number Diff line change
Expand Up @@ -2699,6 +2699,98 @@ context/model/split-install/PostgreSQL-host/full-cost/adoption gaps remain open.
The original task and independent review/readiness remain open; no main merge
or installed-host upgrade is included.

### 2026-11-08 — Report construction loading at Turn composition

The existing `periodic-report` Python provider and CLI Turn adapter now resolve
report source, preset, stage projection and request exports on demand. At runtime
revision `7858d96e83ef98174cc43870e283f8f0e6f40c0b`, disabled subscriptions do
not import those construction providers. The capability package already had lazy
exports; this change fixes its concrete composition callers. Subscription
validation remains with the same owner, including its cadence-to-profile schedule
validator. Goal overrides, live machine defaults, configuration warnings, original
export identities and patch points, hook profile digest/policy version, source
selection, receipt replay and authority are retained. It adds no capability,
configuration, UI, persisted vocabulary or decision owner.

Against baseline `c263f7c78353fcaa914f23475d4d99d07eab7c01`, eleven identical
synthetic configuration cases preserve hook output, trigger decisions and complete
configuration error messages. The cold-process refusal oracle fails before the
change when disabled composition imports the report source. Eight focused cases
now cover absence, disabled inheritance, overrides, invalid disabled configuration,
effect-free reads and export/patch compatibility. An initial stronger prohibition
also rejected the canonical profile schedule validator; that failed probe is
retained, and this slice preserves the validator rather than bypassing it.

Source and separately built wheel File/default-SQLite console journeys pass the
original complete 101-Todo lifecycle: unchanged fixture/artifact, four receipts,
one debit, source/lease/refusal/restart/replay readback and two owned native exits
per journey. Installed package ownership was verified before comparing 1,920
present tracked entries; seventeen source-only or documentation/media omissions
remain explicit. Wheel test-dependency and frontend-build preparation failures
remain recorded. Isolated PostgreSQL 16 store/service suites pass 391/11 cases
with zero skips; the initial service run's missing environment declaration remains
a skipped run. This does not qualify PostgreSQL host/wheel journeys. Report suites
pass 100 cases. The broader digest inventory check has one identical baseline/head
failure on an unchanged Todo selector; that check remains failed.

A separate report-composition probe used CPython 3.13.5 on macOS arm64, normal
bytecode in both arms, an uncounted prewarm and eight alternating pairs per
disabled/enabled case. Disabled median wall/CPU observations were 0.255/0.111 s
before and 0.246/0.107 s after; enabled observations were 0.331/0.117 s and
0.321/0.113 s. Loaded LoopX modules fell from 196 to 179/182. These small,
concurrent-test observations do not establish material speedup, sustained tail
latency or complete CLI/Node/model/attention cost benefit. The earlier frozen
20-cost, attribution and normal-bytecode campaigns were not repeated, enlarged or
relabeled. The independently reversible delta is off-state construction isolation.
Exact-head review, CI/readiness and explicit protected merge authority still govern
adoption. Preserve I3 for at least one minor release, M1/#8011, full R0/V10/R1,
D2/D5/D6/D3, context/model/split-install, full-cost/adoption gaps and all historical
failures. The existing runtime-composition work continues through these boundaries.

### 2026-11-08 — Synthetic Host UTF-8 recovery qualification

The Windows CPython 3.11 CI arm of #8360 fails six existing original-task
revalidation cases. Its synthetic Python Host inherits a locale decoder for a
pipe, while the existing generic Host transport sends UTF-8 JSON. A disposable
File-provider counterprobe changes only that Host decoder: CP1252 produces
`host_failure` without `task_failure`; UTF-8 reaches the independent artifact
validator and produces `validation_failed` at `task_postcondition`, with
`revalidate_cached_result`. The source macOS arm independently passes all 12
existing revalidation cases. These observations locate a fixture mismatch;
they do not justify widening production failure classification.

Fixture commit `a4ce613585fdb329ba3600f0ede768864214ed84`, over main
`4e949f405528fd8087f0623526c62f890c1ce982`, explicitly configures its stdin as
UTF-8 before reading the request. One new File/SQLite regression first sets
only the generated Host's decoder to CP1252, sends a Unicode brief and requires
the rejected artifact to reach task validation. After repairing the artifact,
revalidation must accept it with the original turn key and exactly one Host
invocation. The same regression fails with the immutable baseline Host on the
same CPython 3.13.5/Node 22.22.3 environment, and passes with the correction.
No transport, production owner, persisted state or protocol vocabulary changes.

On macOS arm64 with Node 22.22.3, CPython 3.11.15 source and a newly installed,
isolated monolithic wheel each pass the new two provider cases plus all 12
existing original-task recovery cases. Wheel imports are verified outside the
checkout before loading the source-owned fixtures; all 1,920 present packaged
tracked runtime entries match the source bytes. The same 17 source-only
exclusions remain: canary baseline, host plugin/config, fault-test helper and
documentation/media. This qualifies the existing File/SQLite
synthetic Host recovery path, including retained MCP disconnection and lock
timeout recovery cases, not model adoption, split installation or native
Windows. The failed original Windows arm remains historical evidence until a
new exact-head Windows run passes. The independent Frontstage manifest request
still returns HTTP 504 after its bounded retry.

The original task stays open. Preserve I3 for at least one minor release,
M1/#8011, full R0/V10/R1, D2/D5/D6/D3, context/model/split-install,
PostgreSQL host/wheel, whole-path/full marginal-cost/adoption requirements and
all historical and frozen failures. No cost campaign is repeated or relabeled,
and this fixture qualification establishes no performance benefit. The report
loading proposal #8360 retains its independent review and CI gates; the next
step is exact-head review of this correction and native Windows readback. No
main merge or installed-host upgrade is included.

## Appendix B: Decision log

| Date | Decision | Owner / approval | Alternatives | Normative sections changed |
Expand Down Expand Up @@ -2822,3 +2914,44 @@ I3/minor-release, M1/#8011, full R0/V10/R1, D2/D5/D6/D3,
context/model/split-install and historical failure qualifications remain open.
The next useful boundary remains report subscription/construction loading after
the combined proposal's review; the original task stays open.

### 2026-11-08 — Integrated loading and recovery qualification

The combined proposal adopts the existing feedback/declaration-codec repair
from #8346, report construction isolation from #8360 and UTF-8 synthetic Host
fixture repair from #8365 over target main `fe36f31fd`. Runtime qualification
uses `251d7eaeff4581d3436340f68c5b6cd8c8ebf1ad`. The existing lexical
`write_scope_codec.ts` already removes the observed dependency on full lease
admission; an additional interaction decoder layer is unnecessary. Error and
vocabulary owners, declared scope spellings and retained receipts stay intact.

On Node 22.22.3, the loading/digest checks and adjacent work-requirement,
lease and effect-program regressions pass (60 cases), as does the control-plane
typecheck. Selected-owner load failure still rejects without fallback. Four
fresh source/wheel × File/SQLite 101-Todo console correctness episodes preserve
the prior immutable fixture/artifact fingerprints, scopes, original completion
time, four receipts, one debit, refusal/restart/replay and two owned native exits
each. All 1,921 present tracked wheel entries match source bytes; seventeen
source-only, documentation and media omissions are unchanged.

Real PostgreSQL 16.15 store/service suites pass (391/11, zero skips) on an
isolated disposable server that was stopped afterward. The first service run
omitted its dedicated environment variable and skipped one case; that result
remains a failure of qualification, separate from the corrected run.

A browser-fixture interruption check also depended on the shared five-second
completion window and checked the request ledger before its asynchronous receipt
returned. The scenario now holds only the correction's exact Session/Turn stream,
checks that it is still active and waits for the matching interrupt response.
The original ten-second interrupted-message assertion remains intact. A delayed
receipt probe fails the original scenario; removing only the stream hold from the
candidate reproduces that message timeout, while the complete candidate passes.
This is synthetic browser qualification, not proof of a native-runtime defect or
an installed repair. Completion priority and stale-Turn guards remain unchanged;
the combined head still requires packaged validation, CI and independent review.

These episodes qualify integration correctness. Whole-path and full marginal
cost and adoption remain unqualified. Preserve I3 for at least one minor
release, M1/#8011, full R0/V10/R1, D2/D5/D6/D3, context/model/split-install,
PostgreSQL host/wheel and every frozen failure. The original task remains open;
this checkpoint does not authorize merge or declare the minimal kernel complete.
105 changes: 105 additions & 0 deletions docs/architecture/rfcs/monorepo-distribution-split-v0.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -2096,6 +2096,79 @@ hard-cut 证据、I3/minor-release、M1/#8011、完整 R0/V10/R1、D2/D5/D6/D3
context/model/split-install/PostgreSQL-host/full-cost/adoption 缺口保持开放。
原 Task、独立评审/readiness 继续开放,本轮不合入 main、不升级 installed host。

### 2026-11-08 — Turn 装配中的报告构造加载

既有 `periodic-report` Python provider 与 CLI Turn 适配层改为按需解析报告源、
预设、阶段投影和请求导出。在 runtime 版本
`7858d96e83ef98174cc43870e283f8f0e6f40c0b`,禁用订阅不会导入这些构造 provider。
能力包已有 lazy exports,本次修复的是实际装配调用方。订阅校验仍由原 owner
负责,包括 cadence 使用 profile 中的日程校验器。Goal override、live machine
defaults、配置 warning、原导出身份与 patch 点、hook profile digest/policy version、
source 选择、receipt replay 和权限保持;不新增 capability、配置、UI、持久化词汇
或决策 owner。

与基线 `c263f7c78353fcaa914f23475d4d99d07eab7c01` 对照,11 个相同合成配置场景
保持 hook 输出、trigger 决策及完整配置错误消息一致。冷进程拒绝 oracle 在修复前
因禁用装配导入 report source 而失败;8 个聚焦场景现覆盖缺省、禁用继承、override、
非法禁用配置、无副作用读取和导出/patch 兼容。最初更强的禁止规则也拒绝了原
profile 日程校验器;该失败探针保留,本阶段保持校验器,不绕过它。

Source 与独立构建 wheel 的 File/default-SQLite console 路径通过原始完整
101-Todo 生命周期:fixture/artifact 不变、4 个 receipts、一次 debit、source/lease/
拒绝/重启/重放读回,以及每条路径 2 个自有 native 退出。先验证安装 package
归属,再比对 1,920 个实际存在的 tracked entries;17 个 source-only 或文档/媒体
省略明确保留。Wheel 测试依赖和 frontend build 准备失败仍记录为失败。
隔离 PostgreSQL 16 store/service 套件通过 391/11 场景,零 skip;service 首轮
因缺少环境声明而跳过的记录仍保留。这不资格 PostgreSQL host/wheel 路径。
报告相关套件通过 100 场景;较广的 digest inventory 检查在未改动 Todo selector
上出现一条完全相同的 baseline/head 失败,该检查仍为失败。

独立报告装配探针在 macOS arm64/CPython 3.13.5 下,两侧使用正常 bytecode、一次
不计样本的预热,对禁用/启用场景各做 8 对交替观察。禁用 wall/CPU 中位数为
修复前 0.255/0.111 s、修复后 0.246/0.107 s;启用为 0.331/0.117 s 和
0.321/0.113 s。加载的 LoopX modules 从 196 降到 179/182。小样本与并行测试下
的这些观察不证明明显提速、持续尾延迟或完整 CLI/Node/model/attention 成本收益。
早先冻结的 20-cost、归因及正常 bytecode 实验未重跑、扩充或重标签。
本阶段可独立回滚的增量是关闭态构造隔离。采纳仍需同 head review、CI/readiness
和明确的受保护合并授权。I3 至少保留一个 minor release,M1/#8011、完整
R0/V10/R1、D2/D5/D6/D3、context/model/split-install、full-cost/adoption 缺口
及所有历史失败均保持开放;既有 runtime composition 工作继续跨越这些边界。

### 2026-11-08 — 合成 Host 的 UTF-8 恢复资格

#8360 的 Windows CPython 3.11 CI arm 在六个既有原任务重验证用例中失败。
合成 Python Host 对 pipe 继承 locale decoder,而原 generic Host transport
发送 UTF-8 JSON。Disposable File-provider counterprobe 只改变该 Host decoder:
CP1252 产生 `host_failure`,没有 `task_failure`;UTF-8 到达独立产物 validator,
在 `task_postcondition` 产生 `validation_failed`,并提供
`revalidate_cached_result`。源码 macOS arm 独立通过全部12个既有重验证用例。
这些观察定位了 fixture mismatch,不支持扩大生产 failure classification。

Fixture commit `a4ce613585fdb329ba3600f0ede768864214ed84` 基于 main
`4e949f405528fd8087f0623526c62f890c1ce982`,在读取请求前显式将 stdin 配为
UTF-8。新增 File/SQLite regression 先只把生成 Host 的 decoder 设为 CP1252,
发送 Unicode brief,要求被拒绝的产物到达 task validation。修复产物后,重验证
必须沿用原 turn key 并接受结果,Host invocation 始终为一次。同一 regression
在相同 CPython3.13.5/Node22.22.3 环境中对不可变 baseline Host 失败,修正后
通过。不改变 transport、生产 owner、持久状态或协议词汇。

macOS arm64/Node22.22.3 下,CPython3.11.15 source 与新安装的隔离单体 wheel
各通过新增两个 provider 用例及全部12个既有原任务恢复用例。先在 checkout 外
验证 wheel import 归属,再加载 source-owned fixture;1920个实际 packaged
tracked runtime entry 均与源码字节相同。原17个 source-only exclusion 保留:
canary baseline、host plugin/config、fault-test helper 和 documentation/media。
这验收既有 File/SQLite 合成 Host 恢复路径,包括保留的 MCP
断连及 lock-timeout 恢复用例,不验收模型采纳、split installation 或原生 Windows。
原失败 Windows arm 保留为历史证据,直到新 exact-head Windows run 通过。
独立 Frontstage manifest 请求在有界重试后仍为 HTTP504。

原任务保持开放。保留 I3 至少一个 minor release、M1/#8011、完整 R0/V10/R1、
D2/D5/D6/D3、context/model/split-install、PostgreSQL host/wheel、whole-path/
full marginal-cost/adoption 验收及全部历史/冻结失败。不重跑或重标签成本
campaign,本 fixture 资格不证明性能收益。报告按需加载提案 #8360 保留独立
review/CI gate;下一步为本修正的 exact-head 评审与原生 Windows 读回。不包含
合入 main 或 installed-host 升级。

## 附录 B:决策日志

| 日期 | 决策 | 负责人 / 批准 | 备选 | 变更的规范章节 |
Expand Down Expand Up @@ -2191,3 +2264,35 @@ Whole-path 成本收益、installed adoption、PostgreSQL host/wheel,以及
I3/minor-release、M1/#8011、完整 R0/V10/R1、D2/D5/D6/D3、
context/model/split-install 与历史失败资格继续开放。组合提案评审之后,下一段
有用边界仍是报告订阅/构造加载;原 Task 保持开放。

### 2026-11-08 — 组合加载与恢复资格验证

组合提案在目标 main `fe36f31fd` 上采用 #8346 已有的 feedback/声明 codec
修复、#8360 的报告构造隔离和 #8365 的 UTF-8 合成 Host fixture 修复。
运行时代码资格基于 `251d7eaeff4581d3436340f68c5b6cd8c8ebf1ad`。
已有的词法 `write_scope_codec.ts` 已解除观察到的完整 lease 准入依赖,无需
增加 interaction decoder 层。错误与词汇 owner、声明 scope 拼写和保留回执均保持。

Node 22.22.3 上的加载/digest 与相邻 work-requirement、lease、effect-program
回归全部通过(60 项),控制面类型检查通过。选中 owner 的加载失败仍拒绝执行,
不会回退。四次新的源码/wheel × File/SQLite 101-Todo console 正确性路径均保留
前次不可变 fixture/artifact 指纹、scope、原完成时间、四份回执、一次扣额、
拒绝/重启/重放,以及每条路径两个自有 native 进程退出。wheel 中现存的 1,921 个
tracked 条目逐字节匹配源码,十七项源码专用、文档和媒体遗漏保持不变。

真实 PostgreSQL 16.15 store/service 在隔离临时服务上全部通过(391/11,零
跳过),自有服务随后停止。首次 service 运行漏传专用环境变量,跳过一项;
该次资格失败单独保留,与修正后的运行区分。

浏览器 fixture 的中断检查还依赖共享的五秒完成窗口,并在异步回执返回前检查请求
记录。该场景现在只保持纠偏所对应的准确 Session/Turn 事件流,确认它仍在执行,
并等待匹配的中断响应。原十秒中断消息断言完整保留。延迟回执探针使原场景失败;
仅移除候选中的流保持、保留响应等待,会复现该消息超时,而完整候选通过。
这是合成浏览器资格验证,不证明 native runtime 存在缺陷或已安装修复。
完成优先级与 stale-Turn 保护保持不变;组合 head 仍需 packaged 验证、CI 和
独立评审。

这些路径验证组合正确性,whole-path 与完整边际成本、adoption 仍未取得资格。
保留 I3 至少一个 minor release、M1/#8011、完整 R0/V10/R1、D2/D5/D6/D3、
context/model/split-install、PostgreSQL host/wheel 以及每项冻结失败。
原任务保持开放;本检查点不授权合入,也不宣告最小化内核完成。
Loading
Loading