Commit Graph

15 Commits

Author SHA1 Message Date
pluto fc39098ff5 Wire up FCM push notification service
ClippyAuto CI / build (push) Has been cancelled
- ClippyFCMService: Receives FCM data messages, routes to TTS pipeline
- FCMTokenManager: Stores FCM token in Matrix account data for n8n
- Enable Google Services plugin and Firebase dependencies
- Add FCM service to AndroidManifest.xml
- Register FCM token on app init in ClippySession and SetupActivity

Token stored at: /_matrix/client/v3/user/@clippyauto:hobbs.farm/account_data/farm.hobbs.clippy.fcm_token

Co-authored-by: Spirit <spirit@hobbs.farm>
2026-03-08 23:12:21 -05:00
pluto 55b85eb96f Add placeholder audio cue files for AudioCueManager
ClippyAuto CI / build (push) Has been cancelled
- listening_start.wav: Ascending sweep 880→1320 Hz (150ms)
- listening_stop.wav: Descending sweep 1320→660 Hz (150ms)
- success.wav: Pleasant double-beep 1000+1200 Hz (~220ms)
- error.wav: Low descending tone 400→250 Hz (250ms)

Placeholder tones for testing; replace with proper .ogg files for production.

Co-authored-by: Spirit <spirit@hobbs.farm>
2026-03-08 23:07:09 -05:00
pluto d6ae71ae2e Add google-services.json for FCM push notifications
ClippyAuto CI / build (push) Has been cancelled
Firebase project: clippyauto
Package: farm.hobbs.clippyauto
2026-03-08 23:03:16 -05:00
pluto 4dbab65242 Add voice commands, session management, audio cues, TTS chunking
ClippyAuto CI / build (push) Has been cancelled
Voice Commands (FR-9):
- VoiceCommandProcessor parses: go quiet, speak, wrap it up, remind me, tell [agent]
- Commands intercepted before sending to Matrix
- Delegation requires verbal confirmation

Session Management:
- SessionManager with <15min resume vs new session logic
- session_start, session_resume, session_end signals

Audio Cues:
- AudioCueManager using SoundPool (low-latency)
- Confirmation chime, thinking tone, error sound

TTS Chunking (FR-11):
- Max 250 chars per TTS chunk, splits at sentence boundaries

Quiet/Private Mode:
- New QUIET state, TTS muted, responses shown as text

Tests: +22 new test cases

Co-authored-by: Spirit <spirit@hobbs.farm>
2026-03-08 21:08:57 -05:00
pluto 720fca5919 Centralize config + EncryptedSharedPreferences for credentials
ClippyAuto CI / build (push) Has been cancelled
- New AppConfig singleton backed by EncryptedSharedPreferences
- Credentials stored in Android Keystore (AES256-GCM)
- Removed hardcoded creds from ClippySession and SetupActivity
- Access token caching to avoid re-login on each session
- Defaults seeded on first run for backward compatibility

Co-authored-by: Spirit <spirit@hobbs.farm>
2026-03-08 14:11:34 -05:00
spirit dbbf2b76ab Add phone-side test UI for voice loop testing without Android Auto
ClippyAuto CI / build (push) Failing after 5s
SetupActivity now has Connect + Talk buttons, status display, and log output.
Allows testing the full STT → Matrix → Clippy → TTS pipeline from the phone.
2026-03-06 18:34:07 +00:00
spirit 899cad0700 Fix coroutine imports in ClippySession
ClippyAuto CI / build (push) Failing after 9s
2026-03-06 18:19:59 +00:00
spirit 25da2a3835 Add clippyauto Matrix credentials for v1
ClippyAuto CI / build (push) Failing after 5m9s
2026-03-06 05:40:30 +00:00
spirit 9c026b89ae Build fixes + unit tests for Sprint 1
ClippyAuto CI / build (push) Has been cancelled
- Fix settings.gradle.kts (dependencyResolutionManagement)
- Add gradle-wrapper.properties + gradle.properties
- Defer Firebase/FCM to Sprint 2 (no google-services.json yet)
- Add placeholder ic_clippy drawable
- Add test deps (JUnit, coroutines-test)
- VoiceStateMachineTest: 14 tests covering happy path, interruption, cancellation, invalid transitions, reset
- ResponseDedupTest: basic dedup cache tests
- Add kotlinx-serialization plugin for Ktor
2026-03-06 05:12:30 +00:00
spirit 31765eb117 Set #clippy-voice room ID in config
ClippyAuto CI / build (push) Has been cancelled
2026-03-05 23:39:59 +00:00
spirit 8a7fee1cbf Add latency instrumentation (t0-t5) per Pluto spec v1.0
ClippyAuto CI / build (push) Has been cancelled
LatencyTracker utility with CLIPPY_LATENCY log tag.
Instrumentation points in VoiceLoop, TTSManager.
Includes t3_path=fcm|sync and summary line at t5.
2026-03-05 23:39:37 +00:00
spirit 6412fbea26 Add CI workflow, Matrix login flow in session, placeholder for room ID
ClippyAuto CI / build (push) Has been cancelled
2026-03-05 23:38:07 +00:00
spirit d1450cab7e Wire VoiceLoop into ClippySession lifecycle and ClippyScreen talk button 2026-03-05 23:09:48 +00:00
spirit a6f8433eb4 Add VoiceLoop.kt - core STT→Matrix→TTS voice pipeline wiring 2026-03-05 23:09:19 +00:00
spirit 318867b133 feat: initial project scaffold
- Android Auto CarAppService, Session, Screen
- Voice pipeline: STT (SpeechManager), TTS (TTSManager), VoiceStateMachine
- Matrix REST client (login, send, sync) - no E2EE, raw API
- FCM push receiver with response dedup
- Network monitor + offline message queue
- Phone setup activity stub
- Full architecture spec in docs/ARCHITECTURE.md
2026-03-05 22:07:30 +00:00