Skip to content

feat(web): render skill badges in sidebar thread titles - #26974

Closed
cismuc wants to merge 1 commit into
pingdotgg:mainfrom
CleanupFunction:feat/sidebar-skill-badge
Closed

cismuc wants to merge 1 commit into
pingdotgg:mainfrom
CleanupFunction:feat/sidebar-skill-badge

Conversation

@cismuc

@cismuc cismuc commented Oct 29, 2026

Copy link
Copy Markdown

Summary

Threads created with or referencing a skill (e.g. $wayfinder 769) previously displayed plain text $skill in the sidebar list. In chat messages, skills are highlighted using purple cube skill chips (ContextChip). This change brings the same visual skill badges to sidebar thread row titles and search result rows.

Changes

  • Provider skills in sidebar state: Expose skills: snapshot.skills in ProviderInstanceEntry and SidebarProviderEntry, and compare other.skills !== entry.skills in sameSidebarProviderEntries.
  • SidebarThreadTitle component: Parses thread titles using matchInlineSkills and renders visual skill chips (<ContextChip kind="skill">) with skill icon and formatted display name, while falling back to plain text for un-matched tokens or currencies.
  • Accessibility preserved: Screen readers continue to read the raw thread title via <span className="sr-only">{thread.title}</span>, and renaming mode continues to edit the raw title string.
  • ThreadHoverCard: Accepts ReactNode for title so hovering over thread rows also displays the formatted title with badge.
  • Tests: Added unit tests in apps/web/src/components/sidebar/SidebarThreadTitle.test.tsx covering prefix badges, mid-title badges, currency immunity, unknown skills, and provider fallback resolution.

@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Oct 29, 2026
@coderabbitai

coderabbitai Bot commented Oct 29, 2026

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
Commits

Reviewing files that changed from the base of the PR and between 20497e4 and 2287376.

Files selected for processing: 6
  • apps/web/src/components/Sidebar.tsx
  • apps/web/src/components/ThreadHoverCard.tsx
  • apps/web/src/components/sidebar/SidebarThreadRow.tsx
  • apps/web/src/components/sidebar/SidebarThreadTitle.test.tsx
  • apps/web/src/components/sidebar/SidebarThreadTitle.tsx
  • apps/web/src/providerInstances.ts

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.

Walkthrough

Sidebar provider entries now carry skill data. Sidebar thread titles resolve available skills and render recognized inline skill tokens as chips in hover cards, sidebar rows, and search results.

Changes: Sidebar Skill Titles

Layer / File(s) Summary
Provider skill data
apps/web/src/providerInstances.ts, apps/web/src/components/Sidebar.tsx
ProviderInstanceEntry includes skills copied from provider snapshots. Provider-entry equality checks now compare skills references.
Resolve and render sidebar skills
apps/web/src/components/sidebar/SidebarThreadTitle.tsx, apps/web/src/components/sidebar/SidebarThreadTitle.test.tsx
resolveSidebarSkills selects skills from the primary provider entry or instance map. SidebarThreadTitle renders recognized inline matches as chips and preserves unmatched text. Tests cover rendering and skill selection.
Integrate skill titles in sidebar
apps/web/src/components/sidebar/SidebarThreadRow.tsx, apps/web/src/components/ThreadHoverCard.tsx
Hover cards, sidebar rows, and search results use SidebarThreadTitle with resolved skills. ThreadHoverCard accepts a ReactNode title.

Priority: Low

Estimated code review effort: 2 (Simple) | ~12 minutes

Change: Feature

Sequence Diagram(s)

sequenceDiagram
  participant ProviderSnapshot
  participant deriveProviderInstanceEntries
  participant SidebarThreadRow
  participant resolveSidebarSkills
  participant SidebarThreadTitle
  ProviderSnapshot->>deriveProviderInstanceEntries: supply snapshot skills
  deriveProviderInstanceEntries->>SidebarThreadRow: provide derived provider entries
  SidebarThreadRow->>resolveSidebarSkills: resolve skills for the thread
  resolveSidebarSkills->>SidebarThreadRow: return resolved skills
  SidebarThreadRow->>SidebarThreadTitle: pass title and skills for rendering
Loading

Possibly related PRs

  • pingdotgg/t3code#25432: Updates shared inline-skill matching and chat rendering used by this change to render sidebar skill badges.

Suggested reviewers: juliusmarminge

Merge Risk: Minimal · up to 22873

No merge-blocking issue was identified in the skill badge changes.

Pre-merge checks: Passed 3 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Description check Warning The description explains the problem and implementation, but it omits the required Scope and approval section and does not provide focused verification results or UI screenshots. It also uses Summary … Add the required Problem, Change, Scope and approval, and Verification sections. Include the related issue or maintainer approval, focused test commands with observed results, and before/after screenshots for the UI changes. State any check…
Passed Passed checks: 3 passed
Check name Status Explanation
Title check Passed The title clearly and concisely describes the primary change: rendering skill badges in sidebar thread titles.
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Description check

Explanation

The description explains the problem and implementation, but it omits the required Scope and approval section and does not provide focused verification results or UI screenshots. It also uses Summary and Changes instead of the template headings Problem and Change.

Resolution

Add the required Problem, Change, Scope and approval, and Verification sections. Include the related issue or maintainer approval, focused test commands with observed results, and before/after screenshots for the UI changes. State any checks that were not run.

Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@cismuc cismuc closed this Oct 29, 2026
@cismuc
cismuc deleted the feat/sidebar-skill-badge branch October 29, 2026 14:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M 30-99 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant