Skip to content

[bug] remember never propagates decisions to is_global, so Team Decisions stays empty (ADR-0200) #561

Closed

Description

@cdeust

What happened

remember never marks a decision as global, so the SessionStart "Team Decisions" block and the subagent briefing almost never find anything.

The documented contract (Transactive Memory Systems, Wegner 1987) is that a protected decision written under an agent context propagates to team scope via is_global=TRUE:

  • docs/adr/ADR-0200-mcp-server-core-memory-ingest.md:68-78
  • mcp_server/core/memory_ingest.py:91-92: if auto_protect and agent_ctx and not is_benchmark: is_global = True
  • mcp_server/hooks/session_start.py:196-203 (docstring, reproduced in ADR-0498): "Decisions auto-propagate via is_global=TRUE set during ingestion (memory_ingest.py)"

But core/memory_ingest.py is imported only by benchmarks and tests. On the live remember path, is_protected is set from is_decision_content (mcp_server/handlers/remember_helpers.py:709) and is_global only comes from the explicit argument or detect_global (mcp_server/handlers/remember.py:285-288). The Team Decisions query requires is_protected AND is_global AND agent_context != '' (mcp_server/hooks/session_start.py:207-239).

Measured on the live PostgreSQL store on 2026-09-15 (current rows, superseded_by_id IS NULL):

is_protected ∧ agent_context ≠ '' all time last 30 days
is_global = false 233 118
is_global = true 1 0

Reproduction steps

  1. Commit a3b3a79d. Call remember(content="Decision: we keep X because Y", agent_topic="cortex").
  2. The row is stored with is_protected = TRUE, agent_context = 'cortex', is_global = FALSE.
  3. Start a new session: the row is not in "Team Decisions".

Expected behavior

A decision stored through remember with a non-empty agent_topic gets is_global = TRUE, as memory_ingest.py does, and appears in Team Decisions at the next SessionStart and in agent_briefing.

Environment

  • macOS 26, PostgreSQL backend, Cortex 4.21.0, commit a3b3a79

Severity

High (core feature broken, no workaround)

Evidence required to close

A test on the remember handler asserting the ADR-0200 propagation rule (decision + agent_topic → is_global; no agent_topic → unchanged; benchmark source → unchanged), and a one-shot migration decision for the 233 existing rows, recorded in the PR.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions