Archilyzer · Source

archilyzer

Archilyzer
git clone https://archilyzer.pages.dev/source/archilyzer.git
Log | Files | Refs | README | LICENSE

commit 88cd288250ae49ee3a56c61eca4220dfaa31917f
parent bb9e2de80439b6b207fac458f6643c51f30ca73a
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date:   Thu,  2 Jul 2026 09:41:33 -0400

Phase 6b: provenance accent in the channel filter

Carry each federated site's accent into the channel-filter group headers so
origin is legible while refining a search (the filter already groups by site;
this colors each group by its source). ChannelGroup gains an optional accent,
set by MultiSiteDataProvider (group = origin → site accent) and rendered as a
small swatch before the group name.

Single-site mode is unaffected: its groups come from the manifest and carry no
accent, so no swatch renders (site-mode profile-row e2e green; hub e2e green).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Diffstat:
Mcommon/components/SearchDataContext.tsx | 1+
Mcommon/components/TranscriptSearch.tsx | 9++++++++-
Mcommon/lib/channelGroups.ts | 5+++++
3 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/common/components/SearchDataContext.tsx b/common/components/SearchDataContext.tsx @@ -231,6 +231,7 @@ export function MultiSiteDataProvider({ name: s.siteTitle, selectedByDefault: true, order: i, + ...(s.accent ? { accent: s.accent } : {}), })), [sites], ); diff --git a/common/components/TranscriptSearch.tsx b/common/components/TranscriptSearch.tsx @@ -1465,7 +1465,14 @@ export default function TranscriptSearch() { > <summary className="cursor-pointer select-none flex flex-wrap items-center gap-x-3 gap-y-1 px-3 py-1.5 text-sm"> {group.name && ( - <span className="font-medium text-foreground"> + <span className="font-medium text-foreground inline-flex items-center gap-1.5"> + {group.accent && ( + <span + aria-hidden="true" + className="inline-block size-2 shrink-0 rounded-full" + style={{ background: group.accent }} + /> + )} {group.name} </span> )} diff --git a/common/lib/channelGroups.ts b/common/lib/channelGroups.ts @@ -10,6 +10,11 @@ export type ChannelGroup = { description?: string; selectedByDefault: boolean; order?: number; + // Provenance accent, set only in hub mode where each group is a federated + // site (id = origin): the site's own accent, rendered as a swatch on the + // group header so origin is legible in the channel filter. Absent in + // single-site mode. + accent?: string; }; export const DEFAULT_GROUP_FALLBACK_ID = "default";