feat(sidebar): Slack mark on Slack-bridged threads (replaces the 'Slack:' prefix) - #50
Merged
Merged
Conversation
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Adds the Fable 5, Opus 5, Opus 4.8, Grok 4.6 and GPT-5.6 Sol variants under slack-thread-badge/variants, registers them, and commits the contact sheets used in the PR description (docs/images/slack-badge-options). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ps the prefix Codex review: variants with stripPrefix lost the channel from the row's accessible name (the trailing cluster is aria-hidden). Render a visually hidden 'Slack: ' before the displayed title in that case. Also oxfmt on the new files. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…istry Keeps the chosen design: the four-colour Slack pinwheel (SlackIcon in Icons.tsx) replaces the literal 'Slack:' prefix at the head of the title in Sidebar V2 card/slim rows and the classic V1 row, with a visually-hidden 'Slack:' preserving the accessible name. Removes the variant registry, localStorage switch, placement slots, the other four variants and the review screenshots. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Threads whose title starts with
Slack:(the conversation-gateway bridge) now show the Slack pinwheel mark in place of the literal prefix at the head of the title, so bridged conversations are recognisable at a glance and the row gets the characters back for the actual sentence.Chosen design: Opus 5's ("mark replaces the prefix, title-leading") — picked from five model-generated options reviewed at commit
af8f1c3e9(comparison sheet, full sheet). The other four variants, the registry/localStorage switch and the screenshot folder are removed in the final commit.How
apps/web/src/lib/threadChannel.ts—getThreadChannel(title)(/^\s*slack\s*:/i) +stripThreadChannelPrefix, unit-tested.apps/web/src/components/Icons.tsx—SlackIcon(official four-colour brand path, 122.8 viewBox), alongside the other brand marks.apps/web/src/components/SlackThreadBadge.tsx—useThreadDisplayTitle(title)→{ isSlack, displayTitle }, andSlackThreadBadge(14px mark,role="img"+ aria-label, desaturates/steps back on receded rows and returns to full colour on row hover, plus a visually-hiddenSlack:so the accessible name keeps the channel).SidebarV2.tsx) and the classic V1 row (Sidebar.tsx) right before the title text. Non-Slack rows are unchanged; rename still edits the full stored title.Verification
tsgo --noEmit(apps/web) ✅ ·vp linton touched files ✅ ·vp test run src/lib/threadChannel.test.ts✅ 5/5 ·vp run --filter @t3tools/web build✅scripts/mobile-showcase-environment.ts(+ twoSlack:threads, one settled): V2 dark (active + hovered settled row), V2 light, V1 dark all render the mark; DOMtextContentof a Slack row still reads"Slack: Weekly digest…"(a11y); no page errors. Throwaway instance deleted — nothing created in prod.🤖 Generated with Claude Code