fix(web): match skill chip icons to file chips and add sent-message tooltips - #9090

Open
Mnigos wants to merge 2 commits into
pingdotgg:mainfrom
Mnigos:workspace-skill-discovery
Open

fix(web): match skill chip icons to file chips and add sent-message tooltips#9090
Mnigos wants to merge 2 commits into
pingdotgg:mainfrom
Mnigos:workspace-skill-discovery

Conversation

@Mnigos

@MnigosMnigos commented Sep 1, 2026

Copy link
Copy Markdown

Two small skill chip fixes that came out of testing workspace skill discovery. The skill icon now renders at the same optical size as file-chip icons (the package glyph fills its viewBox edge to edge, file-type icons carry intrinsic padding). And sent-message chips get the description tooltip the composer already had, with the InlineSkill prop type carrying the description fields through MessagesTimeline and ChatMarkdown, which previously narrowed them away.

Also documents the workspace-scoped skill behavior that #8778 and #9210 shipped in docs/user/composer.md, since neither added docs.

Earlier revisions of this PR carried the workspace discovery itself; that landed piecewise through #8778 by @UtkarshUsername and #9210 by @anirudhsama (based on the approach from #4031 by @D3OXY), so this PR is down to the chip polish. Chip rendering has 7 focused tests.

Demo

Screen.Recording.2026-09-02.at.00.57.59.mov

Screenshots

image

Implemented with Claude Code (Claude Fable 5).


Note

Medium Risk
New RPC spawns Codex app-server processes per workspace lookup (mitigated by timeout and cache); cwd resolution touches orchestration projection data but stays read-only with ownership checks.

Overview
Fixes the $ skill picker and sent-message $name chips using skills from the open project/worktree instead of the server’s startup directory.

Adds provider.listWorkspaceSkills (read-scoped RPC) with contracts for input/result/source: workspace | snapshot. The server resolves cwd from thread.worktreePath ?? project.workspaceRoot, validates thread ownership, and calls an optional listSkillsForCwd on provider instances—with a 30s TTL cache per (instanceId, cwd) that does not mutate provider snapshots. Codex spawns a short-lived app-server in the workspace and calls skills/list; Claude uses discoverClaudeSkills for the resolved cwd; other drivers return source: "snapshot" so clients keep snapshot skills.

On the web, useWorkspaceSkills fetches the workspace catalog for the composer ($ menu, slash skills) and the timeline so chips survive sending. Skill chip UI is aligned (shared wrapper class, smaller skill icon) and timeline chips get description tooltips like the composer.

Reviewed by Cursor Bugbot for commit 26e4a23f392d6c6c72e285dbb3fd001aee61177a. Configure here.

Note

Fix skill chip icon styling and add description tooltips to sent message skill chips

  • Updates SkillChip to use the shared INLINE_CHIP_WRAPPER_CLASS_NAME and dedicated SKILL_CHIP_ICON_CLASS_NAME so sent-message skill chips match file chip styling
  • Adds a top-positioned tooltip to skill chips when a description is available, resolving via resolveInlineSkillDescription which prefers trimmed shortDescription over description- Refactors skill shape to the shared exported InlineSkill type across ChatMarkdown, MessagesTimeline, and SkillInlineText to carry description fields
  • Updates ComposerSkillDecorator to use SKILL_CHIP_ICON_CLASS_NAME for icon sizing
  • Documents composer skill discovery behavior for Codex, Claude, and OpenCode in composer.md

Macroscope summarized dab755e.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Sep 1, 2026
Comment threadapps/server/src/provider/providerSkills.ts Outdated
Comment threadapps/web/src/components/chat/ChatComposer.tsx Outdated
Comment threadapps/web/src/components/ChatView.tsx Outdated

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Want fixes drafted automatically? Bugbot Autofix can create code changes for findings. A team admin can enable Autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 26e4a23. Configure here.

Comment threadapps/web/src/components/ChatView.tsx Outdated
Comment threadapps/server/src/provider/providerSkills.ts Outdated
Comment threadapps/web/src/components/composerInlineChip.ts Outdated
@macroscopeapp

macroscopeappBot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at dab755e

Macroscope's review found this PR approvable — This is a narrowly scoped web UI polish change that aligns existing skill chips and adds optional descriptions through the existing tooltip component. Its runtime impact is limited to presentation and hover behavior, with focused tests and no schema, workflow, deployment, or sensitive-data changes.

You can add or adjust custom eligibility rules. Learn more.

@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 26e4a23 to ea6bcb9CompareSeptember 1, 2026 20:58
@github-actionsgithub-actionsBot added size:XL 500-999 changed lines (additions + deletions). and removed size:L 100-499 changed lines (additions + deletions). labels Sep 1, 2026
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from ea6bcb9 to 0ab5367CompareSeptember 1, 2026 20:59
Comment threadpackages/contracts/src/server.ts Outdated
Comment threadapps/web/src/components/chat/ChatComposer.tsx Outdated
Comment threadapps/server/src/provider/Drivers/CodexDriver.ts Outdated
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch 2 times, most recently from c9252d4 to 717738aCompareSeptember 1, 2026 21:10
Comment threadapps/server/src/provider/Drivers/CodexDriver.ts Outdated
Comment threadapps/server/src/provider/Drivers/CodexDriver.ts Outdated
Comment threadapps/web/src/components/chat/ChatComposer.tsx Outdated
Comment threadapps/web/src/components/ChatView.tsx Outdated
Comment threadapps/server/src/provider/providerSkills.ts Outdated
Comment threadapps/web/src/components/ChatView.tsx Outdated
Comment threadapps/web/src/components/ChatView.tsx Outdated
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 746f184 to 3e62bb3CompareSeptember 1, 2026 21:39
Comment threadapps/server/src/provider/providerSkills.ts Outdated
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 7c2c8e2 to 2a63fd0CompareSeptember 1, 2026 23:06
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 2a63fd0 to 4a6e378CompareSeptember 2, 2026 09:39
@MnigosMnigos changed the title fix(skills): discover provider skills from the active workspacefix(claude): discover workspace skills for the active worktreeSep 2, 2026
@github-actionsgithub-actionsBot added size:L 100-499 changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Sep 2, 2026
Comment threaddocs/user/composer.md Outdated
macroscopeapp[bot]
macroscopeappBot previously approved these changes Sep 2, 2026
@macroscopeapp
macroscopeappBot dismissed their stale reviewSeptember 2, 2026 12:13

Dismissing prior approval to re-evaluate 01313dd

macroscopeapp[bot]
macroscopeappBot previously approved these changes Sep 2, 2026
…ooltips
The package glyph fills its viewBox edge-to-edge, unlike the file-type
icons that carry intrinsic padding, so skill chips render their icon one
step smaller to sit at the same optical size. Sent-message chips gain
the description tooltip the composer already shows; the InlineSkill prop
type carries the description fields through MessagesTimeline and
ChatMarkdown, which previously narrowed them away.
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 01313dd to dab755eCompareSeptember 2, 2026 17:48
@MnigosMnigos changed the title fix(claude): discover workspace skills for the active worktreefix(web): match skill chip icons to file chips and add sent-message tooltipsSep 2, 2026
@macroscopeapp
macroscopeappBot dismissed their stale reviewSeptember 2, 2026 17:48

Dismissing prior approval to re-evaluate dab755e

@github-actionsgithub-actionsBot added size:M 30-99 changed lines (additions + deletions). and removed size:L 100-499 changed lines (additions + deletions). labels Sep 2, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M30-99 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Mnigos
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

