hermes-bot c19df81858
ci/woodpecker/pr/ci-scripts-test Pipeline was successful
ci/woodpecker/pr/ci-manifests-test Pipeline was successful
ci/woodpecker/pr/review-bot-test Pipeline was successful
feat(review-bot): Anthropic web fetch for upstream release notes
Renovate PR bodies do not cover every dependency (kaniko from
registry.gitlab.com has no source URL, so Renovate links no notes), and
the reviewer had no way to read upstream changes. The Anthropic backend
now offers the server-side web fetch tool when WEB_FETCH_DOMAINS is set;
the deployment sets github.com,gitlab.com.

- Version web_fetch_20250910 (basic): later versions turn on code
  execution for dynamic filtering. max_uses 10 (WEB_FETCH_MAX_USES),
  max_content_tokens 20000 per page.
- Anthropic only fetches URLs that appeared in a user message, a client
  tool result or an earlier fetch/search result; MCP connector results do
  not count. So the task message now lists the https links of the PR body
  on the allowed domains (no userinfo, deduplicated, at most 20), marked
  as untrusted data. Without web fetch the task is unchanged.
- Tool guard: a server_tool_use other than web_fetch, or web_fetch while
  it is off, is a violation, so the review is not posted.
- Network policy: unchanged. The fetch runs on Anthropic's side; the pod
  still only talks to Gitea (Traefik) and the model APIs.
2026-11-09 06:42:25 +00:00
2026-11-04 03:05:56 +00:00

homelab

GitOps source for the Renner homelab cluster. Flux applies main to production, so every merge is a production change. Changes go in by pull request only; see CONTRIBUTING.md for YAML conventions.

Change rules that protect Home Assistant

Owner decision (REN-240, REN-243). Home Assistant runs the house, so it gets two rules on top of normal review.

1. Disruptive work runs only 02:00–05:00 Europe/Berlin

Planned work that can restart Home Assistant or disrupt the cluster is merged and applied only between 02:00 and 05:00 Europe/Berlin. That covers:

  • node drain, node reboot, Talos upgrade
  • CNI (Cilium, Multus) and cluster-wide network policy
  • storage (Rook/Ceph, CSI, snapshot controller, CNPG operator)
  • Flux core (kubernetes/clusters/*/flux-system/, Flux controllers)
  • Authentik
  • OpenBao, including secret rotation that restarts consumers
  • anything in kubernetes/apps/home-assistant/

A PR in this list states in its description that it waits for the window. Flux applies on merge, so "wait for the window" means merge in the window, not just apply. If unsure whether a change is disruptive, treat it as disruptive.

Not covered: Home Assistant image bumps by Flux image automation. They stay fully automatic by owner decision. If one breaks Home Assistant, roll it back with RUNBOOK-home-assistant-image-rollback.md. An incident rollback is not planned work; the owner decides its timing.

Also not covered, by owner decision: the Hermes ha-updates job (kubernetes/apps/hermes/skills/ha-updates/) installs HACS and device-firmware updates that Home Assistant offers, and restarts Home Assistant for them, on its own inside the 02:00–05:00 window (UniFi and SMLIGHT firmware excluded; reported only). The window is enforced by its ha.py, not only by the prompt.

2. HA-impact review before merge

Every PR that touches kubernetes/apps/home-assistant/, or makes a cluster-wide disruptive change from the list above, needs an HA-impact review before merge: a named reviewer states in the PR what Home Assistant will notice (restart, lost integration, lost history, none) and approves.

  • Reviewer: Hestia, the Home Assistant maintainer.
  • Until the owner hands this review to Hestia (the hestia Hermes profile, which today only states the expected impact in its PRs): the owner does the HA-impact review.

This is in addition to the normal review and merge by Argus. Argus does not merge such a PR without the HA-impact approval.

S
Description
No description provided
Readme
38 MiB
master
Latest
2026-01-31 15:05:31 +00:00
Languages
Go 35.6%
Shell 24.4%
Python 22.4%
Jinja 5.1%
HCL 4.8%
Other 7.6%