Fix _find_skill: use iter_skill_index_files to follow symlinks - #60960
Open
wildnewton wants to merge 5 commits into
Open
Fix _find_skill: use iter_skill_index_files to follow symlinks#60960wildnewton wants to merge 5 commits into
wildnewton wants to merge 5 commits into
Conversation
Collaborator
Duplicate of #35244 (earliest open, canonical) which fixes #35184 with the identical mechanism: replace |
Contributor
|
Thanks for tracing the active-profile discovery mismatch. The current main path still uses Problems
Suggested changes
Automated hermes-sweeper review. |
…nt message, error, malformed JSONL
…t_message as interim progress
fix: relay codex exec --json progress as interim messages in delegate_task
This was referenced Jul 31, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
_find_skill()usedPath.rglob("SKILL.md")which does NOT follow symlinks in Python 3.11. This meant any skill directory reached through a symlink was invisible toskill_manage, even thoughskill_viewcould load it (viaiter_skill_index_files→os.walk(followlinks=True)).Root Cause
_find_skill→rglob()(no follow_symlinks) ≠skill_view→iter_skill_index_files→os.walk(followlinks=True)When a skill is symlinked (e.g., from a project directory into the profile's skills dir),
skill_viewcan load it butskill_managereports "not found." This asymmetry caused agents to fall back toaction='create', which produced nested duplicate skills that broke cron scheduler resolution.Fix
Replace
rglob("SKILL.md")withiter_skill_index_files(skills_dir, "SKILL.md")— the same functionskill_viewuses.TDD
_find_skilldiscovers a symlinked skill directory_find_skill+ importRelated