fix(web): match skill chip icons to file chips and add sent-message tooltips - #9090

Open
Mnigos wants to merge 2 commits into
pingdotgg:mainfrom
Mnigos:workspace-skill-discovery
Open

fix(web): match skill chip icons to file chips and add sent-message tooltips#9090
Mnigos wants to merge 2 commits into
pingdotgg:mainfrom
Mnigos:workspace-skill-discovery

Conversation

@Mnigos

@MnigosMnigos commented Sep 1, 2026

Copy link
Copy Markdown

Two small skill chip fixes that came out of testing workspace skill discovery. The skill icon now renders at the same optical size as file-chip icons (the package glyph fills its viewBox edge to edge, file-type icons carry intrinsic padding). And sent-message chips get the description tooltip the composer already had, with the InlineSkill prop type carrying the description fields through MessagesTimeline and ChatMarkdown, which previously narrowed them away.

Also documents the workspace-scoped skill behavior that #8778 and #9210 shipped in docs/user/composer.md, since neither added docs.

Earlier revisions of this PR carried the workspace discovery itself; that landed piecewise through #8778 by @UtkarshUsername and #9210 by @anirudhsama (based on the approach from #4031 by @D3OXY), so this PR is down to the chip polish. Chip rendering has 7 focused tests.

Demo

Screen.Recording.2026-09-02.at.00.57.59.mov

Screenshots

image

Implemented with Claude Code (Claude Fable 5).


Note

Medium Risk
New RPC spawns Codex app-server processes per workspace lookup (mitigated by timeout and cache); cwd resolution touches orchestration projection data but stays read-only with ownership checks.

Overview
Fixes the $ skill picker and sent-message $name chips using skills from the open project/worktree instead of the server’s startup directory.

Adds provider.listWorkspaceSkills (read-scoped RPC) with contracts for input/result/source: workspace | snapshot. The server resolves cwd from thread.worktreePath ?? project.workspaceRoot, validates thread ownership, and calls an optional listSkillsForCwd on provider instances—with a 30s TTL cache per (instanceId, cwd) that does not mutate provider snapshots. Codex spawns a short-lived app-server in the workspace and calls skills/list; Claude uses discoverClaudeSkills for the resolved cwd; other drivers return source: "snapshot" so clients keep snapshot skills.

On the web, useWorkspaceSkills fetches the workspace catalog for the composer ($ menu, slash skills) and the timeline so chips survive sending. Skill chip UI is aligned (shared wrapper class, smaller skill icon) and timeline chips get description tooltips like the composer.

Reviewed by Cursor Bugbot for commit 26e4a23f392d6c6c72e285dbb3fd001aee61177a. Configure here.

Note

Fix skill chip icon styling and add description tooltips to sent message skill chips

  • Updates SkillChip to use the shared INLINE_CHIP_WRAPPER_CLASS_NAME and dedicated SKILL_CHIP_ICON_CLASS_NAME so sent-message skill chips match file chip styling
  • Adds a top-positioned tooltip to skill chips when a description is available, resolving via resolveInlineSkillDescription which prefers trimmed shortDescription over description- Refactors skill shape to the shared exported InlineSkill type across ChatMarkdown, MessagesTimeline, and SkillInlineText to carry description fields
  • Updates ComposerSkillDecorator to use SKILL_CHIP_ICON_CLASS_NAME for icon sizing
  • Documents composer skill discovery behavior for Codex, Claude, and OpenCode in composer.md

Macroscope summarized dab755e.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Sep 1, 2026
Comment threadapps/server/src/provider/providerSkills.ts Outdated
Comment threadapps/web/src/components/chat/ChatComposer.tsx Outdated
Comment threadapps/web/src/components/ChatView.tsx Outdated

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Want fixes drafted automatically? Bugbot Autofix can create code changes for findings. A team admin can enable Autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 26e4a23. Configure here.

Comment threadapps/web/src/components/ChatView.tsx Outdated
Comment threadapps/server/src/provider/providerSkills.ts Outdated
Comment threadapps/web/src/components/composerInlineChip.ts Outdated
@macroscopeapp

macroscopeappBot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at dab755e

Macroscope's review found this PR approvable — This is a narrowly scoped web UI polish change that aligns existing skill chips and adds optional descriptions through the existing tooltip component. Its runtime impact is limited to presentation and hover behavior, with focused tests and no schema, workflow, deployment, or sensitive-data changes.

You can add or adjust custom eligibility rules. Learn more.

@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 26e4a23 to ea6bcb9CompareSeptember 1, 2026 20:58
@github-actionsgithub-actionsBot added size:XL 500-999 changed lines (additions + deletions). and removed size:L 100-499 changed lines (additions + deletions). labels Sep 1, 2026
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from ea6bcb9 to 0ab5367CompareSeptember 1, 2026 20:59
Comment threadpackages/contracts/src/server.ts Outdated
Comment threadapps/web/src/components/chat/ChatComposer.tsx Outdated
Comment threadapps/server/src/provider/Drivers/CodexDriver.ts Outdated
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch 2 times, most recently from c9252d4 to 717738aCompareSeptember 1, 2026 21:10
Comment threadapps/server/src/provider/Drivers/CodexDriver.ts Outdated
Comment threadapps/server/src/provider/Drivers/CodexDriver.ts Outdated
Comment threadapps/web/src/components/chat/ChatComposer.tsx Outdated
Comment threadapps/web/src/components/ChatView.tsx Outdated
Comment threadapps/server/src/provider/providerSkills.ts Outdated
Comment threadapps/web/src/components/ChatView.tsx Outdated
Comment threadapps/web/src/components/ChatView.tsx Outdated
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 746f184 to 3e62bb3CompareSeptember 1, 2026 21:39
Comment threadapps/server/src/provider/providerSkills.ts Outdated
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 7c2c8e2 to 2a63fd0CompareSeptember 1, 2026 23:06
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 2a63fd0 to 4a6e378CompareSeptember 2, 2026 09:39
@MnigosMnigos changed the title fix(skills): discover provider skills from the active workspacefix(claude): discover workspace skills for the active worktreeSep 2, 2026
@github-actionsgithub-actionsBot added size:L 100-499 changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Sep 2, 2026
Comment threaddocs/user/composer.md Outdated
macroscopeapp[bot]
macroscopeappBot previously approved these changes Sep 2, 2026
@macroscopeapp
macroscopeappBot dismissed their stale reviewSeptember 2, 2026 12:13

Dismissing prior approval to re-evaluate 01313dd

macroscopeapp[bot]
macroscopeappBot previously approved these changes Sep 2, 2026
…ooltips
The package glyph fills its viewBox edge-to-edge, unlike the file-type
icons that carry intrinsic padding, so skill chips render their icon one
step smaller to sit at the same optical size. Sent-message chips gain
the description tooltip the composer already shows; the InlineSkill prop
type carries the description fields through MessagesTimeline and
ChatMarkdown, which previously narrowed them away.
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 01313dd to dab755eCompareSeptember 2, 2026 17:48
@MnigosMnigos changed the title fix(claude): discover workspace skills for the active worktreefix(web): match skill chip icons to file chips and add sent-message tooltipsSep 2, 2026
@macroscopeapp
macroscopeappBot dismissed their stale reviewSeptember 2, 2026 17:48

Dismissing prior approval to re-evaluate dab755e

@github-actionsgithub-actionsBot added size:M 30-99 changed lines (additions + deletions). and removed size:L 100-499 changed lines (additions + deletions). labels Sep 2, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M30-99 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Mnigos
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(web): match skill chip icons to file chips and add sent-message tooltips - #9090

