Uh oh!
There was an error while loading. Please reload this page.
fix: align Runtime Host compatible-change epoch - #4204
Conversation
Update the compatible-change declaration added by apache#4176 to epoch 68, matching the current Runtime Host protocol epoch. This restores the merge-result protocol guard without changing the wire protocol or advancing the epoch. Generated-by: Codex
ARE404
left a comment
There was a problem hiding this comment.
Approving fix: align Runtime Host compatible-change epoch at head 5b6b3347.
I verified the one-line fix against the epoch-guard contract:
packages/runtime-host/protocol-compatible-changes/session-catalog-deep-research-import.jsonchangesepochfrom 65 to 68. The guard (protocol-epoch-check.mjs) requires a compatible-change declaration'sepochto exactly equal the currentRUNTIME_HOST_COMPATIBILITY_EPOCH(value.epoch !== headEpoch→ invalid declaration → files not exempted). On this head the epoch is68, so65was a stale declaration that would have made the guard treatsession-catalog.ts/session-continuity.tsas incompatible changes and fail;68aligns it and restores the exemption.- The fix is minimal and numerically correct for this head; the
filesandreasonfields are unchanged. testwas still settling on the exact head at review time (run33264696081, in progress); 0 unresolved threads.
No P0–P2.
简体中文
批准 fix: align Runtime Host compatible-change epoch,head 5b6b3347。
对照 epoch-guard 契约核实这一行修复:session-catalog-deep-research-import.json 的 epoch 从 65 改为 68。guard(protocol-epoch-check.mjs)要求 compatible-change 声明的 epoch 必须精确等于当前 RUNTIME_HOST_COMPATIBILITY_EPOCH(value.epoch !== headEpoch → 声明无效 → 文件不被豁免)。本 head 的 epoch 是 68,所以原来的 65 是过期声明,会让 guard 把 session-catalog.ts/session-continuity.ts 当不兼容变更而失败;改成 68 对齐并恢复豁免。修复极简且对本 head 数值正确;files/reason 未动。test 在 exact head 上仍在跑(run 33264696081),approve 时尚未终态;0 未解决线程。无 P0–P2。
Uh oh!
There was an error while loading. Please reload this page.
Summary
Align the Runtime Host compatible-change declaration introduced by #4176 with the current protocol compatibility epoch, 68. This restores the merge-result protocol guard without changing the wire protocol or advancing the epoch.
Root cause
The branch for #4176 created the declaration while its base was at epoch 65. Independent protocol changes advanced
mainto epoch 68 before #4176 merged.Git reported no conflict because #4176 did not edit
packages/runtime-host/src/protocol/index.ts: the merge result keptmain's epoch 68 and added the declaration containing epoch 65. The merge-result guard compares the result with its first parent and requires a newly added compatible-change declaration to match the result's epoch, so it deterministically rejected the mismatched declaration.This PR changes only the declaration's epoch. It does not modify a wire codec, bump the protocol epoch, change historical result decoding, or add another compatibility path.
Verification
node scripts/protocol-epoch-check.mjs --base d7efbb478518525c24d8b6dddcde396683ba36a2 --head 8aed381eab3aa429d786a1aafc137fa7163d4e34exited 2 withInvalid compatible protocol change declaration.node scripts/protocol-epoch-check.mjs --base d7efbb478518525c24d8b6dddcde396683ba36a2 --head HEADpassed withProtocol added a declared compatible extension at epoch 68.node scripts/protocol-epoch-check.mjs --base origin/main --head HEADpassed.node --test scripts/protocol-epoch-check.test.mjspassed: 12 tests.npx biome format --write packages/runtime-host/protocol-compatible-changes/session-catalog-deep-research-import.jsonpassed with no fixes needed.npx biome check packages/runtime-host/protocol-compatible-changes/session-catalog-deep-research-import.jsonpassed.git diff --check origin/main...HEADpassed.AI use
Select exactly one:
Tool(s) and scope: Codex traced the merge-result guard and historical persistence boundary, authored the one-line declaration fix, ran focused validation, and drafted this pull request. The commit includes a
Generated-by: Codextrailer.Checklist
The protocol guard tests and scoped Biome checks pass; typecheck was not run because no typed source changed.
Does this PR entail a change in behavior?