Auto-Tune: per-channel configuration (DetailPanel) — editable per-channel step #383

Closed
opened 2026-07-16 23:44:53 +02:00 by timothy · 2 comments
Owner

Follow-up arc to #69 (auto-tuning). #69's PR2 ships the 3-step wizard (Configure → Preview → Create) on the existing PR1 endpoints and closes. During the PR2 design iteration (2026-07-16) a per-channel DetailPanel slide-over was added — opened from a Configure button on each Preview row — turning each proposed channel into a fully editable record before bulk-create. It needs backend the PR1 endpoints don't have, so per our design-first policy it's deferred to this arc rather than expanding PR2.

Design reference (already in the repo / Claude Design)

  • Prototype: design-system/templates/chicorytv-admin/AutoTune.jsxDetailPanel, buildSchedule, sourceList, AdvancedSettings, TemplatePicker.
  • Handoff: design_handoff_auto_tune/README.md.
  • Claude Design working copy: project 4eb64b16-c85f-46bc-90a9-3fa222ddcb18 (screenshots v2-detail-*, v3-panel-top).

What the DetailPanel lets the user set per proposed channel

  • Identity: custom name, number, channel image (drives guide logo + on-screen bug), bug initials + fallback colour.
  • Playback: shuffle override, always-playing (live) override.
  • Template: pick the per-channel Channel Template; Advanced field overrides (streaming / filler / playback / behaviour) — a changed value flags "overrides template".
  • Content sources: the smart-collection's distinct members shown as a read-only-by-default list, each with a rotation weight (weighted round-robin, default 1); optional exclude and add-untagged corrections (additive/subtractive to the generated query — corrections, not the primary flow).
  • Example schedule: advisory tonight-from-20:00 render of the weighted rundown (the built playout may differ) — display-only, no new backend.

Deferred sub-work (children)

  • Enumerate a SmartCollection's distinct members — read endpoint (content-source list)
  • Per-channel overrides + per-source rotation weights in auto-tune bulk-create (expanded create DTO + playout config; incl. exclude / add-untagged query corrections)
  • Auto-Tune per-channel DetailPanel (SPA) — depends on the two above

Done-when

  • The child endpoint issues are shipped
  • SPA DetailPanel implemented + live-E2E (open Configure, edit overrides + weights, create, verify the built channel/playout matches)
  • Adversarial/independent review passed
  • Docs updated (api-conventions, spa-conventions, decisions, domain-model)

