Skip to content

memory-bridge: remember.sh hung silently instead of reporting a down core - #2279

Merged
joelteply merged 1 commit into
canaryfrom
fix/remember-fails-loud
Aug 15, 2026
Merged

memory-bridge: remember.sh hung silently instead of reporting a down core#2279
joelteply merged 1 commit into
canaryfrom
fix/remember-fails-loud

Conversation

@joelteply

Copy link
Copy Markdown
Contributor

The memory tool stored nothing and said nothing — the worst combination for a system whose job is preserving corrections.

Two defects in one line:

if "$CONTINUUM" memory/remember ... 2>/dev/null | grep -q '"appended"...'
  1. No timeout. memory/remember dispatches to a core; with none answering the CLI cold-starts one (a full Rust build via start-server.sh), so this blocked for minutes. Measured: a remember sat 300s and was killed by the caller (exit 143).
  2. 2>/dev/null discarded the cause. The fallback could only guess ("is the server up?"), throwing away the CLI's own stderr — the one diagnostic that would have named it.

Together they made the engram path look permanently broken, and it was never investigated because the failure had no voice. An agent believes its correction is durable, drops it from context, and re-learns the same lesson next session — precisely what this plugin exists to prevent, happening inside the plugin.

Now

Bounded call (REMEMBER_TIMEOUT, default 20s), stderr captured and reported, and the outcomes named distinctly — a timeout says the core did not answer and NOTHING WAS STORED; a non-zero exit prints the CLI's real error. Both state "nothing was stored" explicitly, because silence is what let this survive.

Not the underlying cause

continuum start shells to a build script, so a cold core is minutes away and callers can't distinguish that from a hang. That belongs with core lifecycle work — an install-registered supervisor, and a start that launches the installed server binary instead of compiling.

bash -n clean.

…down core

The memory tool stored NOTHING and said NOTHING, which is the worst possible
combination for a system whose job is preserving corrections.

Two defects in one line:

    if "$CONTINUUM" memory/remember ... 2>/dev/null | grep -q '"appended"...'

1. NO TIMEOUT. `memory/remember` dispatches to a core; with none answering, the
   CLI cold-STARTS one (a full Rust build via start-server.sh), so this blocked
   for minutes. Measured 2026-08-13: an agent's `remember` sat 300s and was
   killed by the caller (exit 143). Nothing stored, nothing reported.
2. `2>/dev/null` DISCARDED THE CAUSE. The fallback could only GUESS ("is the
   server up?"), throwing away the CLI's own stderr — the one diagnostic that
   would have named it — on every failure.

Together they made the engram path look permanently broken, and it was never
investigated because the failure had no voice. An agent believes its correction
is durable, drops it from context, and re-learns the same lesson next session.
That is precisely the failure this plugin exists to prevent, in the plugin.

Now: bounded call (REMEMBER_TIMEOUT, default 20s), stderr captured and REPORTED,
and the distinct outcomes named — a timeout says the core did not answer and
NOTHING WAS STORED; a non-zero exit prints the CLI's actual error. Both say
"nothing was stored" explicitly, because silence is what let this persist.

Not a fix for the underlying cause: `continuum start` shells to a build script,
so a cold core is minutes away and callers cannot tell that from a hang. That
belongs with the core lifecycle work (an install-registered supervisor + a
`start` that launches the INSTALLED server binary rather than compiling).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4NU4VNiELPQfBpCacDZGc
@joelteply
joelteply merged commit f3b3a43 into canary Aug 15, 2026
2 checks passed
@joelteply
joelteply deleted the fix/remember-fails-loud branch August 15, 2026 02:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant