chore(tags): remove orphaned cluster tag-gaps route + service method
CI / lint (push) Successful in 2s
CI / frontend-build (push) Successful in 18s
CI / backend-lint-and-test (push) Successful in 29s
CI / integration (push) Successful in 3m16s

The cluster tag-gap feature's only UI (Explore's TagGapPanel) was removed in the
3-pane rework, leaving the backend that fed it with no caller. Surgical removal:

- drop the POST /api/images/cluster/tag-gaps route (cluster_tag_gaps)
- drop BulkTagService.tag_gaps (+ the now-unused `import math`)
- drop the tag_gaps tests (test_bulk_tag_service, test_api_bulk_tags)

BulkTagService's common_tags / bulk_add / bulk_remove stay — they still back the
gallery bulk editor. Pure deletion, no behaviour change.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-26 11:47:48 -04:00
parent 5be6b9cada
commit e3855a5ae0
4 changed files with 0 additions and 197 deletions
-21
View File
@@ -320,27 +320,6 @@ async def common_tags():
return jsonify({"tags": tags})
@tags_bp.route("/images/cluster/tag-gaps", methods=["POST"])
async def cluster_tag_gaps():
"""Cluster-consensus tag gaps for a visual neighbour set (#94 Explore):
tags on >= threshold of the images but not all. Each gap carries the
laggard image ids (minus rejections) for apply-to-cluster."""
body = await request.get_json()
ids, err = _parse_bulk_ids(body)
if err:
return err
try:
threshold = float(body.get("threshold", 0.6))
except (TypeError, ValueError):
threshold = 0.6
threshold = min(1.0, max(0.0, threshold))
async with get_session() as session:
gaps = await BulkTagService(session).tag_gaps(ids, threshold)
return jsonify(
{"gaps": gaps, "total": len(set(ids)), "threshold": threshold}
)
@tags_bp.route("/images/bulk/tags", methods=["POST"])
async def bulk_add_tag():
body = await request.get_json()