Adom Hydrogen
Public Made by Adomby adom
The whole Adom experience as one signed native app: your editor, your AI agent, and the full electronics design toolchain, running locally on your own machine.
Black screen at launch: mixed-build frontend assets — shell inits __sveltekit_1jo40ag but chunks read __sveltekit_1hz8szf, boot import chain rejects, kit.start never runs
Hydrogen boots to a fully black window on Kale's box (build 7bb7c99e-dirty, built Sep 29 3:11 PM, exe C:/Users/Kale/AppData/Local/Adom Hydrogen/hydrogen.exe). The backend is healthy the whole time — control API answers on :47084, heartbeats tick, the workspace/code-server reports editor_will_load: true — but the client area renders nothing. This is NOT the fullscreen/minimize presentation bug from issue #1585: the present-kick passes from that fix ran and re-presented the webview, and the frame still stayed black, because there is nothing to paint.
Root cause: mixed-build frontend assets — the SvelteKit shell and the JS chunks are from two different builds
The app shell HTML served at tauri.localhost initializes SvelteKit instance id 1jo40ag:
__sveltekit_1jo40ag = { base: "", env: null };
...
import("/_app/env.js").then(({ env }) => {
__sveltekit_1jo40ag.env = env;
Promise.all([
import("/_app/immutable/entry/start.BZRne8Yw.js"),
import("/_app/immutable/entry/app.CTqrBwpU.js")
]).then(([kit, app]) => { kit.start(app, element); });
});
But the _app/immutable assets on disk are from a DIFFERENT build whose instance id is 1hz8szf. The very first line of the shared chunk reads:
// /_app/immutable/chunks/index.DKNlELYB.js, char 1
const env = globalThis.__sveltekit_1hz8szf.env;
__sveltekit_1hz8szf is never defined (the shell defined __sveltekit_1jo40ag), so the chunk throws on import, the whole dynamic-import chain rejects, kit.start() never runs, and the window stays black forever. Confirmed in the log at boot:
13:53:58.175 [JS UNHANDLED REJECTION] TypeError: Cannot read properties of undefined (reading 'env')
at http://tauri.localhost/_app/immutable/chunks/index.DKNlELYB.js:1:42
13:53:58.176 [JS UNHANDLED REJECTION] TypeError: Cannot read properties of undefined (reading 'env')
at http://tauri.localhost/_app/immutable/chunks/index.DKNlELYB.js:1:42
Live DOM probe over /eval confirms the app never mounted: document.readyState == "complete" but document.body.innerHTML is 525 chars — just the unhydrated bootstrap <div style="display: contents"> + the inline script above. entry.BuxsNU1k.js (imported by start.BZRne8Yw.js) also references only __sveltekit_1hz8szf, so the entry files and chunks agree with each other; it is the SHELL that is from a different build than the entire _app tree.
How it likely happened
The running exe is a dirty local build (build_dirty: true, 7bb7c99e...-dirty-1790712682). The shell HTML Tauri serves and the _app asset tree it serves come from different pnpm build outputs — i.e. a rebuild raced or partially overwrote the frontend output (stale build/ dir not cleaned between builds, or the exe was relinked against a frontend dir that a later/earlier build had partially replaced). Content-hashed chunk filenames make the two builds interleave silently instead of 404ing.
Suggested fixes
- Immediate (this box): a clean frontend rebuild (
rm -rf .svelte-kit build && pnpm build) thenhd_ship, or simply applying the already-staged 1.0.501 installer (Update 1.0.501 staged + verifiedin the log) replaces the whole asset tree atomically and should clear it. - Build pipeline: make the frontend build step clean its output dir before emitting, so shell + assets can never interleave across builds (this is exactly the frontend flavor of the
relinkOnlystale-build traphd_shipalready guards the Rust side against). - Robustness: the shell's bootstrap
import(...)chain has no.catch. A top-level catch that paints a visible error screen ("frontend failed to load: ") would turn a silent black window into a diagnosable one — the backend was perfectly healthy and could even have reported it via the existing log channel and a reload button.
Environment
- Hydrogen 1.0.500 (insiders), running SHA
7bb7c99e51a281b1ef7859c75c30ac3b5772a3fa-dirty-1790712682, pid 27448 - Windows, WebView2; workspace distro
Adom-Workspacehealthy; ab embedded (LaunchFlag) /_app/version.json=1790712406135;/_app/env.jsloads fine (carbon/iron URLs)
Diagnosed remotely over the bridge: hd_status → hd_shot (pure black client area) → hd_log → /eval DOM + asset probes.