JetBrains / JetBrains/thinkrail
Skills: Reload can't load a plugin installed after the chat started
- Dominant language
- TypeScript
- Stars
- 467
- Forks
- 37
- Avg merge
- 1d 56m
- Merged PRs (30d)
- 141
Description
Follow-up from AIR review on #94 (deferred there by decision).
**Problem.** A Claude plugin *installed after* a chat session is created cannot be loaded by the in-chat **Reload** — the Skills manager (which re-reads `installed_plugins.json` live) shows it, but Reload reports success while the running session still can't use it.
**Root cause.** `buildResourceLoader` computes `additionalSkillPaths` once at session construction. pi's `DefaultResourceLoader.reload()` re-derives its scan set from the private, construction-time `additionalSkillPaths` (it *overwrites* `lastSkillPaths`, so `extendResources` additions don't survive a reload), and `AgentSession` exposes no way to swap/reconfigure the resource loader. `#94` fixed the analogous case for **fixed-location** alias dirs (`.claude/skills` etc.) by pre-registering their candidate roots — but a plugin's install path isn't known ahead of time, and blind-scanning the plugin cache root is explicitly rejected (stale versions + transitive `node_modules/**/skills`).
**Options to explore.**
- A pi capability to reconfigure `additionalSkillPaths` (or swap the resource loader) on a live session, so the reload handler can re-read the plugin manifest and pick up new installs.
- Failing that, surface the limitation in the UI (Reload note: newly-installed plugins need a fresh session).
**Severity.** Real but narrow (plugin install mid-session); needs an upstream pi affordance to fix cleanly, which is why it was deferred out of #94.
Contributor guide
Research direction
Start with buildResourceLoader, the Reload handler, and the pi DefaultResourceLoader.reload and AgentSession behavior described here. Determine whether a live resource-loader reconfiguration can make a plugin installed after session creation available; otherwise verify the UI clearly notes that a fresh session is required. Done means Reload no longer reports success while the running session cannot use the newly installed plugin.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- ai, tooling
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100