summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2026-09-28Replace restart.sh with assistant.sh start|stop|restart|statusDanilo M.4-54/+101
start leaves a running assistant or overlay alone and starts only what is missing; restart is the old restart.sh. status lists each process with its uptime, memory and children, a stray arecord left by a dead assistant, the socket, the presentation/gaming pause flags and the log's last lines, and exits 1 if either process is down. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28Record the openWakeWord hey_jarvis trialDanilo M.1-0/+46
Logging-only trial, nothing wired into the assistant. The pretrained model catches every attempt in a quiet room and with quiet music, but only 3 of 8 under music at normal volume, and pipewire here has no echo canceller to remove it. The options are listed for a later decision. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28Keep tool calls in history, with placeholder resultsDanilo M.2-5/+35
History kept only what was said, so after a few factual answers the model saw no tool behind them and invented the next one: asked for pending updates it made up counts without calling the tool (1/10 on a replayed session). Keeping each turn's tool calls brings it back to 10/10. Their results are replaced by a placeholder, which scores the same and keeps the context close to what it was; a follow-up on an old result calls the tool again. The window is now the last 10 whole turns. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28Record the HDMI sink suspend fix for the clipped first wordDanilo M.1-0/+6
The 0.3 s lead silence no longer covered the wake-up of the default sink, now on HDMI. A WirePlumber rule outside the repo keeps that sink from suspending. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Use beam search in whisper, tell the model about misheard wordsDanilo M.2-0/+20
Whisper wrote "Che ori sono?" twice in one day and the model once answered with the weather. On 10 recorded short questions beam search (beam_size=5) gets 9 right against 8 for greedy, for 0.06 s more; an initial prompt also got 9 but lost one question entirely, so it is not used. The default system prompt now says the user's words come from speech recognition and should be read by how they sound: on "Che ori sono?" stray tool calls went from 1 in 10 to none, other tools unaffected. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Stamp the time on each question, ask for digits, add a temperature keyDanilo M.3-2/+30
With the clock only in the system prompt, "what time is it?" asked again an hour later copied the old answer from history. The current question now carries the date and time too; history stays unstamped, because stamping every message made the model drop tool arguments (the finance account filter went from 6/6 to 0/6). Gemma garbles numbers it spells out in Italian ("trent settler"), 3 in 10 time answers. The default system prompt asks for digits, which Kokoro reads correctly: 20/20 clean. temperature in config.toml is sent with every request; unset keeps the llama-server preset's, which other clients share. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Add a Slackware updates tool and a restart scriptDanilo M.5-1/+331
updates.py compares the -current ChangeLog with the installed package database: the newest batch holding an installed package is the last one applied, everything newer is pending. The spoken summary gives counts, security fixes and a kernel bump, never package lists; report=true writes a full markdown recap and opens it in MD_EDITOR, detached. restart.sh stops a running assistant and its quickshell overlay and starts both again in their own session. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Document the overlay and record its findingsDanilo M.3-1/+50
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Emit state, context and audio levels from the voice loopDanilo M.1-6/+71
speaking comes from the reply thread, not the speaker: the tool announcement would otherwise replace the tool state while the tool is still running. arecord gets a 33 ms period, because it writes its file in periods and the default left the user's waves at 8 levels a second; the context size is read at startup so the first hello carries it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Broadcast assistant events on a Unix socket for the overlayDanilo M.1-2/+107
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Notify when a press is ignored in presentation or gaming modeDanilo M.1-6/+25
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Compute audio levels for the overlayDanilo M.1-0/+38
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Add implementation plan for the assistant overlayDanilo M.1-0/+1000
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Add design spec for the assistant overlayDanilo M.1-0/+170
A quickshell overlay fed by a JSON-lines Unix socket the assistant owns: state, tool, context use and real audio levels. Ignored presses send a notification instead. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Log the prompt token count of every LLM roundDanilo M.2-1/+24
Asks llama-server for usage in the stream, so the log shows how full the model's context is; history, tool definitions and tool results all count. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Read controller batteries, stop the model guessing system factsDanilo M.3-3/+39
- Game controllers report battery through their kernel driver, not BlueZ: bluetooth.sh falls back to the power supply named after the device address. - Asked for a VM's IP after a listing without one, the model made one up without calling a tool. The default system prompt now says facts about the user's computer, devices, accounts, mail, calendar or money come only from a tool, or it says it does not know. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Add bluetooth and vms example toolsDanilo M.5-0/+107
Read-only: bluetoothctl show/devices/info and virsh list, domstate, dominfo and domifaddr. Connecting devices and handling VMs are phase 2. The DHCP lease source is empty for bridged guests, so the VM's IP comes from ARP or the guest agent. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Pause during games too, not only in presentation modeDanilo M.2-7/+27
The status registry's effective presentation is the OR of the manual flag and status.gaming, which the shell's game detector writes; statusctl presentation get reads only the manual half and printed 0 with a game running. presenting() now reads both files. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Let a button press cut the current reply (barge-in)Danilo M.2-36/+87
Every press bumps a turn counter and kills the running aplay; queued audio from an older turn is dropped, and reply() now runs on its own thread and returns once its turn is stale, so the button loop is never blocked. A cut-off exchange is left out of history so user and assistant messages still alternate. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Fix mail counts and finance ranges found testing liveDanilo M.5-18/+68
- mail printed threads and the model called them emails; it now reports messages and threads. - finance spending takes a since date (default the first of the month) instead of a day count, and an optional asset account. The per-account listing needs an end date or the API rejects it; an unknown account name gets the user's accounts back. - Tool errors are capped at 2000 characters like normal output. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Add calc, mail, playing and finance example toolsDanilo M.8-4/+153
All read-only: each command is fixed in its tool file, so the model fills parameters but can never reach mailctl tag or firefly tx add. qalc reads "17.5% of 240" as a modulo, so the calc hint shows percent as a factor. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Document the config folder, the tools and the live testDanilo M.2-3/+77
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Fix issues found testing the tools liveDanilo M.3-7/+16
- The model has no clock and invented a 2025 start date for the calendar; the system prompt now carries the current date and time. - It also derived a wrong weekday from a date; agenda.py prints the weekday itself. - An announcement ran straight into the answer; a 0.6 s pause follows it. - The calendar days hint asks for 30 or more when looking for the next event. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Add weather tool on OpenWeatherMap, reusing the conky cache for homeDanilo M.2-0/+81
A bare city name is ambiguous for the API (plain "Rome" and "Roma" both resolve to Rome, US), so the parameter asks the model for City,CC and the output names the country. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Add calendar tool reading the vdirsyncer folder directlyDanilo M.2-0/+170
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Add example config and the now and search toolsDanilo M.4-0/+73
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Let the model call tools, with a spoken note while slow ones runDanilo M.1-17/+79
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Load tools from the config folder and run them without a shellDanilo M.1-0/+89
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Read settings from config.toml over built-in defaultsDanilo M.1-18/+70
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Add implementation plan for tools and the config folderDanilo M.1-0/+1016
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Add design spec for tools and the config folderDanilo M.1-0/+242
Phase 1 of 2: read-only tools (time, calendar, weather, search) defined as shell-command TOML files in a config folder, plus config.toml for the settings that are constants today. Modifying tools get their own spec after phase 1 is tested live. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Use the system kokoro-onnx package, drop the venvDanilo M.4-31/+10
kokoro-onnx is now packaged (python3-kokoro-onnx, without espeakng-loader) and finds the system espeak-ng with its default config, so the explicit EspeakConfig and the .venv setup go away. Tested live: two Italian questions answered and spoken correctly. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26AGENTS.md: record removal of unused piper and whisper modelsDanilo M.1-5/+7
Piper voices and ggml-base/small are gone from /data/voice-models; the installed piper-tts and python3-pathvalidate packages remain. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25Add push-to-talk voice assistant loopDanilo M.6-0/+1086
The microphone's mute button is the push-to-talk: the ALSA Mic Capture Switch starts and stops a recording. whisper-server (large-v3-turbo, Vulkan on the Arc) transcribes it, the model already resident in llama-server answers, and Kokoro speaks the reply sentence by sentence. Only Italian and English are spoken, so detection is restricted to those two; the voice follows the language of the reply, not of the question. Presses are ignored while presentation mode is on, so calls keep the mic. AGENTS.md records the backend, model and voice comparisons behind these choices. Licensed GPLv2 only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>