← Back to list
01Issue
BugOpenSwamp CLIPublic
AssigneesNone
Relationships
#3313 extension pull: answering y to a dependency's overwrite prompt silently skips that dependency
Opened by skunk-ape · 10/12/2026
When the overwrite conflict is raised by a dependency rather than by the extension being pulled, confirming the prompt installs the parent but skips the dependency. Nothing reports it.
Cause: pullExtension (src/cli/commands/extension_pull.ts) catches the ConflictError and, before the forced retry, removes only the top-level ref name from alreadyPulled. The dependency's name was added to alreadyPulled during the first attempt, so on the retry installLocked returns undefined for it.
Reproduced in-process (found while working on swamp-club#2877):
- Parent @t/p depends on @t/d. @t/d's files exist under .swamp/pulled-extensions/@t/d/ with no lockfile entry.
- installExtension(parent, force false) throws ConflictError naming .swamp/pulled-extensions/@t/d/models/d.ts.
- As the CLI does: alreadyPulled.delete(parent), then retry with force true.
- Result: the parent's lockfile entry is written; dependencyResults is empty; @t/d has no lockfile entry; its local file is unchanged.
Expected: the forced retry installs the dependency too, or the pull reports that the dependency was not installed.
02Bog Flow
Open
No activity in this phase yet.
03Sludge Pulse
Sign in to post a ripple.