Repository navigation
v0.3.0-alpha — Phase 2: Full Feature Set
Pre-release
Pre-release
Phase 2 Release — 6 Major Features
Session Management (2A)
- Side drawer with session list (swipe from left or tap hamburger menu)
- Create, switch, delete, compact, and rename sessions
- Sessions persisted locally via Room DB
- Dynamic session key — no more hardcoded "android://companion"
Settings Editor (2B)
- Dynamic config form generated from server JSON schema
- Text, number, toggle, and select field types
- Collapsible sections, search filtering
- Save with optimistic concurrency, snackbar feedback
Chat Attachments (2C)
- Camera capture and gallery photo picker
- Image compression: resize to 1024px max edge, JPEG compress to <512KB
- Attachment thumbnails in input bar and message bubbles
- Base64-encoded attachments sent via gateway API
Log Viewer (2D)
- Live log streaming from gateway (2s polling)
- Color-coded by level: ERROR=red, WARN=yellow, DEBUG=dim
- Filter chips (ALL/ERROR/WARN/INFO/DEBUG)
- Auto-scroll with manual override, scroll-to-bottom FAB
- Accessible from Settings → Diagnostics → View Logs
Push Notifications (2E)
- Foreground service (BillBotService) with connectedDevice type
- Three notification channels: chat (HIGH), alerts (DEFAULT), service (LOW)
- Background chat notifications with 5s throttle
- Health/shutdown alert notifications
- Toggle in Settings → Notifications
Login/Auth (2F)
- Expandable authentication section on connection screen
- Three modes: Tailscale (default), Token, Password
- Segmented button selector with mode-specific input fields
- Auth params passed through WebSocket handshake
- Scope-based feature gating from server response
Technical
- Room DB: version 1→2 (sessions table)
- 14 new files, 17 modified files, ~2500 lines changed
- New dependency: lifecycle-process for ProcessLifecycleOwner
- APK: 19MB debug build