Skip to content

feat(memory): scope procedural memory by project #378

Description

@jinliyl

Background

ReMe currently records conversation memory into daily notes by date and identifies each source conversation with a stable session_id. Different coding projects normally produce different session IDs, so the daily layer does not need to be reorganized by project. However, a session ID alone does not preserve the project context known by coding-agent hosts such as QwenPaw, Codex, and Claude Code.

Without explicit project metadata, Auto Dream extracts changed daily notes globally and may consolidate project-specific operational experience into the same procedural-memory namespace. Similar procedures from unrelated repositories can then be merged or recalled across project boundaries.

This issue follows up on #374 with a narrower scope: preserve the existing daily/session layout and add project scoping only to procedural memory.

Proposed Changes

  • Add optional project context to auto_memory and auto_memory_cc:
    • source_agent
    • project_name
    • project_path
  • Normalize the project root and derive a stable, filename-safe project_id.
  • Persist the project context in daily-note frontmatter while keeping the existing daily/<date>/<note>.md organization.
  • Carry project context through Auto Dream extraction for procedure units.
  • Store project-specific procedures under:
    • digest/procedure/projects/<project_id>/<slug>.md
  • Keep existing flat procedure nodes as global procedures:
    • digest/procedure/<slug>.md
  • Scope procedure deduplication and recall to the current project plus global procedures, excluding procedures from other projects.
  • Update the QwenPaw, Codex, and Claude Code integrations to pass their current repository/project root when invoking memory recording.
  • Preserve backward compatibility for callers that do not provide project context.

Expected Behavior

  • Project-specific build steps, debugging experience, repository conventions, and runbooks remain isolated under the originating project.
  • Procedures explicitly identified as reusable across projects may still be integrated into the existing global procedure namespace.
  • Daily memory remains organized by date and session ID.
  • digest/wiki/ remains a global knowledge namespace and does not gain project subdirectories.

Out of Scope

  • Reorganizing daily notes by project.
  • Adding project-specific namespaces under digest/wiki/.
  • Treating project name alone as a stable identity; duplicate project names must remain distinguishable.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions