Commit graph

9 commits

Author SHA1 Message Date
86268107fa classifier: Add fallback model for transient LLM failures
The 26b model occasionally hangs or fails outright on the local Ollama
box, which used to drop every such update into 'manual' for no good
reason. Retry the same prompt with a smaller model before giving up,
and surface both errors when even the fallback fails.

OLLAMA_FALLBACK_MODEL is new config, see .env.sample.
2026-10-06 22:10:07 +09:00
7e15e63dae classifier: Point at gemma4:26b and retry transient fetches
Every classification returned "HTTP Error 404" because the configured
model gemma4:26b-64k no longer exists on the Ollama host: the tag was
retired upstream and the local weights were deleted, so all pending
updates fell back to manual review. Switch to the current gemma4:26b
tag (25.2B, 262k context) and make it explicit in .env so the
classifier no longer depends on the code default matching reality.

PieFed intermittently returned an empty body, which surfaced as a
current version error in the digest. Retry version fetches with a
short backoff so one bad response no longer triggers an alert.

Leave-one-out validation for the new model: immich 6/7 (the miss is
the conditional-breaking example where the model follows the written
rule that thresholds below the running version do not apply),
freshrss 6/6, uptime-kuma 4/4.
2026-09-14 05:37:37 +00:00
f55f3d8e91 feat: Add AI-driven auto-update & restructure into package
The monolithic check_updates.py has been split into the update_monitor/
package with separate modules for fetching, extraction, comparison,
classification, and notification. This makes the codebase easier to
navigate and test.

The flat services.yaml is replaced by per-service directories under
services/<name>/config.yaml, co-locating config with update scripts
and AI review examples.

When --auto-update is enabled, services with an auto-update.sh script
get their release notes classified by a local Ollama model (using
few-shot examples from review-examples/) to decide whether the update
can be applied automatically or needs manual admin intervention. Results
are reported in a single consolidated Matrix message.

Immich is the first service with auto-update configured, using 7
real release note examples to train the classifier.
2026-04-09 12:49:57 +00:00
f34e2f2d08 feat: Add Uptime Kuma version check via Socket.IO
Retrieve the running Uptime Kuma version by authenticating over
Socket.IO and reading the info event. This adds a new login_socket
dataset field, the fetch_socket_info helper, and the python-socketio
and websocket-client dependencies.
2026-03-19 04:17:18 +00:00
413766ed2b feat: Add scheduled runs and Kuma ping
Add systemd user units for daily execution and send an Uptime Kuma push on each run.
2026-03-12 15:34:00 +00:00
4ab799c156 feat: Add Matrix notifications
Send Matrix alerts for updates and errors, and document the required bot credentials.
2026-03-12 15:23:45 +00:00
7c778e338c feat: Drop Radicale checks
Remove the Radicale service entry and related auth configuration now that updates are handled by the OS package manager.
2026-03-12 14:20:51 +00:00
7537de2f53 feat: Add authenticated service checks
Support FreshRSS login with challenge hashing, add GitHub token usage, and update service metadata for Immich and PeerTube.
2026-03-12 13:57:37 +00:00
95cd8e0906 feat: Add update checker tooling
Add the initial dataset, version checker, tests, and project setup files so the update checker can be run and validated.
2026-03-12 12:50:08 +00:00