You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Repair-side: after upgrading to 1.20.0, engram doctor reports blocked on sync_mutation_required_fields for the queued upsert of that observation (seq=691, missing content). The suggested remediation chain dead-ends for local-only users:
engram cloud upgrade doctor --project <p> β upgrade_blocked_legacy_mutation_manual, "manual-action-required"
engram cloud repair materialize-mutations --project <p> --dry-run β tries to ping Postgres at localhost:5433 and fails, because there is no cloud store to connect to
Restoring the observation content locally via mem_update succeeds, but the legacy seq=691 queue row still blocks the doctor
There is no local-only path to inspect/normalize/quarantine a malformed legacy mutation when cloud was never configured β yet the mutation was enqueued anyway (see #478).
π Steps to Reproduce
On engram 1.15.10 (Claude Code plugin MCP), call mem_session_summary with a full markdown summary β observation persists with empty content (intermittent; hit once in this session)
Upgrade binary to 1.20.0
Run engram doctor β blocked on sync_mutation_required_fields
Run engram cloud upgrade doctor --project "<project>" β upgrade_blocked_legacy_mutation_manual
Run engram cloud repair materialize-mutations --project "<project>" --dry-run β Postgres dial error (cloud not configured)
Repair the observation locally with mem_update (content restored, verified via search) β re-run engram doctor β still blocked (seq=691 row untouched)
Related: #686 (empty prompt content poisons cloud push), #503 (single empty-content observation fails whole batch, no quarantine), #478 (mutations enqueued with no cloud target), #508 (DB maintenance toolset). The malformed seq=691 row is being kept in place on this machine as a live repro case.
π Pre-flight Checks
status:approvedbefore a PR can be openedπ Bug Description
Two linked defects observed after upgrading engram 1.15.10 β 1.20.0 on a machine where cloud is not configured:
mem_session_summary(MCP, running v1.15.10 at the time) persisted asession_summaryobservation (#2447) with emptycontent, even though the MCP call included the full markdown body.mem_get_observationreturned only metadata (title/session/scope/timestamps) β no content. This extends the empty-content class from fix(sync): empty prompt content accepted at capture poisons cloud push for all projects; repair cannot fix prompt entitiesΒ #686 (prompt entities) to observation entities.engram doctorreportsblockedonsync_mutation_required_fieldsfor the queued upsert of that observation (seq=691, missingcontent). The suggested remediation chain dead-ends for local-only users:engram cloud upgrade doctor --project <p>βupgrade_blocked_legacy_mutation_manual, "manual-action-required"engram cloud repair materialize-mutations --project <p> --dry-runβ tries to ping Postgres atlocalhost:5433and fails, because there is no cloud store to connect tomem_updatesucceeds, but the legacy seq=691 queue row still blocks the doctorThere is no local-only path to inspect/normalize/quarantine a malformed legacy mutation when cloud was never configured β yet the mutation was enqueued anyway (see #478).
π Steps to Reproduce
mem_session_summarywith a full markdown summary β observation persists with emptycontent(intermittent; hit once in this session)engram doctorβblockedonsync_mutation_required_fieldsengram cloud upgrade doctor --project "<project>"βupgrade_blocked_legacy_mutation_manualengram cloud repair materialize-mutations --project "<project>" --dry-runβ Postgres dial error (cloud not configured)mem_update(content restored, verified via search) β re-runengram doctorβ stillblocked(seq=691 row untouched)β Expected Behavior
mem_session_summarynever persists an observation withoutcontent(validate at capture, fail loudly β same contract as fix(sync): empty prompt content accepted at capture poisons cloud push for all projects; repair cannot fix prompt entitiesΒ #686 proposes for prompts)doctor/cloud upgradeoffers a local-only remediation: inspect payload, re-materialize from the (now repaired) local observation, or quarantine the row explicitlyβ Actual Behavior
doctorpermanentlyblocked; the only repair command requires a Postgres cloud store that does not exist on this machinemem_updatefixes the data but not the queue rowπ» Environment
engram mcp --tools=agent)engram cloud statusβnot configuredπ Relevant Logs
βΉοΈ Additional Context
Related: #686 (empty prompt content poisons cloud push), #503 (single empty-content observation fails whole batch, no quarantine), #478 (mutations enqueued with no cloud target), #508 (DB maintenance toolset). The malformed seq=691 row is being kept in place on this machine as a live repro case.