Commit graph

6 commits

Author SHA1 Message Date
e56ef34a32 feat: Add Uptime Kuma auto-update
Docker compose update via SSH to abraham.jeena.net. Review examples
include real v2.x patches as auto and the v1→v2 migration as manual,
plus a synthetic v2→v3 breaking change example.

Also fix test_classifier.py version derivation for x.0.0 releases
where patch decrement would produce the same version, causing the
model to see a nonsensical "upgrading from 2.0.0 to 2.0.0" prompt.
2026-04-14 01:54:25 +00:00
7c2a7a98e7 feat: Add Open WebUI auto-update
Simple local Docker update via existing update.sh script. Context
file tells the classifier this is a single Docker instance, so
database migration warnings aimed at multi-worker deployments are
correctly classified as auto.
2026-04-13 10:35:11 +00:00
7c2bf2c23b feat: Add Jellyfin auto-update
Jellyfin runs in Docker locally, so the auto-update is a simple
docker compose pull and up. Review examples include real patch and
security releases as auto, and one real major release (v10.11.0
with DB refactor) plus a synthetic example of Docker-breaking
changes (volume path changes) as manual.
2026-04-13 10:12:34 +00:00
ea90b8569b feat: Add Grafana auto-update & improve classifier
Add auto-update for Grafana on Synology via SSH + docker compose,
with review examples and a context.txt describing the specific setup
(Prometheus + Node Exporter, no plugins) so the classifier can
ignore plugin-only breaking changes.

The classifier now loads an optional context.txt per service to
tailor decisions to the actual deployment. It also truncates large
release notes intelligently, keeping important sections (breaking
changes, deprecations, migration notes) while dropping long PR
lists that add no signal.

test_classifier.py now also loads context.txt and accepts any
service name as argument.
2026-04-13 03:57:22 +00:00
67a9509eaa feat: Add PeerTube & PieFed auto-update, improve classifier
Add auto-update scripts and review examples for PeerTube and PieFed,
bringing total auto-updating services to three.

The classifier now includes the current and target version in the
prompt so it can correctly evaluate conditional upgrade notes like
"follow v8.1.0 instructions if upgrading from <= v8.0.2". Without
this context the model would conservatively flag patch releases as
manual.

All auto-update wrappers now use `bash -euo pipefail` when calling
remote scripts so failures in upstream deploy/upgrade scripts
propagate correctly instead of silently succeeding.

test_classifier.py now accepts a service name argument and derives
realistic version numbers from the release notes for testing.
2026-04-12 23:13:26 +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