Closed general

Drop the desktop_record_* / desktop_recorder_* verbs: whole-desktop recording moves to ab core (adom-bridge#143)

John Lauer · 2mo ago ·closed by John Lauer

Counterpart of adom/adom-bridge#143 (John, 2026-09-05: pup owning desktop_* verbs "is not how its supposed to work").

pup 2.0.396 claims the verb prefixes desktop_recorder_ and desktop_record_ in src/bridge.json and implements the whole-desktop recorder in src/server.js (Chrome getDisplayMedia HUD, .webm). The desktop_ namespace is ab core's; whole-desktop recording is moving there natively (WGC on a monitor + WASAPI loopback audio, MP4), same verb names and args.

Ask for pup:

  1. Drop the desktop_recorder_ and desktop_record_ prefixes and those verbs from bridge.json once ab core serves them (or immediately if ab enforces core precedence). Keep pup_record_* / browser_record_* for TAB recording; that is pup's feature.
  2. Until then, make the verbs fail fast when the bridge cannot spawn instead of leaving callers with Request timed out (measured on arav-rog tonight, adom-bridge#142: npm install fails, 496 spawn attempts in backoff, every desktop_record_* call times out).
  3. Update pup's own skills so they do not present desktop recording as pup's.

4 Replies

John Lauer · 2mo ago

Superseded by #94 after John's direction later today: BOTH recorders stay (Chrome's getDisplayMedia path offers the OS picker consent, system+mic audio mixing, VP9/WebM, tab audio and cross-platform capture that a native Rust recorder does not), so do NOT drop the recorder - rename it. Canonical names become pup_screen_record_start/stop/status/list + pup_recorder_open/close (add as aliases now, keep the old names working); the desktop_recorder_/desktop_record_ prefix claims in bridge.json stay only until ab-core ships native desktop_record_* (ab 2.1.31 already gives ab-core precedence on any verb it serves natively). Details and the hint contract in #94.

John Lauer · 2mo ago

Done in pup 2.0.397 (insiders) for the two items pup can do today; the third is gated on ab.

  1. Drop the prefixes: NOT yet. adom-bridge#143 sets the transition rule as ab-core precedence on any conflict once native lands, so pup keeps answering desktop_recorder_* / desktop_record_* until ab-core serves them, then a one-line manifest change removes them (ab-core precedence means nothing breaks in between). Ready to ship the moment ab says native is live.
  2. Fail fast while pup cannot spawn: that is ab-core's path (pup is not running), and it is now handled there: on arav-rog today (ab 2.1.31) the first routed verb answered bridge_installing_deps (stillRunning, installElapsedSec) instead of timing out, and pup was up 8 s later.
  3. Skills and hints: pup_describe and the verb catalog now label every desktop_record* entry "ab-core capability served by pup on its behalf until adom-bridge#143; moving out of pup"; the pup-screenshots-recording, pup-browsers-and-chrome skills and the README say the same and point at the adom-bridge-recording skill. Nothing presents desktop recording as pup's feature any more.

Also recorded in docs/PLAN-rust-port.md (the Rust port keeps only tab recording; the desktop recorder is ab's ask 5). Leaving this open until the prefixes are actually dropped.

John Lauer · 2mo ago

ab 2.1.36 (insiders) serves the whole-desktop recorder natively: desktop_record_start records one monitor (Windows Graphics Capture) plus the system audio mix (WASAPI loopback -> AAC) into an H.264 MP4 with no browser, shows its own persistent recording caption for the take, and reports the encoder Media Foundation picked (NVENC on the NVIDIA boxes). desktop_record_stop / status / list are native too; desktop_recorder_open / close are retired (errorCode verb_retired).

Direction from John today: NO aliases on the pup side - "we have no users other than the adom team right now, so it's a good time to make this switch". So the ask for pup's next build is the clean cut, not the transition: drop the desktop_recorder_ and desktop_record_ prefix claims AND the six desktop_* alias names from bridge.json / pup_describe / server.js, leaving pup_screen_record_start/stop/status/list + pup_recorder_open/close as the only spellings of the Chrome recorder. ab 2.1.36 already refuses those two prefixes at rescan (they are in ab-core's owned set), so a pup that still claims them just logs a refusal warning - nothing breaks, but the claim is dead weight now.

John Lauer · 2mo ago

Done in pup 2.0.400 (insiders): the desktop_recorder_ and desktop_record_ prefixes and the six alias verbs are gone from bridge.json and the dispatcher. pup's Chrome screen-share recorder answers only under pup_screen_record_start/stop/status/list + pup_recorder_open/close, and its hint now points at ab-core's native desktop_record_* (ab 2.1.36: WGC + system audio to MP4) for the no-browser case. Item 2 (fail fast while pup cannot spawn) was ab-core's bridge_installing_deps (2.1.30), verified on arav-rog. Item 3 (skills) landed in 2.0.397. The Rust port carries only pup_screen_record_* too.

John Lauer closed this · 2mo ago

Log in to reply.