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

Relationships

#2043 managedConfig: cross-process sentinel disagreement between CLI and serve

Opened by stack72 · 9/7/2026· Shipped 9/9/2026

Summary

Follow-up from #2034. The CLI and serve processes use different criteria for determining whether managedConfig is active:

  • CLI path (resolveManagedConfigPaths in repo_context.ts): requires both marker.managedConfig === true AND the sentinel file managed-config-migrated.json on disk.
  • Serve path (requireInitializedRepoUnlocked): requires only marker.managedConfig === true (uses skipSentinelCheck: true).

In a k8s pod where an init container runs swamp extension pull before the sentinel file exists, the CLI process writes extensions to .swamp/pulled-extensions/ while the serve process reads from .swamp/config/pulled-extensions/. This causes "Unknown model type" errors when the config tier is not fully hydrated.

Proposed fix

Decide on a single policy for determining "active" and document it:

  • Option A: Always skip the sentinel check when the marker says managedConfig: true (marker is the authority).
  • Option B: Always require the sentinel (defer activation until migration completes), and make serve also respect it.
  • Option C: Thread a deployment context flag so init containers know to use the managed path.

Environment

Discovered via #2034. The in-process registry defects are fixed there; this is the remaining cross-process coordination gap.

02Bog Flow
OPENTRIAGEDIN PROGRESSSHIPPED+ 1 MOREASSIGNED+ 2 MOREREVIEW+ 7 MOREPR_MERGED+ 2 MORESESSION_SUMMARIZED

Shipped

9/9/2026, 2:42:19 AM

Click a lifecycle step above to view its details.

03Sludge Pulse
stack72 assigned stack729/9/2026, 12:23:21 AM

Sign in to post a ripple.