Skip to content

Studio 2.0: Phase 12: Polish And Cleanup #117

Description

@senigami

Phase 12: Polish and Cleanup Plan

Status

  • Phase: 12
  • Goal: Final UI/UX polish, technical debt reduction, and master-agnostic generalisation.
  • Timeline: Last phase before Phase 13 Release.

Work Board

Task Status Notes
Chapter Editor cleanup Complete Production/Performance/Preview tabs removed. Live editor uses ScriptView and now prefers the active live job over stale completed chapter jobs.
VCR Controls Complete VCR-style chapter playback controls added to Chapter Editor.
Queue Metadata Complete Completed jobs show generated audio duration and content metrics.
Library list view and sorting Complete Added list view and sort options to the Library main page.
Voice and plugin UX Partial Dependency installation feedback and XTTS resolution complete. Voxtral chapter rendering and voice icons/tags remain open.
Plugin-provided voice settings Complete Per-voice plugin settings rendered in ScriptEditor via JsonSchemaForm.
Plugin boundary cleanup Complete Core plugin code is portable; app-specific logic localized to adapters.
Legacy jobs API retirement Complete Removed legacy request/response endpoints; WebSocket snapshots remain authoritative.
Audio player / waveform scrubber Complete Waveform tape (detail canvas + minimap + zoom) wired into the live PlayerBar, with a full round of owner-tested fixes: zoom icons, detail-canvas rendering, zoom range/direction, peak resolution, playhead smoothness, docked (non-overlay) layout, and session-persistent zoom/mode. See notes below.
Manual QA pass Open Final verification of fixed-but-pending behaviors.
Multilingual support plan Open Planning for voice/text language support.

Checklist

Library and Main UI

  • Add a list view to the Library main page.
  • Add sort options to the Library main page.
  • Fix Chapter Editor header crowding and toolbar ordering.
  • Remove duplicate "Preparing" indicator.
  • Keep Chapter Editor live queue state anchored to the active job instead of stale completed jobs.

Audio Player / Waveform Scrubber

  • Wire the waveform tape (detail canvas, minimap, zoom) into the live PlayerBar.
  • Fix global Prev/Next restarting a multi-segment audio block instead of navigating between blocks.
  • Compute waveform peaks lazily on first request and cache as a versioned <chapter>.peaks.json sidecar.
  • Fix zoom in/out buttons rendering as blank gray squares (hit-area vs. visible-glyph CSS conflict).
  • Fix the detail waveform canvas collapsing to zero height (tape-region sizing budget).
  • Fix the zoom slider only reaching a fraction of its presets (peak-density cap was unreachable at tight zoom).
  • Fix zoom in/out button direction and unreliable click registration.
  • Recolor the minimap's playhead line so it's visually distinct from the zoom-window selection edges.
  • Raise peak sidecar density (8 → 60 peaks/sec) so zoomed-in waveforms show real per-bar detail.
  • Scale rendered bar count to the zoom window's pixel width (both detail canvas and minimap), instead of a fixed low bar count.
  • Fix stationary/paged-mode playhead animating in visible steps instead of smoothly.
  • Persist zoom level and paged/moving mode across track changes within a session.
  • Fix Play button causing the waveform tape to visibly flicker/remount (stale audio.src reload bug).
  • Dock the player bar in normal page flow instead of overlaying/covering page content.
  • Replace zoom glyphs with proper magnifying-glass icons; move the auto-scroll toggle onto the zoom-controls row.

Plugin and Voice Management

  • Fix plugin dependency installation UX (Install Deps button + feedback).
  • Fix XTTS dependency detection and missing-package feedback.
  • Surface plugin-defined per-voice controls in Voice Settings drawer/ScriptEditor.
  • Add voice image/icon upload and standardized 1:1 JPG processing.
  • Add searchable voice tags compatible with future search.
  • Align voice export bundles with Hugging Face-compatible layout.
  • Implement Voxtral segment and bake rendering for chapter jobs.
  • Audit default voice fallback so chapters do not silently default to Voxtral.
  • Implement TTS plugin zip import/delete flows (Import done; Delete/Uninstall done).

Backend and Orchestration

  • Enriched queue metadata for completed jobs (audio length, chars, segments).
  • Chapter Editor backend dead-code audit and production infrastructure pruning.
  • localize XTTS/Voxtral core logic for absolute portability.
  • Implement check_output interface in plugin adapters.
  • Update app/jobs/reconcile.py to use engine.check_output(job).
  • Retire legacy job request/response API endpoints.

Documentation and Final Audit

  • Update Wiki/Changelog for Studio 2.0 release.
  • Prepare plugin author documentation and template.
  • Manually verify fixed Phase 11 app behaviors.
  • Triage Vite websocket ECONNRESET logs.
  • Re-check large-book project/chapter load timings.

Deferred to Phase 13 / Post-v2.0

  • GitHub plugin search and direct download.
  • Hugging Face direct voice search/download.
  • Multilingual voice/text language implementation (planning only in Phase 12).
  • Rename mixed.py -> composite.py.
  • Third-party/LLM controller plugin system (foundation only in Phase 12).

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions