You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
What happens: on a Mac source Home set up with a locally staged Browser image set, Browser says "Browser Engine needs preparation. Prepare it or choose another approved Engine." Prepare can't fix it. The gateway log says "Browser image release package requires a stamped lowercase SHA-256 checksum".
Why:
setup-source-home copies the template's darwin-arm64 browser-vm-image row, which has no checksum or size (present since 82ae48cd9, 8 Oct; Mac-only since b725316d7, 13 Oct).
The Runtime checks a locally staged image in place only when that row is absent (elastos/crates/elastos-server/src/setup.rsensure_browser_vm_image_for_local_engine). With the unstamped row, browser_vm_image.rsvalidate_info fails, and Prepare runs the same code.
Release path: release preparation writes this row with a checksum and size (scripts/prepare-release-platform.sh runs scripts/release-platform-input.py stage-browser-image, which writes both), and the 0.8.0 Browser image admission run stamped it. From the source, this gap is in the source setup path. No installed packaged Home has opened Browser with the new image yet; the installed check on the packaged candidate covers that.
Fix: when setup-source-home links a verified staged image set, drop the unstamped row, or stamp it from the image receipt. Add a test that a source Home with a staged image opens Browser without the error.
Found during the 0.8.0-alpha.25 Browser check on 21 Oct (#474, #473). The test Home was repaired by removing the row by hand. After that change, the restart helper refuses to restart that Home (installation receipt components_hash).
Two more source-Home gaps from the same check (22 Oct):
TURN program missing:build-and-setup-source-home.sh forces SETUP_SOURCE_HOME_RUNTIME_TURN=0, so the Browser config on a Mac never gets ELASTOS_BROWSER_VM_TURN_PROGRAM. The Engine readiness probe (browser-vm-artifact-preflight.sh --host-readiness) then reports preparation_required, and Browser shows "needs preparation" even after the image row is fixed. Writing the config with ELASTOS_BROWSER_VM_TURN_PROGRAM set gives ready.
Config-only setup exits at once:SETUP_SOURCE_HOME_CONFIG_ONLY=1 exits 1 because require_source_engine_bundle uses [[ … ]] || return under set -e.
From the source, the packaged setup path writes a stamped image row and configures TURN: elastos setup takes the release's turnserver helper (elastos/crates/elastos-server/src/setup/browser_config.rs:452 at 26f7c7589) and writes it into the Browser config as ELASTOS_BROWSER_VM_TURN_PROGRAM (line 487). This is source-path reasoning. The exact packaged Mac installation and the alpha.24 update to the new image still need acceptance. One fix for all three, with a source-Home Browser readiness test.
Another source-Home gap, same kind: Apps → Models is empty.setup-source-home copies the model_catalog pin from components.json (head bafkreid5…in7z4) but never installs model-catalog.json beside it. So model_catalog_entries fails (elastos/crates/elastos-server/src/api/capsule_inventory.rs:102-116; read model gateway_capsule_catalog/read_model.rs:64). At startup the gateway logs "Local AI model catalogue unavailable: model catalog pin is present but model-catalog.json is missing".
Release path: not affected. The catalog is a release artifact, admitted by scripts/release-platform-input.pyadmit_model_catalog_artifact and written by setup through SignedSetupMetadata::install (setup.rs:698). An installed Home on this Mac has the same 3,550 B file, head CID equal to the pin.
Fix: have setup-source-home fetch model-catalog.json from the publisher and check its head CID against the pin before writing it (or take it from a local path). A source-Home test should assert that the catalog state is verified.
Workaround used on the 0.8.0 test Home: fetched https://elastos.elacitylabs.com/artifacts/model-catalog.json, checked that its raw CIDv1 equals the pinned head_cid, and installed it as <data dir>/model-catalog.json (mode 600). No restart is needed, because the catalog is read on each request.
Activity
andersalm commentedon Oct 22, 2026
Two more source-Home gaps from the same check (22 Oct):
build-and-setup-source-home.shforcesSETUP_SOURCE_HOME_RUNTIME_TURN=0, so the Browser config on a Mac never getsELASTOS_BROWSER_VM_TURN_PROGRAM. The Engine readiness probe (browser-vm-artifact-preflight.sh --host-readiness) then reportspreparation_required, and Browser shows "needs preparation" even after the image row is fixed. Writing the config withELASTOS_BROWSER_VM_TURN_PROGRAMset givesready.SETUP_SOURCE_HOME_CONFIG_ONLY=1exits 1 becauserequire_source_engine_bundleuses[[ … ]] || returnunderset -e.From the source, the packaged setup path writes a stamped image row and configures TURN:
elastos setuptakes the release'sturnserverhelper (elastos/crates/elastos-server/src/setup/browser_config.rs:452at26f7c7589) and writes it into the Browser config asELASTOS_BROWSER_VM_TURN_PROGRAM(line 487). This is source-path reasoning. The exact packaged Mac installation and the alpha.24 update to the new image still need acceptance. One fix for all three, with a source-Home Browser readiness test.[-]Mac source Home: Browser can't prepare a locally staged image while components.json keeps the template's unstamped browser-vm-image row[/-][+]Mac source Home: Browser shows 'needs preparation' (unstamped image row, missing TURN program, config-only exit)[/+]andersalm commentedon Oct 23, 2026
Another source-Home gap, same kind: Apps → Models is empty.
setup-source-homecopies themodel_catalogpin fromcomponents.json(headbafkreid5…in7z4) but never installsmodel-catalog.jsonbeside it. Somodel_catalog_entriesfails (elastos/crates/elastos-server/src/api/capsule_inventory.rs:102-116; read modelgateway_capsule_catalog/read_model.rs:64). At startup the gateway logs "Local AI model catalogue unavailable: model catalog pin is present but model-catalog.json is missing".Release path: not affected. The catalog is a release artifact, admitted by
scripts/release-platform-input.pyadmit_model_catalog_artifactand written by setup throughSignedSetupMetadata::install(setup.rs:698). An installed Home on this Mac has the same 3,550 B file, head CID equal to the pin.Fix: have
setup-source-homefetchmodel-catalog.jsonfrom the publisher and check its head CID against the pin before writing it (or take it from a local path). A source-Home test should assert that the catalog state isverified.Workaround used on the 0.8.0 test Home: fetched
https://elastos.elacitylabs.com/artifacts/model-catalog.json, checked that its raw CIDv1 equals the pinnedhead_cid, and installed it as<data dir>/model-catalog.json(mode 600). No restart is needed, because the catalog is read on each request.