zlh-grind/Codex/Portal/CURRENT_STATE.md

46 lines
1.8 KiB
Markdown

# Portal — Current State
Verified against local Portal repo `jester/zpack-portal` commit `69a4c3c` on 2026-04-16, plus local working-tree updates for code-server controls.
This file records what is implemented now.
## Readiness / operation UI
- Portal consumes API-normalized state.
- Portal understands:
- `ready`
- `operationInProgress`
- `operationType`
- `maintenance`
- `operationStartedAt`
- `operationMessage`
- targeted `409` and `503` UX messaging exists for operation conflicts and not-ready states.
## Backup UI
- game backup UI exists for:
- list
- create
- restore
- delete
- Portal uses API routes, not direct agent calls.
- backup metadata is normalized and displayed when the API includes metadata fields.
## Console / action gating
- console command transport uses POST JSON through API.
- previous blanket `ready === false` gating bug for game actions was fixed.
- Start is not blocked merely because a stopped server is not ready.
- backup actions are not blocked purely by `ready === false`; backend validity decides.
## Billing / auth / onboarding
- billing UI alignment exists with the newer billing state model.
- forgot/reset password flow exists.
- first-login onboarding flow exists.
## Hosted IDE
- console and server-list "Open IDE" actions request `/api/dev/{serverId}/ide-token`.
- Portal opens the hosted URL returned by the API, falling back to the configured API base for relative URLs.
- DEV server console and server-list rows expose an `IDE` menu for code-server `start`, `restart`, and `stop` actions.
- code-server service actions call `/api/dev/{serverId}/codeserver/start`, `/api/dev/{serverId}/codeserver/restart`, and `/api/dev/{serverId}/codeserver/stop`.
## Dashboard / IA
- spotlight server card/dashboard refresh landed.