Skip to content

fix(server): show new skills in the picker without restarting - #2

Draft
dakdevs wants to merge 3 commits into
mainfrom
t3code/312c9c3e
Draft

dakdevs wants to merge 3 commits into
mainfrom
t3code/312c9c3e

Conversation

@dakdevs

@dakdevs dakdevs commented Sep 20, 2026 •

Copy link
Copy Markdown
Owner

Why

The $ picker keeps the first skill snapshot for a workspace until T3 restarts.

Evidence:

  • refreshWorkspaceSnapshot returns the cached list once a cwd snapshot exists, so a later composer open does not scan again.
  • Web and mobile only request that snapshot when the cwd is missing from workspaceSnapshots.
  • The 5-minute health probe updates machine-level skills, but the composer reads workspaceSnapshots[cwd].skills first.

Fix: Stat each provider's listed skill roots every 3s. On a mismatch, drop that cwd snapshot (no publish) and reuse the one-shot refresh. Missing roots stay in the signature as path:! so creating a skills folder counts. fs.watch cannot do that.

Summary

New skills in a provider's skill directories show up in $ and / without restarting T3. Full discovery still runs only after a root signature moves.

What

  • Each driver exposes the roots it actually loads via skillCatalogRoots.
  • fingerprintSkillCatalogRoots stats those roots only. No BFS, no public force flag.
  • A mismatch drops the cached workspace snapshot, then refreshWorkspaceSnapshot re-probes and publishes on the existing provider stream.

Who this helps

Anyone who adds a skill while T3 is already open: installing a skill mid-session, an agent writing SKILL.md, or copying a folder into .claude/skills / .agents/skills.

Test plan

  • Open a thread so a workspace snapshot exists, add a skill folder under a provider root, wait a few seconds, open $, and confirm the new skill appears.
  • Same path with /.
  • Repeat on mobile New task and an existing thread.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L labels Sep 20, 2026
Workspace skill catalogs were cached after the first snapshot, so a skill added while T3 Code was running stayed invisible until restart. Fingerprint each provider's skill directories and force-refresh only when that signature changes.

Co-authored-by: Cursor <cursoragent@cursor.com>
@dakdevs
dakdevs changed the base branch from t3code/312c9c3e-base to main September 20, 2026 04:35
@github-actions github-actions Bot added size:XL and removed size:L labels Sep 20, 2026
Workspace skill snapshots stayed cached after the first probe. Opening $
or / now force-reprobes that cwd instead of fingerprint-polling every
provider's skill roots.

Co-authored-by: Cursor <cursoragent@cursor.com>
@dakdevs dakdevs changed the title fix(server): show new skills in the picker without restarting fix(composer): show new skills in the picker without restarting Sep 20, 2026
@github-actions github-actions Bot added size:M and removed size:XL labels Sep 20, 2026
Opening the picker to re-probe was cheaper, but new skills stayed
hidden until the user opened $ or /. Stat each listed root every 3s
and, on a mismatch, drop that cwd snapshot so the existing one-shot
refresh runs again. Missing paths stay in the signature.

Co-authored-by: Cursor <cursoragent@cursor.com>
@dakdevs dakdevs changed the title fix(composer): show new skills in the picker without restarting fix(server): show new skills in the picker without restarting Sep 20, 2026
@github-actions github-actions Bot added size:L and removed size:M labels Sep 20, 2026
@github-actions

Copy link
Copy Markdown

Thread transfer impact

⚠️ The latest CI run did not produce a thread transfer result for b537e62.

This comment will update automatically after the next completed run.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant