Skip to content

feat(broadcast): idle fade-out for the live display, keyed to sermon … - #179

Open
Josesx506 wants to merge 1 commit into
openbezal:mainfrom
Josesx506:feat/idle-fade-timeout
Open

feat(broadcast): idle fade-out for the live display, keyed to sermon …#179
Josesx506 wants to merge 1 commit into
openbezal:mainfrom
Josesx506:feat/idle-fade-timeout

Conversation

@Josesx506

Copy link
Copy Markdown

…relevance

When the preacher moves on and the on-air verse goes stale, the output now fades to black on its own instead of lingering indefinitely.

  • New Idle Fade Timeout setting (10-120s slider, default 30s, persisted)
  • The output fades over 800ms when the timer expires; presenting anything fades back in and restarts the clock
  • The timer re-arms only on a genuine present (VerseRenderData.presentedAt changing) — incidental re-emits (theme edits, output syncs) can't keep a stale verse alive
  • A keepalive watches the detection stream: candidates still related to the on-air verse (direct or semantic match, or a chapter-only mention of its book+chapter) refresh the stamp, so the verse stays up while the sermon is on it and fades once the speech veers away
  • The in-app Live Display panel mirrors the fade
  • Payloads without idleFadeMs/presentedAt behave exactly as before (always re-arm), so older senders are unaffected

Includes unit tests for the relevance predicate.

Claude-Session: https://claude.ai/code/session_01PAHGVvCBEcMPVtazz3cyoz

Description

Type of change

  • Bug fix
  • New feature
  • Refactoring (no functional changes)
  • Documentation
  • Build / CI
  • Performance improvement

Areas affected

  • Frontend (React / TypeScript)
  • Backend (Rust / Tauri commands)
  • Rust crate:
  • Remote control (OSC / HTTP)
  • Broadcast / NDI
  • Theme Designer
  • Bible data / search
  • Audio / STT

Checklist

  • I have tested this change locally
  • bun run typecheck passes
  • cargo clippy passes without warnings
  • bun run test passes (if applicable)
  • I have added tests for new functionality (if applicable)
  • UI changes include a screenshot or recording below

Tested on

  • macOS
  • Windows
  • Linux

Screenshots / recordings

…relevance

When the preacher moves on and the on-air verse goes stale, the output now
fades to black on its own instead of lingering indefinitely.

- New Idle Fade Timeout setting (10-120s slider, default 30s, persisted)
- The output fades over 800ms when the timer expires; presenting anything
  fades back in and restarts the clock
- The timer re-arms only on a genuine present (VerseRenderData.presentedAt
  changing) — incidental re-emits (theme edits, output syncs) can't keep a
  stale verse alive
- A keepalive watches the detection stream: candidates still related to
  the on-air verse (direct or semantic match, or a chapter-only mention of
  its book+chapter) refresh the stamp, so the verse stays up while the
  sermon is on it and fades once the speech veers away
- The in-app Live Display panel mirrors the fade
- Payloads without idleFadeMs/presentedAt behave exactly as before
  (always re-arm), so older senders are unaffected

Includes unit tests for the relevance predicate.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PAHGVvCBEcMPVtazz3cyoz
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant