feat(track-a): persistent KasmVNC desktop and controller handoff - #541
Draft
blakinio wants to merge 54 commits into
Draft
feat(track-a): persistent KasmVNC desktop and controller handoff#541blakinio wants to merge 54 commits into
blakinio wants to merge 54 commits into
Conversation
This was referenced Aug 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Objective
Replace the unstable/per-agent noVNC presentation with a real persistent KasmVNC desktop on Synology while preserving the already-validated same-task controller handoff that removes historical
session_idreuse.Target architecture
KasmVNC is the desktop provider. The new path does not use
x11vnc -> websockify -> noVNC.Scheduler diagnosis
The earlier queued generation used
runs-on: self-hosted. Commit65c541ca76bb5241d38ef976cc4ef3df8cd2b47echanged the selector to:The successor physical job was then accepted by the real
synology-otclient-01and passed the workflow's exactRUNNER_NAMEadmission check. This functionally proves the intended runner listener and repository access are working. Older generations are cancelled by the workflow concurrency group when a synchronized successor is created.Current exact head
7ef011b0a0c60752b4b97e9a9565855cbda023e6The contract and ADR now match the owner-configured DSM rule exactly:
The deploy workflow verifies the real user-facing boundary rather than treating an unauthenticated backend fetch as sufficient:
127.0.0.1:6901;restart=unless-stoppedand loopback-only port binding;DISPLAY=:1, X11 socket and KasmVNCXvncprocess;https://synology:6902/content matches the backend application;/websockifyreturns a valid WebSocket upgrade both directly and through DSM;Current physical generation:
Track A KasmVNC deployrun32165034052, job95802882538. Earlier synchronized generations were cancelled during image pull before the deploy step. Physical E2E is not claimed PASS until this current exact-head job passes the backend + DSM/WebSocket gates.Controller continuity / raw-XRes
On the current exact head, hosted controller-handoff validation and its fresh authority/isolation audit are PASS. The deterministic job proves same-task handoff, replacement-session resume and raw-XRes canonical reuse contracts.
Historical
session_idis not used as desktop/runtime identity. Canonical reuse/rebind/Gate B remains fail-closed and uses the raw-XRes probe rather thanxdotool --pid.PR #528 isolation
PR #528 remains an active Track A RUNTIME task. It currently owns the native-login/exact-SHA runtime lane and retains the legacy
DISPLAY=:99/http://192.168.1.2:6083/observer. #541 therefore deploys only the isolated Kasm desktop and does not start, login, attach to, or mutate an official Tibia client until that ownership is released or explicitly reconciled.Closeout status
PR remains Draft. Before readiness/merge it still requires: