Skip to content

Memory distill + cortex visibility integration across TUI and webchat #3570

@njfio

Description

@njfio

Problem statement

Memory distill is running but operators cannot reliably tell when it is active, what it distilled, or whether distilled memories are persisted and surfaced consistently across TUI, dashboard/webchat, and gateway status. This creates a disconnected operator experience and weak trust in memory/cortex integration.

Acceptance criteria

  1. Distill extraction coverage
  • Distill extracts additional high-signal user facts/goals/preferences/constraints from session user messages beyond the current narrow phrase set.
  • Distill writes are idempotent and observable with deterministic reason codes on skip/failure.
  1. Gateway status + web UI observability
  • /gateway/status gateway.web_ui.memory_distill_runtime reports: enabled, in_flight, cycle_count, writes_applied, write_failures, checkpoint path, last_cycle timestamps/counters, and recent write summaries.
  • Failures are hard-fail/explicit in status reason codes; no silent fallback semantics.
  1. TUI operator surface
  • Add first-class /memory-distill command (keep /memory alias) that renders current distill runtime snapshot from gateway sync.
  • Output is concise and deterministic, includes last cycle stats and recent writes/reason codes.
  1. Webchat/dashboard parity
  • Webchat/dashboard memory-related surfaces expose the same distill runtime status contract so TUI and webchat are not divergent islands.
  1. Integration coverage
  • Add integration tests proving: user turn appended -> distill cycle runs -> memory entry persisted -> status surfaces updated -> TUI command/web endpoint reflect same state.

Non-goals

  • Full TUI visual redesign.
  • New memory model/ontology redesign.
  • Provider-level LLM/tool orchestration changes unrelated to distill observability.

Notes

  • Keep strict error semantics: no silent fallbacks, explicit structured reason codes.
  • Preserve existing command compatibility while adding /memory-distill.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions