feat: V3 — audio monitoring, event timeline, and Tailscale integration - #15
Merged
Conversation
Audio monitoring: - New AudioMonitor class (sounddevice) with auto-calibrating threshold - Real-time VU meter in web UI status bar (color-coded levels) - Sound alerts via existing Web Audio chime system - CLI flags: --no-audio, --audio-device, --audio-threshold Event timeline dashboard: - New EventLog class with JSONL file storage and auto-pruning - GET /events API with pagination and type filtering - GET /timeline page with scrollable event cards, filters, auto-refresh - Motion and sound events logged with timestamps and snapshots Tailscale integration: - Auto-detect Tailscale IP (CGNAT 100.64.0.0/10) on startup - "Secure" pill in web UI header when accessed via Tailscale - README setup guide for remote access 87 new tests (73 → 160 total), 3 new modules, 0 new breaking changes.
Replace the separate /timeline page with a draggable bottom sheet overlay that keeps the camera stream always visible. Three snap states (peek, half, full) with touch/mouse drag support, velocity-based snapping, and rubber-band resistance for a native app feel.
…ble peek
The bottom sheet was covering the status bar (including ROI button) with
its always-visible 60px peek state. Now the sheet starts fully hidden
and opens when you tap the motion status card ("No motion" / "Motion Xs
ago"). Swipe down or tap backdrop to dismiss.
Tap "Motion" or "Sound" pills in the status bar to enable/disable macOS notifications for each alert type independently. State is synced via POST /alerts endpoint and reflected in /status. Sound toggle only appears when audio monitoring is active.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
BabyPing V3 — three new pillars built in parallel using agent teams.
Audio Monitoring
AudioMonitorclass usingsounddevicefor mic capture in ~100ms chunks--no-audio,--audio-device N,--audio-threshold NEvent Timeline Dashboard
EventLogclass with JSONL file storage (~/.babyping/events.jsonl)GET /eventsAPI with pagination, offset, and type filteringGET /timeline— full dashboard page with scrollable event cards, filter buttons (All/Motion/Sound), auto-refresh--max-eventsflag (default 1000)Tailscale Integration
Stats
audio.py,events.py,docs/plans/2026-02-06-v3-design.mdsounddeviceTest plan