Commit Graph

20 Commits

Author SHA1 Message Date
7d2fbaea43 added bot class and rbac style auth with dynamic help msg base on roles 2026-03-18 19:29:59 -04:00
a19b1c7e60 Add Signal location command backed by Home Assistant 2026-03-18 19:29:59 -04:00
4e3273d5ec fixed tree fmt and removed chat with images 2026-03-14 11:49:44 -04:00
b5ee7c2dc2 added logging 2026-03-14 11:49:44 -04:00
958b06ecf0 added auth cashe 2026-03-14 11:49:44 -04:00
71ad8ab29e removed comand prefix 2026-03-14 11:49:44 -04:00
f1e394565d migrated to tanasty and added dead letter queue 2026-03-14 11:49:44 -04:00
3a3267ee9a fixed ruff warning 2026-03-14 11:49:44 -04:00
6365dd8067 updated the van inventory to use the api 2026-03-14 11:49:44 -04:00
a6fbbd245f fixed safety number logic 2026-03-14 11:49:44 -04:00
7ad321e5e2 moved device registry to postgresql 2026-03-14 11:49:44 -04:00
14338e34df updated BotConfig 2026-03-14 11:49:44 -04:00
c73aa5c98a setup context manger for SignalClient and LLMClient 2026-03-14 11:49:44 -04:00
f762f12bd2 added max retry and retry back off to run_loop 2026-03-14 11:49:44 -04:00
ab5df442c6 reworked dispatch 2026-03-14 11:49:44 -04:00
Claude
f11c9bed58 Remove LLMConfig, pass LLM settings directly to LLMClient
LLMConfig was an unnecessary intermediary — LLMClient now takes
model, host, and port directly as constructor args.

https://claude.ai/code/session_01AKXQBuVBsW7J1YbukDiQ7A
2026-03-14 11:49:44 -04:00
Claude
ab2d8dbd51 Remove unused LLMConfig from BotConfig
LLMConfig was stored in BotConfig but never accessed after
construction — LLMClient receives it directly.

https://claude.ai/code/session_01AKXQBuVBsW7J1YbukDiQ7A
2026-03-14 11:49:44 -04:00
Claude
42ede19472 Replace polling with WebSocket for real-time Signal message reception
Switch from polling /v1/receive every 2s to a persistent WebSocket
connection at ws://.../v1/receive/<number>. Messages now arrive
instantly via the signal-cli-rest-api WebSocket endpoint.

- Add `listen()` generator to SignalClient using websockets library
- Extract `_parse_envelope()` as standalone function
- Replace `run_loop` polling with WebSocket listener + reconnect logic
- Remove `poll_interval` from BotConfig and CLI args
- Add websockets to Nix overlay and pyproject.toml dependencies

https://claude.ai/code/session_01AKXQBuVBsW7J1YbukDiQ7A
2026-03-14 11:49:44 -04:00
Claude
f4f33eacc4 Run ruff format on Python files
https://claude.ai/code/session_01AKXQBuVBsW7J1YbukDiQ7A
2026-03-14 11:49:44 -04:00
Claude
51f6cd23ad add Signal command and control bot service
Python service for jeeves that communicates over Signal via signal-cli-rest-api.
Implements device verification via safety numbers (unverified devices cannot
run commands until verified over SSH), and a van inventory command that uses
an LLM on BOB (ollama) to parse receipt photos or text lists into structured
inventory data. The LLM backend is configurable to swap models easily.

https://claude.ai/code/session_01AKXQBuVBsW7J1YbukDiQ7A
2026-03-14 11:49:44 -04:00