Add server compatibility plan - #336
Merged
Merged
Conversation
Take stock of the RFB protocol surface currently implemented, map open issues to concrete compatibility gaps (security types, encodings, pixel formats, silent hangs), and lay out a phased plan: CI server matrix and transcript fixtures first, then robust error reporting, then Tight/ VeNCrypt/pixel-format work, then modern protocol features. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01STWkReabCK9sJW2qQ45brM
Add a three-tier access model: a digest-pinned Docker Compose fleet for Linux servers (identical for local dev and CI), nightly Windows/macOS hosted runners for UltraVNC and Apple Screen Sharing, and a community-sourced fingerprint pipeline for servers we cannot run in CI, with a paved contribution road (scrubbing recorder, manifest, issue template, self-verifying replay CI, compatibility-table credit). Also defines gold-file manifests and regeneration rules, the pinned-on-PR / latest-on-schedule drift policy, and new supply-chain risks. Spike results section pending two in-flight viability spikes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01STWkReabCK9sJW2qQ45brM
State that live server tests always take precedence over recorded transcripts: recordings are a regression floor and last resort, every server sits at the most-live tier it can occupy, tier assignment is revisited as promotion paths appear (e.g. RealVNC via QEMU-emulated Raspberry Pi OS), and live runs are the source of truth for the compatibility matrix with fixtures refreshed from them. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01STWkReabCK9sJW2qQ45brM
Scheduled OS-runner jobs are wasteful on a quiet repository. Windows and macOS jobs now trigger only on pushes/PRs path-filtered to code that can affect server compatibility, plus manual dispatch; document why Windows containers are not an alternative (GUI-less, no desktop session to serve, Windows-host-only, and macOS has no containers). The weekly latest-drift job is scoped to Tier 1 containers only. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01STWkReabCK9sJW2qQ45brM
The Docker Compose fleet spike on claude/spike-server-fleet is green on GitHub Actions (run 31729730724): three in-repo Dockerfile services, healthcheck-gated startup, parameterized functional tests, screenshot artifacts, ~70s total. Local proof used the same test module against natively started servers. Notable finding: api.connect() requires api.shutdown() or the reactor thread hangs the process, reinforcing the Phase 1 robustness theme. Tier 2 spike still pending. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01STWkReabCK9sJW2qQ45brM
UltraVNC on windows-latest works end-to-end (choco install, service mode, classic ini password obfuscation, real non-black captures). macOS Screen Sharing works at the protocol level via ARD/DH auth with a dedicated user, but the runner framebuffer is black, so macOS jobs cover protocol/auth/input only until the display question is resolved. Both graduate into Phase 0 under the change-triggered policy; legacy VNC password on modern macOS is confirmed dead, and the interactive username prompt crash on TTY-less runners joins the Phase 1 robustness items. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01STWkReabCK9sJW2qQ45brM
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.
Adds
docs/server-compatibility-plan.md: a phased plan to close the gap between vncdotool and the many VNC server implementations in the wild.What's in it
rfb.py)Review notes
The doc is the deliverable here; #334/#335 carry the working spike code and can be reviewed independently. Sphinx only builds
.rst, so the markdown file doesn't affect the docs build.Generated by Claude Code