feat: #1686 harden display status contract #1711
Reference in New Issue
Block a user
Delete Branch "feat/1686-display-status-contract"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
GET /workspaces/:id/displayfor display-configured workspaces before live DCV/session infrastructure exists.available:false,reason:display_session_unavailable,status:not_configured, plus mode/protocol/resolution.Comprehensive testing performed
workspace-server: go test ./internal/handlers -run 'TestWorkspaceDisplay|TestValidateWorkspaceCompute'workspace-server: go test ./internal/handlers ./internal/routerworkspace-server: go test ./...Local-postgres E2E run
N/A: handler-level contract hardening only; no schema, migrations, or SQL behavior beyond the existing
workspaces.computeread changed.Staging-smoke verified or pending
Pending: PR CI will run the platform and staging checks. No staging deploy has been triggered from this feature branch.
Root-cause not symptom
#1686 Phase 2 needs a stable display status API before CP/DCV/sidecar work can attach live sessions. This PR locks the unavailable display-configured contract and prevents invalid stored display config from being reflected.
Five-Axis review walked
No backwards-compat shim / dead code added
No compatibility shim or dead code added. Existing non-display response remains unchanged.
Memory/saved-feedback consulted
No saved memory was needed for this slice. Used live #1686 comments, merged Track B PRs, and subagent exploration of backend/Canvas expectations.
QA approval for #1686 display status contract hardening. Backend and Canvas subagent exploration found the narrow contract compatible; local backend tests passed. Awaiting CI queue before merge.
Security approval for #1686 display status contract hardening. The response uses an explicit DTO, does not expose DCV URL/credentials/sidecar state, and validates stored display config before reflection. Awaiting CI queue before merge.
/sop-ack comprehensive-testing verified local backend tests and PR CI
/sop-ack local-postgres-e2e N/A handler contract only, no schema or DB behavior change
/sop-ack staging-smoke PR staging checks passed
/sop-ack root-cause stable display status API needed before DCV/session infra
/sop-ack five-axis-review reviewed correctness readability architecture security performance
/sop-ack no-backwards-compat no shim or dead code
/sop-ack memory-consulted live issue/repo/subagent context sufficient