| Age | Commit message (Collapse) | Author | Files | Lines |
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
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>
|
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
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>
|
|
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>
|
|
- 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>
|
|
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>
|
|
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>
|
|
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>
|
|
- 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>
|
|
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>
|
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
- 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>
|
|
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>
|
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|