immich-feat-release-candidate-detection

SegmentDesign-and-build
Typefeature
## Task

Add a **release channel** so an admin can opt in to release candidates: stable
(the default) and release-candidate, selectable through the system-config API
and carried through to the upstream latest-release lookup. Existing deployments
must be unaffected.

The version objects the server reports now need to carry a release's numeric
pre-release number (null for a stable release), and the notification must name
the kind of release found.

Don't disturb the rest of the version-check behaviour, and stay within the
`server/` workspace.

## User stories / requirements

- When the new-version check is set to the release-candidate channel, a newer pre-release build is reported as available. The notification that goes out names how far ahead the release is and exposes the pre-release number of the version it found. On the default channel, an admin is only told about newer stable releases — a newer pre-release is silently ignored.
- When a client connects and the server has already recorded a newer release, the server re-sends that release notification to the connecting client. The re-sent notification uses the same structured shape as a live notification — it exposes the found version's pre-release number and the kind of release it is.

## General instructions

- The code repo is at /repo/immich.
- You are inside of a Docker container. You may not be able to perform all operations you would normally be able to do on a local machine. Dependencies have not been pre-installed, and you may need to install them yourself.
- You are expected to act autonomously as a software engineer to complete tasks you are given.
- Do not stop until you feel you have completed the task and your code changes can be merged.
- You may need to use software engineering skills like analyzing the codebase, researching technologies, running services, analyzing logs, etc. to complete the task. Not all tasks will be solvable by reading source code alone.

Agent Results

AgentTastefulBasicVerifierValidationRubricBloatPractTasteCheated
Oracle
10/102/21.001.0x5.04.0
GPT-5.4
10/102/20.000.9x3.03.0
Sonnet 4.6
10/102/20.000.5x3.03.0
Sonnet 5
10/102/20.000.6x3.03.0
GLM-5.2
9/102/20.000.9x3.02.0
Opus 4.7
9/102/20.000.6x3.02.0
Opus 4.8
9/102/20.000.5x3.03.0
Gemini 3.1 Pro
10/100/20.000.5x2.02.0
GPT-5.5
10/100/20.000.8x3.03.0
Kimi K2.6
10/100/20.000.8x3.02.0
Gemini 3.5 Flash
6/100/20.000.7x2.02.0
No-Op
5/100/20.00
Agent details

Verifier Tests

Gemini 3.1 Pro10/10

Validation Stories

Gemini 3.1 Pro0/2

Rubric Criteria

Gemini 3.1 Pro0/1
Fail → Pass
release_event_dto_openapi

Taste Scores

Patch Bloat0.5x
54 agent / 116 oracle SLOC, 6 / 9 files(raw: 2.5x)
Practice Alignment — 2.0/5
2
style consistency
2
pattern adherence
3
library usage
2
abstraction level
3
documentation fit
Relative Taste — 2.0/5
3
minimality
2
approach quality
2
hygiene
2
fluency
2
craftsmanship

Agent Patch