Skip to content

feat(os): add hyperdeck-os crate with the VLC HTTP controller#19

Merged
statik merged 1 commit into
claude/tauri-migration-self-update-74d57gfrom
claude/step-7-os-vlchttp
Jun 21, 2026
Merged

feat(os): add hyperdeck-os crate with the VLC HTTP controller#19
statik merged 1 commit into
claude/tauri-migration-self-update-74d57gfrom
claude/step-7-os-vlchttp

Conversation

@statik

@statik statik commented Jun 21, 2026

Copy link
Copy Markdown
Member

Step 7 of the Tauri/Rust migration

Introduces the hyperdeck-os crate — the home for OS- and player-specific driven adapters (injection, window enumeration, UI Automation) that need external/platform crates and so live outside the pure core. It lands with its first, fully cross-platform adapter.

What's here

  • vlchttp::VlcController (port of internal/adapter/driven/vlchttp): a PlayerController for api.type = "vlc_http" driving VLC's HTTP requests interface (pl_play/pl_stop/pl_next/pl_previous) with empty-user Basic auth and a 4s timeout.
  • Uses ureq with default-features = false (plain HTTP only — VLC's control interface is localhost http — so no TLS/system-crypto deps), keeping it compile-clean on the Linux/macOS/Windows CI matrix.

Tests

All Go vlchttp tests ported against an in-process TCP stub server: mapped commands + Basic auth, unmapped-key no-op (server not contacted), 401/500 → error, empty-base-url default without panic. 5 new tests; 75 workspace totalfmt/clippy -D warnings/tests green locally.

Next in this crate

Keystroke injection, window enumeration, and Windows UI Automation, added behind cfg(target_os = ...) with platform-gated deps (validated per-platform by the CI matrix; behavior validated on hardware via #10/#11).

Part of: #10, #11, #12.


Generated by Claude Code

Introduce the hyperdeck-os crate that will host the OS- and player-specific
driven adapters (injection, window enumeration, UIA) which need external or
platform crates and so live outside the pure core.

First adapter: vlchttp::VlcController (port of internal/adapter/driven/
vlchttp), a PlayerController for api.type "vlc_http" that drives VLC's HTTP
requests interface (pl_play/pl_stop/pl_next/pl_previous) with empty-user
Basic auth and a 4s timeout. Uses ureq (default-features off: plain HTTP,
no TLS/system deps) so it compiles cleanly on the Linux/macOS/Windows CI
matrix.

Ported all Go vlchttp tests against an in-process TCP stub server (mapped
commands + Basic auth, unmapped-key no-op, 401/500 errors, empty base url).
5 tests green; workspace 75 total.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R8X1NxFiaLGJzwUD5wgRTv
@statik
statik merged commit f7be2bd into claude/tauri-migration-self-update-74d57g Jun 21, 2026
5 checks passed
@statik
statik deleted the claude/step-7-os-vlchttp branch June 21, 2026 14:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants