Skip to content

[pull] develop from photoprism:develop - #1773

Merged
pull[bot] merged 11 commits into
Uncodedtech:developfrom
photoprism:develop
Aug 30, 2026
Merged

[pull] develop from photoprism:develop#1773
pull[bot] merged 11 commits into
Uncodedtech:developfrom
photoprism:develop

Conversation

@pull

@pull pull Bot commented Aug 30, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

Restores the value working configurations already carry. Measured against a
labeled library the margin decides two markers either way, so it is defense in
depth rather than the lever recall is recovered with.
An unnamed rival that close is the same person in another cluster, so treating
it as a contest withheld correct assignments and made naming counterproductive:
each named cluster raised a boundary against every unnamed one.
The maximum let one loose member decide how far a whole cluster reaches, since
the clamp was then the only bound. A percentile of zero stays zero, so a cluster
whose extent is unmeasurable still receives the full radius.
A library already on the target model was skipped whole, leaving thumb_size unset
and the size bar falling back to the detection size it replaces. Treated as a
staleness condition rather than a flag, since --dry-run already prices the work.
An absolute size invites the misreading that it counts source pixels, when it is
measured in the detection thumbnail. The relative form removes the unit trap, and
the sampled extent answers the question the clustering bar actually asks.
Adds FACE_RADIUS_PERCENTILE, so a QA instance can compare the shipped value
against the maximum it replaced without a rebuild.

Also lets a migration filling the sample extent terminate: a sampling that cannot
measure one now records the attempt, so the marker is not re-embedded on every
run. It still reads as absent to the size bar, which keeps what clusters
unchanged. Long code comments in the files touched are compacted to the limit.
…mits

A round budget of 0 discards a group that does not fit rather than leaving it
unsplit, so it is the strictest of the settings and there was no way to turn the
guard off at all. -1 now does that, and anything below it reads as unset.

The two split limits become options with hidden flags, so Propagate publishes
them and faces status reports what a run used - a run whose guard was disabled or
round-limited is otherwise indistinguishable from one where it was not.
Reported beside face-cluster-core rather than after the distances, since they
decide how a group is formed rather than how one is matched.
It sat directly under face-cluster-radius and read as a percentile of that value.
Dropping the word radius from the name is what removes the misreading, and the
face-cluster- prefix restores the grouping every other clustering option uses.
The plan and the audit counted a marker a sampling had given up on as work, so
neither could reach zero and both pointed at a destructive rebuild that would not
change them. A failed re-embedding now settles too, where the file was readable.

Adds the two fixtures that would have caught it: a thumb_size of -2 in the plan
query, and a re-embedding that fails rather than merely measuring nothing.
The prose says the guard bounds every member and the code now tests a percentile
of them. The permissive direction measures better, so which one it should read is
a decision rather than a defect - recorded instead of asserted either way.
@pull pull Bot locked and limited conversation to collaborators Aug 30, 2026
@pull pull Bot added the ⤵️ pull label Aug 30, 2026
@pull
pull Bot merged commit bd5a932 into Uncodedtech:develop Aug 30, 2026
2 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant