Repository navigation
Prometheus v0.9.19
Prometheus 0.9.19 — beta
0.9.19 is a small patch release. Its fix: file_watch tasks never fired with watchdog 7 (fresh pip and Homebrew installs of 0.9.18). It also:
- installs watchdog from a wheel on a Mac with Python 3.14, so file_watch is event-driven there again;
- names the model that answered on every chat response (
served_by); - sends a keyed llama.cpp server its key from
oara doctor, the anatomy scan and the terminal chat; - keeps hostnames and addresses out of what the model is told about your machines.
The fix
- Tasks: a
file_watchtask fires again when watchdog 7 is installed. watchdog 7.0 (2026-10-31) matches a handler's patterns against the whole path, so*.jsonstopped matching/dir/result.jsonand the task waited until its timeout. 0.9.18 allows watchdog 7, so a fresh pip install on Linux or on a Mac with Python 3.13 or older, and the Homebrew formula, got it; installs from the lock (the Mac app,scripts/deploy.sh) kept 6.0.0. The file's name is now matched against the pattern the same way the check for a file that is already there does.
Also
- Install: watchdog is a base dependency on every platform again, from 7.0, the first release with macOS wheels for Python 3.14. 0.9.18 skipped it on exactly that platform; a Mac on Python 3.14 now installs it from a wheel and gets event-driven
file_watchinstead of polling. Polling stays for an install without watchdog. - Models:
oara doctor's Inference row, the anatomy scan and the terminal chat now ask a llama.cpp server started with an API key with that key, so a keyed server no longer shows as not responding and the chat can read its model and chat template. The key is the model's own (model.api_key_env), read from the environment and then the env file. A named variable that is set in neither is reported by name instead of as "not responding". - The model is no longer told where your machines are. The Infrastructure section of its prompt and the
anatomytool's answers keep what the machines can do (CPU, RAM, GPU and VRAM, the model, its engine, context window and vision) and leave out hostnames, IP addresses, URLs, the tailnet peer list and the folder a model file sits in, on local and hosted models alike. Before, a reply could quote the model server's address or list your tailnet peers.anatomy.include_addresses: truerestores the old text. The/anatomycommand you run yourself is unchanged. - Each chat response names the model that answered:
served_byonPOST /api/chatand on thechat_doneframe, andprometheus.served_byon/v1/chat/completions(on the final chunk when streamed). When a fallback answers instead of the configured model,served_bynames the fallback./v1'smodelstill echoes the key you asked for.
Upgrading from 0.9.18
- Nothing to do beyond the upgrade. If a
file_watchtask never fired on 0.9.18, it fires on 0.9.19; re-create any that timed out. - Linux with the AppArmor profile: if you have not yet installed 0.9.18's profile, do it now (see the 0.9.18 notes); 0.9.19 adds no new rules.