{
  "ensure-workspace": {
    "status": "failed",
    "output": "=== Ensure workspace runtime (WSL2 Ubuntu) ===\n=== Ensure WSL2 subsystem is responsive (auto-recovers if wedged) ===\n  $ wsl --status\n    | Default Distribution: Adom-Workspace\n    | Default Version: 2\n    | WSL1 is not supported with your current machine configuration.\n    | Please enable the \"Windows Subsystem for Linux\" optional component to use WSL1.\n  ✓ `wsl --status` ok (0s)\n  ✓ WSL2 subsystem is responsive\nChecking WSL2 prerequisites (wsl --status)...\n  ✓ WSL2 is installed and ready\n=== Ensure WSL2 subsystem is responsive (auto-recovers if wedged) ===\n  $ wsl --status\n    | Default Distribution: Adom-Workspace\n    | Default Version: 2\n    | WSL1 is not supported with your current machine configuration.\n    | Please enable the \"Windows Subsystem for Linux\" optional component to use WSL1.\n  ✓ `wsl --status` ok (0s)\n  ✓ WSL2 subsystem is responsive\n  ✓ distro already registered + up to date\n  → booting the workspace (systemd PID 1), one blocking wait for boot to finish (~10-30s)…\n  ── systemd boot log ──\n    │ [    2.239351] winvm bash[75]: │ Check any relay:  curl -s <relay-http>/health   -> usingDefaultToken\n    │ [    2.239351] winvm bash[75]: └────────────────────────────────────────────────────────────────────────────\n    │ [    2.239410] winvm systemd[1]: Started [redacted] - Getty on tty3.\n    │ [    2.242158] winvm systemd[1]: Started [redacted] - Getty on tty4.\n    │ [    2.244927] winvm systemd[1]: Started [redacted] - Getty on tty5.\n    │ [    2.247924] winvm systemd[1]: Started [redacted] - Getty on tty6.\n    │ [    2.249931] winvm systemd[1]: Finished getty-static.service - getty on tty2-tty6 if dbus and logind are not available.\n    │ [    2.250719] winvm systemd[1]: Reached target getty.target - Login Prompts.\n    │ [    2.275488] winvm systemd[1]: e2scrub_reap.service: Deactivated successfully.\n    │ [    2.275758] winvm systemd[1]: Finished e2scrub_reap.service - Remove Stale Online ext4 Metadata Check Snapshots.\n    │ [    2.277865] winvm systemd[1]: Reached target multi-user.target - Multi-User System.\n    │ [    2.296284] winvm systemd[1]: Starting systemd-update-utmp-runlevel.service - Record Runlevel Change in UTMP...\n    │ [    2.301908] winvm systemd[1]: systemd-update-utmp-runlevel.service: Deactivated successfully.\n    │ [    2.302095] winvm systemd[1]: Finished systemd-update-utmp-runlevel.service - Record Runlevel Change in UTMP.\n    │ [    2.302689] winvm systemd[1]: Startup finished in 357ms.\n    │ [    2.449846] winvm CRON[87]: pam_unix(cron:session): session closed for user adom\n    │ [    2.455275] winvm kernel: TCP: eth0: Driver has suspect GRO implementation, TCP performance may be compromised.\n    │ [    2.504240] winvm login[151]: pam_unix(login:session): session opened for user adom(uid=1001) by adom(uid=0)\n    │ [    2.618620] winvm bash[76]: 10-17 15:00:44 NOTICE update available: wiki has 0.29.1, running 0.28.6. `adom-wiki pkg update adom/adom-shotlog` then restart `adom-shotlog serve`.\n    │ [    2.647664] winvm bash[75]: Adom relay server started\n    │ [    2.647664] winvm bash[75]:   WebSocket: ws://0.0.0.0:8765\n    │ [    2.647664] winvm bash[75]:   HTTP API:  http://127.0.0.1:8766\n    │ [    2.938725] winvm code-server[77]: [2026-10-17T15:00:44.756Z] info  code-server 4.124.2 9fe7eb79d5ab2f2ed369d0e79cce4dbc6fe00a31\n    │ [    2.939201] winvm code-server[77]: [2026-10-17T15:00:44.765Z] info  Using user-data-dir /home/adom/.local/share/code-server\n    │ [    2.952619] winvm code-server[77]: [2026-10-17T15:00:44.779Z] info  Using config file /home/adom/.config/code-server/config.yaml\n    │ [    2.952684] winvm code-server[77]: [2026-10-17T15:00:44.779Z] info  HTTP server listening on http://127.0.0.1:7380/\n    │ [    2.952684] winvm code-server[77]: [2026-10-17T15:00:44.779Z] info    - Authentication is disabled\n    │ [    2.952684] winvm code-server[77]: [2026-10-17T15:00:44.779Z] info    - Not serving HTTPS\n    │ [    2.952684] winvm code-server[77]: [2026-10-17T15:00:44.779Z] info  Using proxy URI in PORTS tab: http://{{port}}.localhost:47083/\n    │ [    2.952684] winvm code-server[77]: [2026-10-17T15:00:44.779Z] info  Session server listening on /home/adom/.local/share/code-server/code-server-ipc.sock\n    │ [    3.539152] winvm code-server[77]: [15:00:45]\n    │ [    3.597713] winvm code-server[77]: [reconnection-grace-time] No CLI argument provided, using default: 10800000ms (10800s)\n    │ [    3.598789] winvm code-server[77]: [15:00:45] [AgentHostChannel] Registered unavailable IPC channel 'agentHostProxy': no --agent-host-bridge-port / --agent-host-bridge-path set.\n    │ [    3.602076] winvm code-server[77]: [15:00:45] Extension host agent started.\n    │ [    3.658843] winvm code-server[77]: (node:187) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities.\n    │ [    3.658843] winvm code-server[77]: (Use `node --trace-deprecation ...` to show where the warning was created)\n    │ [    6.335528] winvm unknown: WSL (130) ERROR: CheckConnection: getaddrinfo() failed: -5\n    │ [    6.349240] winvm unknown: WSL (130) ERROR: CheckConnection: getaddrinfo() failed: -5\n    │ [   10.182935] winvm code-server[77]: File not found: /usr/lib/code-server/lib/vscode/node_modules/vsda/rust/web/vsda_bg.wasm\n    │ [   10.183306] winvm code-server[77]: File not found: /usr/lib/code-server/lib/vscode/node_modules/vsda/rust/web/vsda.js\n    │ [   10.192224] winvm code-server[77]: [15:00:52] [127.0.0.1][edfcf84c][ManagementConnection] New connection established.\n    │ [   10.454867] winvm code-server[77]: (node:187) [DEP0060] DeprecationWarning: The `util._extend` API is deprecated. Please use Object.assign() instead.\n    │ [   10.713370] winvm code-server[77]: [15:00:52] [127.0.0.1][923d374c][ExtensionHostConnection] New connection established.\n    │ [   10.839937] winvm code-server[77]: [15:00:52] [127.0.0.1][923d374c][ExtensionHostConnection] <300> Launched Extension Host Process.\n    │ [   11.218971] winvm code-server[77]: [15:00:53] [127.0.0.1][923d374c][ExtensionHostConnection] <300> [reconnection-grace-time] Extension host: read VSCODE_RECONNECTION_GRACE_TIME=10800000ms (10800s)\n    │ [    6.373752] winvm unknown: WSL (130) ERROR: CheckConnection: connect() failed: 101\n    │ [   12.550650] winvm unknown: WSL (2 - Interop) ERROR: CreateLoginSession:3068: Timed out waiting for user session for uid=1001\n    │ [   12.551935] winvm unknown: WSL (2 - Interop) ERROR: SendMessage:206: Failed to write message LxMessageResultBool. Channel: InteropServer\n    │ [   12.552780] winvm unknown: WSL (2) ERROR: Exception thrown from a scope_exit lambda Broken pipe @C:/__w/1/s/src/shared/inc\\SocketChannel.h:207 (SendMessage)\n    │ [   14.429342] winvm code-server[77]: [15:00:56] [127.0.0.1][edfcf84c][ManagementConnection] The client has disconnected gracefully, so the connection will be disposed.\n    │ [   14.528524] winvm login[554]: pam_unix(login:session): session opened for user root(uid=0) by root(uid=0)\n    │ [   14.529949] winvm login[566]: ROOT LOGIN  on '/dev/pts/2'\n    │ [   14.715297] winvm code-server[77]: [15:00:56] [127.0.0.1][923d374c][ExtensionHostConnection] <300> Extension Host Process exited with code: 0, signal: null.\n    │ [   15.202614] winvm code-server[77]: File not found: /usr/lib/code-server/lib/vscode/node_modules/vsda/rust/web/vsda.js\n    │ [   15.202614] winvm code-server[77]: File not found: /usr/lib/code-server/lib/vscode/node_modules/vsda/rust/web/vsda_bg.wasm\n    │ [   15.207909] winvm code-server[77]: [15:00:57] [127.0.0.1][32a490ff][ManagementConnection] New connection established.\n    │ [   15.627735] winvm code-server[77]: [15:00:57] [127.0.0.1][6d0df500][ExtensionHostConnection] New connection established.\n    │ [   15.631481] winvm code-server[77]: [15:00:57] [127.0.0.1][6d0df500][ExtensionHostConnection] <590> Launched Extension Host Process.\n    │ [   15.812072] winvm code-server[77]: [15:00:57] [127.0.0.1][6d0df500][ExtensionHostConnection] <590> [reconnection-grace-time] Extension host: read VSCODE_RECONNECTION_GRACE_TIME=10800000ms (10800s)\n    │ [   19.451856] winvm CRON[812]: pam_unix(cron:session): session opened for user adom(uid=1001) by adom(uid=0)\n    │ [   19.452370] winvm CRON[813]: (adom) CMD (python3 /home/adom/.local/share/adom/codex/runtime/manage.py ensure-watch >/dev/null 2>&1 # adom/codex runtime)\n    │ [   19.482074] winvm CRON[812]: pam_unix(cron:session): session closed for user adom\n    │ [   24.602599] winvm unknown: WSL (2 - Interop) ERROR: CreateLoginSession:3068: Timed out waiting for user session for uid=0\n    │ [   24.603239] winvm unknown: WSL (2 - Interop) ERROR: SendMessage:206: Failed to write message LxInitMessageQueryEnvironmentVariable. Channel: InteropServer\n    │ [   24.604115] winvm unknown: WSL (2) ERROR: Broken pipe @C:/__w/1/s/src/shared/inc\\SocketChannel.h:207 (SendMessage)\n    │ [   24.604835] winvm unknown: WSL (2 - Interop) ERROR: SendMessage:206: Failed to write message LxInitMessageQueryEnvironmentVariable. Channel: InteropServer\n    │ [   24.605692] winvm unknown: WSL (2) ERROR: Broken pipe @C:/__w/1/s/src/shared/inc\\SocketChannel.h:207 (SendMessage)\n    │ [   24.606383] winvm unknown: WSL (2 - Interop) ERROR: SendMessage:206: Failed to write message LxInitMessageQueryEnvironmentVariable. Channel: InteropServer\n    │ [   24.607106] winvm unknown: WSL (2) ERROR: Broken pipe @C:/__w/1/s/src/shared/inc\\SocketChannel.h:207 (SendMessage)\n    │ [   24.607746] winvm unknown: WSL (2 - Interop) ERROR: SendMessage:206: Failed to write message LxInitMessageQueryEnvironmentVariable. Channel: InteropServer\n    │ [   24.608558] winvm unknown: WSL (2) ERROR: Broken pipe @C:/__w/1/s/src/shared/inc\\SocketChannel.h:207 (SendMessage)\n    │ [   24.609304] winvm unknown: WSL (2 - Interop) ERROR: SendMessage:206: Failed to write message LxInitMessageQueryEnvironmentVariable. Channel: InteropServer\n    │ [   24.610170] winvm unknown: WSL (2) ERROR: Broken pipe @C:/__w/1/s/src/shared/inc\\SocketChannel.h:207 (SendMessage)\n    │ [   24.610820] winvm unknown: WSL (2 - Interop) ERROR: SendMessage:206: Failed to write message LxInitMessageQueryEnvironmentVariable. Channel: InteropServer\n    │ [   24.611720] winvm unknown: WSL (2) ERROR: Broken pipe @C:/__w/1/s/src/shared/inc\\SocketChannel.h:207 (SendMessage)\n    │ [   24.648399] winvm systemd[1]: Started hd-loopback-probe.service - /usr/bin/python3 -m http.server 47996 --bind 127.0.0.1.\n    │ [   25.659235] winvm python3[977]: 127.0.0.1 - - [17/Oct/2026 15:01:07] \"GET / HTTP/1.1\" 200 -\n    │ [   26.195284] winvm systemd[1]: Stopping hd-loopback-probe.service - /usr/bin/python3 -m http.server 47996 --bind 127.0.0.1...\n    │ [   26.197123] winvm systemd[1]: hd-loopback-probe.service: Deactivated successfully.\n    │ [   26.197389] winvm systemd[1]: Stopped hd-loopback-probe.service - /usr/bin/python3 -m http.server 47996 --bind 127.0.0.1.\n    │ [   29.136870] winvm systemd[1]: Reloading requested from client PID 1116 ('systemctl')...\n    │ [   29.137152] winvm systemd[1]: Reloading...\n    │ [   29.195164] winvm systemd[1]: Reloading finished in 57 ms.\n    │ [   32.057951] winvm bash[75]: [2026-10-17T15:01:13.885Z] WS connected: 5839a007-baad-4d25-bdd6-d47f7d610d08 from 127.0.0.1:55380\n    │ [   32.058866] winvm bash[75]: [2026-10-17T15:01:13.885Z] ← 5839a007-baad-4d25-bdd6-d47f7d610d08 type=auth id=1fd4c6a6-6179-44d1-bdc8-6b9245220481\n    │ [   32.058866] winvm bash[75]: [2026-10-17T15:01:13.885Z] Auth OK: 5839a007-baad-4d25-bdd6-d47f7d610d08 (Adom Bridge)\n    │ [   32.643652] winvm bash[75]: [2026-10-17T15:01:14.470Z] ← 5839a007-baad-4d25-bdd6-d47f7d610d08 type=pong id=ff2cdffc-eff4-4d03-9beb-d8d7af881e60\n    │ [   33.088379] winvm systemd[1]: Started hd-loopback-probe.service - /usr/bin/python3 -m http.server 47996 --bind 127.0.0.1.\n    │ [   34.100624] winvm python3[1243]: 127.0.0.1 - - [17/Oct/2026 15:01:15] \"GET / HTTP/1.1\" 200 -\n    │ [   34.196482] winvm systemd[1]: Stopping hd-loopback-probe.service - /usr/bin/python3 -m http.server 47996 --bind 127.0.0.1...\n    │ [   34.198467] winvm systemd[1]: hd-loopback-probe.service: Deactivated successfully.\n    │ [   34.198660] winvm systemd[1]: Stopped hd-loopback-probe.service - /usr/bin/python3 -m http.server 47996 --bind 127.0.0.1.\n    │ [   47.643365] winvm bash[75]: [2026-10-17T15:01:29.470Z] ← 5839a007-baad-4d25-bdd6-d47f7d610d08 type=pong id=03a4f7b5-4777-4a2a-a8dd-cf03c2e68a6e\n    │ [   49.038042] winvm kernel: hv_balloon: Max. dynamic memory size: 16380 MB\n    │ [   62.643248] winvm bash[75]: [2026-10-17T15:01:44.470Z] ← 5839a007-baad-4d25-bdd6-d47f7d610d08 type=pong id=ba1f88c6-0768-45fd-902b-e1f9490e8878\n    │ [   77.643975] winvm bash[75]: [2026-10-17T15:01:59.471Z] ← 5839a007-baad-4d25-bdd6-d47f7d610d08 type=pong id=cec96d4d-b374-43d2-98ca-823e024620c9\n    │ [   79.484416] winvm CRON[2089]: pam_unix(cron:session): session opened for user adom(uid=1001) by adom(uid=0)\n    │ [   79.484826] winvm CRON[2090]: (adom) CMD (python3 /home/adom/.local/share/adom/codex/runtime/manage.py ensure-watch >/dev/null 2>&1 # adom/codex runtime)\n    │ [   79.515966] winvm CRON[2089]: pam_unix(cron:session): session closed for user adom\n    │ [   92.643150] winvm bash[75]: [2026-10-17T15:02:14.470Z] ← 5839a007-baad-4d25-bdd6-d47f7d610d08 type=pong id=a3bfed56-8da6-4d94-935b-2aebc5af114c\n    │ [  107.643124] winvm bash[75]: [2026-10-17T15:02:29.470Z] ← 5839a007-baad-4d25-bdd6-d47f7d610d08 type=pong id=cb869f01-d887-448a-93d8-b9984f56ffdc\n    │ [  122.644187] winvm bash[75]: [2026-10-17T15:02:44.471Z] ← 5839a007-baad-4d25-bdd6-d47f7d610d08 type=pong id=d3795618-d43c-480d-b131-388c16a335c6\n    │ [  137.643655] winvm bash[75]: [2026-10-17T15:02:59.470Z] ← 5839a007-baad-4d25-bdd6-d47f7d610d08 type=pong id=9cf2d67d-177a-4022-babb-1799ab00b2d7\n    │ [  139.518330] winvm CRON[2809]: pam_unix(cron:session): session opened for user adom(uid=1001) by adom(uid=0)\n    │ [  139.518838] winvm CRON[2810]: (adom) CMD (python3 /home/adom/.local/share/adom/codex/runtime/manage.py ensure-watch >/dev/null 2>&1 # adom/codex runtime)\n    │ [  139.552155] winvm CRON[2809]: pam_unix(cron:session): session closed for user adom\n    │ [  152.644145] winvm bash[75]: [2026-10-17T15:03:14.471Z] ← 5839a007-baad-4d25-bdd6-d47f7d610d08 type=pong id=926a89ba-59ab-4340-818b-57671cb85f51\n    │ [  167.644147] winvm bash[75]: [2026-10-17T15:03:29.471Z] ← 5839a007-baad-4d25-bdd6-d47f7d610d08 type=pong id=43e8d4ad-e965-4487-b98a-ea1f4d7b4e56\n    │ [  182.643985] winvm bash[75]: [2026-10-17T15:03:44.471Z] ← 5839a007-baad-4d25-bdd6-d47f7d610d08 type=pong id=2e81ee09-3f0e-44aa-a813-a9c7db1ffe98\n    │ [  197.643972] winvm bash[75]: [2026-10-17T15:03:59.471Z] ← 5839a007-baad-4d25-bdd6-d47f7d610d08 type=pong id=9f0aae51-e6d7-44ea-bc61-e1ff721b61ac\n    │ [  199.554206] winvm CRON[3549]: pam_unix(cron:session): session opened for user adom(uid=1001) by adom(uid=0)\n    │ [  199.554684] winvm CRON[3550]: (adom) CMD (python3 /home/adom/.local/share/adom/codex/runtime/manage.py ensure-watch >/dev/null 2>&1 # adom/codex runtime)\n    │ [  199.585744] winvm CRON[3549]: pam_unix(cron:session): session closed for user adom\n    │ [  212.643717] winvm bash[75]: [2026-10-17T15:04:14.470Z] ← 5839a007-baad-4d25-bdd6-d47f7d610d08 type=pong id=34b6a9c8-2875-4a2c-8c86-9a07c552876f\n    │ [  227.644226] winvm bash[75]: [2026-10-17T15:04:29.471Z] ← 5839a007-baad-4d25-bdd6-d47f7d610d08 type=pong id=bdf6e5a1-565d-4bc0-b6ed-7ccf6f3833f3\n    │ [  242.644238] winvm bash[75]: [2026-10-17T15:04:44.471Z] ← 5839a007-baad-4d25-bdd6-d47f7d610d08 type=pong id=cd49890e-5631-4a36-bb10-18ca8853a75c\n    │ [  257.643449] winvm bash[75]: [2026-10-17T15:04:59.470Z] ← 5839a007-baad-4d25-bdd6-d47f7d610d08 type=pong id=51003176-961a-4f6c-8fba-fe8c99efe348\n    │ [  259.588046] winvm CRON[4301]: pam_unix(cron:session): session opened for user adom(uid=1001) by adom(uid=0)\n    │ [  259.588518] winvm CRON[4302]: (adom) CMD (python3 /home/adom/.local/share/adom/codex/runtime/manage.py ensure-watch >/dev/null 2>&1 # adom/codex runtime)\n    │ [  259.621030] winvm CRON[4301]: pam_unix(cron:session): session closed for user adom\n    │ [  272.643341] winvm bash[75]: [2026-10-17T15:05:14.470Z] ← 5839a007-baad-4d25-bdd6-d47f7d610d08 type=pong id=b6a1deb9-4e40-4476-89e0-60c3da2028fd\n    │ [  287.644074] winvm bash[75]: [2026-10-17T15:05:29.471Z] ← 5839a007-baad-4d25-bdd6-d47f7d610d08 type=pong id=4684788b-62fd-4673-93e5-3182d1fcab73\n    │ [  302.643860] winvm bash[75]: [2026-10-17T15:05:44.471Z] ← 5839a007-baad-4d25-bdd6-d47f7d610d08 type=pong id=5a0fc330-3617-4f92-934b-7ae44beb53ac\n    │ [  317.643452] winvm bash[75]: [2026-10-17T15:05:59.470Z] ← 5839a007-baad-4d25-bdd6-d47f7d610d08 type=pong id=f098915b-33f7-4f07-84fc-acd070cbfa72\n    │ [  319.623252] winvm CRON[4996]: pam_unix(cron:session): session opened for user adom(uid=1001) by adom(uid=0)\n    │ [  319.623765] winvm CRON[4997]: (adom) CMD (python3 /home/adom/.local/share/adom/codex/runtime/manage.py ensure-watch >/dev/null 2>&1 # adom/codex runtime)\n    │ [  319.658037] winvm CRON[4996]: pam_unix(cron:session): session closed for user adom\n    │ [  332.643434] winvm bash[75]: [2026-10-17T15:06:14.470Z] ← 5839a007-baad-4d25-bdd6-d47f7d610d08 type=pong id=0c027f1f-1e62-40e2-910a-a3ffd3467ec0\n    │ [  347.643401] winvm bash[75]: [2026-10-17T15:06:29.470Z] ← 5839a007-baad-4d25-bdd6-d47f7d610d08 type=pong id=3b270516-4c65-46e3-8079-b667027c3876\n    │ [  362.643612] winvm bash[75]: [2026-10-17T15:06:44.470Z] ← 5839a007-baad-4d25-bdd6-d47f7d610d08 type=pong id=d8e154d8-1d00-4464-b568-57506de801cc\n    │ [  377.643429] winvm bash[75]: [2026-10-17T15:06:59.470Z] ← 5839a007-baad-4d25-bdd6-d47f7d610d08 type=pong id=aa14c1d9-b09b-4623-8f62-952d4056360a\n    │ [  379.660500] winvm CRON[5753]: pam_unix(cron:session): session opened for user adom(uid=1001) by adom(uid=0)\n    │ [  379.660960] winvm CRON[5754]: (adom) CMD (python3 /home/adom/.local/share/adom/codex/runtime/manage.py ensure-watch >/dev/null 2>&1 # adom/codex runtime)\n    │ [  379.693109] winvm CRON[5753]: pam_unix(cron:session): session closed for user adom\n    │ [  392.643244] winvm bash[75]: [2026-10-17T15:07:14.470Z] ← 5839a007-baad-4d25-bdd6-d47f7d610d08 type=pong id=7f778939-0f16-4297-b237-8cf9c61cf08d\n    │ [  407.644058] winvm bash[75]: [2026-10-17T15:07:29.471Z] ← 5839a007-baad-4d25-bdd6-d47f7d610d08 type=pong id=0e2351fc-5403-446c-b581-489c0dc799e8\n    │ [  422.644058] winvm bash[75]: [2026-10-17T15:07:44.471Z] ← 5839a007-baad-4d25-bdd6-d47f7d610d08 type=pong id=25e8b265-aadc-4801-8eed-556999b6269f\n    │ [  426.904472] winvm code-server[77]: [15:07:48] [127.0.0.1][32a490ff][ManagementConnection] The client has disconnected gracefully, so the connection will be disposed.\n    │ [  428.965782] winvm systemd[1]: Stopping code-server.service - Adom code-server (Hydrogen Desktop workspace editor)...\n    │ [  429.099907] winvm systemd[1]: code-server.service: Deactivated successfully.\n    │ [  429.100283] winvm systemd[1]: Stopped code-server.service - Adom code-server (Hydrogen Desktop workspace editor).\n    │ [  429.100474] winvm systemd[1]: code-server.service: Consumed 49.202s CPU time, 1.3G memory peak, 0B memory swap peak.\n    │ [  437.644489] winvm bash[75]: [2026-10-17T15:07:59.471Z] ← 5839a007-baad-4d25-bdd6-d47f7d610d08 type=pong id=6e44e6b7-5ee1-4e46-a5cd-9cb85d2ed09b\n    │ [  439.696451] winvm CRON[6338]: pam_unix(cron:session): session opened for user adom(uid=1001) by adom(uid=0)\n    │ [  439.696951] winvm CRON[6339]: (adom) CMD (python3 /home/adom/.local/share/adom/codex/runtime/manage.py ensure-watch >/dev/null 2>&1 # adom/codex runtime)\n    │ [  439.730691] winvm CRON[6338]: pam_unix(cron:session): session closed for user adom\n    │ [  452.643453] winvm bash[75]: [2026-10-17T15:08:14.470Z] ← 5839a007-baad-4d25-bdd6-d47f7d610d08 type=pong id=003c547a-7efd-4e99-be0f-a4b791cfe7a9\n    │ [  467.643753] winvm bash[75]: [2026-10-17T15:08:29.470Z] ← 5839a007-baad-4d25-bdd6-d47f7d610d08 type=pong id=b37cc13c-ee36-41e8-ab55-944334305d43\n    │ [  482.643752] winvm bash[75]: [2026-10-17T15:08:44.470Z] ← 5839a007-baad-4d25-bdd6-d47f7d610d08 type=pong id=14f7e0f5-1b4d-4cae-b460-9a8721903859\n    │ [  497.643397] winvm bash[75]: [2026-10-17T15:08:59.470Z] ← 5839a007-baad-4d25-bdd6-d47f7d610d08 type=pong id=f3625a64-c446-4e09-b00e-95fdb6810835\n  ── end boot log ──\n  ✓ workspace booted: systemd is 'running' after 0s (a degraded per-user session is normal for v9)\n  image version check: rootfs(/etc/adom-golden-version)=v31-full · HD-wrote(/etc/adom-tarball-version)=v31-full · expected=v31-full\nEnsuring adom user (uid 1001/gid 1001) + /home/adom/project...\n  ✓ adom user already present\n  ✓ /home/adom/project ready\nWriting adom-host alias (WSL2 → Windows gateway)...\n  ✓ alias ready\nStarting code-server inside the distro...\n  ✓ code-server start issued\n  ✓ api-key persistence ensured (boot-proof)\nDeep-verifying workspace (target: code-server reachable on host 127.0.0.1:7380)...\n  ✓ distro 'Adom-Workspace' is registered\n  --- verification round 1/3 ---\n  ✓ code-server binary present in distro\n  ✓ code-server process running in distro\n  ✗ code-server LISTENING on :7380 inside distro\n    → REPAIR: (re)starting code-server on the correct bind-addr...\n    ✓ code-server (re)started\n  ✗ code-server: port-held-windows: Port 7380 is in use by Windows PowerShell (powershell.exe) on Windows, and Hydrogen's editor needs it. Close Windows PowerShell, then run setup again.\n  ✗ workspace setup attempt failed (will retry if attempts remain): code-server: port-held-windows: Port 7380 is in use by Windows PowerShell (powershell.exe) on Windows, and Hydrogen's editor needs it. Close Windows PowerShell, then run setup again.",
    "percent": 0.0,
    "attempts": 0,
    "max_attempts": 3
  }
}