bvandeusen
3d77a38a25
CI / lint (push) Successful in 2s
CI / frontend-build (push) Successful in 17s
CI / backend-lint-and-test (push) Successful in 26s
CI / integration (push) Successful in 3m32s
refactor(ml): remove the dead per-tag centroid subsystem ( #1189 )
...
The v2 pivot replaced per-tag SigLIP centroids with learned heads + CCIP.
Centroids were still recomputed (on every tag merge + a daily beat) but NOTHING
read them — suggestions come from heads+CCIP and apply_allowlist_tags applies
via Camie predictions, not centroids. Pure dead wiring; remove it.
Removed: CentroidService, recompute_centroid/recompute_centroids tasks, the
daily beat, POST /api/ml/recompute-centroids, the recompute-on-merge trigger,
the tag_reference_embedding table + model, the centroid_similarity_threshold +
min_reference_images settings (migration 0066), the CentroidRecomputeCard +
its store action + MaintenancePanel tile, and the centroid slider in
MLThresholdSliders. _keep_as_alias drops its vestigial has-centroid branch (the
allowlist branch already covers "could re-emit"); tag merge no longer clears a
table that no longer exists.
NOT touched (still live, parallel to heads): the Camie tagger, ImagePrediction,
and the allowlist bulk-apply — accepting a suggestion still allowlists + applies
it across the library. The tag-eval "centroid" baseline metric is unrelated
(in-memory) and stays. (image_record.centroid_scores JSON column also remains —
separate legacy field, its own micro-cleanup.)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01Ttrj5P7upUTueSfoJcxEqa
2026-06-30 11:48:09 -04:00
..
2026-06-05 19:16:20 -04:00
2026-05-14 07:32:17 -04:00
2026-06-10 16:03:58 -04:00
2026-06-04 07:35:28 -04:00
2026-06-23 01:37:11 -04:00
2026-06-12 13:05:58 -04:00
2026-06-23 01:34:21 -04:00
2026-06-01 14:17:52 -04:00
2026-05-28 12:43:08 -04:00
2026-06-03 15:45:59 -04:00
2026-05-28 11:33:05 -04:00
2026-06-26 11:47:48 -04:00
2026-06-29 12:54:35 -04:00
2026-06-04 16:55:20 -04:00
2026-06-17 12:03:48 -04:00
2026-05-30 00:59:05 -04:00
2026-05-28 11:33:05 -04:00
2026-06-01 00:41:17 -04:00
2026-06-23 01:11:42 -04:00
2026-06-30 10:24:30 -04:00
2026-06-28 10:36:25 -04:00
2026-05-28 11:33:05 -04:00
2026-06-30 11:48:09 -04:00
2026-05-28 12:43:08 -04:00
2026-06-12 00:04:06 -04:00
2026-06-01 14:17:52 -04:00
2026-06-11 23:10:30 -04:00
2026-06-14 15:57:42 -04:00
2026-05-28 12:43:08 -04:00
2026-05-28 11:33:05 -04:00
2026-05-30 23:15:07 -04:00
2026-06-17 12:03:48 -04:00
2026-06-28 11:20:11 -04:00
2026-06-10 11:34:42 -04:00
2026-05-28 11:33:05 -04:00
2026-06-27 22:49:10 -04:00
2026-06-03 23:26:04 -04:00
2026-05-28 11:33:05 -04:00
2026-06-06 17:39:54 -04:00
2026-06-01 21:57:29 -04:00
2026-06-06 14:33:24 -04:00
2026-06-16 20:30:31 -04:00
2026-05-20 12:54:47 -04:00
2026-06-01 14:17:52 -04:00
2026-06-03 15:45:59 -04:00
2026-05-19 11:11:07 -04:00
2026-05-26 01:18:38 -04:00
2026-05-26 01:18:07 -04:00
2026-05-19 14:59:04 -04:00
2026-06-01 22:09:02 -04:00
2026-06-10 14:29:17 -04:00
2026-06-26 11:47:48 -04:00
2026-06-29 22:25:40 -04:00
2026-06-16 21:05:26 -04:00
2026-06-24 00:06:49 -04:00
2026-05-21 16:02:36 -04:00
2026-05-26 08:13:53 -04:00
2026-06-26 00:17:25 -04:00
2026-06-02 17:04:27 -04:00
2026-06-02 17:04:27 -04:00
2026-06-29 10:17:05 -04:00
2026-06-09 23:46:01 -04:00
2026-06-17 12:03:48 -04:00
2026-05-25 11:12:55 -04:00
2026-06-14 23:27:38 -04:00
2026-06-06 21:22:32 -04:00
2026-05-28 12:43:08 -04:00
2026-05-15 13:53:42 -04:00
2026-06-16 21:15:49 -04:00
2026-06-16 21:20:27 -04:00
2026-05-29 15:34:20 -04:00
2026-05-20 20:39:17 -04:00
2026-06-03 22:58:46 -04:00
2026-06-17 12:03:48 -04:00
2026-06-04 07:01:07 -04:00
2026-06-03 23:50:19 -04:00
2026-06-26 00:17:25 -04:00
2026-06-30 09:01:01 -04:00
2026-06-30 10:24:30 -04:00
2026-06-29 00:46:37 -04:00
2026-06-29 00:36:58 -04:00
2026-05-28 11:33:05 -04:00
2026-06-14 16:39:58 -04:00
2026-06-10 15:55:32 -04:00
2026-05-19 11:14:49 -04:00
2026-06-21 22:22:03 -04:00
2026-05-18 21:33:55 -04:00
2026-06-15 22:17:36 -04:00
2026-05-25 20:33:44 -04:00
2026-05-25 22:16:26 -04:00
2026-06-01 14:40:28 -04:00
2026-06-01 14:17:52 -04:00
2026-05-25 02:34:36 -04:00
2026-06-14 13:15:36 -04:00
2026-06-16 20:54:39 -04:00
2026-05-26 21:23:12 -04:00
2026-06-30 11:48:09 -04:00
2026-05-15 15:48:29 -04:00
2026-06-01 14:17:52 -04:00
2026-06-01 14:17:52 -04:00
2026-05-19 11:10:53 -04:00
2026-05-20 12:53:34 -04:00
2026-05-20 18:32:52 -04:00
2026-05-20 18:33:14 -04:00
2026-05-20 20:36:19 -04:00
2026-06-12 13:05:58 -04:00
2026-06-23 01:42:21 -04:00
2026-06-30 11:48:09 -04:00
2026-05-15 07:36:17 -04:00
2026-06-30 10:24:30 -04:00
2026-06-03 13:00:08 -04:00
2026-06-10 13:50:30 -04:00
2026-05-14 07:34:29 -04:00
2026-06-07 18:34:11 -04:00
2026-06-14 16:39:58 -04:00
2026-06-17 11:32:28 -04:00
2026-06-15 00:14:52 -04:00
2026-06-17 11:32:28 -04:00
2026-06-16 14:48:51 -04:00
2026-06-06 21:32:15 -04:00
2026-06-05 19:26:57 -04:00
2026-06-11 18:52:33 -04:00
2026-05-17 22:18:07 -04:00
2026-06-17 12:03:48 -04:00
2026-05-20 18:34:02 -04:00
2026-06-14 16:39:58 -04:00
2026-06-15 00:14:52 -04:00
2026-06-21 22:22:03 -04:00
2026-06-21 22:22:03 -04:00
2026-06-29 11:18:28 -04:00
2026-06-06 14:33:24 -04:00
2026-05-25 22:16:26 -04:00
2026-05-19 11:14:49 -04:00
2026-05-30 12:08:43 -04:00
2026-06-11 21:30:01 -04:00
2026-06-11 23:17:14 -04:00
2026-06-11 21:47:58 -04:00
2026-06-07 18:58:18 -04:00
2026-06-11 21:30:01 -04:00
2026-06-11 23:10:30 -04:00
2026-06-11 23:10:30 -04:00
2026-05-15 15:49:25 -04:00
2026-06-14 20:58:40 -04:00
2026-06-14 16:39:58 -04:00
2026-05-14 12:04:05 -04:00
2026-06-14 20:58:40 -04:00
2026-06-17 20:51:18 -04:00
2026-06-28 11:20:11 -04:00
2026-06-26 00:51:56 -04:00
2026-06-30 11:48:09 -04:00
2026-06-06 23:57:06 -04:00
2026-05-26 21:00:12 -04:00
2026-06-10 00:19:17 -04:00
2026-05-15 07:39:33 -04:00
2026-06-06 17:39:54 -04:00
2026-05-24 21:22:42 -04:00
2026-06-16 08:31:50 -04:00
2026-06-10 14:29:17 -04:00
2026-06-07 00:08:19 -04:00
2026-06-16 11:07:00 -04:00
2026-05-27 22:45:11 -04:00
2026-05-21 18:53:35 -04:00
2026-05-14 12:05:19 -04:00
2026-05-21 16:01:59 -04:00
2026-05-19 18:15:59 -04:00