refactor(rebrand): rename brand literals in public API/webhook payloads#5456
Conversation
Rename the old brand name where it was baked into unauthenticated, publicly consumable data rather than code identifiers: the README badge SVG/JSON label, the /health and MCP-compatibility service descriptors, and the outbound Discord/Slack/PagerDuty notification payloads (the Discord username + embed footer text, the audit-ledger actor field across all three notification services, and the PagerDuty event source field). Also consolidates the badge.json 404 fallback in routes.ts to import badge.ts's LABEL constant instead of duplicating the literal, and fixes the resulting drift in the OpenAPI Health/McpCompatibility zod schemas plus the generated openapi.json, which otherwise would have kept asserting the old service literal against the renamed runtime response. Leaves gittensor (the permanent SN74 subnet brand), the repo's own name, domain/hostname literals, npm package identifiers, and check-run/PR- comment branding untouched — each is tracked by its own separate rebrand issue. Closes #5336
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
gittensory-ui | e14f34a | Commit Preview URL Branch Preview URL |
Jul 12 2026, 08:11 PM |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #5456 +/- ##
==========================================
- Coverage 94.48% 94.44% -0.04%
==========================================
Files 554 554
Lines 44450 44451 +1
Branches 14663 14663
==========================================
- Hits 41999 41983 -16
- Misses 1776 1793 +17
Partials 675 675
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
|
Warning 🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨 ⏸️ Gittensory review result - manual review recommendedReview updated: 2026-07-12 20:23:45 UTC
⏸️ Suggested Action - Manual Review
Review summary Blockers
Nits — 7 non-blocking
Review context
Contributor next steps
Signal definitions
[BETA] Chat with GittensoryAsk Gittensory a question about this PR directly in a comment — grounded only in the same cached, public-safe facts shown above, never a new claim.
Full command reference: https://gittensory.aethereal.dev/docs/gittensory-commands Visual preview
Click any thumbnail to open the full-size screenshot. Before = production · After = this PR's preview deploy. 🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed 💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by Gittensory, a quiet PR intelligence layer for OSS maintainers.
|
The paging cooldown check queried only the new "loopover" actor, so a page recorded under the pre-rebrand "gittensory" actor just before this deploy would no longer suppress a duplicate page after it, for as long as the configured cooldown window reaches back across the deploy boundary. Count both the current and legacy actor and sum the results — one extra indexed count, but it removes the whole risk category instead of requiring a precisely-timed follow-up cleanup.


Summary
src/api/badge.ts'sLABELconstant (README badge SVG/JSON), now exported sosrc/api/routes.ts's badge.json 404 fallback imports it instead of duplicating the literal./healthand/v1/mcp/compatibility'sservicefield (src/api/routes.ts,src/services/mcp-compatibility.ts).username+ embed footer text, and theactoraudit-ledger field, acrosssrc/services/notify-discord.tsandsrc/services/review-recap.ts.sourcefield andactorfield (including the matchingcountRecentAuditEventsForActorAndTargetlookup argument, kept in sync) insrc/services/notify-pagerduty.ts.src/openapi/schemas.ts'sHealthSchema/McpCompatibilitySchemastill asserted the oldserviceliteral against the now-renamed runtime response — updated both, and regeneratedapps/gittensory-ui/public/openapi.json(npm run ui:openapi, 2-line diff, exactly the two service literals).Leaves untouched (each tracked by its own separate rebrand issue):
gittensor(the permanent SN74 subnet brand), the repo's own name/domain literals, npm package identifiers (gittensory-mcp, etc.), and bot check-run/PR-comment branding (#5327).Closes #5336
Test plan
npm run typecheckcleannpm run test:cigreen (774/776 files, 2 pre-existing skips; one unrelated timing-flaky test confirmed passing standalone/on re-run)npm audit --audit-level=moderate— 0 vulnerabilitiesnpm run ui:openapiregenerated with only the expected 2-line diffroutes.ts(57 pre-existing brand mentions → 55 after, confirming only the 2 intended lines changed) andactorvalue consistency across all 3 notification services (14"loopover"occurrences = 7 + 6 + 1, matching pre-edit count)