Approved design · implemented and accepted

Memory page and Memory settings

One consistent shell, one clear settings entry, and only settings that map to real runtime behavior.

Memory
OpenProgram Memorytopics/projects/openprogram-memory.md · modified today

OpenProgram Memory

4 records · Git history available

Memory operations

Models can edit Topic files directly or submit structured changes through the Memory API. Runtime validation and derived views are shared by both paths.

The Scheduler agent may create a durable Memory record while planning, update it during execution, and close or delete it when the task ends.
^7a12e4c9 · source refs 3

Current retrieval

Keyword retrieval uses BM25 over Topic and Source events. Semantic retrieval remains unavailable until its embedding model is installed and selected.

No memory has been written yet

OpenProgram writes durable topics after enough conversation has accumulated. You can configure the writer model and recall method first.

Settings

Memory

Choose how OpenProgram writes, stores, and recalls long-term memory.

CaptureConversation archive
WriteMiniMax-M3
StoreLocal + Git
RecallBM25 only

Memory service

Enable MemoryTurns on recall, background writing, organization, and Memory tools.
Next start
StorageTopic Markdown with derived views and Git history.
Local workspace · Git enabled

Background writing

Writer modelUses the default chat model unless you select an enabled model here.
Live
Automatic writingTurn completed conversations into Topic records in the background.
Write frequencyControls how much conversation accumulates before a background write.

Retrieval

Recall methodSelect the retrieval path used before each model turn.
Live
Embedding modelRequired for semantic and hybrid retrieval.
Not installed
Recall depthMaximum number of matching records added to a turn.
Search Source evidenceInclude archived evidence alongside curated Topic records.

Context and history

Core Memory in every chatInject the compact Core view into each system prompt.
Recent view sizeNumber of latest records kept in the Recent derived view.
WorkspaceCurrent Memory data location. Runtime-managed files remain read-only.
~/.openprogram/memory
Settings saved

Implemented interface contract

  • Memory keeps the standard 64px title bar and exposes a direct /settings/memory link.
  • Topics, Timeline, Recent, and Core form a vertical section list above the Topic tree.
  • At a 720px viewport the section list, tree, and content stack without removing Memory navigation.
  • Settings reads and writes the same schema used by the CLI and TUI.

Implementation and acceptance

  • Public entries: /memory, /settings/memory, GET/POST /api/settings, automatic recall, memory_search, and Topic/API writes.
  • Runtime settings cover automatic writing, write frequency, recall method, recall depth, Source scope, Core injection, and Recent size.
  • Semantic and Hybrid remain disabled until an embedding model is actually available.
  • No external API permission controls are added to this page.
  • Accepted with focused and affected tests, TypeScript validation, independent specification and quality reviews, and visible default-App checks at normal and 720px widths.