Repository navigation
macOS port (T-028) + PL-97/99/100/101 - #6
Merged
Merged
Conversation
- devtools.rs: macOS /eval returns over a devtools-only Tauri IPC channel (__devtools_eval_result) instead of eval_with_callback's completion value, which WKWebView delivers empty here; GET /eval-ready for the harness probe. Unblocks scripts/headless-macos.sh and the smoke suite on macOS. - secrets.rs: locked keychain (exit 128 with empty stderr) maps to the friendly message; new #[ignore] macos_keychain_roundtrip test (thrown-away keychain via TP_TEST_KEYCHAIN), which the PL-75 workflow ran green. - .mcp.json + WORKLOG.md: track testpattern work in the planned tracker (project testpattern-app, team PL); T-028 updated — smoke 29/29 on macOS, keychain round-trip and .dmg build verified.
The macOS 'headless' session opens a visible interactive window (unlike the Linux nested compositor), so default start stays muted (TP_DEV_MUTE=1, TP_DEV_AO=null) for automated runs, and start --interactive / restart-app --interactive drops both for by-hand checks.
…ied; PL-95..PL-100 tracked in planned
- media_macos/…/MpvOpenGLView.swift: the GL video surface now refuses first responder (acceptsFirstResponder = false) and forwards key/mouse up the responder chain, so a click on the video no longer steals Space/K/arrows from the webview's hotkeys. - Player.tsx: keydown 'volume' and 'seek' steps read back the applied value and show a transient OSD chip (Volume N / Muted / » +30 s / « −10 s) — arrow keys used to only poke the seek bar with no feedback.
…PU check - PL-101: Layout-level Space/K/M while playback runs off-page — Space/K routes to /player (input/focus-guarded), M mutes. Fixes "Space does nothing on Home while something plays" for script/bridge/autoplay starts. - PL-99: player chrome has a real Subtitles on/off row (S key) that drives the persisted player.subsEnabled setting, plus picking a track while subs are hidden re-enables them; the store now observes mpv sub-visibility so the menu and Settings stay in sync. - PL-100: fresh profiles default player.subsEnabled=true so mpv's slang auto-pick actually shows (was: track auto-selected, sub-visibility=no); one-time "Subtitles are off — press S" hint when a track got picked with subs off, remembered via ui.subHintSeen. - PL-97: smoke.sh GPU check is cross-platform — Linux still VP9+vaapi, on macOS it replays the live recording and expects videotoolbox; when the GPU pipeline can't engage in the session (no /dev/dri, no window-server) the check skips instead of failing.
# Conflicts: # WORKLOG.md
df49b9cd
added a commit
that referenced
this pull request
Oct 5, 2026
Conflicts resolved by keeping this branch's reviewed versions (the deep-review fix sweep's settings/player/Layout/Player/smoke.sh changes) over main's identical-feature baseline from PR #6; no intent lost — both sides implemented the same PL-97/99/100/101 work, this side adds the review fixes on top. Also clippy: needless-borrow in devtools.rs eval_with_callback call surfaced by CI's scripts/check.sh. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
What
First-class macOS port of testpattern, plus the first round of app-fitting fixes it unblocked from the planned tracker (PL-97/99/100/101 — all marked Done there).
macOS port (T-028)
transparent/macOSPrivateApi; video underneath via a raw NSOpenGLView (CGL); FFmpeg VideoToolbox; mpv OpenGL render API; passwords in the macOS keychain (security(1)-backed, friendly message when locked — PL-98)scripts/build-media.shis now dual-platform (-Dgl-cocoa=enabled -Dcoreaudio=enabled -Davfoundation=enabledon Darwin; mpv's archive re-linked withlibtool -staticbecause mpv's Swift step already shipsswift.oas an archive)cfg(target_os = "macos"), and the Fedora CI still covers itscripts/headless-macos.shdrives the app in an isolated profile (muted by default,--interactivefor a visible/audible window); headlessdevtools /evalreturns results over a devtools-only IPC channelscripts/smoke.sh29/29 in the headless session (GPU check previously Linux-only, now covered by PL-97);.dmgbuilt and opened on this machine (PL-76); the T-047 replay passed (PL-77)Follow-ups from the planned tracker
/player); off-page Space/K routes to/playerandMstill mutes; input-focused controls keep Space for themselvessub-visibilityso player and Settings can't drift apartplayer.subsEnabled=trueso mpv's language auto-pick actually shows; one-time "Subs available — press S" hint when a track got auto-selected while subs were off, remembered viaui.subHintSeenNotes for review
build-media.shflag changes — same set as the (merged) PR macOS port (T-028) + TMDB refresh/search (T-055) + HDR in track probes (T-056) #4 forward port~/.claude/projects/-Users-smolesen-Dev-testpattern-app/memory/(tracker API shape, working rules) — not part of the repoRefs: PR #4 (merged — the original port CI); planned: PL-75..PL-101.