Skip to content

update: close the six acceptance gaps on #108, #109, #110, #112 (tests, two fixes, Undo docs) - #269

Merged
andersalm merged 11 commits into
developfrom
test/89-update-acceptance-gaps
Oct 6, 2026
Merged

andersalm merged 11 commits into
developfrom
test/89-update-acceptance-gaps

Conversation

@andersalm

Copy link
Copy Markdown
Contributor

Part of #89. Closes the gaps found when every open box was mapped to code on 6 Oct (#89 comment).

Tests (behaviour, not wiring):

Product fixes found by these tests:

  • Chat was re-downloaded on every open and failed with Carrier offline. The install state compared a bare sha256 digest with sha256:<hex> (setup.rs).
  • A refused install into another folder left a lock file there. The recorded path is now checked before the lock, and again under it (update.rs).

Docs: an "Undo an update" section in docs/INSTALL.md.

Reviews: Codex wrote the tests; Claude reviewer FAIL (lock pre-created, a 3 s budget on the success path, a redundant Chat variant), fixed by Claude Opus. GPT-6 Sol reviewed the Opus fixes and the setup fix: PASS. Candidate e54292b. A full Linux check on the Namespace build box passed on 34afbce; the pre-push gate passed on e54292b.

Merges after alpha.7's source commit is fixed, so alpha.7 keeps one identity. Ships in alpha.8.

…and rerun; a refused path changes nothing (#108)

Codex (gpt-6.1-sol).

(cherry picked from commit d47e506441c20b08766ee61edc0567c1b12a6fe9)
…fused and the next writer recovers (#108)

Codex (gpt-6.1-sol).

(cherry picked from commit 27ed6e839121cb4d4cdf21faad79d0a4be9189f0)
…do (#109)

Codex (gpt-6.1-sol).

(cherry picked from commit 648435bc1e602e07ab409637e97b7012e4e01a41)
…smatch leaves no partial install (#112)

Codex (gpt-6.1-sol).

(cherry picked from commit 75aa545269efd3f27b24d00e06c9a1be9a973e46)
Registry capsule installs record the bare sha256 hex in .elastos-artifact-sha256,
while the extracted-bundle check compared it to the platform checksum with its
sha256: prefix. Every reopen looked stale and re-fetched over Carrier, failing
when Carrier was down. Compare digests without the prefix and share the single
extracted-bundle check.

(cherry picked from commit 0f8f50d9bd847db5c9076ebfb4d39dfe83e41c72)
…mes ready restores the previous release exactly once (#109)

Real executable fixtures through the controller; test-only readiness budget and port.
Codex (gpt-6.1-sol).

(cherry picked from commit 55c100c90db2a520d0339cc75ad2e1a160723428)
Cover extracted_bundle_cache_stale_reason directly: a bare-hex receipt
matches the same sha256: digest; a different digest, a missing receipt
and a sha512: expected value are stale.

Correction to the 49324ec report: the Browser VM image install state is
decided by browser_vm_image::verify_installed (setup.rs component_install_state_for_name),
not by component_install_state; verify_installed reaches this helper
only through its own archive-identity check. The other direct caller is
provider capsule metadata (capsule_metadata_install_state_for_name).
install_release compared the recorded install path only after
InstallTransaction::acquire, so a refused install into another directory
left <other>/bin/.elastos.install.lock behind. Compare first (and again
under the lock); the test no longer pre-creates the lock and asserts it
stays absent after both refusals.
The 3 s test budget applied to every wait_ready, including start_initial
and the restore of the previous Home, which must succeed under load.
wait_ready now takes its budget; tests shorten only the
CandidateStartClaimed start. The fixture Home binds 127.0.0.1:0 itself
and reports the port in readiness-port, removing the bind-then-drop race.
Chat opens through ensure_capsule_component_for_home_launch, so drop the
download_external variant, its home_launch parameter and the tautological
fresh-tempdir assertion.

@andersalm andersalm left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Independent source review of candidate e54292b found no blocking finding. I checked the checksum receipt correction, installation-path check before and under the lock, test-only disk/readiness injection, rollback ownership and cleanup assertions, and Carrier-backed Chat reopen.

The current GitHub check conclusions are green for all ten execution jobs. I reused that validation and ran no new heavy build. This review establishes source behavior; the installed cross-version Home journey remains the separate acceptance gate under #89.

Required human update review remains open; irzhywau is requested under AGENTS.md.

@andersalm
andersalm requested a review from irzhywau October 6, 2026 22:53
@andersalm
andersalm merged commit bc78323 into develop Oct 6, 2026
11 checks passed
@andersalm
andersalm deleted the test/89-update-acceptance-gaps branch October 6, 2026 23:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant