# 2026-03-15 – Dev routing + status exposure ## Summary Work focused on the dev-container path for code-server and the frontend/API state gap. --- ## Completed ### API / routing - Added dev-only routing hook during provisioning - Reused existing Cloudflare + Technitium record creation for dev containers - Added Traefik dynamic file creation for dev containers - Kept existing game publish flow untouched - Remote Traefik writes now use SSH service account model - Added `zlh` SSH user path for proxy writes ### Agent / runtime validation - Confirmed code-server artifact was the correct compiled release artifact - Confirmed code-server installs correctly inside dev containers - Confirmed code-server process launches successfully - Confirmed code-server binds to `0.0.0.0:6000` - Confirmed agent remains on `:18888` ### API / frontend status - Added API endpoint(s) to expose polled agent status back to frontend - Frontend host/console status now updates correctly from API state - Console availability issue was frontend/API state exposure, not PTY transport --- ## Important confirmations ### Code-server process Observed process: ```bash /opt/zlh/services/code-server/lib/node /opt/zlh/services/code-server \ --bind-addr 0.0.0.0:6000 \ --auth password \ /home/dev/workspace ``` This confirmed earlier confusion — ss showed the process as `node` because code-server runs on Node internally. The process is code-server, not a conflicting Node runtime process. ### Proxy/service path Confirmed working pieces: - Traefik loads dev dynamic file - Traefik router and service are created - backend target resolves to container IP on `:6000` - API can write remote Traefik config via SSH automation - internal/private-network checks from proxy side pass as expected --- ## Current blocker External browser access to: ``` https://dev-6062.zerolaghub.dev ``` is still not complete. State at end of session: - Traefik route exists - backend service exists - code-server runs inside container - frontend/API status path is fixed - browser still fails externally with connection-closed / blocked-origin behavior This remains an explicit open thread and should not be treated as solved. --- ## Notes - Hostname format must remain consistent (`dev-`) - Game publish flow must remain untouched - Dev routing is additive only - Proxy SSH must remain service-account based (`zlh`)