Skip to main content
← Back to list
01Issue
BugClosedSwamp CLI
AssigneesNone

Relationships

#891 GCS pushChanged bulk-walk deletion gate uses bulkInvalidated instead of dirtyPathsOverflowed, diverging from S3

Opened by stack72 · 6/29/2026

In gcs_cache_sync.ts pushChanged() full-walk branch (line ~1267), remote-object deletion is gated on this.bulkInvalidated. S3 uses dirtyPathsOverflowed instead, and its comments explicitly state: 'a no-path markDirty() is a modification signal, not a deletion signal.' Since pushFile() calls markDirty() without relPath (setting bulkInvalidated=true), a cross-process pushFile -> pushChanged sequence could delete remote-only objects. GCS lacks the dirtyPathsOverflowed field entirely. Fix: mirror S3's design — add dirtyPathsOverflowed to GCS, gate bulk-walk deletions on it, not bulkInvalidated. Discovered during #867 code review.

02Bog Flow
OPENTRIAGEDIN PROGRESSCLOSED

Closed

6/29/2026, 10:40:04 PM

No activity in this phase yet.

03Sludge Pulse

Sign in to post a ripple.