Studio panes: blocked follow-ups from #28 (run-aware builds, audio tweak) #33

Open
opened 2026-07-27 16:38:04 -04:00 by cmoriarty · 0 comments
Owner

The two items left over from #28, split out because both are blocked on work that lives elsewhere. #28's other four follow-ups shipped (b9b9332, 5009e67) and it is closed.

1. Play pane: run-aware build selection — blocked on #11

Today the pane points at the picked game's mirror root, $FILES_URL/games/{game}/, which the drain refreshes after every commit batch. The intent is for it to follow the newest build of the ACTIVE run instead of just the game.

That concept does not exist yet. The drain mirrors per game, and nothing emits a per-run build — #11 (E2E walking skeleton: brief → finished game) is the ticket that would make runs produce real builds. Implementing this before then means inventing a backend shape and guessing at it.

Do this when #11 lands, and expect to need:

  • a per-run build location (or a manifest mapping run → build) that the mirror writes
  • the pane resolving the active run from StatusContext.threads (it already has the busy thread and its game) to that location
  • a fallback to today's game mirror when the run has no build yet, so the pane never goes blank mid-run
  • the URL box staying as the manual override it is now

2. Audio tweak from the files viewer — blocked on the audio seat

The files pane has no tweak box on audio assets, and says so where the box would be. That is not a UI gap; the seat cannot do it. Re-verified while closing #28:

  • /music, /sfx and /vocal all generate from text alone — there is no cover, repaint, or audio-to-audio route to condition on an existing file
  • audio_item.produce is one blocking HTTP call with no progress feed, so even once a route exists, an honest progress bar needs either a seat-side progress endpoint or a duration model (the image path gets its bar from ComfyUI's websocket; there is no audio equivalent)
  • the orchestrator refuses the case explicitly rather than failing late: build_spec 422s any source_b64 on an audio kind

#22 (drain absorption) is closed, so this blocker currently has no ticket of its own — that is the gap this one fills. The work is in audio-server/:

  • expose a source-conditioned route on ACE-Step (audio2audio / repaint) and/or Stable Audio (init-audio), including how strength/denoise is parameterised
  • report progress from the diffusion loop so the studio's bar can be real rather than a duration guess
  • then: drop the 422 in trog_lib/orchestrator.build_spec, render TweakBar for AUDIO_EXT files in the files pane, and delete the placeholder note that currently explains the absence

Both halves are testable GPU-free through the mock seat once the contract is fixed (server/trog_lib/mock_seat.py already speaks the audio seat's HTTP API).

The two items left over from #28, split out because both are blocked on work that lives elsewhere. #28's other four follow-ups shipped (b9b9332, 5009e67) and it is closed. ## 1. Play pane: run-aware build selection — blocked on #11 Today the pane points at the picked game's mirror root, `$FILES_URL/games/{game}/`, which the drain refreshes after every commit batch. The intent is for it to follow **the newest build of the ACTIVE run** instead of just the game. That concept does not exist yet. The drain mirrors per *game*, and nothing emits a per-run build — #11 (E2E walking skeleton: brief → finished game) is the ticket that would make runs produce real builds. Implementing this before then means inventing a backend shape and guessing at it. **Do this when #11 lands**, and expect to need: - a per-run build location (or a manifest mapping run → build) that the mirror writes - the pane resolving the active run from `StatusContext.threads` (it already has the busy thread and its game) to that location - a fallback to today's game mirror when the run has no build yet, so the pane never goes blank mid-run - the URL box staying as the manual override it is now ## 2. Audio tweak from the files viewer — blocked on the audio seat The files pane has no tweak box on audio assets, and says so where the box would be. That is not a UI gap; the seat cannot do it. Re-verified while closing #28: - `/music`, `/sfx` and `/vocal` all generate **from text alone** — there is no cover, repaint, or audio-to-audio route to condition on an existing file - `audio_item.produce` is one blocking HTTP call with no progress feed, so even once a route exists, an honest progress bar needs either a seat-side progress endpoint or a duration model (the image path gets its bar from ComfyUI's websocket; there is no audio equivalent) - the orchestrator refuses the case explicitly rather than failing late: `build_spec` 422s any `source_b64` on an audio kind #22 (drain absorption) is closed, so this blocker currently has **no ticket of its own** — that is the gap this one fills. The work is in `audio-server/`: - expose a source-conditioned route on ACE-Step (audio2audio / repaint) and/or Stable Audio (init-audio), including how strength/denoise is parameterised - report progress from the diffusion loop so the studio's bar can be real rather than a duration guess - then: drop the 422 in `trog_lib/orchestrator.build_spec`, render `TweakBar` for `AUDIO_EXT` files in the files pane, and delete the placeholder note that currently explains the absence Both halves are testable GPU-free through the mock seat once the contract is fixed (`server/trog_lib/mock_seat.py` already speaks the audio seat's HTTP API).
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
cmoriarty/trog#33
No description provided.