Skip to main content
← Back to list
01Issue
BugShippedSwamp CLIPublic
Assigneeshammz

Relationships

#2246 s3-datastore: pullChanged ignores subdirs while advertising configRefresh, so serve pollers re-download the whole datastore

Opened by hammz · 9/17/2026· Shipped 9/17/2026

Summary

@swamp/s3-datastore (2026.09.10.2) sets configRefresh: true in its capabilities, but pullChanged never reads options.subdirs. The word subdirs does not appear anywhere in datastores/_lib/s3_cache_sync.ts. Every scoped pull therefore compares the whole remote index with the local cache and downloads any file that is missing locally.

Why it matters

swamp serve runs three pollers every 30s, and each one asks for a scoped pull:

  • config poller: subdirs: ["config"]
  • access data poller
  • runtime data poller: subdirs: ["data"]

Because the scope is ignored, each poll walks the entire datastore. A file removed from serve's local cache comes back from S3 on the next poll, whichever poller runs first. This made the deleted-data resurrection in swamp-club#2240 happen within about 4s instead of on the next runtime-data poll. The missing push on delete is being fixed in core under #2240. This issue covers only the extension side.

Reproduction (local MinIO, swamp 20260917.034341.0-sha.81c00b86)

  1. Set up the S3 datastore against MinIO (endpoint, forcePathStyle: true), with managedConfig: true and hydrationStrategy full.
  2. Start swamp serve --auth-mode none --log-level debug.
  3. Write a data item through serve, then remove its directory from serve's local cache (swamp data delete ... --server does this today without pushing).
  4. Within seconds serve logs Config poller: 3 file(s) updated, invalidating catalogs. The three restored files are under data/, not config/.

Expected

When subdirs is given, pullChanged (including the fast path) only considers index entries under those datastore subdirectories. Alternatively, the extension should stop advertising configRefresh until it honors the scope.

Upstream repository: https://github.com/systeminit/swamp-extensions

Environment

  • Extension: @swamp/s3-datastore@2026.09.10.2
  • swamp: 20260917.034341.0-sha.81c00b86
  • OS: darwin (aarch64)
  • Deno: 2.9.6
  • Shell: /bin/zsh
02Bog Flow
OPENTRIAGEDIN PROGRESSSHIPPED+ 1 MOREASSIGNED+ 5 MOREREVIEW+ 8 MOREPR_MERGED+ 2 MORESESSION_SUMMARIZED

Shipped

9/17/2026, 9:11:54 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
hammz assigned hammz9/17/2026, 4:47:30 PM

Sign in to post a ripple.