Repository navigation
Conversation
Describe the installer, data directory, health probe, stop signal, and the Browser paths that stay closed without KVM or systemd. Co-authored-by: Sash <SashaMIT@users.noreply.github.com>
The Windows note now uses the Home origin http://localhost:8090/home/ and describes launcher stop, storage, and Browser as future behavior. It keeps the installer facts that exist: Linux platform selection, signature verification, and the musl binary. Branch status leaves this document. Co-authored-by: Sash <SashaMIT@users.noreply.github.com>
The Windows note points at the gateway port, the /home/ route, and the installer signature and hash checks. It states the WSL decision to skip the Browser VM helper, and it records the home --browser, /mnt, and rollback gaps. Co-authored-by: Sash <SashaMIT@users.noreply.github.com>
Give each WSL2 statement a file:line citation in the code. Keep the Home URL in one place and point the other mentions at it. Correct two statements against the code. An existing installation already refuses an older signed release (install_release in update.rs), so only a new installation lacks a version floor. Browser fails closed on every Linux host: setup removes the network helper before the installer host step, so WSL2 asks for no sudo (browser_available and retire_host in setup/browser_config.rs). Name the update path: the signed head sets the channel, elastos update follows it, a canary subscription also follows stable, and elastos source switch-channel changes it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W6Qn9RX7LDqrwiAfNC2F2K
The launcher contract owns the Home URL and the passkey origin, so this note links to it and does not repeat the value. Keep the Runtime facts with their citations: what elastos home --browser binds, the redirects, the update controller readiness hosts, and the hidden gateway default. State the open gap: the desktop launcher and the launcher contract do not use the same host name today, and localhost and 127.0.0.1 are different passkey origins. The note does not choose one. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W6Qn9RX7LDqrwiAfNC2F2K
cargo-audit fails on every PR: zip 2.4.2 in elastos/Cargo.lock and in capsules/object-provider/Cargo.lock (through its elastos-server path dependency) has three advisories against ZipArchive::extract and the stream extract API. The runtime calls neither; it reads each entry itself. zip 9.0.4 is the patched release. - elastos-server uses zip 9.0.4, still without default features. 9.x has no separate flate2 feature; deflate-flate2 now enables the dependency. - Both lockfiles change only for zip: nix 0.31.3 and typed-path come in, derive_arbitrary goes. `cargo update -p zip` also moved unrelated range dependencies (windows-sys, getrandom); those lines stay as they were, and `cargo metadata --locked` accepts both files. - ZipFile::name now returns a Result. The ZIP readers report an error as "invalid ZIP archive entry". - Whole-archive extract keeps its rule for entry names. zip 9 enclosed_name turns "/a.txt" into "a.txt" and folds "x/../a.txt" into "a.txt", so an entry that extract refuses today would be written. The runtime now checks the name with the rule zip 2.x applied: no NUL byte, no root or drive prefix, no climb above the archive root. test_library_provider_extract_zip_refuses_absolute_dotdot_and_symlink_entries covers absolute, "..", inner "..", backslash and symlink entries. It passes on zip 2.4.2 and with this change, and fails on the Absolute.zip case when extract uses zip 9 enclosed_name. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W6Qn9RX7LDqrwiAfNC2F2K
zip 9 for RUSTSEC-2026-0367/0368/0369 so cargo-audit passes Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W6Qn9RX7LDqrwiAfNC2F2K
…d retry (#381) Port of develop commit 5051505 (Anders Alm). The test flaked in CI with "WouldBlock" at journal.rs:4223 on PR heads that predate the fix. (cherry picked from commit 5051505) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W6Qn9RX7LDqrwiAfNC2F2K
Issue #265 owns the WSL2 proof and is not yet proven, so the note no longer calls it an executed proof. The Home origin is localhost everywhere, as the launcher contract states, because browsers refuse passkeys on an IP-address origin. The note adds the tools the installer needs in the distro, with python3 for the release checks, and says a second Home tab is possible but not certain. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W6Qn9RX7LDqrwiAfNC2F2K
Contributor
Author
|
Generated by Claude Code |
Contributor
Author
|
Round 3 review: PASS (A). Docs match the code. Merge after #394. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
docs/WINDOWS.mdrecords how the Linux Runtime behaves inside WSL2. Each statement cites the code by file and line. Rust paths are relative toelastos/crates/elastos-server/src/.Merge order: this PR must merge after #394.
docs/WINDOWS.mdlinks todocs/LAUNCHER_CONTRACT.md#readiness-and-home-url, which only exists once #394 lands ondevelop. Merged first, the link is broken.localhosteverywhere.docs/LAUNCHER_CONTRACT.md(Define the launcher contract for gateway supervision #394, "Readiness and Home URL", lines 55-73 at the Define the launcher contract for gateway supervision #394 head) is the one source:localhostis the one Home origin, the passkey relying party id islocalhost, an IP-literal origin is refused with HTTP 403, and Home page requests on a loopback IP get a 308 tolocalhost. The note says browsers refuse passkeys (WebAuthn) on an IP-address origin such ashttp://127.0.0.1:8090, so passkeys work only onlocalhost. Runtime facts kept, with citations:elastos home --browserbindslocalhostatBROWSER_HOME_PORT(gateway_entry.rs:17-31,update_controller.rs:2288-2289). The URL keeps the given host (api/gateway_server.rs:96-101,:117).HOME_ROUTEis/home/(api/gateway.rs:440)./home,/apps/home, and/apps/home/redirect there (api/gateway.rs:1222-1235). The update controller accepts readiness onlocalhost,127.0.0.1, or[::1](update_controller.rs:2291-2299). Hiddenelastos gatewaydefaults to127.0.0.1(main.rs:438-441).127.0.0.1) is out of date: elastos-launcher Home 0.7.1: first-run seed, chrome fixes, lock face, Documents, Library menu, dock motion, capsule-owned service icons #54 now starts and openslocalhost:8090and treats127.0.0.1:8090only as a legacy gateway to restart (src/main/targets/runtimeGateway.ts:93-101, branchcursor/runtime-audit-fixes-950dat7cd4f6f). The note no longer records a launcher/contract mismatch.curl,python3, andsha256sumorshasum(scripts/install.sh:35), and stops before any download when they are missing orpython3does not run (scripts/install.sh:1177-1191; first download is:1277).python3runsverify_signature(:683) andvalidate_release_identity(:830). A distro withoutpython3cannot install.elastos home --browsercallsopen_browser(gateway_entry.rs:33-40,main.rs:2268-2283), which startswslvieworxdg-openand does not check that a page opened. A second tab is possible, not certain: it depends on those tools being in the distro and reaching a Windows browser.elastos gateway(gateway_entry.rs:1-15, ready callbackNoneatgateway_cmd.rs:34) opens no browser.docs/MAC.md:71-80anddocs/HOME_LOCAL_SETUP.md:37-47,204use a developer gateway atlocalhost:61180/apps/home/.HOME_LOCAL_SETUP.md:46-48calls 8090 "only a script default, not product authority", which conflicts withupdate_controller.rs:2288("The browser Home always listens here"). These are not changed here.verify_signature(scripts/install.sh:678-825, called at:1286and:1313),validate_release_identity(:827-863), andsha256_check(:356-364, called at:1354). The trust anchor is theMAINTAINER_DIDwritten intoinstall.sh(:45-48, refused when empty or malformed at:1167-1172). So a launcher must verifyinstall.shitself and must not setELASTOS_MAINTAINER_DID. Tamper tests are cited by name and line inscripts/install-bootstrap-test.py.install_release,update.rs:505-513; testolder_installer_after_update_is_refused_without_changes,update.rs:5067). Only a new installation has no version floor. That is the stated gap.scripts/install.sh:1290-1293), and the installer records it insources.json(:1406-1425).elastos update(main.rs:550-570) refuses an older release (update.rs:1233-1237) and another channel (verify_source_channel,update.rs:170-183). A canary subscription also follows stable.elastos source switch-channelchanges the channel (sources.rs:465-475).browser_availableis true only fordarwin-arm64(setup/browser_config.rs:166-168). On every Linux host,elastos setupremovesscripts/browser-vm-linux-network.py(retire_host,:300-355) before the installer host step (scripts/install.sh:950-952).prepare_browser_linux_hostthen returns atscripts/install.sh:914. Browser fails closed. Test:linux_setup_installs_no_browser_host_helpers_or_image(setup/browser_config.rs:808).Named gaps: no version floor on a new installation, no
/mntdata-root guard, a possible second tab fromelastos home --browser, the stop signal (issue #265), how Windows forwardslocalhostinto WSL2 (untested,LAUNCHER_CONTRACT.md:29-30), and root-owned helper files that an earlier release may have left are not removed (#418 adds a notice).The owning issue is #265.
Head:
8bdc3803. Draft againstdevelop. Do not merge. Docs only. The branch also carries the zip 9 merge (ba88f427, from #417, so CI can runcargo-audit) and a port of develop50515055(38e2d777, journal test lock retry, #381); those are not part of this change. This branch sits beside the Intel stack.Verification
8bdc3803:git diff --checkclean.node scripts/public-copy-entropy-check.mjs: PASS.node scripts/check-product-data.mjs: ok. Each new citation was re-read at this head (install.sh:35,:683,:830,:1177-1191,:1277;gateway_entry.rs:1-15,:33-40;gateway_cmd.rs:34;main.rs:2268-2283) and againstdocs/LAUNCHER_CONTRACT.mdat the Define the launcher contract for gateway supervision #394 head.15f65e9b): the cited installer tamper tests pass:test_signature_and_binding_failures_reject_before_artifacts_in_populated_installation,test_corrupt_artifacts_fail_before_changes_then_clean_rerun_installs,test_binding_precedes_artifacts, andtest_altered_message_signature_and_key. Rust:cargo test -p elastos-server --lib linux_setup_passes 4 of 4. Mutation check: withsha256_checkatinstall.sh:1354disabled, the corrupt-binary test fails ('SHA-256 mismatch' not found); withverify_signatureat:1313disabled, the tampered-release case fails ('Signature verification FAILED' not found). Both were restored.8bdc3803changes onlydocs/WINDOWS.md.Principles check
localhosteverywhere) without copying the URL.python3.MAINTAINER_DIDininstall.shas the trust anchor, so the launcher must verifyinstall.shitself.