Open
Mnigos wants to merge 2 commits into
pingdotgg:mainfrom
Mnigos:workspace-skill-discovery
Open

fix(web): match skill chip icons to file chips and add sent-message tooltips#9090
Mnigos wants to merge 2 commits into
pingdotgg:mainfrom
Mnigos:workspace-skill-discovery

Conversation

@Mnigos

@MnigosMnigos commented Sep 1, 2026

Copy link
Copy Markdown

Two small skill chip fixes that came out of testing workspace skill discovery. The skill icon now renders at the same optical size as file-chip icons (the package glyph fills its viewBox edge to edge, file-type icons carry intrinsic padding). And sent-message chips get the description tooltip the composer already had, with the InlineSkill prop type carrying the description fields through MessagesTimeline and ChatMarkdown, which previously narrowed them away.

Also documents the workspace-scoped skill behavior that #8778 and #9210 shipped in docs/user/composer.md, since neither added docs.

Earlier revisions of this PR carried the workspace discovery itself; that landed piecewise through #8778 by @UtkarshUsername and #9210 by @anirudhsama (based on the approach from #4031 by @D3OXY), so this PR is down to the chip polish. Chip rendering has 7 focused tests.

Demo

Screen.Recording.2026-09-02.at.00.57.59.mov

Screenshots

image

Implemented with Claude Code (Claude Fable 5).


Note

Medium Risk
New RPC spawns Codex app-server processes per workspace lookup (mitigated by timeout and cache); cwd resolution touches orchestration projection data but stays read-only with ownership checks.

Overview
Fixes the $ skill picker and sent-message $name chips using skills from the open project/worktree instead of the server’s startup directory.

Adds provider.listWorkspaceSkills (read-scoped RPC) with contracts for input/result/source: workspace | snapshot. The server resolves cwd from thread.worktreePath ?? project.workspaceRoot, validates thread ownership, and calls an optional listSkillsForCwd on provider instances—with a 30s TTL cache per (instanceId, cwd) that does not mutate provider snapshots. Codex spawns a short-lived app-server in the workspace and calls skills/list; Claude uses discoverClaudeSkills for the resolved cwd; other drivers return source: "snapshot" so clients keep snapshot skills.

On the web, useWorkspaceSkills fetches the workspace catalog for the composer ($ menu, slash skills) and the timeline so chips survive sending. Skill chip UI is aligned (shared wrapper class, smaller skill icon) and timeline chips get description tooltips like the composer.

Reviewed by Cursor Bugbot for commit 26e4a23f392d6c6c72e285dbb3fd001aee61177a. Configure here.

Note

Fix skill chip icon styling and add description tooltips to sent message skill chips

  • Updates SkillChip to use the shared INLINE_CHIP_WRAPPER_CLASS_NAME and dedicated SKILL_CHIP_ICON_CLASS_NAME so sent-message skill chips match file chip styling
  • Adds a top-positioned tooltip to skill chips when a description is available, resolving via resolveInlineSkillDescription which prefers trimmed shortDescription over description- Refactors skill shape to the shared exported InlineSkill type across ChatMarkdown, MessagesTimeline, and SkillInlineText to carry description fields
  • Updates ComposerSkillDecorator to use SKILL_CHIP_ICON_CLASS_NAME for icon sizing
  • Documents composer skill discovery behavior for Codex, Claude, and OpenCode in composer.md

Macroscope summarized dab755e.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Sep 1, 2026
Comment threadapps/server/src/provider/providerSkills.ts Outdated
Comment threadapps/web/src/components/chat/ChatComposer.tsx Outdated
Comment threadapps/web/src/components/ChatView.tsx Outdated

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Want fixes drafted automatically? Bugbot Autofix can create code changes for findings. A team admin can enable Autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 26e4a23. Configure here.

Comment threadapps/web/src/components/ChatView.tsx Outdated
Comment threadapps/server/src/provider/providerSkills.ts Outdated
Comment threadapps/web/src/components/composerInlineChip.ts Outdated
@macroscopeapp

macroscopeappBot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at dab755e

Macroscope's review found this PR approvable — This is a narrowly scoped web UI polish change that aligns existing skill chips and adds optional descriptions through the existing tooltip component. Its runtime impact is limited to presentation and hover behavior, with focused tests and no schema, workflow, deployment, or sensitive-data changes.

You can add or adjust custom eligibility rules. Learn more.

@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 26e4a23 to ea6bcb9CompareSeptember 1, 2026 20:58
@github-actionsgithub-actionsBot added size:XL 500-999 changed lines (additions + deletions). and removed size:L 100-499 changed lines (additions + deletions). labels Sep 1, 2026
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from ea6bcb9 to 0ab5367CompareSeptember 1, 2026 20:59
Comment threadpackages/contracts/src/server.ts Outdated
Comment threadapps/web/src/components/chat/ChatComposer.tsx Outdated
Comment threadapps/server/src/provider/Drivers/CodexDriver.ts Outdated
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch 2 times, most recently from c9252d4 to 717738aCompareSeptember 1, 2026 21:10
Comment threadapps/server/src/provider/Drivers/CodexDriver.ts Outdated
Comment threadapps/server/src/provider/Drivers/CodexDriver.ts Outdated
Comment threadapps/web/src/components/chat/ChatComposer.tsx Outdated
Comment threadapps/web/src/components/ChatView.tsx Outdated
Comment threadapps/server/src/provider/providerSkills.ts Outdated
Comment threadapps/web/src/components/ChatView.tsx Outdated
Comment threadapps/web/src/components/ChatView.tsx Outdated
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 746f184 to 3e62bb3CompareSeptember 1, 2026 21:39
Comment threadapps/server/src/provider/providerSkills.ts Outdated
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 7c2c8e2 to 2a63fd0CompareSeptember 1, 2026 23:06
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 2a63fd0 to 4a6e378CompareSeptember 2, 2026 09:39
@MnigosMnigos changed the title fix(skills): discover provider skills from the active workspacefix(claude): discover workspace skills for the active worktreeSep 2, 2026
@github-actionsgithub-actionsBot added size:L 100-499 changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Sep 2, 2026
Comment threaddocs/user/composer.md Outdated
macroscopeapp[bot]
macroscopeappBot previously approved these changes Sep 2, 2026
@macroscopeapp
macroscopeappBot dismissed their stale reviewSeptember 2, 2026 12:13

Dismissing prior approval to re-evaluate 01313dd

macroscopeapp[bot]
macroscopeappBot previously approved these changes Sep 2, 2026
…ooltips
The package glyph fills its viewBox edge-to-edge, unlike the file-type
icons that carry intrinsic padding, so skill chips render their icon one
step smaller to sit at the same optical size. Sent-message chips gain
the description tooltip the composer already shows; the InlineSkill prop
type carries the description fields through MessagesTimeline and
ChatMarkdown, which previously narrowed them away.
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 01313dd to dab755eCompareSeptember 2, 2026 17:48
@MnigosMnigos changed the title fix(claude): discover workspace skills for the active worktreefix(web): match skill chip icons to file chips and add sent-message tooltipsSep 2, 2026
@macroscopeapp
macroscopeappBot dismissed their stale reviewSeptember 2, 2026 17:48

Dismissing prior approval to re-evaluate dab755e

@github-actionsgithub-actionsBot added size:M 30-99 changed lines (additions + deletions). and removed size:L 100-499 changed lines (additions + deletions). labels Sep 2, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M30-99 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Mnigos
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(web): match skill chip icons to file chips and add sent-message tooltips - #9090