Blocked-on: nothing (starts after #69 PR2 merges). Not required for the auto-tune MVP.

Follow-up arc to **#69** (auto-tuning). #69's PR2 ships the 3-step wizard (Configure → Preview → Create) on the existing PR1 endpoints and closes. During the PR2 design iteration (2026-07-16) a per-channel **DetailPanel** slide-over was added — opened from a **Configure** button on each Preview row — turning each proposed channel into a fully editable record before bulk-create. It needs backend the PR1 endpoints don't have, so per our **design-first** policy it's deferred to this arc rather than expanding PR2. ## Design reference (already in the repo / Claude Design) - Prototype: `design-system/templates/chicorytv-admin/AutoTune.jsx` — `DetailPanel`, `buildSchedule`, `sourceList`, `AdvancedSettings`, `TemplatePicker`. - Handoff: `design_handoff_auto_tune/README.md`. - Claude Design working copy: project `4eb64b16-c85f-46bc-90a9-3fa222ddcb18` (screenshots `v2-detail-*`, `v3-panel-top`). ## What the DetailPanel lets the user set per proposed channel - **Identity**: custom name, number, channel image (drives guide logo + on-screen bug), bug initials + fallback colour. - **Playback**: shuffle override, always-playing (live) override. - **Template**: pick the per-channel Channel Template; **Advanced** field overrides (streaming / filler / playback / behaviour) — a changed value flags "overrides template". - **Content sources**: the smart-collection's distinct members shown as a read-only-by-default list, each with a **rotation weight** (weighted round-robin, default 1); optional **exclude** and **add-untagged** corrections (additive/subtractive to the generated query — corrections, not the primary flow). - **Example schedule**: advisory tonight-from-20:00 render of the weighted rundown (the built playout may differ) — display-only, no new backend. ## Deferred sub-work (children) - [ ] Enumerate a SmartCollection's distinct members — read endpoint (content-source list) - [ ] Per-channel overrides + per-source rotation weights in auto-tune bulk-create (expanded create DTO + playout config; incl. exclude / add-untagged query corrections) - [ ] Auto-Tune per-channel DetailPanel (SPA) — depends on the two above ## Done-when - [ ] The child endpoint issues are shipped - [ ] SPA DetailPanel implemented + live-E2E (open Configure, edit overrides + weights, create, verify the built channel/playout matches) - [ ] Adversarial/independent review passed - [ ] Docs updated (api-conventions, spa-conventions, decisions, domain-model) Blocked-on: nothing (starts after #69 PR2 merges). Not required for the auto-tune MVP.
timothy added the enhancementcontentpriority: medium labels 2026-07-16 23:44:53 +02:00
Author
Owner

Children filed:

  • #384 — enumerate a SmartCollection's distinct members (read endpoint)
  • #385 — per-channel overrides + rotation weights in bulk-create (write-path)
  • #386 — per-channel DetailPanel slide-over (SPA; depends on #384 + #385)

Ordering: #384 + #385 (backend, parallel-ish) → #386 (SPA). All priority: low — refinement over the #69 MVP, starts after #69 PR2 merges.

Children filed: - #384 — enumerate a SmartCollection's distinct members (read endpoint) - #385 — per-channel overrides + rotation weights in bulk-create (write-path) - #386 — per-channel DetailPanel slide-over (SPA; depends on #384 + #385) Ordering: #384 + #385 (backend, parallel-ish) → #386 (SPA). All `priority: low` — refinement over the #69 MVP, starts after #69 PR2 merges.
timothy added this to the Auto-Tune DetailPanel milestone 2026-07-17 00:25:07 +02:00
Author
Owner

Closing — this umbrella's named children have all shipped:

  • #384 — enumerate a SmartCollection's distinct members (members endpoint) — closed 2026-07-17
  • #385 — per-channel overrides + rotation weights in bulk-create (write-path) — closed 2026-07-18
  • #386 — per-channel DetailPanel slide-over (SPA) — closed 2026-07-18

The DetailPanel is implemented (identity, playback/template overrides via the shared advanced-options model, content-sources pane, example schedule).

Residual, tracked separately: the per-source weight steppers + exclude/add-untagged SPA controls in the Content-sources pane were deferred by #386 and land in standalone #440 (priority: low), which targets the #425 backend. #440 references #425/#386 directly and stands on its own, so it does not need this umbrella to remain open.

The Auto-Tune DetailPanel milestone now has no open issues (all of #383–#386 closed) and can be closed.

Closing — this umbrella's named children have all shipped: - **#384** — enumerate a SmartCollection's distinct members (members endpoint) — closed 2026-07-17 - **#385** — per-channel overrides + rotation weights in bulk-create (write-path) — closed 2026-07-18 - **#386** — per-channel DetailPanel slide-over (SPA) — closed 2026-07-18 The DetailPanel is implemented (identity, playback/template overrides via the shared advanced-options model, content-sources pane, example schedule). **Residual, tracked separately:** the per-source **weight steppers + exclude/add-untagged SPA controls** in the Content-sources pane were deferred by #386 and land in standalone **#440** (`priority: low`), which targets the #425 backend. #440 references #425/#386 directly and stands on its own, so it does not need this umbrella to remain open. The **Auto-Tune DetailPanel** milestone now has no open issues (all of #383–#386 closed) and can be closed.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: timothy/ersatztv#383