Commit Graph

  • cd07b52f8f Findings: Test 4a OpenAI Realtime one-shot voice round-trip outcome fresh-start tes 2026-06-12 19:42:35 +00:00
  • 4cfb0d4b9a Test 4a: migrate session.update + event names to GA Realtime API tes 2026-06-12 19:41:08 +00:00
  • ac8a3f012c Test 4a: bin/probe-cs-4a deploy script with ~/.openai_key precondition tes 2026-06-12 19:16:32 +00:00
  • a590c96d07 Test 4a: wire NoMoreDeltas + add UpstreamSendLoop stop-and-empty exit tes 2026-06-12 19:15:29 +00:00
  • a1a3b5c981 Test 4a: WS plumbing + audio streams + server VAD round-trip tes 2026-06-12 19:09:26 +00:00
  • 43b3a1a0f1 Test 4a scaffold: csproj for tests/04a-realtime-oneshot-cs tes 2026-06-12 19:00:57 +00:00
  • e96b6ffd95 Test 4a: implementation plan tes 2026-06-12 17:34:25 +00:00
  • dea126f994 Test 4a: spec — OpenAI Realtime API one-shot voice round-trip tes 2026-06-12 16:59:10 +00:00
  • cbb47d1465 Findings: Test 3 C# full-cycle probe outcome tes 2026-06-12 13:56:16 +00:00
  • a7d408e903 Test 3: scale playback timeout to buffer length (was hardcoded 2 s) tes 2026-06-12 13:54:16 +00:00
  • 1d9a417cfc Test 3: bin/probe-cs-3 deploy script tes 2026-06-12 13:40:55 +00:00
  • 070cc0767a Test 3: per-cycle PlaybackDoneFlag + log timeout in fire-and-forget cleanup tes 2026-06-12 13:38:09 +00:00
  • 5a498e9c91 Test 3: full-cycle state machine (IDLE/BEEPING/RECORDING/PLAYBACK) tes 2026-06-12 13:31:25 +00:00
  • 222d58baeb Test 3: copy WakewordModel + models from Test 2, add Reset() tes 2026-06-12 13:25:40 +00:00
  • 6fa2779ea1 Test 3 scaffold: csproj for tests/03-full-cycle-cs tes 2026-06-12 13:22:23 +00:00
  • 14690484de Test 3 plan: implementation steps for full-cycle C# probe tes 2026-06-12 13:19:18 +00:00
  • e9730c7e50 Test 3 spec: full-cycle C# probe (wakeword + record + playback) tes 2026-06-12 13:13:59 +00:00
  • b6d9f9a1cf WakewordModel: print shapes at startup + tidy mel-shape comment tes 2026-06-12 12:19:59 +00:00
  • 7d808e6ade Findings: C# wakeword probe outcome tes 2026-06-12 12:13:01 +00:00
  • 9b63e298d3 Beep cleanup: start before Task.Run + Wait timeout to avoid orphaned task tes 2026-06-12 12:06:48 +00:00
  • 14e862f50a Beep on detection: fire-and-forget OutputStream, input keeps flowing tes 2026-06-12 12:03:14 +00:00
  • 2e830eaed4 Live wakeword loop: PortAudio input + queue + threshold detection tes 2026-06-12 11:57:54 +00:00
  • b43a1ce17f WakewordModel: clean up stale comment, clarify ring-fill boundary case tes 2026-06-12 11:43:28 +00:00
  • e18aed53d7 WakewordModel: port openwakeword streaming pipeline (mel→emb→cls) tes 2026-06-12 11:37:53 +00:00
  • bea35c8f1c Add bin/probe-cs-2: build + scp + run the C# wakeword probe on the Pi tes 2026-06-12 11:29:22 +00:00
  • 849ad47230 Scaffold C# wakeword probe: vendored ONNX models + ORT sanity spike tes 2026-06-12 11:24:46 +00:00
  • fe15a009b3 Plan: C# probe re-implementing Test 2 (wakeword) on the Pi tes 2026-06-12 11:19:22 +00:00
  • 815389ecc2 Spec: C# probe re-implementing Test 2 (wakeword) on the Pi tes 2026-06-12 10:55:13 +00:00
  • bfd8a05734 Add kickoff prompt for Test 2 (wakeword) C# probe tes 2026-06-12 10:12:34 +00:00
  • 8fdbedd28f CLAUDE.md: point new sessions at findings.md tes 2026-06-12 10:11:19 +00:00
  • 7c4621b3b7 Findings: C# record-play probe outcome tes 2026-06-12 10:11:19 +00:00
  • 87a85db38d Playback: append OutputStream playback of recorded buffer tes 2026-06-12 10:00:59 +00:00
  • e2bd845abe Record loop: callback InputStream + RMS meter + WAV write tes 2026-06-12 09:54:43 +00:00
  • 1d08f49204 Add WavWriter: mono PCM16 RIFF writer for the C# probe tes 2026-06-12 09:38:55 +00:00
  • fec222b6dc Fix bin/probe-cs file mode to executable (100755) tes 2026-06-12 09:35:47 +00:00
  • 9e8cee7a16 Add bin/probe-cs: build + scp + run the C# probe on the Pi tes 2026-06-12 09:33:39 +00:00
  • d744a6318f Scaffold C# record-play probe + PortAudio device-list spike tes 2026-06-12 09:29:26 +00:00
  • 7b1417e885 Plan: use scp instead of rsync in bin/probe-cs (no rsync in build env) tes 2026-06-12 09:26:13 +00:00
  • 91a1f04b44 Plan: C# probe re-implementing Test 1 (record/play) on the Pi tes 2026-06-12 09:23:46 +00:00
  • b7fda48e91 Spec: C# probe re-implementing Test 1 (record/play) on the Pi tes 2026-06-12 09:18:26 +00:00
  • 1a36c8096d Diagnostics: surface upstream WS close reason + break the null-spin loop main tes 2026-06-12 07:17:04 +00:00
  • 12be767325 Trim GA session.update + add deploy marker + surface upstream silence tes 2026-06-12 07:04:53 +00:00
  • a42038b825 Diagnostics: forward upstream events + errors to device as 'debug' envelopes tes 2026-06-12 06:59:14 +00:00
  • 8bb0ce51b1 Plan 3 fix: GA turn_detection auto-create_response + reset state on WS reconnect tes 2026-06-12 06:50:00 +00:00
  • 7294a81a9a Realtime: migrate to OpenAI GA shape (beta API was retired) tes 2026-06-12 06:42:21 +00:00
  • d01b78b225 Relay: log upstream events + forward error envelopes to device for diagnostics tes 2026-06-12 06:28:58 +00:00
  • 82ea164695 README: document Plan 3 Pi client surface tes 2026-06-11 22:56:34 +00:00
  • 8662dbe8a7 Plan 3: main.py composition root (audio + state + wakeword + session + playback wired) tes 2026-06-11 22:52:01 +00:00
  • b1eeaa8af3 Plan 3: backend WS client + dispatch + tool round-trip tes 2026-06-11 22:51:23 +00:00
  • fa245d87a5 Plan 3: playback worker + wake/sleep wav + software volume gain tes 2026-06-11 22:50:13 +00:00
  • d0bd141082 Plan 3: openwakeword wrapper with threshold + cooldown tes 2026-06-11 22:49:40 +00:00
  • 55257b8867 Plan 3: USB device discovery + persistent audio streams tes 2026-06-11 22:49:20 +00:00
  • d155af4b70 Plan 3: pair CLI (POST /api/pair, write config.json) tes 2026-06-11 22:48:46 +00:00
  • 781ef9377a Plan 3: 24 kHz->16 kHz downsample helper for the wakeword feed tes 2026-06-11 22:48:16 +00:00
  • 4d83f2d9fd Plan 3: load/save ~/assistant/state/config.json with mode 0600 tes 2026-06-11 22:47:50 +00:00
  • d75129c4f9 Plan 3: state machine (IDLE -> WAKE_PENDING -> LISTENING <-> ASSISTANT_SPEAKING -> IDLE_PENDING -> IDLE) tes 2026-06-11 22:47:23 +00:00
  • 908e3f4907 Plan 3: add client.log structured logger tes 2026-06-11 22:46:44 +00:00
  • 79d6e923a6 Plan 3: scaffold Python test harness and stub client package tes 2026-06-11 22:46:25 +00:00
  • 8380e3149e README: document Plan 2 device-hub surface area tes 2026-06-11 22:02:35 +00:00
  • 7ba9f0cf5e Plan 2: device hub + Realtime relay + tools registry tes 2026-06-11 22:01:30 +00:00
  • ba709d15d5 DeviceHub: wake → session lifecycle + uplink relay + tool_result routing tes 2026-06-11 22:00:33 +00:00
  • 9023509b01 DeviceHub: /device WS with bearer auth + hello/hello_ack + ping/pong tes 2026-06-11 21:55:33 +00:00
  • 4dc48bd9fd Add ActiveDevice + DeviceRegistry + HubEnvelopes + IDeviceClient/Channel implementations tes 2026-06-11 21:51:25 +00:00
  • 78373b0912 Add OpenAIRealtimeUpstream + RealtimeSessionFactory + DI registrations tes 2026-06-11 21:48:21 +00:00
  • 8f53f9daa9 RealtimeSession: idle-timeout watchdog (resets on speech_started) tes 2026-06-11 21:46:16 +00:00
  • a45b25038a Test end_session sequencing closes with reason=tool and skips response.create tes 2026-06-11 21:42:47 +00:00
  • 7dada5fdb9 RealtimeSession: execute server-side tools at response.done tes 2026-06-11 21:38:31 +00:00
  • b078f9aa78 RealtimeSession: persist user/assistant transcripts; emit assistant_done tes 2026-06-11 21:35:40 +00:00
  • 24b8acdf60 RealtimeSession: uplink pump + downlink audio.delta forwarding tes 2026-06-11 21:33:37 +00:00
  • a202725c39 Add RealtimeSession lifecycle (open + session.update + session_started/ended) tes 2026-06-11 21:30:40 +00:00
  • 8f197d1203 Add ScriptedRealtimeUpstream + FakeDeviceChannel test doubles tes 2026-06-11 21:27:50 +00:00
  • 35a6e8febb Add IRealtimeUpstream + RealtimeEvents helpers for upstream JSON tes 2026-06-11 21:25:46 +00:00
  • d3e101eb29 Add OpenAIKeyProvider + RealtimeSettings record tes 2026-06-11 21:23:54 +00:00
  • 212ce06f07 Add SetVolumeTool (validates 0..100, delegates to Pi via IDeviceChannel) tes 2026-06-11 21:22:45 +00:00
  • ebbe23c639 Add EndSessionTool (no params, returns ok; relay closes on this tool name) tes 2026-06-11 21:21:13 +00:00
  • 9325d21f9e Add ITool + ToolRegistry + GetCurrentTimeTool tes 2026-06-11 21:19:23 +00:00
  • 13d8773704 Add ConversationLog (start/append/end with monotonic per-convo index) tes 2026-06-11 21:13:50 +00:00
  • 99cfe60a2c Add Conversation + Turn entities and migration tes 2026-06-11 21:09:52 +00:00
  • 58b8a446b1 Fix Dockerfile: don't copy test csproj (excluded by .dockerignore) tes 2026-06-11 20:31:52 +00:00
  • a83e9f93de Add UseForwardedHeaders so /install.sh + backend_ws use https/wss behind Traefik tes 2026-06-11 20:17:46 +00:00
  • 68738e486d Add README with repo layout, local dev, smoke test, deploy commands tes 2026-06-11 20:11:39 +00:00
  • 2701b8a483 Add docker-compose.yml for Coolify deploy + gitignore deploy.json tes 2026-06-11 20:05:58 +00:00
  • 645a7e3722 Persist data-protection keys to /keys when present (Coolify volume) tes 2026-06-11 19:05:41 +00:00
  • 88339c51eb Add multi-stage Dockerfile (backend + client tarball) tes 2026-06-11 19:04:45 +00:00
  • a7e5e13ac8 Add Python client placeholders for bundle build (full impl in Plan 3) tes 2026-06-11 19:04:18 +00:00
  • 751030dcef Add InstallScriptBuilder + GET /install.sh + GET /client.tar.gz tes 2026-06-11 19:03:33 +00:00
  • e5ae228738 Add /api/devices CRUD (list, get, rename, revoke) with owner scoping tes 2026-06-11 19:00:42 +00:00
  • b5be4c6914 Add /api/pair-code (auth) + /api/pair (public) endpoints tes 2026-06-11 18:56:41 +00:00
  • db5c4e59a4 Add PairingService with safe alphabet and 10-min TTL tes 2026-06-11 18:53:32 +00:00
  • 720583de0a Add PairingCode entity + migration tes 2026-06-11 18:51:18 +00:00
  • b862bf6f0f Add DeviceTokenService (random token, SHA-256 hash, fixed-time verify) tes 2026-06-11 18:48:39 +00:00
  • 3e9c245bb3 Fix Task 6: Device FK to AspNetUsers + SystemSettings singleton Id pin tes 2026-06-11 18:46:42 +00:00
  • 68e7e81312 Add Device, DeviceConfig, SystemSettings entities and seed defaults tes 2026-06-11 18:41:27 +00:00
  • a1aa5023a2 Fix Task 5 review issues: per-test ApiFactory, drop dead RoleManager param + EF Core using tes 2026-06-11 18:38:37 +00:00
  • 2a208e81b2 Add /api/auth/{register,login,logout,me} with first-user-is-admin rule tes 2026-06-11 18:34:07 +00:00
  • 8a7d01ac9e Add ASP.NET Identity (cookie auth) and role seeding tes 2026-06-11 18:26:34 +00:00
  • 824a27520d Fix: clean up SQLite WAL/SHM sidecars in ApiFactory.Dispose tes 2026-06-11 18:22:33 +00:00
  • f2bb2d984b Add ApiFactory test helper + /health sanity test tes 2026-06-11 18:17:48 +00:00
  • 2c16a9485b Add EF Core + SQLite with empty AppDbContext tes 2026-06-11 18:12:04 +00:00
  • 1eb0383834 Scaffold backend + backend.tests projects tes 2026-06-11 18:04:42 +00:00