Open
Mnigos wants to merge 2 commits into
pingdotgg:mainfrom
Mnigos:workspace-skill-discovery
Open

fix(web): match skill chip icons to file chips and add sent-message tooltips#9090
Mnigos wants to merge 2 commits into
pingdotgg:mainfrom
Mnigos:workspace-skill-discovery

Conversation

@Mnigos

@MnigosMnigos commented Sep 1, 2026

Copy link
Copy Markdown

Two small skill chip fixes that came out of testing workspace skill discovery. The skill icon now renders at the same optical size as file-chip icons (the package glyph fills its viewBox edge to edge, file-type icons carry intrinsic padding). And sent-message chips get the description tooltip the composer already had, with the InlineSkill prop type carrying the description fields through MessagesTimeline and ChatMarkdown, which previously narrowed them away.

Also documents the workspace-scoped skill behavior that #8778 and #9210 shipped in docs/user/composer.md, since neither added docs.

Earlier revisions of this PR carried the workspace discovery itself; that landed piecewise through #8778 by @UtkarshUsername and #9210 by @anirudhsama (based on the approach from #4031 by @D3OXY), so this PR is down to the chip polish. Chip rendering has 7 focused tests.

Demo

Screen.Recording.2026-09-02.at.00.57.59.mov

Screenshots

image

Implemented with Claude Code (Claude Fable 5).


Note

Medium Risk
New RPC spawns Codex app-server processes per workspace lookup (mitigated by timeout and cache); cwd resolution touches orchestration projection data but stays read-only with ownership checks.

Overview
Fixes the $ skill picker and sent-message $name chips using skills from the open project/worktree instead of the server’s startup directory.

Adds provider.listWorkspaceSkills (read-scoped RPC) with contracts for input/result/source: workspace | snapshot. The server resolves cwd from thread.worktreePath ?? project.workspaceRoot, validates thread ownership, and calls an optional listSkillsForCwd on provider instances—with a 30s TTL cache per (instanceId, cwd) that does not mutate provider snapshots. Codex spawns a short-lived app-server in the workspace and calls skills/list; Claude uses discoverClaudeSkills for the resolved cwd; other drivers return source: "snapshot" so clients keep snapshot skills.

On the web, useWorkspaceSkills fetches the workspace catalog for the composer ($ menu, slash skills) and the timeline so chips survive sending. Skill chip UI is aligned (shared wrapper class, smaller skill icon) and timeline chips get description tooltips like the composer.

Reviewed by Cursor Bugbot for commit 26e4a23f392d6c6c72e285dbb3fd001aee61177a. Configure here.

Note

Fix skill chip icon styling and add description tooltips to sent message skill chips

  • Updates SkillChip to use the shared INLINE_CHIP_WRAPPER_CLASS_NAME and dedicated SKILL_CHIP_ICON_CLASS_NAME so sent-message skill chips match file chip styling
  • Adds a top-positioned tooltip to skill chips when a description is available, resolving via resolveInlineSkillDescription which prefers trimmed shortDescription over description- Refactors skill shape to the shared exported InlineSkill type across ChatMarkdown, MessagesTimeline, and SkillInlineText to carry description fields
  • Updates ComposerSkillDecorator to use SKILL_CHIP_ICON_CLASS_NAME for icon sizing
  • Documents composer skill discovery behavior for Codex, Claude, and OpenCode in composer.md

Macroscope summarized dab755e.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Sep 1, 2026
Comment threadapps/server/src/provider/providerSkills.ts Outdated
Comment threadapps/web/src/components/chat/ChatComposer.tsx Outdated
Comment threadapps/web/src/components/ChatView.tsx Outdated

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Want fixes drafted automatically? Bugbot Autofix can create code changes for findings. A team admin can enable Autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 26e4a23. Configure here.

Comment threadapps/web/src/components/ChatView.tsx Outdated
Comment threadapps/server/src/provider/providerSkills.ts Outdated
Comment threadapps/web/src/components/composerInlineChip.ts Outdated
@macroscopeapp

macroscopeappBot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at dab755e

Macroscope's review found this PR approvable — This is a narrowly scoped web UI polish change that aligns existing skill chips and adds optional descriptions through the existing tooltip component. Its runtime impact is limited to presentation and hover behavior, with focused tests and no schema, workflow, deployment, or sensitive-data changes.

You can add or adjust custom eligibility rules. Learn more.

@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 26e4a23 to ea6bcb9CompareSeptember 1, 2026 20:58
@github-actionsgithub-actionsBot added size:XL 500-999 changed lines (additions + deletions). and removed size:L 100-499 changed lines (additions + deletions). labels Sep 1, 2026
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from ea6bcb9 to 0ab5367CompareSeptember 1, 2026 20:59
Comment threadpackages/contracts/src/server.ts Outdated
Comment threadapps/web/src/components/chat/ChatComposer.tsx Outdated
Comment threadapps/server/src/provider/Drivers/CodexDriver.ts Outdated
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch 2 times, most recently from c9252d4 to 717738aCompareSeptember 1, 2026 21:10
Comment threadapps/server/src/provider/Drivers/CodexDriver.ts Outdated
Comment threadapps/server/src/provider/Drivers/CodexDriver.ts Outdated
Comment threadapps/web/src/components/chat/ChatComposer.tsx Outdated
Comment threadapps/web/src/components/ChatView.tsx Outdated
Comment threadapps/server/src/provider/providerSkills.ts Outdated
Comment threadapps/web/src/components/ChatView.tsx Outdated
Comment threadapps/web/src/components/ChatView.tsx Outdated
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 746f184 to 3e62bb3CompareSeptember 1, 2026 21:39
Comment threadapps/server/src/provider/providerSkills.ts Outdated
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 7c2c8e2 to 2a63fd0CompareSeptember 1, 2026 23:06
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 2a63fd0 to 4a6e378CompareSeptember 2, 2026 09:39
@MnigosMnigos changed the title fix(skills): discover provider skills from the active workspacefix(claude): discover workspace skills for the active worktreeSep 2, 2026
@github-actionsgithub-actionsBot added size:L 100-499 changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Sep 2, 2026
Comment threaddocs/user/composer.md Outdated
macroscopeapp[bot]
macroscopeappBot previously approved these changes Sep 2, 2026
@macroscopeapp
macroscopeappBot dismissed their stale reviewSeptember 2, 2026 12:13

Dismissing prior approval to re-evaluate 01313dd

macroscopeapp[bot]
macroscopeappBot previously approved these changes Sep 2, 2026
…ooltips
The package glyph fills its viewBox edge-to-edge, unlike the file-type
icons that carry intrinsic padding, so skill chips render their icon one
step smaller to sit at the same optical size. Sent-message chips gain
the description tooltip the composer already shows; the InlineSkill prop
type carries the description fields through MessagesTimeline and
ChatMarkdown, which previously narrowed them away.
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 01313dd to dab755eCompareSeptember 2, 2026 17:48
@MnigosMnigos changed the title fix(claude): discover workspace skills for the active worktreefix(web): match skill chip icons to file chips and add sent-message tooltipsSep 2, 2026
@macroscopeapp
macroscopeappBot dismissed their stale reviewSeptember 2, 2026 17:48

Dismissing prior approval to re-evaluate dab755e

@github-actionsgithub-actionsBot added size:M 30-99 changed lines (additions + deletions). and removed size:L 100-499 changed lines (additions + deletions). labels Sep 2, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M30-99 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Mnigos
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

