- Change filename format from timestamp_itemId to deviceName_timestamp
(e.g. Pixel_7_20260101_120000.jpg) so all clients see consistent naming
- Add "version": 1 to sidecar JSON for future schema evolution
- Update filenameToIso parser to read timestamp from end of new base name
- Sync api_spec.yaml, AGENTS.md, and test script examples with new format
- Update go-scicam and web-scicam submodule examples/placeholders
- Add PresenceBeacon to Android app, multicasts device state every 5s
- Add discovery.rs listener to dashboard, auto-registers new devices
- Persist discovered devices to timi.conf immediately
- Document protocol in AGENTS.md with Python/Go/TS/Android examples
Beacon: 239.255.0.1:9876 JSON with name, ip, api_port, item_id, timestamp
- Add VideoCapture with CameraX for MP4 recording via POST /record
- Add GET /captures to list all media with sidecar status
- Add GET /sidecar/<filename> for JSON sidecar downloads
- Add GET /video/last and /video/<filename> endpoints
- New Rust TUI dashboard for WiFi auto-sync to ~/timi/capture
- Fix duplicate tvQr id in activity_main.xml
- Update api_spec.yaml, AGENTS.md, scicam_api_test.sh
- Generate missing gradlew / gradlew.bat / wrapper.jar so host builds work.
- Add Dockerfile based on eclipse-temurin:17-jdk with Android SDK 34.
- Add docker-build.sh convenience script for containerized builds.
- Update AGENTS.md and README.md with Docker build instructions.
- APK output is written back to host; adb install stays on host for USB.
- Add QR text overlay (tvQr) shown below IP address, persists until superseded
- Add white screen flash when a new QR code is detected
- Add debug overlay (tvDebug) showing capture count, item ID, last filename, free space
- Debug overlay can be toggled via POST /settings {"debug": true/false}
- Add POST /auto-capture endpoint with {"enabled": true/false}
- Auto-capture debounces: triggers once per QR appearance, waits 0.5s after disappearance
- Add chime (ToneGenerator) on successful auto-capture photo
- BoofCvQrAnalyzer now reports null when no QR is detected to drive state transitions
- Update scicam_api_test.sh with /auto-capture and debug toggle tests
- Update AGENTS.md API table for new endpoints and fields
- Add low-key rectangular capture button overlay to MainActivity
(semi-transparent black with white stroke, consumes touch events)
- Run capture() off UI thread via cameraExecutor to avoid ANR
- Add .gitmodules for go-scicam and web-scicam clients
- Add AGENTS.md with build, API, and architecture notes
- Add scicam_api_test.sh for manual API validation
- Ignore scicam_capture_base64.txt and .env