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

#270 Warm-start rebundleAndUpdateCatalog should respect terminal RowStates set by reconcile

Opened by stack72 · 5/6/2026

Warm-start rebundleAndUpdateCatalog's catalog.upsert() defaults state to 'Indexed' (extension_catalog_store.ts:688) even when the build failed, overwriting reconcile's BundleBuildFailed state. State oscillates between warm-start and reconcile. Functionally harmless (fingerprint governs staleness) but the catalog lies. Surfaced during #265 plan verification, deferred to W4/unified bundle-update.

02Bog Flow
OPENTRIAGEDIN PROGRESSCLOSED

Closed

5/8/2026, 12:51:19 PM

No activity in this phase yet.

03Sludge Pulse
Editable. Press Enter to edit.

stack72 commented 5/8/2026, 12:51:18 PM

Closing — verified non-issue post-W4 refactor work for extensions.

Investigation revealed the original framing was based on an incorrect assumption about where terminal RowStates live. Terminal states (BundleBuildFailed, EntryPointUnreadable) live on the Extension aggregate (reconcile_from_disk_service.ts:485-503), not on bundle_types.state. The catalog row's state field only ever holds Indexed or ValidationFailed, so rebundleAndUpdateCatalog's default to 'Indexed' is correct — there's nothing terminal to overwrite at that layer.

W4's PR confirmed this with the ENOENT recovery + state-respect tests.

The architectural-debt concern that prompted this tracker is structurally addressed by the post-W4 layering: aggregate-level state vs row-level state are distinct concerns.

Sign in to post a ripple.