fix(web): match skill chip icons to file chips and add sent-message tooltips - #9090

Open
Mnigos wants to merge 2 commits into
pingdotgg:mainfrom
Mnigos:workspace-skill-discovery
Open

fix(web): match skill chip icons to file chips and add sent-message tooltips#9090
Mnigos wants to merge 2 commits into
pingdotgg:mainfrom
Mnigos:workspace-skill-discovery

Conversation

@Mnigos

@MnigosMnigos commented Sep 1, 2026

Copy link
Copy Markdown

Two small skill chip fixes that came out of testing workspace skill discovery. The skill icon now renders at the same optical size as file-chip icons (the package glyph fills its viewBox edge to edge, file-type icons carry intrinsic padding). And sent-message chips get the description tooltip the composer already had, with the InlineSkill prop type carrying the description fields through MessagesTimeline and ChatMarkdown, which previously narrowed them away.

Also documents the workspace-scoped skill behavior that #8778 and #9210 shipped in docs/user/composer.md, since neither added docs.

Earlier revisions of this PR carried the workspace discovery itself; that landed piecewise through #8778 by @UtkarshUsername and #9210 by @anirudhsama (based on the approach from #4031 by @D3OXY), so this PR is down to the chip polish. Chip rendering has 7 focused tests.

Demo

Screen.Recording.2026-09-02.at.00.57.59.mov

Screenshots

image

Implemented with Claude Code (Claude Fable 5).


Note

Medium Risk
New RPC spawns Codex app-server processes per workspace lookup (mitigated by timeout and cache); cwd resolution touches orchestration projection data but stays read-only with ownership checks.

Overview
Fixes the $ skill picker and sent-message $name chips using skills from the open project/worktree instead of the server’s startup directory.

Adds provider.listWorkspaceSkills (read-scoped RPC) with contracts for input/result/source: workspace | snapshot. The server resolves cwd from thread.worktreePath ?? project.workspaceRoot, validates thread ownership, and calls an optional listSkillsForCwd on provider instances—with a 30s TTL cache per (instanceId, cwd) that does not mutate provider snapshots. Codex spawns a short-lived app-server in the workspace and calls skills/list; Claude uses discoverClaudeSkills for the resolved cwd; other drivers return source: "snapshot" so clients keep snapshot skills.

On the web, useWorkspaceSkills fetches the workspace catalog for the composer ($ menu, slash skills) and the timeline so chips survive sending. Skill chip UI is aligned (shared wrapper class, smaller skill icon) and timeline chips get description tooltips like the composer.

Reviewed by Cursor Bugbot for commit 26e4a23f392d6c6c72e285dbb3fd001aee61177a. Configure here.

Note

Fix skill chip icon styling and add description tooltips to sent message skill chips

  • Updates SkillChip to use the shared INLINE_CHIP_WRAPPER_CLASS_NAME and dedicated SKILL_CHIP_ICON_CLASS_NAME so sent-message skill chips match file chip styling
  • Adds a top-positioned tooltip to skill chips when a description is available, resolving via resolveInlineSkillDescription which prefers trimmed shortDescription over description- Refactors skill shape to the shared exported InlineSkill type across ChatMarkdown, MessagesTimeline, and SkillInlineText to carry description fields
  • Updates ComposerSkillDecorator to use SKILL_CHIP_ICON_CLASS_NAME for icon sizing
  • Documents composer skill discovery behavior for Codex, Claude, and OpenCode in composer.md

Macroscope summarized dab755e.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Sep 1, 2026
Comment threadapps/server/src/provider/providerSkills.ts Outdated
Comment threadapps/web/src/components/chat/ChatComposer.tsx Outdated
Comment threadapps/web/src/components/ChatView.tsx Outdated

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Want fixes drafted automatically? Bugbot Autofix can create code changes for findings. A team admin can enable Autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 26e4a23. Configure here.

Comment threadapps/web/src/components/ChatView.tsx Outdated
Comment threadapps/server/src/provider/providerSkills.ts Outdated
Comment threadapps/web/src/components/composerInlineChip.ts Outdated
@macroscopeapp

macroscopeappBot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at dab755e

Macroscope's review found this PR approvable — This is a narrowly scoped web UI polish change that aligns existing skill chips and adds optional descriptions through the existing tooltip component. Its runtime impact is limited to presentation and hover behavior, with focused tests and no schema, workflow, deployment, or sensitive-data changes.

You can add or adjust custom eligibility rules. Learn more.

@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 26e4a23 to ea6bcb9CompareSeptember 1, 2026 20:58
@github-actionsgithub-actionsBot added size:XL 500-999 changed lines (additions + deletions). and removed size:L 100-499 changed lines (additions + deletions). labels Sep 1, 2026
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from ea6bcb9 to 0ab5367CompareSeptember 1, 2026 20:59
Comment threadpackages/contracts/src/server.ts Outdated
Comment threadapps/web/src/components/chat/ChatComposer.tsx Outdated
Comment threadapps/server/src/provider/Drivers/CodexDriver.ts Outdated
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch 2 times, most recently from c9252d4 to 717738aCompareSeptember 1, 2026 21:10
Comment threadapps/server/src/provider/Drivers/CodexDriver.ts Outdated
Comment threadapps/server/src/provider/Drivers/CodexDriver.ts Outdated
Comment threadapps/web/src/components/chat/ChatComposer.tsx Outdated
Comment threadapps/web/src/components/ChatView.tsx Outdated
Comment threadapps/server/src/provider/providerSkills.ts Outdated
Comment threadapps/web/src/components/ChatView.tsx Outdated
Comment threadapps/web/src/components/ChatView.tsx Outdated
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 746f184 to 3e62bb3CompareSeptember 1, 2026 21:39
Comment threadapps/server/src/provider/providerSkills.ts Outdated
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 7c2c8e2 to 2a63fd0CompareSeptember 1, 2026 23:06
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 2a63fd0 to 4a6e378CompareSeptember 2, 2026 09:39
@MnigosMnigos changed the title fix(skills): discover provider skills from the active workspacefix(claude): discover workspace skills for the active worktreeSep 2, 2026
@github-actionsgithub-actionsBot added size:L 100-499 changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Sep 2, 2026
Comment threaddocs/user/composer.md Outdated
macroscopeapp[bot]
macroscopeappBot previously approved these changes Sep 2, 2026
@macroscopeapp
macroscopeappBot dismissed their stale reviewSeptember 2, 2026 12:13

Dismissing prior approval to re-evaluate 01313dd

macroscopeapp[bot]
macroscopeappBot previously approved these changes Sep 2, 2026
…ooltips
The package glyph fills its viewBox edge-to-edge, unlike the file-type
icons that carry intrinsic padding, so skill chips render their icon one
step smaller to sit at the same optical size. Sent-message chips gain
the description tooltip the composer already shows; the InlineSkill prop
type carries the description fields through MessagesTimeline and
ChatMarkdown, which previously narrowed them away.
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 01313dd to dab755eCompareSeptember 2, 2026 17:48
@MnigosMnigos changed the title fix(claude): discover workspace skills for the active worktreefix(web): match skill chip icons to file chips and add sent-message tooltipsSep 2, 2026
@macroscopeapp
macroscopeappBot dismissed their stale reviewSeptember 2, 2026 17:48

Dismissing prior approval to re-evaluate dab755e

@github-actionsgithub-actionsBot added size:M 30-99 changed lines (additions + deletions). and removed size:L 100-499 changed lines (additions + deletions). labels Sep 2, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M30-99 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Mnigos
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(web): match skill chip icons to file chips and add sent-message tooltips - #9090

