extension yank: allow unyank and version-specific yanks
Opened by bixu · 4/21/2026· Shipped 4/21/2026
Problem Statement
Currently swamp extension yank <name> yanks the entire extension (all versions, all future pushes blocked with HTTP 410). There is no unyank command and no way to yank only a specific version.
This creates two painful failure modes:
- Accidental push from the wrong branch — if you push from main instead of a PR branch, you yank the bad version, but now the *entire extension* is dead. Even bumping the version and pushing from the correct branch returns 410 forever.
- No recovery path — there is no CLI command or UI affordance to recover from a full-extension yank. The extension name is permanently unusable.
Observed Behavior
Running swamp extension yank @hivemq/harvester/fetch-kubeconfig 2026.04.21.1 --reason '...' (version-specific yank) blocked ALL future pushes, including 2026.04.21.2, with HTTP 410: Extension has been yanked.
swamp extension version @hivemq/harvester/fetch-kubeconfig still reports currentPublished: "2026.04.21.1" and nextVersion: "2026.04.21.2", but pushing the next version returns 410.
Proposed Solution
- Version-specific yanks should only block that version. Pushing a higher version to the same extension name should succeed after yanking a single version.
- Add
swamp extension unyank <name> [version]— allow the extension owner to restore a yanked extension or specific version. At minimum, allow unyank of the full extension so the name can be reused. - Clarify yank scope in the CLI — the
yankhelp text should make clear whether the yank affects only the specified version or the entire extension.
Alternatives
- Could use a new extension name as a workaround, but this breaks existing consumers and skill references.
Environment
Swamp version: 20260420.232916.0-sha.858cc512
Shipped
Click a lifecycle step above to view its details.
Sign in to post a ripple.