pluto
e8ca593164
Add missing FCM support classes
...
ClippyAuto CI / build (push) Has been cancelled
- ClippyResponseBus: SharedFlow event bus for FCM + sync responses
- ResponseDedup: SHA-256 dedup with sliding window
- Updated ClippyFCMService and FCMTokenManager to use MatrixRestClient
- Added putAccountData() to MatrixRestClient for FCM token storage
Co-authored-by: Spirit <spirit@hobbs.farm >
2026-03-08 23:17:33 -05:00
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
8ce62b9673
Add gradle wrapper (gradlew + gradle-wrapper.jar)
ClippyAuto CI / build (push) Successful in 6m43s
2026-03-06 18:37:55 +00: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
4625b7baf3
Fix CI: use cimg/android:2024.01-node for Node.js support
...
ClippyAuto CI / build (push) Failing after 21s
actions/checkout@v4 needs node, which isn't in the base cimg/android image.
Removed gradle-build-action (not needed with wrapper).
2026-03-06 18:01:30 +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
spirit
6c76d18f58
Initial commit
2026-03-05 16:03:12 -06:00