Open
Mnigos wants to merge 2 commits into
pingdotgg:mainfrom
Mnigos:workspace-skill-discovery
Open

fix(web): match skill chip icons to file chips and add sent-message tooltips#9090
Mnigos wants to merge 2 commits into
pingdotgg:mainfrom
Mnigos:workspace-skill-discovery

Conversation

@Mnigos

@MnigosMnigos commented Sep 1, 2026

Copy link
Copy Markdown

Two small skill chip fixes that came out of testing workspace skill discovery. The skill icon now renders at the same optical size as file-chip icons (the package glyph fills its viewBox edge to edge, file-type icons carry intrinsic padding). And sent-message chips get the description tooltip the composer already had, with the InlineSkill prop type carrying the description fields through MessagesTimeline and ChatMarkdown, which previously narrowed them away.

Also documents the workspace-scoped skill behavior that #8778 and #9210 shipped in docs/user/composer.md, since neither added docs.

Earlier revisions of this PR carried the workspace discovery itself; that landed piecewise through #8778 by @UtkarshUsername and #9210 by @anirudhsama (based on the approach from #4031 by @D3OXY), so this PR is down to the chip polish. Chip rendering has 7 focused tests.

Demo

Screen.Recording.2026-09-02.at.00.57.59.mov

Screenshots

image

Implemented with Claude Code (Claude Fable 5).


Note

Medium Risk
New RPC spawns Codex app-server processes per workspace lookup (mitigated by timeout and cache); cwd resolution touches orchestration projection data but stays read-only with ownership checks.

Overview
Fixes the $ skill picker and sent-message $name chips using skills from the open project/worktree instead of the server’s startup directory.

Adds provider.listWorkspaceSkills (read-scoped RPC) with contracts for input/result/source: workspace | snapshot. The server resolves cwd from thread.worktreePath ?? project.workspaceRoot, validates thread ownership, and calls an optional listSkillsForCwd on provider instances—with a 30s TTL cache per (instanceId, cwd) that does not mutate provider snapshots. Codex spawns a short-lived app-server in the workspace and calls skills/list; Claude uses discoverClaudeSkills for the resolved cwd; other drivers return source: "snapshot" so clients keep snapshot skills.

On the web, useWorkspaceSkills fetches the workspace catalog for the composer ($ menu, slash skills) and the timeline so chips survive sending. Skill chip UI is aligned (shared wrapper class, smaller skill icon) and timeline chips get description tooltips like the composer.

Reviewed by Cursor Bugbot for commit 26e4a23f392d6c6c72e285dbb3fd001aee61177a. Configure here.

Note

Fix skill chip icon styling and add description tooltips to sent message skill chips

  • Updates SkillChip to use the shared INLINE_CHIP_WRAPPER_CLASS_NAME and dedicated SKILL_CHIP_ICON_CLASS_NAME so sent-message skill chips match file chip styling
  • Adds a top-positioned tooltip to skill chips when a description is available, resolving via resolveInlineSkillDescription which prefers trimmed shortDescription over description- Refactors skill shape to the shared exported InlineSkill type across ChatMarkdown, MessagesTimeline, and SkillInlineText to carry description fields
  • Updates ComposerSkillDecorator to use SKILL_CHIP_ICON_CLASS_NAME for icon sizing
  • Documents composer skill discovery behavior for Codex, Claude, and OpenCode in composer.md

Macroscope summarized dab755e.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Sep 1, 2026
Comment threadapps/server/src/provider/providerSkills.ts Outdated
Comment threadapps/web/src/components/chat/ChatComposer.tsx Outdated
Comment threadapps/web/src/components/ChatView.tsx Outdated

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Want fixes drafted automatically? Bugbot Autofix can create code changes for findings. A team admin can enable Autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 26e4a23. Configure here.

Comment threadapps/web/src/components/ChatView.tsx Outdated
Comment threadapps/server/src/provider/providerSkills.ts Outdated
Comment threadapps/web/src/components/composerInlineChip.ts Outdated
@macroscopeapp

macroscopeappBot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at dab755e

Macroscope's review found this PR approvable — This is a narrowly scoped web UI polish change that aligns existing skill chips and adds optional descriptions through the existing tooltip component. Its runtime impact is limited to presentation and hover behavior, with focused tests and no schema, workflow, deployment, or sensitive-data changes.

You can add or adjust custom eligibility rules. Learn more.

@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 26e4a23 to ea6bcb9CompareSeptember 1, 2026 20:58
@github-actionsgithub-actionsBot added size:XL 500-999 changed lines (additions + deletions). and removed size:L 100-499 changed lines (additions + deletions). labels Sep 1, 2026
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from ea6bcb9 to 0ab5367CompareSeptember 1, 2026 20:59
Comment threadpackages/contracts/src/server.ts Outdated
Comment threadapps/web/src/components/chat/ChatComposer.tsx Outdated
Comment threadapps/server/src/provider/Drivers/CodexDriver.ts Outdated
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch 2 times, most recently from c9252d4 to 717738aCompareSeptember 1, 2026 21:10
Comment threadapps/server/src/provider/Drivers/CodexDriver.ts Outdated
Comment threadapps/server/src/provider/Drivers/CodexDriver.ts Outdated
Comment threadapps/web/src/components/chat/ChatComposer.tsx Outdated
Comment threadapps/web/src/components/ChatView.tsx Outdated
Comment threadapps/server/src/provider/providerSkills.ts Outdated
Comment threadapps/web/src/components/ChatView.tsx Outdated
Comment threadapps/web/src/components/ChatView.tsx Outdated
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 746f184 to 3e62bb3CompareSeptember 1, 2026 21:39
Comment threadapps/server/src/provider/providerSkills.ts Outdated
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 7c2c8e2 to 2a63fd0CompareSeptember 1, 2026 23:06
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 2a63fd0 to 4a6e378CompareSeptember 2, 2026 09:39
@MnigosMnigos changed the title fix(skills): discover provider skills from the active workspacefix(claude): discover workspace skills for the active worktreeSep 2, 2026
@github-actionsgithub-actionsBot added size:L 100-499 changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Sep 2, 2026
Comment threaddocs/user/composer.md Outdated
macroscopeapp[bot]
macroscopeappBot previously approved these changes Sep 2, 2026
@macroscopeapp
macroscopeappBot dismissed their stale reviewSeptember 2, 2026 12:13

Dismissing prior approval to re-evaluate 01313dd

macroscopeapp[bot]
macroscopeappBot previously approved these changes Sep 2, 2026
…ooltips
The package glyph fills its viewBox edge-to-edge, unlike the file-type
icons that carry intrinsic padding, so skill chips render their icon one
step smaller to sit at the same optical size. Sent-message chips gain
the description tooltip the composer already shows; the InlineSkill prop
type carries the description fields through MessagesTimeline and
ChatMarkdown, which previously narrowed them away.
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 01313dd to dab755eCompareSeptember 2, 2026 17:48
@MnigosMnigos changed the title fix(claude): discover workspace skills for the active worktreefix(web): match skill chip icons to file chips and add sent-message tooltipsSep 2, 2026
@macroscopeapp
macroscopeappBot dismissed their stale reviewSeptember 2, 2026 17:48

Dismissing prior approval to re-evaluate dab755e

@github-actionsgithub-actionsBot added size:M 30-99 changed lines (additions + deletions). and removed size:L 100-499 changed lines (additions + deletions). labels Sep 2, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M30-99 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Mnigos
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(web): match skill chip icons to file chips and add sent-message tooltips - #9090

