docs(69): queue the chat sample preview toggle
This commit is contained in:
+3
-3
@@ -1,8 +1,8 @@
|
|||||||
# HANDOFF — 2026-11-11 (TASK 37 complete; queue advances to TASK 40)
|
# HANDOFF — 2026-11-11 (TASK 37 complete; TASK 69 queued)
|
||||||
|
|
||||||
## State
|
## State
|
||||||
|
|
||||||
- `main`, clean and pushed to `origin/main` at `1d35a74`.
|
- `main`, worktree clean. App work is pushed through `b265d42`; TASK 69 queue update is local only.
|
||||||
- **Done:** TASK 35 scene-linked audio, TASK 55 disk hygiene, TASK 65 replay clips, TASK 37 defaults/current split.
|
- **Done:** TASK 35 scene-linked audio, TASK 55 disk hygiene, TASK 65 replay clips, TASK 37 defaults/current split.
|
||||||
- TASK 37: SQLite keeps an immutable default snapshot beside build-stamped current rows; App Settings can
|
- TASK 37: SQLite keeps an immutable default snapshot beside build-stamped current rows; App Settings can
|
||||||
restore the staged scene or all scenes, offline only. Webcam identity survives both restore paths.
|
restore the staged scene or all scenes, offline only. Webcam identity survives both restore paths.
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
## Next action
|
## Next action
|
||||||
|
|
||||||
- Queue: **40·A/C/D → Move → 9·5 → 14·16/17/18 → 66 → 67 → 68 → 36**.
|
- Queue: **40·A/C/D → Move → 9·5 → 14·16/17/18 → 66 → 67 → 68 → 69 → 36**.
|
||||||
- Ask creator before TASK 68 about first-run ON-AIR default; before gold pass, settle the Release
|
- Ask creator before TASK 68 about first-run ON-AIR default; before gold pass, settle the Release
|
||||||
single-instance mutex behavior.
|
single-instance mutex behavior.
|
||||||
- TASK 34 scheduling and TASK 50 recording publish are retired; YouTube owns those surfaces.
|
- TASK 34 scheduling and TASK 50 recording publish are retired; YouTube owns those surfaces.
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
**Creator ruling 2026-11-09 — finish the queue before the new features, gold pass always last.**
|
**Creator ruling 2026-11-09 — finish the queue before the new features, gold pass always last.**
|
||||||
|
|
||||||
`40·A/C/D → Move → 9·5 → 14 (remaining slices) → 66 → 67 → 68 → 36`
|
`40·A/C/D → Move → 9·5 → 14 (remaining slices) → 66 → 67 → 68 → 69 → 36`
|
||||||
|
|
||||||
The rule behind the two retirements below: **do not rebuild the platform's own surface.** Scheduling,
|
The rule behind the two retirements below: **do not rebuild the platform's own surface.** Scheduling,
|
||||||
publishing, moderation and channel management are YouTube's; the app owns capture → scene → sound →
|
publishing, moderation and channel management are YouTube's; the app owns capture → scene → sound →
|
||||||
@@ -30,6 +30,7 @@ output.
|
|||||||
| 66 | ☐ | **Timed ticker messages** — "every N minutes show this", from a creator-written list | [`task-66`](TASKS/task-66-timed-ticker.md) |
|
| 66 | ☐ | **Timed ticker messages** — "every N minutes show this", from a creator-written list | [`task-66`](TASKS/task-66-timed-ticker.md) |
|
||||||
| 67 | ☐ | **Per-event alert videos** — a clip per monetization event, falling back to the default | [`task-67`](TASKS/task-67-per-event-alert-videos.md) |
|
| 67 | ☐ | **Per-event alert videos** — a clip per monetization event, falling back to the default | [`task-67`](TASKS/task-67-per-event-alert-videos.md) |
|
||||||
| 68 | ☐ | **Editing while live** + first-run On-Air state matching the 1-2-3 screen | [`task-68`](TASKS/task-68-edit-while-live.md) |
|
| 68 | ☐ | **Editing while live** + first-run On-Air state matching the 1-2-3 screen | [`task-68`](TASKS/task-68-edit-while-live.md) |
|
||||||
|
| 69 | ☐ | **Chat sample-preview toggle** — per-layer control to show/hide mock chat in the preview; real messages unaffected, never output | [`task-69`](TASKS/task-69-chat-preview-toggle.md) |
|
||||||
| 36 | ☐ | **Gold pass** — the v1 gate: screens/layers audit (every control does something), native-Windows verification, branding-flash decision. Always the last unit | [`task-36`](TASKS/task-36-gold-pass.md) |
|
| 36 | ☐ | **Gold pass** — the v1 gate: screens/layers audit (every control does something), native-Windows verification, branding-flash decision. Always the last unit | [`task-36`](TASKS/task-36-gold-pass.md) |
|
||||||
| 34 | ❌ | **Scheduled streams — retired 2026-11-09.** YouTube owns scheduling *and* the reminder that makes it useful; the app neither creates nor displays scheduled broadcasts, and there is no value in a copy that can fall out of sync | [`decisions`](docs/ai/decisions.md) |
|
| 34 | ❌ | **Scheduled streams — retired 2026-11-09.** YouTube owns scheduling *and* the reminder that makes it useful; the app neither creates nor displays scheduled broadcasts, and there is no value in a copy that can fall out of sync | [`decisions`](docs/ai/decisions.md) |
|
||||||
| 50 | ❌ | **Publish recording — retired 2026-11-09.** YouTube Studio owns upload (resumable, quota-aware, and it explains rejections). In-app publishing would also widen the OAuth consent to whole-channel video management. The recording lands in the creator's folder; the app adds "Show in folder" instead | [`decisions`](docs/ai/decisions.md) |
|
| 50 | ❌ | **Publish recording — retired 2026-11-09.** YouTube Studio owns upload (resumable, quota-aware, and it explains rejections). In-app publishing would also widen the OAuth consent to whole-channel video management. The recording lands in the creator's folder; the app adds "Show in folder" instead | [`decisions`](docs/ai/decisions.md) |
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
# TASK 69 — Chat sample-preview toggle
|
||||||
|
|
||||||
|
**Status:** ☐ Queued (creator request 2026-11-11); scheduled after TASK 68 and before the gold pass.
|
||||||
|
|
||||||
|
## Request
|
||||||
|
|
||||||
|
Expose the autogenerated sample chatter as a per-ChatBox layer-control toggle, so the creator decides
|
||||||
|
whether it appears while adjusting chat font/color and previewing the layout. Keep the existing behavior
|
||||||
|
as the default: `Source.ChatPreviewEnabled` already defaults to `true`.
|
||||||
|
|
||||||
|
## Established behavior
|
||||||
|
|
||||||
|
- `ChatOverlayLayer.StartMockPreview` autogenerates sample messages for the ChatBox preview.
|
||||||
|
- A real message stops the sample loop; after the real-message fade clears the buffer, the sample loop
|
||||||
|
starts again—even during a live session.
|
||||||
|
- Samples are preview-only: they are not inserted into the real `Messages` buffer, and the output
|
||||||
|
renderer reads that real buffer. Viewers do not receive sample chatter.
|
||||||
|
- `ChatPreviewEnabled` is currently read by the mock-preview starter but is not persisted.
|
||||||
|
|
||||||
|
## Acceptance
|
||||||
|
|
||||||
|
- The selected ChatBox layer control exposes **Show sample chat in preview**, on by default.
|
||||||
|
- The choice persists across restart and applies to that ChatBox layer.
|
||||||
|
- Off stops/removes generated samples. It does not hide real chat messages or change the live output.
|
||||||
|
- When on, samples return in the preview when there are no real messages to show.
|
||||||
|
- One Good Dog integration test covers the toggle and persistence; pin that sample chatter never enters
|
||||||
|
the output message buffer.
|
||||||
Reference in New Issue
Block a user