{
  "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    │ [    5.558984] winvm bash[96]: └────────────────────────────────────────────────────────────────────────────\n    │ [    5.561117] winvm systemd[1]: Started [redacted] - Getty on tty4.\n    │ [    5.564452] winvm systemd[1]: Started [redacted] - Getty on tty5.\n    │ [    5.567014] winvm systemd[1]: Started [redacted] - Getty on tty6.\n    │ [    5.568672] winvm systemd[1]: Finished getty-static.service - getty on tty2-tty6 if dbus and logind are not available.\n    │ [    5.569586] winvm systemd[1]: Reached target getty.target - Login Prompts.\n    │ [    5.590566] winvm systemd[1]: e2scrub_reap.service: Deactivated successfully.\n    │ [    5.590793] winvm systemd[1]: Finished e2scrub_reap.service - Remove Stale Online ext4 Metadata Check Snapshots.\n    │ [    5.592737] winvm systemd[1]: Reached target multi-user.target - Multi-User System.\n    │ [    5.594333] winvm systemd[1]: Starting systemd-update-utmp-runlevel.service - Record Runlevel Change in UTMP...\n    │ [    5.605539] winvm systemd[1]: systemd-update-utmp-runlevel.service: Deactivated successfully.\n    │ [    5.605717] winvm systemd[1]: Finished systemd-update-utmp-runlevel.service - Record Runlevel Change in UTMP.\n    │ [    5.606320] winvm systemd[1]: Startup finished in 2.278s.\n    │ [    5.823719] winvm kernel: TCP: eth0: Driver has suspect GRO implementation, TCP performance may be compromised.\n    │ [    5.967655] winvm bash[96]: Adom relay server started\n    │ [    5.967655] winvm bash[96]:   WebSocket: ws://0.0.0.0:8765\n    │ [    5.967655] winvm bash[96]:   HTTP API:  http://127.0.0.1:8766\n    │ [    6.030902] winvm bash[97]: 10-16 15:22:29 NOTICE update available: wiki has 0.28.7, running 0.28.6. `adom-wiki pkg update adom/adom-shotlog` then restart `adom-shotlog serve`.\n    │ [    6.081549] winvm CRON[107]: pam_unix(cron:session): session closed for user adom\n    │ [    6.085568] winvm login[166]: pam_unix(login:session): session opened for user adom(uid=1001) by adom(uid=0)\n    │ [    6.380118] winvm unknown: WSL (133) ERROR: CheckConnection: getaddrinfo() failed: -5\n    │ [    6.399866] winvm unknown: WSL (133) ERROR: CheckConnection: getaddrinfo() failed: -5\n    │ [    6.616189] winvm code-server[98]: [2026-10-16T15:22:30.487Z] info  code-server 4.124.2 9fe7eb79d5ab2f2ed369d0e79cce4dbc6fe00a31\n    │ [    6.616595] winvm code-server[98]: [2026-10-16T15:22:30.497Z] info  Using user-data-dir /home/adom/.local/share/code-server\n    │ [    6.631575] winvm code-server[98]: [2026-10-16T15:22:30.513Z] info  Using config file /home/adom/.config/code-server/config.yaml\n    │ [    6.631664] winvm code-server[98]: [2026-10-16T15:22:30.513Z] info  HTTP server listening on http://127.0.0.1:7380/\n    │ [    6.631664] winvm code-server[98]: [2026-10-16T15:22:30.513Z] info    - Authentication is disabled\n    │ [    6.631664] winvm code-server[98]: [2026-10-16T15:22:30.513Z] info    - Not serving HTTPS\n    │ [    6.631664] winvm code-server[98]: [2026-10-16T15:22:30.513Z] info  Using proxy URI in PORTS tab: http://{{port}}.localhost:47083/\n    │ [    6.631810] winvm code-server[98]: [2026-10-16T15:22:30.513Z] info  Session server listening on /home/adom/.local/share/code-server/code-server-ipc.sock\n    │ [    8.834033] winvm code-server[98]: [15:22:32]\n    │ [    8.905098] winvm code-server[98]: [reconnection-grace-time] No CLI argument provided, using default: 10800000ms (10800s)\n    │ [    8.906190] winvm code-server[98]: [15:22:32] [AgentHostChannel] Registered unavailable IPC channel 'agentHostProxy': no --agent-host-bridge-port / --agent-host-bridge-path set.\n    │ [    8.909554] winvm code-server[98]: [15:22:32] Extension host agent started.\n    │ [    8.952557] winvm code-server[98]: (node:210) [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    │ [    8.952557] winvm code-server[98]: (Use `node --trace-deprecation ...` to show where the warning was created)\n    │ [   12.468685] winvm bash[96]: [2026-10-16T15:22:36.350Z] WS connected: 25890837-f10b-4eb6-af08-8d5af98ee347 from 127.0.0.1:62902\n    │ [   12.469258] winvm bash[96]: [2026-10-16T15:22:36.350Z] ← 25890837-f10b-4eb6-af08-8d5af98ee347 type=auth id=af9ff196-76b1-47ae-a9cb-63c72d505001\n    │ [   12.469258] winvm bash[96]: [2026-10-16T15:22:36.351Z] Auth OK: 25890837-f10b-4eb6-af08-8d5af98ee347 (Adom Bridge)\n    │ [   14.523242] winvm code-server[98]: File not found: /usr/lib/code-server/lib/vscode/node_modules/vsda/rust/web/vsda_bg.wasm\n    │ [   14.523990] winvm code-server[98]: File not found: /usr/lib/code-server/lib/vscode/node_modules/vsda/rust/web/vsda.js\n    │ [   14.532107] winvm code-server[98]: [15:22:38] [127.0.0.1][d939ee05][ManagementConnection] New connection established.\n    │ [   15.062883] winvm code-server[98]: (node:210) [DEP0060] DeprecationWarning: The `util._extend` API is deprecated. Please use Object.assign() instead.\n    │ [   15.091163] winvm code-server[98]: [15:22:38] [127.0.0.1][ae023c66][ExtensionHostConnection] New connection established.\n    │ [   15.152175] winvm code-server[98]: [15:22:39] [127.0.0.1][ae023c66][ExtensionHostConnection] <327> Launched Extension Host Process.\n    │ [   15.601790] winvm code-server[98]: [15:22:39] [127.0.0.1][ae023c66][ExtensionHostConnection] <327> [reconnection-grace-time] Extension host: read VSCODE_RECONNECTION_GRACE_TIME=10800000ms (10800s)\n    │ [    6.405374] winvm unknown: WSL (133) ERROR: CheckConnection: connect() failed: 101\n    │ [   15.956038] winvm unknown: WSL (2 - Interop) ERROR: CreateLoginSession:3068: Timed out waiting for user session for uid=1001\n    │ [   15.957171] winvm unknown: WSL (2 - Interop) ERROR: SendMessage:206: Failed to write message LxMessageResultBool. Channel: InteropServer\n    │ [   15.958042] 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    │ [   17.796276] winvm login[486]: pam_unix(login:session): session opened for user root(uid=0) by root(uid=0)\n    │ [   17.798853] winvm login[502]: ROOT LOGIN  on '/dev/pts/3'\n    │ [   20.964431] winvm bash[96]: [2026-10-16T15:22:44.846Z] ← 25890837-f10b-4eb6-af08-8d5af98ee347 type=pong id=d05ba13c-b470-4e21-9a27-a2431e2bf700\n    │ [   27.863916] winvm unknown: WSL (2 - Interop) ERROR: CreateLoginSession:3068: Timed out waiting for user session for uid=0\n    │ [   27.864586] winvm unknown: WSL (2 - Interop) ERROR: SendMessage:206: Failed to write message LxInitMessageQueryEnvironmentVariable. Channel: InteropServer\n    │ [   27.865803] winvm unknown: WSL (2) ERROR: Broken pipe @C:/__w/1/s/src/shared/inc\\SocketChannel.h:207 (SendMessage)\n    │ [   27.866913] winvm unknown: WSL (2 - Interop) ERROR: SendMessage:206: Failed to write message LxInitMessageQueryEnvironmentVariable. Channel: InteropServer\n    │ [   27.867812] winvm unknown: WSL (2) ERROR: Broken pipe @C:/__w/1/s/src/shared/inc\\SocketChannel.h:207 (SendMessage)\n    │ [   27.868464] winvm unknown: WSL (2 - Interop) ERROR: SendMessage:206: Failed to write message LxInitMessageQueryEnvironmentVariable. Channel: InteropServer\n    │ [   27.869304] winvm unknown: WSL (2) ERROR: Broken pipe @C:/__w/1/s/src/shared/inc\\SocketChannel.h:207 (SendMessage)\n    │ [   27.869956] winvm unknown: WSL (2 - Interop) ERROR: SendMessage:206: Failed to write message LxInitMessageQueryEnvironmentVariable. Channel: InteropServer\n    │ [   27.870735] winvm unknown: WSL (2) ERROR: Broken pipe @C:/__w/1/s/src/shared/inc\\SocketChannel.h:207 (SendMessage)\n    │ [   27.908486] winvm systemd[1]: Started hd-loopback-probe.service - /usr/bin/python3 -m http.server 47996 --bind 127.0.0.1.\n    │ [   28.924067] winvm python3[719]: 127.0.0.1 - - [16/Oct/2026 15:22:52] \"GET / HTTP/1.1\" 200 -\n    │ [   30.488287] winvm systemd[1]: Stopping hd-loopback-probe.service - /usr/bin/python3 -m http.server 47996 --bind 127.0.0.1...\n    │ [   30.490489] winvm systemd[1]: hd-loopback-probe.service: Deactivated successfully.\n    │ [   30.490807] winvm systemd[1]: Stopped hd-loopback-probe.service - /usr/bin/python3 -m http.server 47996 --bind 127.0.0.1.\n    │ [   33.764822] winvm systemd[1]: Reloading requested from client PID 953 ('systemctl')...\n    │ [   33.765054] winvm systemd[1]: Reloading...\n    │ [   33.842783] winvm systemd[1]: Reloading finished in 77 ms.\n    │ [   35.963971] winvm bash[96]: [2026-10-16T15:22:59.845Z] ← 25890837-f10b-4eb6-af08-8d5af98ee347 type=pong id=de13ce2b-cb57-4f33-bf07-28c5943e0adb\n    │ [   38.084222] winvm CRON[1078]: pam_unix(cron:session): session opened for user adom(uid=1001) by adom(uid=0)\n    │ [   38.084751] winvm CRON[1079]: (adom) CMD (python3 /home/adom/.local/share/adom/codex/runtime/manage.py ensure-watch >/dev/null 2>&1 # adom/codex runtime)\n    │ [   38.119206] winvm CRON[1078]: pam_unix(cron:session): session closed for user adom\n    │ [   38.328512] winvm systemd[1]: Started hd-loopback-probe.service - /usr/bin/python3 -m http.server 47996 --bind 127.0.0.1.\n    │ [   39.341110] winvm python3[1089]: 127.0.0.1 - - [16/Oct/2026 15:23:03] \"GET / HTTP/1.1\" 200 -\n    │ [   39.426326] winvm systemd[1]: Stopping hd-loopback-probe.service - /usr/bin/python3 -m http.server 47996 --bind 127.0.0.1...\n    │ [   39.427913] winvm systemd[1]: hd-loopback-probe.service: Deactivated successfully.\n    │ [   39.428613] winvm systemd[1]: Stopped hd-loopback-probe.service - /usr/bin/python3 -m http.server 47996 --bind 127.0.0.1.\n    │ [   49.055735] winvm kernel: hv_balloon: Max. dynamic memory size: 16380 MB\n    │ [   50.963547] winvm bash[96]: [2026-10-16T15:23:14.845Z] ← 25890837-f10b-4eb6-af08-8d5af98ee347 type=pong id=9951432d-6b4d-4e37-b345-4bba78a6c5fb\n    │ [   65.963885] winvm bash[96]: [2026-10-16T15:23:29.845Z] ← 25890837-f10b-4eb6-af08-8d5af98ee347 type=pong id=4486e41d-e742-48b6-885a-c0338dfc729d\n    │ [   80.963803] winvm bash[96]: [2026-10-16T15:23:44.845Z] ← 25890837-f10b-4eb6-af08-8d5af98ee347 type=pong id=7d637548-a2a7-4c78-b421-52995fc12e86\n    │ [   95.963849] winvm bash[96]: [2026-10-16T15:23:59.845Z] ← 25890837-f10b-4eb6-af08-8d5af98ee347 type=pong id=b3c33ccb-7df7-4c8a-8738-3e5dca399faa\n    │ [   98.121708] winvm CRON[2097]: pam_unix(cron:session): session opened for user adom(uid=1001) by adom(uid=0)\n    │ [   98.122151] winvm CRON[2098]: (adom) CMD (python3 /home/adom/.local/share/adom/codex/runtime/manage.py ensure-watch >/dev/null 2>&1 # adom/codex runtime)\n    │ [   98.153703] winvm CRON[2097]: pam_unix(cron:session): session closed for user adom\n    │ [  110.963706] winvm bash[96]: [2026-10-16T15:24:14.845Z] ← 25890837-f10b-4eb6-af08-8d5af98ee347 type=pong id=14925a5f-c555-4d89-a96e-5f87a88aec62\n    │ [  125.963456] winvm bash[96]: [2026-10-16T15:24:29.845Z] ← 25890837-f10b-4eb6-af08-8d5af98ee347 type=pong id=46f5fa5e-e629-487c-9085-f5e74bf7bf47\n    │ [  140.963486] winvm bash[96]: [2026-10-16T15:24:44.845Z] ← 25890837-f10b-4eb6-af08-8d5af98ee347 type=pong id=ccaf98d5-5af9-4990-a329-9c951cefd560\n    │ [  155.963673] winvm bash[96]: [2026-10-16T15:24:59.845Z] ← 25890837-f10b-4eb6-af08-8d5af98ee347 type=pong id=ce785fa7-8983-442a-aa24-565bc51006e1\n    │ [  157.155978] winvm CRON[2801]: pam_unix(cron:session): session opened for user adom(uid=1001) by adom(uid=0)\n    │ [  157.156507] winvm CRON[2802]: (adom) CMD (python3 /home/adom/.local/share/adom/codex/runtime/manage.py ensure-watch >/dev/null 2>&1 # adom/codex runtime)\n    │ [  157.188704] winvm CRON[2801]: pam_unix(cron:session): session closed for user adom\n    │ [  170.963645] winvm bash[96]: [2026-10-16T15:25:14.845Z] ← 25890837-f10b-4eb6-af08-8d5af98ee347 type=pong id=f2549e32-3ecb-4269-af44-680b41207090\n    │ [  185.964584] winvm bash[96]: [2026-10-16T15:25:29.846Z] ← 25890837-f10b-4eb6-af08-8d5af98ee347 type=pong id=5c103cc0-4fc9-463e-8b60-0aa989a486f8\n    │ [  200.963462] winvm bash[96]: [2026-10-16T15:25:44.845Z] ← 25890837-f10b-4eb6-af08-8d5af98ee347 type=pong id=404068ad-d588-4177-996f-67c100fbe656\n    │ [  215.963456] winvm bash[96]: [2026-10-16T15:25:59.845Z] ← 25890837-f10b-4eb6-af08-8d5af98ee347 type=pong id=33feb1b6-7a10-4f2a-9ec2-4ae524dbc1ab\n    │ [  217.190938] winvm CRON[3511]: pam_unix(cron:session): session opened for user adom(uid=1001) by adom(uid=0)\n    │ [  217.191421] winvm CRON[3512]: (adom) CMD (python3 /home/adom/.local/share/adom/codex/runtime/manage.py ensure-watch >/dev/null 2>&1 # adom/codex runtime)\n    │ [  217.222275] winvm CRON[3511]: pam_unix(cron:session): session closed for user adom\n    │ [  230.964217] winvm bash[96]: [2026-10-16T15:26:14.845Z] ← 25890837-f10b-4eb6-af08-8d5af98ee347 type=pong id=6ff96168-264d-4e78-afcd-36b2b08036fa\n    │ [  245.964240] winvm bash[96]: [2026-10-16T15:26:29.845Z] ← 25890837-f10b-4eb6-af08-8d5af98ee347 type=pong id=dd3651ed-25bb-4969-a803-93f7072dc632\n    │ [  260.964284] winvm bash[96]: [2026-10-16T15:26:44.845Z] ← 25890837-f10b-4eb6-af08-8d5af98ee347 type=pong id=b8b9cf10-36b4-4edf-9c9e-a16b47d0909d\n    │ [  275.963986] winvm bash[96]: [2026-10-16T15:26:59.845Z] ← 25890837-f10b-4eb6-af08-8d5af98ee347 type=pong id=ae4a426b-6e8e-4ad1-9798-43dc157b0975\n    │ [  277.225031] winvm CRON[4259]: pam_unix(cron:session): session opened for user adom(uid=1001) by adom(uid=0)\n    │ [  277.225514] winvm CRON[4260]: (adom) CMD (python3 /home/adom/.local/share/adom/codex/runtime/manage.py ensure-watch >/dev/null 2>&1 # adom/codex runtime)\n    │ [  277.258955] winvm CRON[4259]: pam_unix(cron:session): session closed for user adom\n    │ [  290.963723] winvm bash[96]: [2026-10-16T15:27:14.845Z] ← 25890837-f10b-4eb6-af08-8d5af98ee347 type=pong id=b7427082-6b91-4338-8919-ab89239f6fd6\n    │ [  305.963348] winvm bash[96]: [2026-10-16T15:27:29.845Z] ← 25890837-f10b-4eb6-af08-8d5af98ee347 type=pong id=38254702-7a33-467c-b73e-2b0cea44fc5e\n    │ [  320.965308] winvm bash[96]: [2026-10-16T15:27:44.847Z] ← 25890837-f10b-4eb6-af08-8d5af98ee347 type=pong id=974edba6-bdc5-410f-bac6-6a01ad260d12\n    │ [  335.963727] winvm bash[96]: [2026-10-16T15:27:59.845Z] ← 25890837-f10b-4eb6-af08-8d5af98ee347 type=pong id=5f1dad64-1456-4c8f-8dec-a8f7719091cb\n    │ [  337.261838] winvm CRON[5008]: pam_unix(cron:session): session opened for user adom(uid=1001) by adom(uid=0)\n    │ [  337.262309] winvm CRON[5009]: (adom) CMD (python3 /home/adom/.local/share/adom/codex/runtime/manage.py ensure-watch >/dev/null 2>&1 # adom/codex runtime)\n    │ [  337.294407] winvm CRON[5008]: pam_unix(cron:session): session closed for user adom\n    │ [  350.963483] winvm bash[96]: [2026-10-16T15:28:14.845Z] ← 25890837-f10b-4eb6-af08-8d5af98ee347 type=pong id=626ad88f-27ca-421b-bf08-7ff5302709c7\n    │ [  365.963952] winvm bash[96]: [2026-10-16T15:28:29.845Z] ← 25890837-f10b-4eb6-af08-8d5af98ee347 type=pong id=46afca7d-79ee-47b9-8ff9-e2403227e12b\n    │ [  380.963746] winvm bash[96]: [2026-10-16T15:28:44.845Z] ← 25890837-f10b-4eb6-af08-8d5af98ee347 type=pong id=b72b5736-924e-44d0-8ffc-f975b66caeb7\n    │ [  395.963603] winvm bash[96]: [2026-10-16T15:28:59.845Z] ← 25890837-f10b-4eb6-af08-8d5af98ee347 type=pong id=59cf84df-8af6-4a83-b02d-016d423371cb\n    │ [  397.296780] winvm CRON[5714]: pam_unix(cron:session): session opened for user adom(uid=1001) by adom(uid=0)\n    │ [  397.297377] winvm CRON[5715]: (adom) CMD (python3 /home/adom/.local/share/adom/codex/runtime/manage.py ensure-watch >/dev/null 2>&1 # adom/codex runtime)\n    │ [  397.328859] winvm CRON[5714]: pam_unix(cron:session): session closed for user adom\n    │ [  410.963571] winvm bash[96]: [2026-10-16T15:29:14.845Z] ← 25890837-f10b-4eb6-af08-8d5af98ee347 type=pong id=3eb121c8-851c-4ca5-8b8f-f6506f574633\n    │ [  425.963663] winvm bash[96]: [2026-10-16T15:29:29.845Z] ← 25890837-f10b-4eb6-af08-8d5af98ee347 type=pong id=b6a4a540-f0cf-423d-b5ec-cfc0337c02e2\n    │ [  438.613308] winvm code-server[98]: [15:29:42] [127.0.0.1][d939ee05][ManagementConnection] The client has disconnected gracefully, so the connection will be disposed.\n    │ [  440.657281] winvm systemd[1]: Stopping code-server.service - Adom code-server (Hydrogen Desktop workspace editor)...\n    │ [  440.803596] winvm systemd[1]: code-server.service: Deactivated successfully.\n    │ [  440.803916] winvm systemd[1]: Stopped code-server.service - Adom code-server (Hydrogen Desktop workspace editor).\n    │ [  440.804175] winvm systemd[1]: code-server.service: Consumed 46.115s CPU time, 1.3G memory peak, 0B memory swap peak.\n    │ [  440.963815] winvm bash[96]: [2026-10-16T15:29:44.845Z] ← 25890837-f10b-4eb6-af08-8d5af98ee347 type=pong id=08e88ffe-49c8-491c-9765-8956d4464803\n    │ [  455.964096] winvm bash[96]: [2026-10-16T15:29:59.845Z] ← 25890837-f10b-4eb6-af08-8d5af98ee347 type=pong id=ed86177b-8cc7-4697-8102-07a0c451fea9\n    │ [  457.332441] winvm CRON[6214]: pam_unix(cron:session): session opened for user adom(uid=1001) by adom(uid=0)\n    │ [  457.332962] winvm CRON[6213]: pam_unix(cron:session): session opened for user adom(uid=1001) by adom(uid=0)\n    │ [  457.333125] winvm CRON[6215]: (adom) CMD (python3 /home/adom/.local/share/adom/codex/runtime/manage.py ensure-watch >/dev/null 2>&1 # adom/codex runtime)\n    │ [  457.333264] winvm CRON[6216]: (adom) CMD (bash /home/adom/.adom/hooks/adom-core-update.sh >/dev/null 2>&1)\n    │ [  457.366530] winvm CRON[6213]: pam_unix(cron:session): session closed for user adom\n    │ [  457.591300] winvm CRON[6214]: pam_unix(cron:session): session closed for user adom\n    │ [  461.329496] winvm crontab[6352]: (adom) LIST (adom)\n    │ [  461.409989] winvm crontab[6369]: (adom) LIST (adom)\n    │ [  461.421071] winvm crontab[6370]: (adom) REPLACE (adom)\n    │ [  461.422680] winvm crontab[6374]: (adom) LIST (adom)\n    │ [  461.782419] winvm sudo[6392]:     adom : PWD=/home/adom/project/adom_modules/adom/adom-cli ; USER=root ; COMMAND=/usr/bin/install -m 0755 /home/adom/project/adom_modules/adom/adom-cli/adom-cli /usr/local/bin/adom-cli\n    │ [  461.782687] winvm sudo[6392]: pam_unix(sudo:session): session opened for user root(uid=0) by adom(uid=1001)\n    │ [  461.791377] winvm sudo[6392]: pam_unix(sudo:session): session closed for user root\n    │ [  463.702725] winvm sudo[6472]:     adom : PWD=/home/adom/project/adom_modules/adom/adom-vscode ; USER=root ; COMMAND=/usr/bin/cp /tmp/adom-vscode-workbench.html /usr/lib/code-server/lib/vscode/out/vs/code/browser/workbench/workbench.html\n    │ [  463.703037] winvm sudo[6472]: pam_unix(sudo:session): session opened for user root(uid=0) by adom(uid=1001)\n    │ [  463.705106] winvm sudo[6472]: pam_unix(sudo:session): session closed for user root\n    │ [  470.964391] winvm bash[96]: [2026-10-16T15:30:14.846Z] ← 25890837-f10b-4eb6-af08-8d5af98ee347 type=pong id=1c9b9b9a-4a2f-4e2b-a05a-0c8479d7b640\n    │ [  485.964313] winvm bash[96]: [2026-10-16T15:30:29.845Z] ← 25890837-f10b-4eb6-af08-8d5af98ee347 type=pong id=475e4be7-297c-492b-a658-ab8de545ab88\n    │ [  500.963846] winvm bash[96]: [2026-10-16T15:30:44.845Z] ← 25890837-f10b-4eb6-af08-8d5af98ee347 type=pong id=d3ee68dd-d5ea-4857-b274-2f0c5819584c\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
  }
}