mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-11-14 02:29:33 +01:00
fix(agent-skill): refuse a symlinked reference folder inside the skill copy
Install and uninstall checked only the copy and its parent for symlinks, so a `reference` folder that is a link carried every write and unlink of `reference/<name>.md` to wherever it pointed. Measured: install overwrote a `history.md` outside the workspace and uninstall deleted it. A cloned repository can commit that link, and a Docker case's container can plant it in the bind-mounted workspace the host injects into. With the skill on by default, both now ran without the user asking. Both paths now return 'symlink' for a linked folder inside the copy, before the first write or unlink, and the refusal messages say so. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
9c64fc128d
commit
ddcdd5d974
4 files changed
+91
-5
No files matched your search
@@ -1003,7 +1003,7 @@ async function injectAgentSkill(casePath: string, dir: AgentSkillDir): Promise<v
|
||||
);
|
||||
} else if (result === 'symlink') {
|
||||
console.warn(
|
||||
`[agent-skill] not injected: ${skillDir} (or its parent) is a symlink, refusing to write through it. Replace it with a real directory to let Codeman install the skill.`
|
||||
`[agent-skill] not injected: ${skillDir}, its parent or its reference folder is a symlink, refusing to write through it. Replace it with a real directory to let Codeman install the skill.`
|
||||
);
|
||||
}
|
||||
} catch (err: unknown) {
|
||||
|
||||
Reference in new issue
Block a user