Compare commits

..

86 Commits

Author SHA1 Message Date
Alexandre
3807f42ad8 Revert "update whatsapper to 1.2.1 (#3069)"
This reverts commit d303089c5e.
2026-09-18 11:22:03 +02:00
GitHub Actions
88c22562c0 Revert "update whatsapper to 1.2.1 (#3069)"
This reverts commit d303089c5e.
2026-09-18 08:19:09 +00:00
Lorenzo Farnararo
d303089c5e update whatsapper to 1.2.1 (#3069) 2026-09-18 10:16:26 +02:00
github-actions
26e15e15e1 GitHub bot: changelog [nobuild] 2026-09-18 05:18:24 +00:00
Alexandre
d139e977bf Update config.yaml 2026-09-18 07:13:19 +02:00
github-actions
0206ccaf34 GitHub bot: changelog [nobuild] 2026-09-18 03:21:46 +00:00
Alexandre
443d93c739 Update config.yaml 2026-09-18 05:16:10 +02:00
github-actions
dacc4abef9 GitHub bot: changelog [nobuild] 2026-09-17 13:51:31 +00:00
Alexandre
c0bb781e6b Update config.yaml 2026-09-17 15:45:18 +02:00
github-actions
dcc21988e3 GitHub bot: changelog [nobuild] 2026-09-17 10:23:46 +00:00
Alexandre
47363725ea Update config.yaml 2026-09-17 12:17:36 +02:00
github-actions
b42a6ac3aa GitHub bot: changelog [nobuild] 2026-09-17 05:55:48 +00:00
Alexandre
f61b3b95d3 Update config.yaml 2026-09-17 07:49:33 +02:00
github-actions
15a2abe451 GitHub bot: changelog [nobuild] 2026-09-16 15:54:51 +00:00
Alexandre
4c1038916d Update config.yaml 2026-09-16 17:49:36 +02:00
github-actions
71bbdb0929 GitHub bot: changelog [nobuild] 2026-09-16 14:04:48 +00:00
Alexandre
41f0863702 Update config.yaml 2026-09-16 15:58:39 +02:00
github-actions
8fec8556e8 GitHub bot: changelog [nobuild] 2026-09-16 11:35:30 +00:00
Alexandre
3ec897fa38 Update config.yaml 2026-09-16 13:29:08 +02:00
GitHub Actions
5a4d7b2f8c Revert "Update config.yaml"
This reverts commit b519002cea.
2026-09-16 09:01:55 +00:00
Alexandre
b519002cea Update config.yaml 2026-09-16 10:58:36 +02:00
github-actions
bad72b9451 GitHub bot: changelog [nobuild] 2026-09-15 10:03:57 +00:00
Alexandre
4028564991 Update config.yaml 2026-09-15 11:57:02 +02:00
GitHub Actions
096db771fc Revert "birdnet-go-dev: bump to 20260915 (upstream sync, PR updates)"
This reverts commit 58e98fb63c.
2026-09-15 07:11:59 +00:00
BirdNET-Go Addon Builder
58e98fb63c birdnet-go-dev: bump to 20260915 (upstream sync, PR updates) 2026-09-15 09:05:40 +02:00
dependabot[bot]
40d0401ccd build(deps): bump home-assistant/builder from 2026.06.0 to 2026.09.0 (#3065)
Bumps [home-assistant/builder](https://github.com/home-assistant/builder) from 2026.06.0 to 2026.09.0.
- [Release notes](https://github.com/home-assistant/builder/releases)
- [Commits](https://github.com/home-assistant/builder/compare/2026.06.0...2026.09.0)

---
updated-dependencies:
- dependency-name: home-assistant/builder
  dependency-version: 2026.09.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-15 07:23:11 +02:00
dependabot[bot]
883b38cacc build(deps): bump anthropics/claude-code-action from 1.0.216 to 1.0.222 (#3066)
Bumps [anthropics/claude-code-action](https://github.com/anthropics/claude-code-action) from 1.0.216 to 1.0.222.
- [Release notes](https://github.com/anthropics/claude-code-action/releases)
- [Commits](d75b94d5ad...56cf60fde4)

---
updated-dependencies:
- dependency-name: anthropics/claude-code-action
  dependency-version: 1.0.222
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-15 07:22:17 +02:00
github-actions
80821a7d9a Github bot : image compressed 2026-09-13 23:13:02 +00:00
Alexandre
e7f8c37695 Remove scheduled linting from lint.yml
Removed scheduled linting from the workflow.
2026-09-13 07:13:33 +02:00
Alexandre
88faf503fb fix(transmission): let incomplete-dir stay off across restarts (#3063)
* fix(transmission): let incomplete-dir stay off across restarts

01-config.sh rewrites Transmission's settings.json on every restart,
deriving "incomplete-dir-enabled" purely from whether incomplete_dir is
non-empty. Since incomplete_dir defaults to a non-empty path, any toggle
made in Transmission's own Web UI was silently overwritten back to enabled
on the next restart (#3059).

Add incomplete_dir_enabled (bool, default true): setting it to false writes
the disabled state on every restart instead of forcing it back on. The
default of true preserves normal existing configurations unchanged; the two
edge cases it also touches were already latent bugs, see below.

While touching this line: bashio::config's own default-value argument
cannot be an empty string (bash's ${2:-null} treats "" as unset), so an
install whose incomplete_dir key was entirely absent, or literally the four
characters "null", returned bashio's own "null" fallback and would have
created a directory named "null". Normalized that explicitly; both now
disable instead.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* fix(transmission): keep incomplete-dir enabled on upgrade in standalone mode

The previous commit relied on bashio::config's default argument to treat
an absent incomplete_dir_enabled as true. The standalone shim
(.templates/bashio-standalone.sh), injected by 00-banner.sh when the image
runs without Supervisor, ignores that argument and returns "" for a
missing key, so an upgraded standalone install would have silently
disabled its incomplete directory.

Treat anything but an explicit "false" as enabled instead. That covers
real bashio ("null") and the shim ("") alike, and drops the default
argument altogether.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-13 07:10:57 +02:00
github-actions[bot]
b88c5c5826 Update stargazer map & cache 2026-09-13 00:55:02 +00:00
github-actions
daa146a444 GitHub bot: changelog [nobuild] 2026-09-12 17:59:36 +00:00
Alexandre
cda4232fa1 Update version to 20260912.3 in config.yaml 2026-09-12 19:59:06 +02:00
Alexandre
194f220224 Update version to 20260912.2 in config.yaml 2026-09-12 19:53:18 +02:00
alexbelgium
be69aed455 Updater bot : librespeed updated to 6.3.0 (upstream 6.3.0) 2026-09-12 19:27:23 +02:00
alexbelgium
502800f9bf Updater bot : jackett updated to 0.24.2572 (upstream 0.24.2572) 2026-09-12 19:27:03 +02:00
alexbelgium
1ea89fc150 Updater bot : immich_openvino updated to 3.2.0.2 (upstream 3.2.0) 2026-09-12 19:26:53 +02:00
alexbelgium
69efa09f54 Updater bot : immich_noml updated to 3.2.0.2 (upstream 3.2.0) 2026-09-12 19:26:49 +02:00
alexbelgium
ae1f85229b Updater bot : immich_cuda updated to 3.2.0.2 (upstream 3.2.0) 2026-09-12 19:26:41 +02:00
alexbelgium
3dbf317fa0 Updater bot : immich updated to 3.2.0.2 (upstream 3.2.0) 2026-09-12 19:26:37 +02:00
alexbelgium
2c42b37819 Updater bot : epicgamesfree updated to 2026.09.12 (upstream debian-2026-09-12) 2026-09-12 19:25:53 +02:00
github-actions
358f6da616 GitHub bot: changelog [nobuild] 2026-09-12 16:40:15 +00:00
Alexandre
2273c360fc Update config.yaml 2026-09-12 18:34:08 +02:00
Alexandre
9443356b36 docs(skill): ask "is this the simplest way possible" before implementing (#3062)
* docs(skill): ask "is this the simplest way possible" before implementing

Every question the loop asks — of me and of Codex — is about what could go
wrong, and each answer argues for more code. Nothing pushed the other way
until the maintainer asked, and by then the code existed.

On PR #3061 that cost a 309-line Python registry client to read one OCI
label, in a script whose neighbouring branch does the same kind of job in
inline curl and jq. The plan review and the code review both passed it.
Asked outright, Codex said to delete all 309 lines; the inline version came
to 21 and returned byte-identical output on every image tested. It is the
second time the question has had to come from the maintainer.

Step 3 now asks it before any code exists, of myself in writing and of Codex
as a question of its own with the smaller alternative sketched out to argue
for. Step 5 gains an Idiom check, on whether a hunk looks like the code it
sits beside. Adding a new file or a new mechanism now means the full loop
however small the diff looks, and codex-review.md records that Codex will
never raise proportionality unprompted but answers it bluntly when asked.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* docs(skill): give the proportionality self-question a home on the light path

Three independent reviewers on #3062 (CodeRabbit, Codex, Copilot) all caught
the same gap: the self-question and its written answer lived only inside step
3, marked full-loop-only, while the light path went straight from scope to
implement. A light task following the documented sequence never reached the
instruction telling it to ask "is this the simplest way?" at all.

Moved the self-question (and the written answer it requires) into the shared
triage section, before the light/full-loop split, so both paths ask it before
implementing. Step 3 now only adds Codex to that question, for full loop.

Also: clarified that a version bump plus its CHANGELOG entry is release
bookkeeping, not a "new file", so it does not trigger the light-to-full-loop
escalation on its own (Codex's second finding on #3062, which read the
one-file threshold as counting every file the PR touches rather than whether
a new mechanism was added). Fixed step 5's stale "six questions" to seven,
after Idiom was added in the prior commit. Fixed simplify.md's case study to
say the 309-line client was "initially proposed", not shipped, matching the
prior PR's own body.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* docs(skill): split "test the smaller candidate" by whether the diff exists yet

CodeRabbit on #3062 caught that step 3's "build the smaller one and run it"
never says to compare it against the larger candidate, only to run it. As
written it applied at plan time, before either candidate has code — where the
larger candidate is a plan, not a diff, so there is nothing to compare against
without building both in full, which defeats the point of picking the cheaper
one first. Testing the smaller sketch against the actual requirement is the
correct and complete check there.

The comparison CodeRabbit is describing is real, but it happens at step 6, not
step 3: by the time code review runs, the larger candidate already exists as
the diff, so sketching the smaller one and diffing its output against the
shipped code costs nothing extra and is exactly what settled #3061. Moved the
build-and-compare instruction there instead of applying it, unchanged, to a
step where nothing exists to compare against yet.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 17:04:54 +02:00
Alexandre
500c083c5e fix(updater): publish the version the image holds, not the app's newest release (#3061)
The immich addons do not build immich, they build FROM
ghcr.io/imagegenius/immich, a rebuild that lags immich upstream by days to
weeks. updater.json tracked immich-app/immich, so the addon was published as
3.2.0 two days after that release while the image behind the floating :3 tag
still carried immich 3.1.0 (issue #3060), and because the stored upstream
version already read 3.2.0, nothing would have rebuilt the addon once the
image caught up.

Add source: container, which resolves the exact image reference the addon
builds from and reads org.opencontainers.image.version out of it, and point
the four immich addons at it. The manifest digest is recorded alongside the
version so that a publisher republishing the same version under new content
is not mistaken for no change. An image with nothing readable leaves the
addon untouched.

Written as inline curl and jq, in the style of the dockerhub branch above it.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 16:49:40 +02:00
alexbelgium
e06b6d1c68 Updater bot : flaresolverr updated to 3.5.2 (upstream 3.5.2) 2026-09-12 04:48:45 +02:00
alexbelgium
660982e641 Updater bot : claude_desktop updated to 07308545.8 (upstream v3.2.4+claude1.52386.3) 2026-09-12 04:47:49 +02:00
alexbelgium
38eac4c510 Updater bot : zzz_archived_code-server updated to 4.137.0 (upstream 4.137.0) 2026-09-12 01:33:26 +02:00
alexbelgium
b97824acfc Updater bot : wger updated to 2.8.0-dev.0 (upstream 2.8.0-dev.0) 2026-09-12 01:33:05 +02:00
alexbelgium
6d78111022 Updater bot : webtop_kde updated to 4.16.0.97 (upstream 4.16-r0-ls93) 2026-09-12 01:32:59 +02:00
alexbelgium
626991ec4d Updater bot : tdarr updated to 2.87.01 (upstream 2.87.01) 2026-09-12 01:31:57 +02:00
alexbelgium
439f1e0e8f Updater bot : tandoor_recipes updated to 2.6.15 (upstream 2.6.15) 2026-09-12 01:31:54 +02:00
alexbelgium
f2fef2e816 Updater bot : spotify_to_plex updated to 1.0.109 (upstream 1.0.109) 2026-09-12 01:31:46 +02:00
alexbelgium
3089be5346 Updater bot : sonarr updated to 4.0.20.3012 (upstream 4.0.20.3012) 2026-09-12 01:31:39 +02:00
alexbelgium
55f20e87b7 Updater bot : social_to_mealie updated to 1.7.3 (upstream 1.7.3) 2026-09-12 01:31:34 +02:00
alexbelgium
147ebeb3bc Updater bot : signalk updated to 2.32.0 (upstream 2.32.0) 2026-09-12 01:31:30 +02:00
alexbelgium
620dadf8fa Updater bot : scrutiny_fa updated to v1.74.1 (upstream v1.74.1) 2026-09-12 01:31:12 +02:00
alexbelgium
7bfa34980b Updater bot : scrutiny updated to v1.74.1 (upstream v1.74.1) 2026-09-12 01:31:08 +02:00
alexbelgium
7fa4b08359 Updater bot : sabnzbd updated to 5.1.3 (upstream 5.1.3) 2026-09-12 01:31:02 +02:00
alexbelgium
8338f5767c Updater bot : prowlarr updated to 2.6.4.5611.15 (upstream nightly-2.6.4.5611-ls15) 2026-09-12 01:30:42 +02:00
alexbelgium
6424f68cff Updater bot : plex updated to 1.43.4.10903.324 (upstream 1.43.4.10903-e5521bd8c-ls324) 2026-09-12 01:30:30 +02:00
alexbelgium
fe392aba1a Updater bot : nzbget updated to v26.3.263 (upstream v26.3-ls263) 2026-09-12 01:30:09 +02:00
alexbelgium
287e95e5ab Updater bot : nextcloud updated to 34.0.4 (upstream 34.0.4) 2026-09-12 01:30:04 +02:00
alexbelgium
edf585e652 Updater bot : manyfold updated to 0.149.0 (upstream 0.149.0) 2026-09-12 01:29:38 +02:00
alexbelgium
aa85189f69 Updater bot : maintainerr updated to 3.28.0 (upstream 3.28.0) 2026-09-12 01:29:33 +02:00
alexbelgium
d79cb11c50 Updater bot : linkwarden updated to 2.16.3 (upstream 2.16.3) 2026-09-12 01:29:28 +02:00
alexbelgium
81d10f3be8 Updater bot : joplin updated to 3.7.2 (upstream 3.7.2) 2026-09-12 01:29:11 +02:00
alexbelgium
49c6fbca2d Updater bot : jellyfin updated to 12.0 (upstream 12.0) 2026-09-12 01:29:04 +02:00
alexbelgium
8ad14ad6ce Updater bot : jackett updated to 0.24.2558 (upstream 0.24.2558) 2026-09-12 01:28:59 +02:00
alexbelgium
05f394d511 Updater bot : immich_openvino updated to 3.2.0 (upstream 3.2.0) 2026-09-12 01:28:50 +02:00
alexbelgium
92ee1438dd Updater bot : immich_noml updated to 3.2.0 (upstream 3.2.0) 2026-09-12 01:28:45 +02:00
alexbelgium
c51c4c00a0 Updater bot : immich_cuda updated to 3.2.0 (upstream 3.2.0) 2026-09-12 01:28:36 +02:00
alexbelgium
2ed1fdcdc6 Updater bot : immich updated to 3.2.0 (upstream 3.2.0) 2026-09-12 01:28:31 +02:00
alexbelgium
c2bb8209ba Updater bot : grav updated to 2.1.2 (upstream 2.1.2) 2026-09-12 01:28:24 +02:00
alexbelgium
d807435165 Updater bot : free_games_claimer updated to 2.1.1 (upstream 1.9) 2026-09-12 01:28:10 +02:00
alexbelgium
116131efd4 Updater bot : epicgamesfree updated to 2026.09.11 (upstream debian-2026-09-11) 2026-09-12 01:27:45 +02:00
alexbelgium
c66c41b596 Updater bot : ente updated to 4.4.28 (upstream 1.7.29) 2026-09-12 01:27:41 +02:00
alexbelgium
ac19165c2f Updater bot : emby_beta updated to 4.10.0.40 (upstream 4.10.0.40) 2026-09-12 01:27:30 +02:00
alexbelgium
11706236ca Updater bot : emby updated to 4.10.0.40 (upstream 4.10.0.40) 2026-09-12 01:27:25 +02:00
alexbelgium
b53dd0556e Updater bot : comicarr updated to 0.38.15 (upstream 0.38.15) 2026-09-12 01:27:15 +02:00
alexbelgium
2135aa10f2 Updater bot : codex updated to 2.3.0 (upstream 2.3.0) 2026-09-12 01:27:08 +02:00
alexbelgium
15c9da9fb3 Updater bot : claude_desktop updated to 07308545.7 (upstream v3.2.4+claude1.49585.0) 2026-09-12 01:26:56 +02:00
alexbelgium
8b742240b2 Updater bot : changedetection.io updated to 0.60.4 (upstream 0.60.4) 2026-09-12 01:26:52 +02:00
alexbelgium
962c3b736d Updater bot : browserless_chrome updated to 2.56.7 (upstream 2.56.7) 2026-09-12 01:26:40 +02:00
alexbelgium
e8dc044d99 Updater bot : browser_brave updated to 1.95.101-ls128 (upstream 1.95.101-ls128) 2026-09-12 01:26:25 +02:00
alexbelgium
4e79ac84e5 Updater bot : autobrr updated to 1.86.0 (upstream 1.86.0) 2026-09-12 01:25:18 +02:00
285 changed files with 542 additions and 170 deletions

View File

@@ -33,8 +33,20 @@ Triage first, then one of two paths:
the plan → implement → simplify → Codex reviews the code → **simplify again** → PR → resolve
comments → verify in production → report.
Escalate mid-flight if a light task grows — touches a default, needs a new script or service, or
reveals a deeper problem.
Before implementing, on **either** path, ask yourself the proportionality question and answer
it in the plan (a one-line plan, for a light task) — in writing, naming the smaller version you
rejected and why:
> What is the smallest thing that solves this? What would you delete from what I just proposed?
> If it had to be written in ten lines, in the idiom of the code it sits beside, what would be
> lost — and is any of that a case I have actually demonstrated?
Escalate mid-flight if a light task grows — touches a default, needs a new script or service,
reveals a deeper problem, or turns out to need more than the one file once you have honestly
answered that question. A light task never skips it; it skips **Codex** only while the answer
stays inside one file. Adding a **new file or a new mechanism** puts it on the full loop, however
small the diff looks — a version bump and its CHANGELOG entry are release bookkeeping, not a new
file for this purpose, and never trigger it on their own.
**Standing rule:** ship the simplest solution that works, and build it out of what already
exists — a `.templates/` module, an existing cont-init script, the pattern a sibling add-on
@@ -113,6 +125,16 @@ plan:
Levels 4-6 need a reason that survives being said out loud ("upstream has no knob for this, and I
checked" is one; "it felt cleaner" is not) and mean full loop.
**Full loop adds Codex to the proportionality question already asked above** — put it to Codex as
a numbered question of its own, with the smaller alternative sketched out for it to argue for.
Every other question in the loop asks what could go wrong, which only ever argues for more code;
this is the one place that pushes the other way, and it is worthless unless asked outright — see
`references/codex-review.md`. Nothing is built yet at this step, so "test" means against the real
requirement, not against the other candidate — sketch the smaller one and check it against what
the add-on actually needs; that sketch is what you go on to implement if it holds up, not one of
two things you build. A sketch costs minutes and settles the argument with a measurement instead
of a preference.
Attack your own plan before implementing:
- What does this do on a host **unlike this one** — no GPU, small `/dev/shm`, aarch64, a VM?
- What happens on **upgrade** to someone who configured this by hand?
@@ -123,7 +145,8 @@ Attack your own plan before implementing:
where that input arrives (the standing rule above) and go and look, before you write it.
Full loop only, before writing code: get Codex's independent read on the plan, delegated as above —
`references/codex-review.md` has the invocation and how to write the prompt.
`references/codex-review.md` has the invocation and how to write the prompt. The proportionality
question above goes in that prompt every time, and in the step 6 prompt too.
## 4. Implement
@@ -145,7 +168,7 @@ path.
## 5. Simplify
Six questions over your own diff, before anyone else reads it:
Seven questions over your own diff, before anyone else reads it:
- **Level** — did the diff stay at the ladder level chosen in step 3, or creep up one?
- **Deletion** — can this be solved by deleting instead of adding?
@@ -153,6 +176,10 @@ Six questions over your own diff, before anyone else reads it:
- **Reuse** — does any hunk reimplement what `.templates/`, another script in this add-on, or a
sibling add-on already does? If a future add-on hits this problem, will it find one way to solve
it or two? Fold near-duplicates in, or justify the divergence in the PR body.
- **Idiom** — does this look like the code it sits beside? The same kind of job done two ways in
one file costs every later reader more than the nicer of the two ways saves. Reuse asks whether
the mechanism already exists; Idiom asks whether you wrote yours the way the neighbours are
written.
- **Depth** — is this a special case bolted onto shared infrastructure? Fix the shared mechanism
instead once more than one add-on hits it; generalising from a single case is how bespoke
designs get built, so below that bar the special case is the right call.
@@ -177,6 +204,12 @@ you have now demonstrated, or one you have merely been told about? Taking a
correctness objection often deletes the code that made it necessary, and a fix that collapses back
to fewer lines than you started the review with is the normal outcome, not a suspicious one.
Then ask the proportionality question again, of the diff this time — it is cheap, and by now
there is real code to point at rather than a plan. This is where "build the smaller one and test
both" is actually free: the larger candidate already exists as the diff, so sketch the smaller
alternative and diff its output against the shipped code on the same inputs, the way #3061 was
settled (`references/simplify.md`) — rather than against the requirement alone.
These edits land after step 4's checks already ran, so re-run them: `scripts/validate.sh <addon>
--vs-master` plus the behavioural tests, over the final diff. Deleting a branch is exactly the
kind of edit that leaves a stray `fi` behind.

View File

@@ -27,6 +27,10 @@ codex exec --model gpt-5.6-sol --sandbox read-only --skip-git-repo-check \
- **Plan review (step 3):** include the files to read, your measurements **with numbers**, the
proposed changes, and explicit instructions to challenge you. Ask direct questions ("is this
really add-on-fixable?", "give the precise flag set") rather than "review this".
- **The proportionality question, in both reviews, as a numbered question of its own:** "is this
the simplest way possible, and what exactly would you delete?" Sketch the smaller alternative in
the prompt and ask it to argue for that, and quote the repo's standing simplicity rule so it has
the bar to hold you to. Ask for lines and functions to delete, not a direction.
- **Code review (step 6):** point it at `git diff origin/master...HEAD` plus the reasoning behind
each hunk. Ask specifically what breaks: upgrade paths, hosts unlike this one, users who
configured things by hand. Ask directly whether a simpler mechanism would achieve the same
@@ -41,3 +45,8 @@ confirmations with the same scepticism as its objections — especially about th
**Its objections only ever argue for more code** — it is asked what could go wrong, never whether
the branch it wants is reachable. Sort them before writing anything; SKILL.md step 6 is that pass.
**Unprompted it will never say "this is too much".** Asked outright it will, bluntly and usefully:
on PR #3061 it answered "delete all 309 lines" of a helper both its earlier reviews had passed
without comment. Expect it to reverse an earlier position when you ask it to re-examine one — a
stance it drops that easily was never strongly held, which is itself the answer.

View File

@@ -30,6 +30,17 @@ Being able to build the complicated thing is not a reason to.
It took the maintainer asking "is this the simplest way possible?" to run the pass that step 6
now requires.
- The immich updater fix (issue #3060, PR #3061) initially proposed a **309-line Python registry
client** to read one OCI label, into a script whose neighbouring `dockerhub` branch does the same kind of
job in a handful of inline `curl | jq` lines. Both the plan review and the code review passed
it, because both were asked what could break rather than what it should cost. Asked "is this the
simplest way possible?", Codex answered "delete all 309 lines"; the inline version came to 21
and was measured to return byte-identical output on all five images. About a third of what went
was defending cases never observed in this repo — an architecture mismatch, a hostile label, an
unsupported registry — each of which already failed closed on its own. Second time the
maintainer has had to ask the question, which is why step 3 now asks it before any code exists
and step 5 asks whether the hunk looks like its neighbours.
## Where SKILL.md step 5's questions get hard
**Deletion is not automatically the safe direction.** The `/dev/shm` case in `evidence.md` is a

View File

@@ -250,6 +250,7 @@ F4bsi,Germany,
Fabaderheld,Austria,
Fabeuss,France,
Fabian-Eigenherd,Germany,
Fabiot9,,2026-09-13
Faithfinder,Canada,
FallsSteven,,2026-08-10
Felitendo,Germany,
@@ -471,6 +472,7 @@ MNDani,,2026-08-10
MTHarden,United States,
MYLE-01,New Zealand,
MaBeniu,,2026-08-10
Maboroshi0327,,2026-09-13
MachinaDev,,2026-08-10
Madelena,United States,
MagicMau,,2026-08-10
@@ -515,6 +517,7 @@ Mofx-01,,2026-08-10
Mokdeze,,2026-08-10
MondoGao,United States,
Moosh-be,Belgium,
Moozzuzz,,2026-09-13
MrAct1on,United States,
MrCraigen,,2026-08-10
MrHacky,,2026-08-10
@@ -952,6 +955,7 @@ austinmccalley,,2026-08-10
autodeck,United Kingdom,
aviadlevy,,2026-08-10
aviv926,,2026-08-10
axelburks,United States,2026-09-13
axute,Germany,
azerioxal,United States,
azure1922,,2026-08-10
@@ -1043,6 +1047,7 @@ brettmiller,United States,
brewston,,2026-08-10
brianalexander,,2026-08-10
brianm71,,2026-08-10
brietman,,2026-09-13
brittek,Australia,
brokec,,2026-08-10
brunerm99,,2026-08-10
@@ -1451,6 +1456,7 @@ gh-residante,,2026-08-10
ghisch,,2026-08-10
gieljnssns,Belgium,
gigatexel,,2026-08-10
gilberth,Peru,2026-09-13
gileswells,United States,
giotec,,2026-08-10
git-mdumont,,
@@ -1771,6 +1777,7 @@ ldec,,2026-08-10
ldkdev,Viet Nam,
le-pet,,2026-08-10
lead0r,,2026-08-10
leaskovski,,2026-09-13
legovaer,Belgium,
legusha,,2026-08-10
lehnerpat,,2026-08-10
@@ -2001,6 +2008,8 @@ najdias,Portugal,
nalditopr,,2026-08-10
nana4rider,Japan,
naor1,Israel,
narmod,,2026-09-13
nascentt,,2026-09-13
natbrood,,2026-08-10
nate-marshall,,2026-08-10
nduest,Germany,
@@ -2583,6 +2592,7 @@ w10devheh,,2026-08-10
waako,,2026-08-10
walduino,,2026-08-10
wangjiezhe,China,
wannes-wagemans,Belgium,2026-09-13
warbringer,,2026-08-10
wardbeyens,Belgium,
warkurre86,,2026-08-10
1 username country last_checked
250 Fabaderheld Austria
251 Fabeuss France
252 Fabian-Eigenherd Germany
253 Fabiot9 2026-09-13
254 Faithfinder Canada
255 FallsSteven 2026-08-10
256 Felitendo Germany
472 MTHarden United States
473 MYLE-01 New Zealand
474 MaBeniu 2026-08-10
475 Maboroshi0327 2026-09-13
476 MachinaDev 2026-08-10
477 Madelena United States
478 MagicMau 2026-08-10
517 Mokdeze 2026-08-10
518 MondoGao United States
519 Moosh-be Belgium
520 Moozzuzz 2026-09-13
521 MrAct1on United States
522 MrCraigen 2026-08-10
523 MrHacky 2026-08-10
955 autodeck United Kingdom
956 aviadlevy 2026-08-10
957 aviv926 2026-08-10
958 axelburks United States 2026-09-13
959 axute Germany
960 azerioxal United States
961 azure1922 2026-08-10
1047 brewston 2026-08-10
1048 brianalexander 2026-08-10
1049 brianm71 2026-08-10
1050 brietman 2026-09-13
1051 brittek Australia
1052 brokec 2026-08-10
1053 brunerm99 2026-08-10
1456 ghisch 2026-08-10
1457 gieljnssns Belgium
1458 gigatexel 2026-08-10
1459 gilberth Peru 2026-09-13
1460 gileswells United States
1461 giotec 2026-08-10
1462 git-mdumont
1777 ldkdev Viet Nam
1778 le-pet 2026-08-10
1779 lead0r 2026-08-10
1780 leaskovski 2026-09-13
1781 legovaer Belgium
1782 legusha 2026-08-10
1783 lehnerpat 2026-08-10
2008 nalditopr 2026-08-10
2009 nana4rider Japan
2010 naor1 Israel
2011 narmod 2026-09-13
2012 nascentt 2026-09-13
2013 natbrood 2026-08-10
2014 nate-marshall 2026-08-10
2015 nduest Germany
2592 waako 2026-08-10
2593 walduino 2026-08-10
2594 wangjiezhe China
2595 wannes-wagemans Belgium 2026-09-13
2596 warbringer 2026-08-10
2597 wardbeyens Belgium
2598 warkurre86 2026-08-10

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 67 KiB

BIN
.github/stats.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

@@ -125,7 +125,7 @@ jobs:
- name: Analyse and fix
if: steps.batch.outputs.count != '0'
uses: anthropics/claude-code-action@d75b94d5ad426cb8546e6628b6f5f19b84e5cce1 # v1
uses: anthropics/claude-code-action@56cf60fde42f7b19c3abfd5c9c48b69a1288461f # v1
with:
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
# Skip the OIDC -> Claude App token exchange. The scheduled path

View File

@@ -7,8 +7,6 @@ on:
- "**/config.*"
pull_request:
branches: [ master ]
schedule:
- cron: "0 0 * * 0"
workflow_dispatch:
permissions:

View File

@@ -64,7 +64,7 @@ jobs:
fetch-depth: 1
- name: Run Claude Code
uses: anthropics/claude-code-action@d75b94d5ad426cb8546e6628b6f5f19b84e5cce1 # v1
uses: anthropics/claude-code-action@56cf60fde42f7b19c3abfd5c9c48b69a1288461f # v1
with:
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
# AI_PR_TOKEN, not GITHUB_TOKEN, so a PR Claude opens triggers CI.

View File

@@ -135,7 +135,7 @@ jobs:
- name: Execute the plan
if: steps.bundle.outputs.has_plan == 'true'
uses: anthropics/claude-code-action@d75b94d5ad426cb8546e6628b6f5f19b84e5cce1 # v1
uses: anthropics/claude-code-action@56cf60fde42f7b19c3abfd5c9c48b69a1288461f # v1
with:
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
# Skip the OIDC -> Claude App token exchange, which 401s whenever

View File

@@ -166,7 +166,7 @@ jobs:
id: classify
if: github.event_name != 'issue_comment' || steps.claim.outputs.go == 'true'
continue-on-error: true
uses: anthropics/claude-code-action@d75b94d5ad426cb8546e6628b6f5f19b84e5cce1 # v1
uses: anthropics/claude-code-action@56cf60fde42f7b19c3abfd5c9c48b69a1288461f # v1
with:
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
# Without this the action falls back to the OIDC -> Claude App token

View File

@@ -79,7 +79,7 @@ jobs:
- name: Address CodeRabbit comments
if: steps.claim.outputs.go == 'true'
uses: anthropics/claude-code-action@d75b94d5ad426cb8546e6628b6f5f19b84e5cce1 # v1
uses: anthropics/claude-code-action@56cf60fde42f7b19c3abfd5c9c48b69a1288461f # v1
with:
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
# Skip the OIDC -> Claude App token exchange, which 401s whenever

View File

@@ -306,7 +306,7 @@ jobs:
id: build
if: steps.info.outputs.build_arch == 'true' && steps.info.outputs.has_dockerfile == 'true'
continue-on-error: true
uses: home-assistant/builder/actions/build-image@2026.06.0
uses: home-assistant/builder/actions/build-image@2026.09.0
with:
arch: ${{ matrix.arch }}
cache-gha: "false"
@@ -331,7 +331,7 @@ jobs:
# else for the retry to be skipped from.
- name: Build ${{ matrix.addon }} add-on (retry after failed attempt)
if: steps.build.outcome == 'failure'
uses: home-assistant/builder/actions/build-image@2026.06.0
uses: home-assistant/builder/actions/build-image@2026.09.0
with:
arch: ${{ matrix.arch }}
cache-gha: "false"

2
.gitignore vendored
View File

@@ -0,0 +1,2 @@
# Bytecode of the python helpers in the addons, which rootfs/ copies into the image
__pycache__/

View File

@@ -1,4 +1,8 @@
- Migrate legacy add-on configuration map names to current app configuration terminology.
## 2026.09 (2026-09-12)
- New `source: container` for addons that build `FROM` an image published by someone else. The version is read from the `org.opencontainers.image.version` label of the exact image reference in `updater.json`, instead of from the releases of the application's own repository. Written against `ghcr.io`; an image with no such label leaves the addon untouched
- `source: container` also records the manifest digest in `upstream_digest` and rebuilds when it moves, so a publisher republishing the same version under a new image is no longer invisible
## 2026.08 (2026-08-01)
- Addon versions written in config.yaml now always comply with Home Assistant versioning: an upstream tag Home Assistant cannot order (`version-bf9e0b4f`, `ubuntu-2026-06-01`, ...) or would sort as older (`1.2.3-2`, `1.2.3+4`) no longer lands in config.yaml. The addon number is incremented instead, while the raw upstream tag stays in updater.json so the same release is never published twice

View File

@@ -67,12 +67,46 @@ You can add the following tags in the file :
- repository: 'name/repo' coming from github
- paused: true # Pauses the updates
- slug: the slug name from your addon
- source: dockerhub/github,gitlab,bitbucket,pip,hg,sf,website-feed,local,helm_chart,wiki,system,wp,codeberg (Codeberg is supported via its Gitea API, which is configured automatically)
- upstream_repo: name/repo, example is 'linuxserver/docker-emby'
- source: container/dockerhub/github,gitlab,bitbucket,pip,hg,sf,website-feed,local,helm_chart,wiki,system,wp,codeberg (Codeberg is supported via its Gitea API, which is configured automatically)
- upstream_repo: name/repo, example is 'linuxserver/docker-emby'. With `source: container` it is instead a full image reference, example is 'ghcr.io/imagegenius/immich:3'
- upstream_version: automatically populated, corresponds to the current upstream version referenced in the addon
- dockerhub_by_date: in dockerhub, uses the last_update date instead of the version
- dockerhub_list_size: in dockerhub, how many containers to consider for latest version
### Addons built on someone else's image
An addon that does not build the application itself, but builds `FROM` an image a third party
publishes, must publish the version that image holds and not the newest release of the
application. `ghcr.io/imagegenius/immich:3` is a rebuild of immich lagging its upstream by days
to weeks: tracking `immich-app/immich` published a version the addon did not contain, and left
the addon with no reason to rebuild once the image finally caught up.
`source: container` reads the version out of the image itself. Set `upstream_repo` to the exact
image reference used in `build.json`, tag included:
```json
{
"source": "container",
"upstream_repo": "ghcr.io/imagegenius/immich:3"
}
```
The version comes from the image's `org.opencontainers.image.version` label, read from the first
linux image the tag publishes, and the addon is left alone when there is no label to read. Written
against `ghcr.io`, which serves anonymous pull tokens from `https://ghcr.io/token`; a registry
authenticating differently, such as Docker Hub, yields no version and the addon is skipped.
The manifest digest is recorded next to the version, in `upstream_digest`, and the addon is
rebuilt when either of the two moves. A publisher rebuilding the same version, for a base image
security fix or a packaging revision, repoints the tag at new content under an unchanged label,
and the digest is the only thing that says so. `upstream_digest` is populated automatically; seed
it by hand when migrating an addon to this source, or the first run counts the unknown digest as
a change and rebuilds once for nothing.
The label is metadata the publisher chooses. Some images carry none, and some record their own
packaging revision rather than the application version, so this source is opt-in per addon and
never a default.
### Addon version numbering
The `version` written in the addon `config.yaml` is the one Home Assistant compares to decide whether an update is available. Home Assistant hides the update when it can order both versions and the new one is not strictly newer (`1.2.3` -> `1.2.3-2` is a semver pre-release, so it is *older*), and it cannot order tags such as `version-bf9e0b4f` or `ubuntu-2026-06-01` at all.

View File

@@ -30,4 +30,4 @@ schema:
slug: updater
udev: true
url: https://github.com/alexbelgium/hassio-addons/tree/master/addons_updater
version: "2026.08"
version: "2026.09"

View File

@@ -109,6 +109,7 @@ for f in */; do
EXCLUDE_TEXT="${EXCLUDE_TEXT:-zzzzzzzzzzzzzzzz}"
PAUSED=$(jq -r .paused updater.json)
DATE="$(date "$DATE_FORMAT")"
LASTDIGEST=""
BYDATE=$(jq -r .dockerhub_by_date updater.json)
# Number of elements to check in dockerhub
@@ -195,6 +196,45 @@ for f in */; do
&& LASTVERSION="$LASTVERSION-$DATE"
LOGINFO="... $SLUG : bydate is true, version is $LASTVERSION" && if [ "$VERBOSE" = true ]; then bashio::log.info "$LOGINFO"; fi
elif [[ "$SOURCE" = container ]]; then
# The addon builds FROM an image someone else publishes rather
# than from the application itself, so the version to publish is
# the one inside that image and not the newest release of the
# application repository, which the image can lag by weeks
LOGINFO="... Source is container" && if [ "$VERBOSE" = true ]; then bashio::log.info "$LOGINFO"; fi
ACCEPT="application/vnd.oci.image.index.v1+json,application/vnd.docker.distribution.manifest.list.v2+json,application/vnd.oci.image.manifest.v1+json,application/vnd.docker.distribution.manifest.v2+json"
REGISTRY="${UPSTREAM%%/*}"
IMAGE="${UPSTREAM#*/}"
IMAGEREPO="${IMAGE%:*}"
BASEURL="https://$REGISTRY/v2/$IMAGEREPO"
HEADERS="$(mktemp)"
# The digest the tag resolves to is the one the registry answers
# with, and it moves whenever anything behind the tag does
TOKEN="$(curl -f -L -s "https://$REGISTRY/token?scope=repository:$IMAGEREPO:pull&service=$REGISTRY" | jq -r '.token // empty')" || true
MANIFEST="$(curl -f -L -s -D "$HEADERS" -H "Authorization: Bearer $TOKEN" -H "Accept: $ACCEPT" "$BASEURL/manifests/${IMAGE##*:}")" || true
LASTDIGEST="$(sed -n 's/^[Dd]ocker-[Cc]ontent-[Dd]igest:[[:space:]]*//p' "$HEADERS" | tr -d '\r')"
rm -f "$HEADERS"
# A multi architecture tag answers with an index, whose first
# image is read: the attestations buildx attaches alongside
# describe no architecture and hold no image configuration
CHILD="$(echo "$MANIFEST" | jq -r 'first(.manifests[]? | select(.platform.os == "linux" and .platform.architecture != "unknown") | .digest) // empty')" || true
if [ -n "$CHILD" ]; then
MANIFEST="$(curl -f -L -s -H "Authorization: Bearer $TOKEN" -H "Accept: $ACCEPT" "$BASEURL/manifests/$CHILD")" || true
fi
# Publishers record the application version of an image in its
# OCI label, which is what the addon actually ships
LASTVERSION="$(curl -f -L -s -H "Authorization: Bearer $TOKEN" "$BASEURL/blobs/$(echo "$MANIFEST" | jq -r '.config.digest // empty')" \
| jq -r '.config.Labels["org.opencontainers.image.version"] // empty')" || true
if [ -z "$LASTVERSION" ] || [ -z "$LASTDIGEST" ]; then
bashio::log.warning "... $SLUG : no version could be read from $UPSTREAM, skipping"
continue
fi
else
# Use source as upstream
@@ -344,8 +384,19 @@ for f in */; do
continue
fi
# What the addon was last built against. A container source adds the
# digest of the image: a publisher rebuilding the same version, for a
# base image fix or a packaging revision, repoints the tag at new
# content under an unchanged label, and only the digest says so
CURRENTSTATE="$CURRENT"
LASTSTATE="$LASTVERSION"
if [[ "$SOURCE" = container ]]; then
CURRENTSTATE="$CURRENT $(jq -r '.upstream_digest // ""' updater.json)"
LASTSTATE="$LASTVERSION $LASTDIGEST"
fi
# Update if needed
if [ "${CURRENT}" != "${LASTVERSION}" ]; then
if [ "${CURRENTSTATE}" != "${LASTSTATE}" ]; then
LOGINFO="... $SLUG : update from ${CURRENT} to ${LASTVERSION}" && if [ "$VERBOSE" = true ]; then bashio::log.info "$LOGINFO"; fi
ADDONFOLDER="/data/${BASENAME}/${SLUG}"
@@ -405,7 +456,9 @@ for f in */; do
# Replace upstream tag and date, keeping the file intact if jq
# fails as a truncated updater.json would lose the addon source
if ! UPDATERJSON="$(jq --arg version "$LASTVERSION" --arg date "$DATE" '.upstream_version = $version | .last_update = $date' "$ADDONFOLDER/updater.json")"; then
if ! UPDATERJSON="$(jq --arg version "$LASTVERSION" --arg date "$DATE" --arg digest "${LASTDIGEST:-}" \
'.upstream_version = $version | .last_update = $date | if $digest == "" then . else .upstream_digest = $digest end' \
"$ADDONFOLDER/updater.json")"; then
bashio::log.error "... $SLUG : updater.json could not be updated, reverting"
git checkout -- "$ADDONFOLDER"
continue

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -1,4 +1,7 @@
## 1.86.0 (2026-09-12)
- Update to latest version from autobrr/autobrr (changelog : https://github.com/autobrr/autobrr/releases)
## 1.85.0 (2026-08-29)
- Update to latest version from autobrr/autobrr (changelog : https://github.com/autobrr/autobrr/releases)

View File

@@ -16,7 +16,7 @@
ARG BUILD_FROM
ARG BUILD_VERSION
ARG BUILD_UPSTREAM="1.85.0"
ARG BUILD_UPSTREAM="1.86.0"
FROM ${BUILD_FROM}
##################

View File

@@ -108,4 +108,4 @@ schema:
slug: autobrr
udev: true
url: https://github.com/alexbelgium/hassio-addons/tree/master/autobrr
version: "1.85.0"
version: "1.86.0"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -1,8 +1,8 @@
{
"last_update": "2026-08-29",
"last_update": "2026-09-12",
"repository": "alexbelgium/hassio-addons",
"slug": "autborr",
"source": "github",
"upstream_repo": "autobrr/autobrr",
"upstream_version": "1.85.0"
"upstream_version": "1.86.0"
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -1,3 +1,25 @@
## 20260919 (18-09-2026)
- Minor bugs fixed
## 20260918 (18-09-2026)
- Minor bugs fixed
## 20260917.2 (17-09-2026)
- Minor bugs fixed
## 20260917.1 (17-09-2026)
- Minor bugs fixed
## 20260917 (17-09-2026)
- Minor bugs fixed
## 20260916.2 (16-09-2026)
- Minor bugs fixed
## 20260916.1 (16-09-2026)
- Minor bugs fixed
## 20260916 (16-09-2026)
- Minor bugs fixed
## 20260915 (15-09-2026)
- Minor bugs fixed
## 20260912.2 (12-09-2026)
- Minor bugs fixed
## 20260912 (12-09-2026)
- Minor bugs fixed
## 20260910.4 (11-09-2026)
- Minor bugs fixed
## 20260910.3 (11-09-2026)

View File

@@ -127,5 +127,5 @@ slug: birdnet-go-dev
udev: true
url: https://github.com/alexbelgium/hassio-addons
usb: true
version: "20260910.4"
version: "20260919"
video: true

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -1,3 +1,6 @@
## 1.95.101-ls128 (2026-09-12)
- Update to latest version from linuxserver/docker-brave (changelog : https://github.com/linuxserver/docker-brave/releases)
- Migrate legacy add-on configuration map names to current app configuration terminology.
## 1.94.121-ls127 (2026-09-05)

View File

@@ -69,5 +69,5 @@ slug: brave
tmpfs: true
udev: true
url: https://github.com/alexbelgium/hassio-addons
version: "1.94.121-ls127"
version: "1.95.101-ls128"
video: true

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -1,9 +1,9 @@
{
"github_fulltag": "true",
"last_update": "2026-09-05",
"last_update": "2026-09-12",
"repository": "alexbelgium/hassio-addons",
"slug": "brave",
"source": "github",
"upstream_repo": "linuxserver/docker-brave",
"upstream_version": "1.94.121-ls127"
"upstream_version": "1.95.101-ls128"
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -1,3 +1,6 @@
## 2.56.7 (2026-09-12)
- Update to latest version from browserless/chrome (changelog : https://github.com/browserless/chrome/releases)
- Migrate legacy add-on configuration map names to current app configuration terminology.
## 2.56.3 (2026-09-05)

View File

@@ -86,5 +86,5 @@ schema:
slug: browserless_chrome
udev: true
url: https://github.com/alexbelgium/hassio-addons/tree/master/browserless_chrome
version: "2.56.3"
version: "2.56.7"
webui: "[PROTO:ssl]://[HOST]:[PORT:3000]/docs"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -1,9 +1,9 @@
{
"github_tagfilter": "v",
"last_update": "2026-09-05",
"last_update": "2026-09-12",
"repository": "alexbelgium/hassio-addons",
"slug": "browserless_chrome",
"source": "github",
"upstream_repo": "browserless/chrome",
"upstream_version": "2.56.3"
"upstream_version": "2.56.7"
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -1,4 +1,7 @@
## 0.60.4 (2026-09-12)
- Update to latest version from linuxserver/docker-changedetection.io (changelog : https://github.com/linuxserver/docker-changedetection.io/releases)
## 0.60.3 (2026-09-05)
- Update to latest version from linuxserver/docker-changedetection.io (changelog : https://github.com/linuxserver/docker-changedetection.io/releases)

View File

@@ -34,4 +34,4 @@ schema:
slug: changedetection.io
udev: true
url: https://github.com/alexbelgium/hassio-addons/tree/master/changedetection.io
version: "0.60.3"
version: "0.60.4"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -1,9 +1,9 @@
{
"github_fulltag": "false",
"last_update": "2026-09-05",
"last_update": "2026-09-12",
"repository": "alexbelgium/hassio-addons",
"slug": "changedetection.io",
"source": "github",
"upstream_repo": "linuxserver/docker-changedetection.io",
"upstream_version": "0.60.3"
"upstream_version": "0.60.4"
}

View File

@@ -1,3 +1,11 @@
## 07308545.8 (2026-09-12)
- Update to latest version from aaddrick/claude-desktop-debian (changelog : https://github.com/aaddrick/claude-desktop-debian/releases)
- Upstream tag : v3.2.4+claude1.52386.3
## 07308545.7 (2026-09-12)
- Update to latest version from aaddrick/claude-desktop-debian (changelog : https://github.com/aaddrick/claude-desktop-debian/releases)
- Upstream tag : v3.2.4+claude1.49585.0
- Migrate legacy add-on configuration map names to current app configuration terminology.
## 07308545.6 (2026-09-05)

View File

@@ -136,5 +136,5 @@ schema:
slug: claude_desktop
udev: true
url: https://github.com/alexbelgium/hassio-addons
version: "07308545.6"
version: "07308545.8"
video: true

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -4,6 +4,6 @@
"github_fulltag": true,
"slug": "claude_desktop",
"paused": false,
"upstream_version": "v3.2.3+claude1.40609.1",
"last_update": "2026-09-05"
"upstream_version": "v3.2.4+claude1.52386.3",
"last_update": "2026-09-12"
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -1,3 +1,6 @@
## 2.3.0 (2026-09-12)
- Update to latest version from ajslater/codex (changelog : https://github.com/ajslater/codex/releases)
- Migrate legacy add-on configuration map names to current app configuration terminology.
## 2.2.11 (2026-08-29)

View File

@@ -101,4 +101,4 @@ schema:
slug: codex
udev: true
url: https://github.com/alexbelgium/hassio-addons
version: "2.2.11"
version: "2.3.0"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -1,9 +1,9 @@
{
"github_beta": "true",
"last_update": "2026-08-29",
"last_update": "2026-09-12",
"repository": "alexbelgium/hassio-addons",
"slug": "codex",
"source": "github",
"upstream_repo": "ajslater/codex",
"upstream_version": "2.2.11"
"upstream_version": "2.3.0"
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -1,4 +1,7 @@
## 0.38.15 (2026-09-12)
- Update to latest version from frankieramirez/comicarr (changelog : https://github.com/frankieramirez/comicarr/releases)
## 0.38.7 (2026-09-05)
- Update to latest version from frankieramirez/comicarr (changelog : https://github.com/frankieramirez/comicarr/releases)

View File

@@ -16,7 +16,7 @@
ARG BUILD_FROM
ARG BUILD_VERSION
ARG BUILD_UPSTREAM="0.38.7"
ARG BUILD_UPSTREAM="0.38.15"
FROM ghcr.io/frankieramirez/comicarr:${BUILD_UPSTREAM}
##################

View File

@@ -102,4 +102,4 @@ schema:
slug: comicarr
udev: true
url: https://github.com/alexbelgium/hassio-addons/tree/master/comicarr
version: "0.38.7"
version: "0.38.15"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -1,10 +1,10 @@
{
"github_beta": "false",
"github_fulltag": false,
"last_update": "2026-09-05",
"last_update": "2026-09-12",
"repository": "alexbelgium/hassio-addons",
"slug": "comicarr",
"source": "github",
"upstream_repo": "frankieramirez/comicarr",
"upstream_version": "0.38.7"
"upstream_version": "0.38.15"
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -1,3 +1,6 @@
## 4.10.0.40 (2026-09-12)
- Update to latest version from linuxserver/docker-emby (changelog : https://github.com/linuxserver/docker-emby/releases)
- Migrate legacy add-on configuration map names to current app configuration terminology.
## 4.9.5.0 (2026-05-19)

View File

@@ -121,5 +121,5 @@ schema:
slug: emby
udev: true
url: https://github.com/alexbelgium/hassio-addons/tree/master/emby
version: "4.9.5.0"
version: "4.10.0.40"
video: true

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -1,9 +1,9 @@
{
"github_beta": "false",
"last_update": "2026-05-19",
"last_update": "2026-09-12",
"repository": "alexbelgium/hassio-addons",
"slug": "emby",
"source": "github",
"upstream_repo": "linuxserver/docker-emby",
"upstream_version": "4.9.5.0"
"upstream_version": "4.10.0.40"
}

View File

@@ -1,3 +1,6 @@
## 4.10.0.40 (2026-09-12)
- Update to latest version from linuxserver/docker-emby (changelog : https://github.com/linuxserver/docker-emby/releases)
- Migrate legacy add-on configuration map names to current app configuration terminology.
## 4.10.0.30 (2026-09-05)

View File

@@ -16,7 +16,7 @@
ARG BUILD_FROM
ARG BUILD_VERSION
ARG BUILD_UPSTREAM="4.10.0.30"
ARG BUILD_UPSTREAM="4.10.0.40"
FROM ${BUILD_FROM}
##################

View File

@@ -122,5 +122,5 @@ schema:
slug: emby_nas
udev: true
url: https://github.com/alexbelgium/hassio-addons/tree/master/emby
version: "4.10.0.30"
version: "4.10.0.40"
video: true

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -1,9 +1,9 @@
{
"github_beta": "true",
"last_update": "2026-09-05",
"last_update": "2026-09-12",
"repository": "alexbelgium/hassio-addons",
"slug": "emby",
"source": "github",
"upstream_repo": "linuxserver/docker-emby",
"upstream_version": "4.10.0.30"
"upstream_version": "4.10.0.40"
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -1,3 +1,7 @@
## 4.4.28 (2026-09-12)
- Update to latest version from ente/ente (changelog : https://github.com/ente/ente/releases)
- Upstream tag : 1.7.29
- Migrate legacy add-on configuration map names to current app configuration terminology.
## 4.4.27 (2026-09-05)

View File

@@ -131,6 +131,6 @@ schema:
slug: ente
udev: true
url: https://github.com/alexbelgium/hassio-addons
version: "4.4.27"
version: "4.4.28"
video: true
webui: http://[HOST]:[PORT:3000]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -1,9 +1,9 @@
{
"github_beta": "false",
"last_update": "2026-09-05",
"last_update": "2026-09-12",
"repository": "alexbelgium/hassio-addons",
"slug": "ente",
"source": "github",
"upstream_repo": "ente/ente",
"upstream_version": "1.7.28"
"upstream_version": "1.7.29"
}

View File

@@ -1,4 +1,12 @@
## 2026.09.12 (2026-09-12)
- Update to latest version from charlocharlie/epicgames-freegames
- Upstream tag : debian-2026-09-12
## 2026.09.11 (2026-09-11)
- Update to latest version from charlocharlie/epicgames-freegames
- Upstream tag : debian-2026-09-11
## 2026.08.29 (2026-08-29)
- Update to latest version from charlocharlie/epicgames-freegames
- Upstream tag : debian-2026-08-29

View File

@@ -88,5 +88,5 @@ schema:
slug: epicgamesfree
udev: true
url: https://github.com/alexbelgium/hassio-addons
version: "2026.08.29"
version: "2026.09.12"
webui: "[PROTO:ssl]://[HOST]:[PORT:3000]"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -2,10 +2,10 @@
"dockerhub_by_date": true,
"dockerhub_list_size": 2,
"github_exclude": "-",
"last_update": "2026-08-29",
"last_update": "2026-09-12",
"repository": "alexbelgium/hassio-addons",
"slug": "epicgamesfree",
"source": "dockerhub",
"upstream_repo": "charlocharlie/epicgames-freegames",
"upstream_version": "debian-2026-08-29"
"upstream_version": "debian-2026-09-12"
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -1,3 +1,6 @@
## 3.5.2 (2026-09-12)
- Update to latest version from FlareSolverr/FlareSolverr (changelog : https://github.com/FlareSolverr/FlareSolverr/releases)
## 3.5.0 (2026-05-30)
- Update to latest version from FlareSolverr/FlareSolverr (changelog : https://github.com/FlareSolverr/FlareSolverr/releases)

View File

@@ -79,5 +79,5 @@ schema:
slug: flaresolverr
udev: true
url: https://github.com/alexbelgium/hassio-addons
version: "3.5.0"
version: "3.5.2"
webui: "[PROTO:ssl]://[HOST]:[PORT:8191]"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -1,8 +1,8 @@
{
"last_update": "2026-05-30",
"last_update": "2026-09-12",
"repository": "alexbelgium/hassio-addons",
"slug": "flaresolverr",
"source": "github",
"upstream_repo": "FlareSolverr/FlareSolverr",
"upstream_version": "3.5.0"
"upstream_version": "3.5.2"
}

Some files were not shown because too many files have changed in this diff Show More