test(cli): qualify released Runtime Host State Roots - #4313
Conversation
1c48d71 to
c54b7c4
Compare
jackwener
left a comment
There was a problem hiding this comment.
I found one release-gate issue at exact head c54b7c4327c83b6ba93b71ab87f59b9bda210f05.
[P1] The “latest published to candidate” qualification is already testing an obsolete predecessor. The matrix entry in .github/workflows/cli-package-validation.yml pins 0.2.0-dev.8.20260830. The live npm nightly tag is now 0.2.0-dev.10.20260831; versions dev.9 and dev.10 were published after this exact-head check began, and neither publication invalidated or reran the green qualification. Therefore a candidate can retain a successful “latest published to candidate” check without ever opening the State Root produced by the release that users will actually upgrade from. The policy test only checks that some SHA-256 is present, so it cannot detect this drift.
Please bind this matrix cell to the immutable predecessor selected at release-validation time and make a newer nightly publication invalidate or rerun that evidence. For example, the release workflow can pass the exact nightly version and digest into qualification, with a policy check that the selected identity still matches the release predecessor. Keep the older same-epoch and cross-epoch fixtures as fixed historical baselines.
The harness itself is bounded and the exact-head unit/policy tests passed 14/14; the hosted State Root cells are green. The finding is that the central “latest predecessor” premise can become false while those checks stay green.
Automated review notice: This comment was posted by an automated review agent operated by WAWQAQ. It is not an independent human review and does not replace one.
c54b7c4 to
ff0b2ca
Compare
|
Confirmed and fixed at exact head The static
If the tag, URL, or integrity advances after qualification, the release mutation fails and requires a fresh validation run. The fixed historical same-epoch and cross-epoch baselines remain unchanged. The predecessor parser also accepts a valid Nightly from a previous product core, so a Local evidence on the rebased exact head:
Hosted exact-head checks are now running. 中文说明已确认并修复该 P1。动态 qualification 不再固定 State Root qualification 结束时会重新确认 predecessor;真正执行 npm Nightly publish 或 formal staging 前还会再次确认。如果期间出现新 nightly,旧证据会失效并要求 fresh run。历史同 epoch/跨 epoch 固定基线保持不变。 |
|
Hosted validation is complete at exact head
The PR description now records the dynamic predecessor contract and the hosted evidence. The P1 is addressed; re-review remains the only review gate. 中文说明新 head 的完整 CI 已通过。动态场景真实验证了当前 npm Nightly |
jackwener
left a comment
There was a problem hiding this comment.
The previous P1 is closed at exact head 6e4b4790ee766e599030aa359b009b754e6721b9, and I found no remaining P0-P2 issue.
The static dev.8 predecessor is gone. Validation now resolves npm's live nightly tag into one immutable version, canonical registry tarball URL, and SHA-512 integrity; verifies the downloaded bytes against that identity; and derives the SHA-256 consumed by the qualification harness. It then revalidates the same predecessor after qualification and again immediately before either npm Nightly publication or formal staging. A newly published Nightly therefore invalidates the old evidence instead of leaving a stale green gate.
The exact-head hosted run selected 0.2.0-dev.10.20260831, verified the public tarball's npm integrity, qualified its epoch-79 State Root against the exact epoch-79 candidate, and confirmed that the registry identity remained current afterward. The fixed historical same-epoch and cross-epoch cells also passed. I independently confirmed that npm still resolves the same version, URL, and SHA-512 identity.
The original five commits are range-diff identical after the rebase; the two new commits contain the predecessor binding and the repository-standard runner timeout. A full rebuild, npm run check:release (152/152), the focused predecessor/workflow/qualification tests (33/33), and all exact-head hosted checks passed. Current main produces a clean synthetic merge; its only changed-file overlap is an independent root-package script edit.
Automated review notice: This comment was posted by an automated review agent operated by WAWQAQ. It is not an independent human review and does not replace one.
Summary
The harness installs source and target independently with empty offline npm caches, runs the whole scenario in one Bubblewrap OS-account sandbox, and restores each scenario into the original State Root directory identity from an untouched golden copy.
Evidence boundaries
npx, and presentation remain out of scopeDual audit
Correctness and lifecycle
GO, with no remaining finding.
teeArchitecture, ownership, and simplification
GO, with no P0-P3 simplification candidate.
The change adds no production protocol, migration entry point, owner record, journal, lock, scheduler, or rollback authority. The qualification adapter owns only release evidence; Runtime Host and Storage retain their existing authority. Artifact identity, sandbox/account isolation, fixture authority, writer fencing, Host activation, and CI evidence were all reviewed.
Validation
npm run check:release: 152/152git diff --check0.2.0-dev.3.20260830, epoch 74, SHA-25666b1ce…f4140.2.0-dev.4.20260830, epoch 76, SHA-256b7d48a…fc00.2.0-dev.4.20260830, epoch 760.2.0-dev.5.20260830, epoch 76, SHA-256e7a682…989f0.2.0-dev.10.20260831, epoch 79, SHA-2565b225f…7df0.2.0, epoch 79, SHA-2563ae1f0…454Refs #3243
Refs #3231
中文说明
本 PR 增加真实发布物的持久 State Root qualification。source 发布包自身创建 Session、消息和未来 Scheduled Task;先证明 source 可重新打开,再证明 target closure 无法抢占仍被持有的 writer;之后启动 target 发布包自己的 Runtime Host 到 Ready,并验证全部持久事实保持一致。
CI 固定验证两份同 epoch 发布物、两份跨 epoch 发布物;动态场景在 validation 开始时从 npm registry 固化当前 nightly 的 version、规范 tarball URL 与 SHA-512 integrity,资格测试后以及真正发布/暂存前都会重新确认该 identity。整个场景位于同一个 Bubblewrap OS-account sandbox,避免触碰 runner 的真实本地 authority;golden root 从不直接打开,恢复时保留原 State Root 目录 identity。
实现后正确性/生命周期与架构/owner 双重审查均为 GO。没有新增生产 protocol、owner、journal、lock、scheduler、migration API 或 rollback 权限。报告明确不声称验证 downgrade、external npm reconciliation transaction 本身或非 Linux 平台。
AI use
Tool(s) and scope: Codex assisted with architecture analysis, implementation, released-artifact experiments, tests, and local dual review.