Skip to content

Prometheus v0.9.19

Choose a tag to compare

@github-actions github-actions released this 02 Nov 19:33
· 18 commits to main since this release
47a2538

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_watch task fires again when watchdog 7 is installed. watchdog 7.0 (2026-10-31) matches a handler's patterns against the whole path, so *.json stopped matching /dir/result.json and 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_watch instead 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 anatomy tool'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: true restores the old text. The /anatomy command you run yourself is unchanged.
  • Each chat response names the model that answered: served_by on POST /api/chat and on the chat_done frame, and prometheus.served_by on /v1/chat/completions (on the final chunk when streamed). When a fallback answers instead of the configured model, served_by names the fallback. /v1's model still echoes the key you asked for.

Upgrading from 0.9.18

  • Nothing to do beyond the upgrade. If a file_watch task 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.