Skip to main content
← Back to list
01Issue
BugTriagedSwamp CLI
Assigneesstack72

Relationships

Blocked

#730 extension pull serves a stale version that disagrees with search (honors a legacy per-extension serverUrl)

Opened by 4chems · 6/21/2026

Summary

swamp extension pull retrieves an OLD version of an extension even though swamp extension search (and the registry that push writes to) reports a newer one. It appears pull honors a stale per-extension serverUrl recorded in the repo's pin file.

Steps to reproduce

  1. An @collective extension was pinned long ago; its entry in extensions/models/upstream_extensions.json has "serverUrl": "https://swamp.club", while every other extension in the same file uses https://swamp-club.com (looks like a registry rename swamp.club -> swamp-club.com left this pin on the legacy host).
  2. Publish a new version of that extension: swamp extension push manifest.yaml --yes succeeds.
  3. swamp extension search @collective/name --json now reports "latestVersion": "<new>" with the new description. Good.
  4. swamp extension pull @collective/name (or ...@<new>) -> the pulled models/*.ts and manifest.yaml STILL contain the OLD version's code/version string.
  5. Deleting the extension's entry from upstream_extensions.json (removing the pin) and re-pulling STILL serves the old version.

Also observed

  • Pull logs: Using cached bundle for "<model>.ts" — source may have changed but bundle could not be regenerated.
  • Clearing .swamp/bundles/*/<model>.js and .swamp/_extension_catalog.db* does not change the outcome.

Expected

  • pull should fetch the version that search/push resolve to (or re-resolve the active registry when the pin is removed), and there should be a reliable way to force a fresh re-pull + bundle regeneration.

Impact

Any @collective/* extension whose pin still points at the legacy swamp.club host cannot be updated in a consuming repo after republish — the new version is silently ignored, with no error.

Environment

swamp 20260610.225536.0-sha.4559c368, macOS (darwin).

02Bog Flow
OPENTRIAGEDIN PROGRESSSHIPPED+ 1 MOREASSIGNED+ 2 MOREREVIEW

Triaged

6/21/2026, 4:47:21 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
stack72 assigned stack726/21/2026, 4:39:48 PM
stack72 marked as blocked6/21/2026, 7:33:40 PM
Editable. Press Enter to edit.

stack72 commented 6/21/2026, 5:04:44 PM

Hey @4chems — thanks for the detailed report. We tried to reproduce this but couldn't: when we set a legacy serverUrl ("https://swamp.club") in the lockfile and re-pulled, the CLI correctly ignored it and fetched the latest version from swamp-club.com. The lockfile's serverUrl field is written but never read back for fetching — every pull path uses resolveServerUrl().

Could you share a bit more detail so we can pin this down?

  1. Which extension name and version are you seeing the mismatch on?
  2. After the pull, what does the manifest.yaml in .swamp/pulled-extensions// show for the version?
  3. What does the full pull log output show? (especially the "Pulling ...@..." line showing which version it resolves to)
  4. Is there a SWAMP_CLUB_URL env var set in your shell?
  5. What swamp version are you on? (swamp --version)

Sign in to post a ripple.