Skip to content

Bug: Plugin-contributed skills never appear when the daemon is started outside the project that enabled the plugin #1981

Description

@m5x

Version: Fusion 0.57.0

Repro:

  1. Start fn dashboard in ~ with several managed projects.
  2. Register a path-based plugin contributing skills via definePlugin's skills array; enable it for managed project P only.
  3. Open P's Skills view.

Expected: the plugin's skills listed (source plugin:<id>).
Actual: no plugin skills, across restarts, nothing in logs. Plugin state is STARTED, plugin settings render fine, module verified healthy (default export, 10 skills, imports standalone).

Confirmation: starting fn dashboard in P's root makes all 10 skills appear — daemon scope == enablement scope.

Root cause: plugin enablement is per-project (project_plugin_states keyed projectPath+pluginId; each PluginStore pinned to one normalizedProjectPath), but the skills adapter is wired once at startup to the daemon-level PluginLoader (getPluginSkills: () => pluginLoader.getPluginSkills()). Its loadAllPlugins() loads only plugins enabled for the daemon's rootDir and silently skips the rest, so /skills/discovered merges disk skills of the requested project with plugin skills from the wrong scope.

Suggested fix: make getPluginSkills project-aware (resolve the requesting project's enablement + a loader for that scope), or load the union of all projects' enabled plugins and filter per request. Please also log plugins skipped as disabled at load time — the silent skip made this expensive to diagnose.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    Status
    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions