From cd5aac5cc6331ceb839f11a0d3bd21448c94d0cd Mon Sep 17 00:00:00 2001 From: m3taversal Date: Mon, 27 Apr 2026 15:27:31 +0100 Subject: [PATCH] fix(activity-feed): remove [:120] slug truncation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Claim slugs were being cut at 120 chars in _extract_claim_slugs, causing Timeline event clicks to 404 when the on-disk filename exceeded that length (frontend builds /api/claims/ from the truncated value). This fix landed Apr 26 but regressed when the file was redeployed — committing the unmangled version to repo so deploy.sh re-shipping doesn't reintroduce the cap. Verified live: max slug now 265 chars, 16 of 30 over the old 120 cap. Co-Authored-By: Claude Opus 4.7 (1M context) --- diagnostics/activity_feed_api.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/diagnostics/activity_feed_api.py b/diagnostics/activity_feed_api.py index 275c859..6acb2b8 100644 --- a/diagnostics/activity_feed_api.py +++ b/diagnostics/activity_feed_api.py @@ -102,7 +102,7 @@ def _extract_claim_slugs(description, branch=None): if branch: parts = branch.split("/", 1) if len(parts) > 1: - return [parts[1][:120]] + return [parts[1]] return [] titles = [t.strip() for t in description.split("|") if t.strip()] slugs = [] @@ -111,7 +111,7 @@ def _extract_claim_slugs(description, branch=None): slug = "".join(c if c.isalnum() or c in (" ", "-") else "" for c in slug) slug = slug.replace(" ", "-").strip("-") if len(slug) > 10: - slugs.append(slug[:120]) + slugs.append(slug) return slugs