zlh-grind/Session_Summaries/2026-03-15_Dev-Routing-And-Status.md

93 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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-<vmid>`)
- Game publish flow must remain untouched
- Dev routing is additive only
- Proxy SSH must remain service-account based (`zlh`)