Skip to content

fix(core): skip skill rescans for unrelated config changes - #47397

Closed
kitlangton wants to merge 1 commit into
v2from
skip-skill-rescans
Closed

kitlangton wants to merge 1 commit into
v2from
skip-skill-rescans

Conversation

@kitlangton

@kitlangton kitlangton commented Sep 4, 2026 •

Copy link
Copy Markdown
Contributor

An unrelated config edit currently rebuilds the entire configured skill catalog. For example, changing only shell triggers another directory scan, remote skill index pull, watcher teardown/recreation, and skill reload even though the source list is unchanged.

Compare the derived, deduplicated skill-source descriptors in order before refreshing on config.updated, while still retaining the latest config entries. This preserves path expansion and later-source precedence. Source additions, removals, reordering, and URL changes still refresh; filesystem events still refresh unconditionally, including symlink retargeting and missing-directory creation. Unrelated config edits consequently no longer act as incidental remote skill index refreshes.

Regression coverage counts actual filesystem scans (delegating to FSUtil), discovery calls, catalog reloads, and watcher subscriptions. Before the fix, the unrelated shell edit increased scans/pulls/reloads by one each; afterward all three remain unchanged. It also checks equivalent relative/absolute paths, duplicates, source ordering, replacement/removal, and skill edits after a source change.

Validation:

  • 25 skill/config-skill/discovery/plugin-skill tests pass.
  • Broader config suite: 155 pass, one file-recreation watcher timeout; that test passes in isolation and only constructs Config/Bus, not the skill plugin.
  • bun typecheck in packages/core passes; focused oxlint and git diff --check pass.
  • Local fixture suites needed execution outside the filesystem/network sandbox and ran with Bun 1.4.0. Subsequently ran the normal .husky/pre-push hook with temporary Bun 1.4.1 (no global installation change): version check passed and all 33 typecheck tasks succeeded (25 cache hits, 8 executed), exit code 0. Turbo emitted sandbox IO warnings but no task failed. This closes the validation gate initially bypassed during push.

This PR is independent of the skill plugin startup read/subscribe gap fix.

@github-actions

github-actions Bot commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

Automated PR Cleanup

Thank you for contributing to opencode.

Due to the high volume of PRs from users and AI agents, we periodically close older PRs using automated criteria so maintainers can focus review time on the most active and community-supported contributions.

This PR was closed because it matched the following cleanup criteria:

  • The PR was created more than 1 month ago
  • The PR had fewer than 2 positive reactions
  • Positive reactions are counted as thumbs-up, heart, celebration, or rocket reactions on the PR

PRs created within the last month are not affected by this cleanup.

If you believe this PR was closed incorrectly, or if you are still actively working on it, please leave a comment explaining why it should be reopened. A maintainer can review and reopen it if appropriate.

Thanks again for taking the time to contribute.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant