tes
|
8662dbe8a7
|
Plan 3: main.py composition root (audio + state + wakeword + session + playback wired)
|
2026-06-11 22:52:01 +00:00 |
|
tes
|
b1eeaa8af3
|
Plan 3: backend WS client + dispatch + tool round-trip
|
2026-06-11 22:51:23 +00:00 |
|
tes
|
fa245d87a5
|
Plan 3: playback worker + wake/sleep wav + software volume gain
|
2026-06-11 22:50:13 +00:00 |
|
tes
|
d0bd141082
|
Plan 3: openwakeword wrapper with threshold + cooldown
|
2026-06-11 22:49:40 +00:00 |
|
tes
|
55257b8867
|
Plan 3: USB device discovery + persistent audio streams
|
2026-06-11 22:49:20 +00:00 |
|
tes
|
d155af4b70
|
Plan 3: pair CLI (POST /api/pair, write config.json)
|
2026-06-11 22:48:46 +00:00 |
|
tes
|
781ef9377a
|
Plan 3: 24 kHz->16 kHz downsample helper for the wakeword feed
|
2026-06-11 22:48:16 +00:00 |
|
tes
|
4d83f2d9fd
|
Plan 3: load/save ~/assistant/state/config.json with mode 0600
|
2026-06-11 22:47:50 +00:00 |
|
tes
|
d75129c4f9
|
Plan 3: state machine (IDLE -> WAKE_PENDING -> LISTENING <-> ASSISTANT_SPEAKING -> IDLE_PENDING -> IDLE)
|
2026-06-11 22:47:23 +00:00 |
|
tes
|
908e3f4907
|
Plan 3: add client.log structured logger
|
2026-06-11 22:46:44 +00:00 |
|
tes
|
79d6e923a6
|
Plan 3: scaffold Python test harness and stub client package
|
2026-06-11 22:46:25 +00:00 |
|
tes
|
8380e3149e
|
README: document Plan 2 device-hub surface area
|
2026-06-11 22:02:35 +00:00 |
|
tes
|
7ba9f0cf5e
|
Plan 2: device hub + Realtime relay + tools registry
|
2026-06-11 22:01:30 +00:00 |
|
tes
|
ba709d15d5
|
DeviceHub: wake → session lifecycle + uplink relay + tool_result routing
|
2026-06-11 22:00:33 +00:00 |
|
tes
|
9023509b01
|
DeviceHub: /device WS with bearer auth + hello/hello_ack + ping/pong
|
2026-06-11 21:55:33 +00:00 |
|
tes
|
4dc48bd9fd
|
Add ActiveDevice + DeviceRegistry + HubEnvelopes + IDeviceClient/Channel implementations
|
2026-06-11 21:51:25 +00:00 |
|
tes
|
78373b0912
|
Add OpenAIRealtimeUpstream + RealtimeSessionFactory + DI registrations
|
2026-06-11 21:48:21 +00:00 |
|
tes
|
8f53f9daa9
|
RealtimeSession: idle-timeout watchdog (resets on speech_started)
|
2026-06-11 21:46:16 +00:00 |
|
tes
|
a45b25038a
|
Test end_session sequencing closes with reason=tool and skips response.create
|
2026-06-11 21:42:47 +00:00 |
|
tes
|
7dada5fdb9
|
RealtimeSession: execute server-side tools at response.done
|
2026-06-11 21:38:31 +00:00 |
|
tes
|
b078f9aa78
|
RealtimeSession: persist user/assistant transcripts; emit assistant_done
|
2026-06-11 21:35:40 +00:00 |
|
tes
|
24b8acdf60
|
RealtimeSession: uplink pump + downlink audio.delta forwarding
|
2026-06-11 21:33:37 +00:00 |
|
tes
|
a202725c39
|
Add RealtimeSession lifecycle (open + session.update + session_started/ended)
|
2026-06-11 21:30:40 +00:00 |
|
tes
|
8f197d1203
|
Add ScriptedRealtimeUpstream + FakeDeviceChannel test doubles
|
2026-06-11 21:27:50 +00:00 |
|
tes
|
35a6e8febb
|
Add IRealtimeUpstream + RealtimeEvents helpers for upstream JSON
|
2026-06-11 21:25:46 +00:00 |
|
tes
|
d3e101eb29
|
Add OpenAIKeyProvider + RealtimeSettings record
|
2026-06-11 21:23:54 +00:00 |
|
tes
|
212ce06f07
|
Add SetVolumeTool (validates 0..100, delegates to Pi via IDeviceChannel)
|
2026-06-11 21:22:45 +00:00 |
|
tes
|
ebbe23c639
|
Add EndSessionTool (no params, returns ok; relay closes on this tool name)
|
2026-06-11 21:21:13 +00:00 |
|
tes
|
9325d21f9e
|
Add ITool + ToolRegistry + GetCurrentTimeTool
|
2026-06-11 21:19:23 +00:00 |
|
tes
|
13d8773704
|
Add ConversationLog (start/append/end with monotonic per-convo index)
|
2026-06-11 21:13:50 +00:00 |
|
tes
|
99cfe60a2c
|
Add Conversation + Turn entities and migration
|
2026-06-11 21:09:52 +00:00 |
|
tes
|
58b8a446b1
|
Fix Dockerfile: don't copy test csproj (excluded by .dockerignore)
|
2026-06-11 20:31:52 +00:00 |
|
tes
|
a83e9f93de
|
Add UseForwardedHeaders so /install.sh + backend_ws use https/wss behind Traefik
|
2026-06-11 20:17:46 +00:00 |
|
tes
|
68738e486d
|
Add README with repo layout, local dev, smoke test, deploy commands
|
2026-06-11 20:11:39 +00:00 |
|
tes
|
2701b8a483
|
Add docker-compose.yml for Coolify deploy + gitignore deploy.json
|
2026-06-11 20:05:58 +00:00 |
|
tes
|
645a7e3722
|
Persist data-protection keys to /keys when present (Coolify volume)
|
2026-06-11 19:05:41 +00:00 |
|
tes
|
88339c51eb
|
Add multi-stage Dockerfile (backend + client tarball)
|
2026-06-11 19:04:45 +00:00 |
|
tes
|
a7e5e13ac8
|
Add Python client placeholders for bundle build (full impl in Plan 3)
|
2026-06-11 19:04:18 +00:00 |
|
tes
|
751030dcef
|
Add InstallScriptBuilder + GET /install.sh + GET /client.tar.gz
|
2026-06-11 19:03:33 +00:00 |
|
tes
|
e5ae228738
|
Add /api/devices CRUD (list, get, rename, revoke) with owner scoping
|
2026-06-11 19:00:42 +00:00 |
|
tes
|
b5be4c6914
|
Add /api/pair-code (auth) + /api/pair (public) endpoints
|
2026-06-11 18:56:41 +00:00 |
|
tes
|
db5c4e59a4
|
Add PairingService with safe alphabet and 10-min TTL
|
2026-06-11 18:53:32 +00:00 |
|
tes
|
720583de0a
|
Add PairingCode entity + migration
|
2026-06-11 18:51:18 +00:00 |
|
tes
|
b862bf6f0f
|
Add DeviceTokenService (random token, SHA-256 hash, fixed-time verify)
|
2026-06-11 18:48:39 +00:00 |
|
tes
|
3e9c245bb3
|
Fix Task 6: Device FK to AspNetUsers + SystemSettings singleton Id pin
|
2026-06-11 18:46:42 +00:00 |
|
tes
|
68e7e81312
|
Add Device, DeviceConfig, SystemSettings entities and seed defaults
|
2026-06-11 18:41:27 +00:00 |
|
tes
|
a1aa5023a2
|
Fix Task 5 review issues: per-test ApiFactory, drop dead RoleManager param + EF Core using
|
2026-06-11 18:38:37 +00:00 |
|
tes
|
2a208e81b2
|
Add /api/auth/{register,login,logout,me} with first-user-is-admin rule
|
2026-06-11 18:34:07 +00:00 |
|
tes
|
8a7d01ac9e
|
Add ASP.NET Identity (cookie auth) and role seeding
|
2026-06-11 18:26:34 +00:00 |
|
tes
|
824a27520d
|
Fix: clean up SQLite WAL/SHM sidecars in ApiFactory.Dispose
|
2026-06-11 18:22:33 +00:00 |
|