JetBrains / JetBrains/thinkrail

Skills: Reload can't load a plugin installed after the chat started

Open
#116 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.