Open
Mnigos wants to merge 2 commits into
pingdotgg:mainfrom
Mnigos:workspace-skill-discovery
Open

fix(web): match skill chip icons to file chips and add sent-message tooltips#9090
Mnigos wants to merge 2 commits into
pingdotgg:mainfrom
Mnigos:workspace-skill-discovery

Conversation

@Mnigos

@MnigosMnigos commented Sep 1, 2026

Copy link
Copy Markdown

Two small skill chip fixes that came out of testing workspace skill discovery. The skill icon now renders at the same optical size as file-chip icons (the package glyph fills its viewBox edge to edge, file-type icons carry intrinsic padding). And sent-message chips get the description tooltip the composer already had, with the InlineSkill prop type carrying the description fields through MessagesTimeline and ChatMarkdown, which previously narrowed them away.

Also documents the workspace-scoped skill behavior that #8778 and #9210 shipped in docs/user/composer.md, since neither added docs.

Earlier revisions of this PR carried the workspace discovery itself; that landed piecewise through #8778 by @UtkarshUsername and #9210 by @anirudhsama (based on the approach from #4031 by @D3OXY), so this PR is down to the chip polish. Chip rendering has 7 focused tests.

Demo

Screen.Recording.2026-09-02.at.00.57.59.mov

Screenshots

image

Implemented with Claude Code (Claude Fable 5).


Note

Medium Risk
New RPC spawns Codex app-server processes per workspace lookup (mitigated by timeout and cache); cwd resolution touches orchestration projection data but stays read-only with ownership checks.

Overview
Fixes the $ skill picker and sent-message $name chips using skills from the open project/worktree instead of the server’s startup directory.

Adds provider.listWorkspaceSkills (read-scoped RPC) with contracts for input/result/source: workspace | snapshot. The server resolves cwd from thread.worktreePath ?? project.workspaceRoot, validates thread ownership, and calls an optional listSkillsForCwd on provider instances—with a 30s TTL cache per (instanceId, cwd) that does not mutate provider snapshots. Codex spawns a short-lived app-server in the workspace and calls skills/list; Claude uses discoverClaudeSkills for the resolved cwd; other drivers return source: "snapshot" so clients keep snapshot skills.

On the web, useWorkspaceSkills fetches the workspace catalog for the composer ($ menu, slash skills) and the timeline so chips survive sending. Skill chip UI is aligned (shared wrapper class, smaller skill icon) and timeline chips get description tooltips like the composer.

Reviewed by Cursor Bugbot for commit 26e4a23f392d6c6c72e285dbb3fd001aee61177a. Configure here.

Note

Fix skill chip icon styling and add description tooltips to sent message skill chips

  • Updates SkillChip to use the shared INLINE_CHIP_WRAPPER_CLASS_NAME and dedicated SKILL_CHIP_ICON_CLASS_NAME so sent-message skill chips match file chip styling
  • Adds a top-positioned tooltip to skill chips when a description is available, resolving via resolveInlineSkillDescription which prefers trimmed shortDescription over description- Refactors skill shape to the shared exported InlineSkill type across ChatMarkdown, MessagesTimeline, and SkillInlineText to carry description fields
  • Updates ComposerSkillDecorator to use SKILL_CHIP_ICON_CLASS_NAME for icon sizing
  • Documents composer skill discovery behavior for Codex, Claude, and OpenCode in composer.md

Macroscope summarized dab755e.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Sep 1, 2026
Comment threadapps/server/src/provider/providerSkills.ts Outdated
Comment threadapps/web/src/components/chat/ChatComposer.tsx Outdated
Comment threadapps/web/src/components/ChatView.tsx Outdated

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Want fixes drafted automatically? Bugbot Autofix can create code changes for findings. A team admin can enable Autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 26e4a23. Configure here.

Comment threadapps/web/src/components/ChatView.tsx Outdated
Comment threadapps/server/src/provider/providerSkills.ts Outdated
Comment threadapps/web/src/components/composerInlineChip.ts Outdated
@macroscopeapp

macroscopeappBot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at dab755e

Macroscope's review found this PR approvable — This is a narrowly scoped web UI polish change that aligns existing skill chips and adds optional descriptions through the existing tooltip component. Its runtime impact is limited to presentation and hover behavior, with focused tests and no schema, workflow, deployment, or sensitive-data changes.

You can add or adjust custom eligibility rules. Learn more.

@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 26e4a23 to ea6bcb9CompareSeptember 1, 2026 20:58
@github-actionsgithub-actionsBot added size:XL 500-999 changed lines (additions + deletions). and removed size:L 100-499 changed lines (additions + deletions). labels Sep 1, 2026
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from ea6bcb9 to 0ab5367CompareSeptember 1, 2026 20:59
Comment threadpackages/contracts/src/server.ts Outdated
Comment threadapps/web/src/components/chat/ChatComposer.tsx Outdated
Comment threadapps/server/src/provider/Drivers/CodexDriver.ts Outdated
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch 2 times, most recently from c9252d4 to 717738aCompareSeptember 1, 2026 21:10
Comment threadapps/server/src/provider/Drivers/CodexDriver.ts Outdated
Comment threadapps/server/src/provider/Drivers/CodexDriver.ts Outdated
Comment threadapps/web/src/components/chat/ChatComposer.tsx Outdated
Comment threadapps/web/src/components/ChatView.tsx Outdated
Comment threadapps/server/src/provider/providerSkills.ts Outdated
Comment threadapps/web/src/components/ChatView.tsx Outdated
Comment threadapps/web/src/components/ChatView.tsx Outdated
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 746f184 to 3e62bb3CompareSeptember 1, 2026 21:39
Comment threadapps/server/src/provider/providerSkills.ts Outdated
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 7c2c8e2 to 2a63fd0CompareSeptember 1, 2026 23:06
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 2a63fd0 to 4a6e378CompareSeptember 2, 2026 09:39
@MnigosMnigos changed the title fix(skills): discover provider skills from the active workspacefix(claude): discover workspace skills for the active worktreeSep 2, 2026
@github-actionsgithub-actionsBot added size:L 100-499 changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Sep 2, 2026
Comment threaddocs/user/composer.md Outdated
macroscopeapp[bot]
macroscopeappBot previously approved these changes Sep 2, 2026
@macroscopeapp
macroscopeappBot dismissed their stale reviewSeptember 2, 2026 12:13

Dismissing prior approval to re-evaluate 01313dd

macroscopeapp[bot]
macroscopeappBot previously approved these changes Sep 2, 2026
…ooltips
The package glyph fills its viewBox edge-to-edge, unlike the file-type
icons that carry intrinsic padding, so skill chips render their icon one
step smaller to sit at the same optical size. Sent-message chips gain
the description tooltip the composer already shows; the InlineSkill prop
type carries the description fields through MessagesTimeline and
ChatMarkdown, which previously narrowed them away.
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 01313dd to dab755eCompareSeptember 2, 2026 17:48
@MnigosMnigos changed the title fix(claude): discover workspace skills for the active worktreefix(web): match skill chip icons to file chips and add sent-message tooltipsSep 2, 2026
@macroscopeapp
macroscopeappBot dismissed their stale reviewSeptember 2, 2026 17:48

Dismissing prior approval to re-evaluate dab755e

@github-actionsgithub-actionsBot added size:M 30-99 changed lines (additions + deletions). and removed size:L 100-499 changed lines (additions + deletions). labels Sep 2, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M30-99 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Mnigos
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

fix(web): match skill chip icons to file chips and add sent-message tooltips - #9090

