stacklok / stacklok/mecatl

Allow operator settings.yaml to configure the default per-project memory store

Open
#1,061 0 comments 0 reactions 1 assignee View on GitHub

@jbeda is already working on this.

Since Sep 3, 2026.

Dominant language
Go
Stars
152
Forks
16
Avg merge
14h 48m
Merged PRs (30d)
536

Description

Problem

Embedded mecatui enables project memory by default, but the project-memory directory can be changed only per invocation with --memory-dir. The default derives one isolated store from each exact workspace path:

text ~/.local/share/mecatui/memory/-home-jbeda-src-mecatl ~/.local/share/mecatui/memory/-home-jbeda-src-mecatl-2 ...

This makes a set of local Git worktree/agent slots for the same project receive separate project memory. There is currently no operator-owned YAML setting to configure a shared store for that set. ~/.config/mecatui/settings.yaml is client UI configuration; ~/.config/mecatl/settings.yaml is the appropriate operator-owned server configuration, but it does not currently expose this setting. A project-local .mecatl/settings.yaml should not control a host persistence path.

Requested behavior

Add an operator-tier key in /mecatl/settings.yaml that sets the default local project-memory directory (or a documented per-workspace mapping/override). It should apply only to embedded/local server composition, with explicit --memory-dir retaining higher precedence and --no-memory still disabling memory.

The immediate use case is intentionally sharing one file-backed store across several local worktrees/agent slots of the same Mecatl repository, while leaving ordinary repositories on their existing per-path default.

For example, an operator should be able to configure a single store such as:

text ~/.local/share/mecatui/memory/mecatl-slots

without maintaining a separate wrapper command solely to pass --memory-dir.

Design constraints

  • Operator/global configuration only; do not accept this from project-tier settings.
  • Treat the configured path as a local persistence destination, never as workspace/placement authority.
  • Preserve the current default when unset: /mecatui/memory/<full-workspace-path-slug>.
  • Define clear precedence: --no-memory > explicit --memory-dir > operator setting > computed default.
  • Validate and report configuration errors without leaking sensitive config values.
  • A mapping/pattern form may be preferable to one global directory if the design wants to avoid unintentionally merging unrelated projects; the minimal useful form can be a single operator-selected default directory.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.