## sibson/vncdotool — v1.3.0…v1.4.0

_56 commits._

### Features
- **Add the in-process API lifecycle suite (Phase 5) (#360)** (00a4dc8)
- **Strip auth at capture time, and add vncdo-replay (Phase 4) (#352)** (f71e170)
- **Add vnclog --capture: scrubbed raw wire captures for unhosted servers (Phase 3) (#351)** (132b048)
- **Run fleet smoke tests through the vncdo CLI; add event sinks; retire pexpect (#348)** (9d4d360)
- **Add the server testing framework design (Phase 0) (#347)** (ab8217d)
- **Add Docker Compose VNC test servers for compatibility testing (#334)** (d3cc4f0)
- **Add issue-triage skill, eval scaffolding, and CLAUDE.md (#333)** (474ff7a)
- **Add server compatibility plan (#336)** (55d2694)
- **Add CI job to run LibVNCServer integration tests (#330)** (3282040)
- **Add post-release version bump to make release** (5434bc7)
- **Bump version to 1.3.1.dev0 and add release target to Makefile** (77fdd25)

### Fixes
- **fix: dispatch api.connect() setup onto the reactor thread (#192) (#379)** (afbc4a5)
- **Fix black captures from servers announcing DesktopSize before pixel data (#90) (#343)** (82eefb9)
- **fix(servers): survive docker compose restart on TigerVNC (#367)** (4a3c8bb)
- **CLAUDE.md: comments shouldn't reference the current task, fix, or callers (#365)** (db9c5c2)
- **fix(servers): supervise x11vnc's xev sink so a lost startup race self-heals (#353)** (bbba39b)
- **Fix vnclog startup message output to stderr (#329)** (832e671)
- **Fix ThreadedVNCClientProxy.disconnect() to block until disconnected (#316)** (90cde5f)
- **Fix captureScreen hang when server responds with only pseudo-encodings (#315)** (8bd7d58)

### Backend
- **Release 1.4.0** (c35707c)
- **Close #272: cover vnclog against a VNC-auth upstream (already fixed) (#373)** (6c60cc1)
- **Sweep AI-era comments in vncdotool/ and the tests (#376)** (822e6ce)
- **Sweep AI-era comments against the delete test (#375)** (c63672b)
- **Measure and report coverage for both test tiers, gating nothing (#366)** (fee844c)
- **Stop the readiness probe blacklisting itself, and gate the fleet on wait_for_servers (#356)** (7f4ac06)
- **functional tests: fail loudly instead of skipping when a server is down (#361)** (d730d2e)
- **Make the comment rule's test explicit: delete, don't shorten (#358)** (c79275a)
- **Point the protocol references at documents that still exist (#362)** (eae9fc6)
- **Pin two decoder bugs as expected failures (#350)** (c0a64c4)
- **Make `make test-func` use the venv it builds, and say so when it can't (#357)** (c4c7600)
- **Ignore .DS_Store, .tool-versions, and .vscode/ (#349)** (7583f9a)
- **Name the compose project vncdo-test-servers (#346)** (a54cdd4)
- **Report vncdo failures accurately, with exit codes grouped by cause (#345)** (4f4ad09)
- **Graduate server compatibility spikes into CI (Phase 0) (#339)** (68820ed)
- **Drop a stray entrypoint copy and an inert suppression comment (#338)** (54b6999)
- **Spike UltraVNC and Apple Screen Sharing on hosted runners (#337)** (893984a)
- **Move constants into its own module (#331)** (b7b6357)
- **Update CI workflow to exclude Python 3.9** (dc87cf4)
- **Remove unused os import in rfb.py** (b19ad83)
- **make release: stamp CHANGELOG date and commit before tagging** (eaecd4c)

### Tests
- **test(functional): name console scripts by path, not PATH (#378)** (6c8c14a)
- **test: name each docker-fleet server as a constant, drop the by-name scan (#368)** (39f6fc8)
- **test: uppercase VNC acronym in functional test class names (#363)** (6c5ab13)
- **test: reproduce #90 — capture completes black on desktop-size-only update (#342)** (9daa4fe)

### Docs
- **docs: move internal design docs out of the published Sphinx site (#374)** (2379829)
- **docs: resolve #341, record what carried forward and what didn't (#369)** (1aee1fc)

### Chore
- **build: replace sed -i'' with sd in release target** (56d52a6)
- **build: drop servers.mk PYTHON, run targets under $(VENV)/python (#381)** (b3b72a2)
- **ci: publish coverage to Codecov, one flag per tier (#370)** (ef43049)
- **ci: allow CI to be run manually (#364)** (7c05920)
- **ci(os-servers): install vncdotool editable so the CLI under test is the checkout (#359)** (0e0e2af)
- **build(deps): update cryptography requirement from >=41.0.7 to >=49.0.0 (#325)** (6a9d07d)
- **build(deps): update twisted requirement from >=25.5.0 to >=26.4.0 (#324)** (f86b0be)
- **build(deps): update pillow requirement from >=10.0.1 to >=12.2.0 (#318)** (9999a15)
- **build(deps-dev): update pexpect requirement from >=4.8.0 to >=4.9.0 (#317)** (b9c2473)
- **build(deps): update twisted requirement from >=22.10.0 to >=25.5.0 (#320)** (a346452)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/sibson/vncdotool?utm_source=github-action)._