Open
Mnigos wants to merge 2 commits into
pingdotgg:mainfrom
Mnigos:workspace-skill-discovery
Open

fix(web): match skill chip icons to file chips and add sent-message tooltips#9090
Mnigos wants to merge 2 commits into
pingdotgg:mainfrom
Mnigos:workspace-skill-discovery

Conversation

@Mnigos

@MnigosMnigos commented Sep 1, 2026

Copy link
Copy Markdown

Two small skill chip fixes that came out of testing workspace skill discovery. The skill icon now renders at the same optical size as file-chip icons (the package glyph fills its viewBox edge to edge, file-type icons carry intrinsic padding). And sent-message chips get the description tooltip the composer already had, with the InlineSkill prop type carrying the description fields through MessagesTimeline and ChatMarkdown, which previously narrowed them away.

Also documents the workspace-scoped skill behavior that #8778 and #9210 shipped in docs/user/composer.md, since neither added docs.

Earlier revisions of this PR carried the workspace discovery itself; that landed piecewise through #8778 by @UtkarshUsername and #9210 by @anirudhsama (based on the approach from #4031 by @D3OXY), so this PR is down to the chip polish. Chip rendering has 7 focused tests.

Demo

Screen.Recording.2026-09-02.at.00.57.59.mov

Screenshots

image

Implemented with Claude Code (Claude Fable 5).


Note

Medium Risk
New RPC spawns Codex app-server processes per workspace lookup (mitigated by timeout and cache); cwd resolution touches orchestration projection data but stays read-only with ownership checks.

Overview
Fixes the $ skill picker and sent-message $name chips using skills from the open project/worktree instead of the server’s startup directory.

Adds provider.listWorkspaceSkills (read-scoped RPC) with contracts for input/result/source: workspace | snapshot. The server resolves cwd from thread.worktreePath ?? project.workspaceRoot, validates thread ownership, and calls an optional listSkillsForCwd on provider instances—with a 30s TTL cache per (instanceId, cwd) that does not mutate provider snapshots. Codex spawns a short-lived app-server in the workspace and calls skills/list; Claude uses discoverClaudeSkills for the resolved cwd; other drivers return source: "snapshot" so clients keep snapshot skills.

On the web, useWorkspaceSkills fetches the workspace catalog for the composer ($ menu, slash skills) and the timeline so chips survive sending. Skill chip UI is aligned (shared wrapper class, smaller skill icon) and timeline chips get description tooltips like the composer.

Reviewed by Cursor Bugbot for commit 26e4a23f392d6c6c72e285dbb3fd001aee61177a. Configure here.

Note

Fix skill chip icon styling and add description tooltips to sent message skill chips

  • Updates SkillChip to use the shared INLINE_CHIP_WRAPPER_CLASS_NAME and dedicated SKILL_CHIP_ICON_CLASS_NAME so sent-message skill chips match file chip styling
  • Adds a top-positioned tooltip to skill chips when a description is available, resolving via resolveInlineSkillDescription which prefers trimmed shortDescription over description- Refactors skill shape to the shared exported InlineSkill type across ChatMarkdown, MessagesTimeline, and SkillInlineText to carry description fields
  • Updates ComposerSkillDecorator to use SKILL_CHIP_ICON_CLASS_NAME for icon sizing
  • Documents composer skill discovery behavior for Codex, Claude, and OpenCode in composer.md

Macroscope summarized dab755e.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Sep 1, 2026
Comment threadapps/server/src/provider/providerSkills.ts Outdated
Comment threadapps/web/src/components/chat/ChatComposer.tsx Outdated
Comment threadapps/web/src/components/ChatView.tsx Outdated

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Want fixes drafted automatically? Bugbot Autofix can create code changes for findings. A team admin can enable Autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 26e4a23. Configure here.

Comment threadapps/web/src/components/ChatView.tsx Outdated
Comment threadapps/server/src/provider/providerSkills.ts Outdated
Comment threadapps/web/src/components/composerInlineChip.ts Outdated
@macroscopeapp

macroscopeappBot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at dab755e

Macroscope's review found this PR approvable — This is a narrowly scoped web UI polish change that aligns existing skill chips and adds optional descriptions through the existing tooltip component. Its runtime impact is limited to presentation and hover behavior, with focused tests and no schema, workflow, deployment, or sensitive-data changes.

You can add or adjust custom eligibility rules. Learn more.

@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 26e4a23 to ea6bcb9CompareSeptember 1, 2026 20:58
@github-actionsgithub-actionsBot added size:XL 500-999 changed lines (additions + deletions). and removed size:L 100-499 changed lines (additions + deletions). labels Sep 1, 2026
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from ea6bcb9 to 0ab5367CompareSeptember 1, 2026 20:59
Comment threadpackages/contracts/src/server.ts Outdated
Comment threadapps/web/src/components/chat/ChatComposer.tsx Outdated
Comment threadapps/server/src/provider/Drivers/CodexDriver.ts Outdated
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch 2 times, most recently from c9252d4 to 717738aCompareSeptember 1, 2026 21:10
Comment threadapps/server/src/provider/Drivers/CodexDriver.ts Outdated
Comment threadapps/server/src/provider/Drivers/CodexDriver.ts Outdated
Comment threadapps/web/src/components/chat/ChatComposer.tsx Outdated
Comment threadapps/web/src/components/ChatView.tsx Outdated
Comment threadapps/server/src/provider/providerSkills.ts Outdated
Comment threadapps/web/src/components/ChatView.tsx Outdated
Comment threadapps/web/src/components/ChatView.tsx Outdated
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 746f184 to 3e62bb3CompareSeptember 1, 2026 21:39
Comment threadapps/server/src/provider/providerSkills.ts Outdated
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 7c2c8e2 to 2a63fd0CompareSeptember 1, 2026 23:06
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 2a63fd0 to 4a6e378CompareSeptember 2, 2026 09:39
@MnigosMnigos changed the title fix(skills): discover provider skills from the active workspacefix(claude): discover workspace skills for the active worktreeSep 2, 2026
@github-actionsgithub-actionsBot added size:L 100-499 changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Sep 2, 2026
Comment threaddocs/user/composer.md Outdated
macroscopeapp[bot]
macroscopeappBot previously approved these changes Sep 2, 2026
@macroscopeapp
macroscopeappBot dismissed their stale reviewSeptember 2, 2026 12:13

Dismissing prior approval to re-evaluate 01313dd

macroscopeapp[bot]
macroscopeappBot previously approved these changes Sep 2, 2026
…ooltips
The package glyph fills its viewBox edge-to-edge, unlike the file-type
icons that carry intrinsic padding, so skill chips render their icon one
step smaller to sit at the same optical size. Sent-message chips gain
the description tooltip the composer already shows; the InlineSkill prop
type carries the description fields through MessagesTimeline and
ChatMarkdown, which previously narrowed them away.
@Mnigos
Mnigosforce-pushed the workspace-skill-discovery branch from 01313dd to dab755eCompareSeptember 2, 2026 17:48
@MnigosMnigos changed the title fix(claude): discover workspace skills for the active worktreefix(web): match skill chip icons to file chips and add sent-message tooltipsSep 2, 2026
@macroscopeapp
macroscopeappBot dismissed their stale reviewSeptember 2, 2026 17:48

Dismissing prior approval to re-evaluate dab755e

@github-actionsgithub-actionsBot added size:M 30-99 changed lines (additions + deletions). and removed size:L 100-499 changed lines (additions + deletions). labels Sep 2, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M30-99 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Mnigos