Skip to content

memory.yaml

Source: config/memory.yaml

# Memory / Vault configuration (slice 12)
#
# The `vault` and `safety` blocks are consumed in slice 12.
# The `embedding`, `retrieval`, and `sources` blocks are declared here
# so `MemoryConfig` round-trips the full shape, but they are unused
# until slice 13+.

vault:
  root: /donna/vault
  git_author_name: Donna
  git_author_email: donna@homelab.local
  sync_method: webdav         # webdav | syncthing | manual
  templates_dir: prompts/vault
  ignore_globs:
    - ".obsidian/**"
    - ".trash/**"
    - ".git/**"

safety:
  max_note_bytes: 200000
  path_allowlist:
    - Inbox
    - Meetings
    - People
    - Projects
    - Daily
    - Reviews
    # --- slice 16 additions ---
    - WeeklyReview
    - Reflections
    - Commitments
  sensitive_frontmatter_key: donna_sensitive

# --- slice 13: semantic memory ---
embedding:
  provider: minilm-l6-v2
  version_tag: minilm-l6-v2@2024-05
  dim: 384
  max_tokens: 256
  chunk_overlap: 32

retrieval:
  default_k: 8
  min_score: 0.25
  max_k: 32

sources:
  vault:
    enabled: true
    chunker: markdown_heading
    # slice 16: in-memory TTL for pairing deleted+added watch events
    # into renames. Short — Obsidian typically fires the pair within
    # a few hundred ms of each other.
    rename_window_seconds: 2.0
    ignore_globs:
      - ".obsidian/**"
      - ".trash/**"
      - ".git/**"
      - "Templates/**"
  # --- slice 14: episodic sources ---
  chat:
    enabled: true
    index_roles: [user, assistant]
    min_chars: 20
    merge_consecutive_same_role: true
    task_verbs:
      - do
      - call
      - email
      - schedule
      - remind
      - send
      - book
      - buy
      - check
      - review
    chunker: chat_turn
  task:
    enabled: true
    reindex_on_status: [done, cancelled]
    chunker: task
  correction:
    enabled: true

# --- slice 15: template-driven vault writes ---
skills:
  meeting_note:
    enabled: true
    poll_interval_seconds: 60
    lookback_minutes: 5
    autonomy_level: medium
    context_limits:
      prior_meetings: 5
      recent_chats: 5
      open_tasks: 5

  # --- slice 16: cadence-driven template writes ---
  daily_reflection:
    enabled: true
    hour_utc: 21
    minute_utc: 0
    autonomy_level: medium
    context_limits:
      meetings: 10
      completed_tasks: 25
      chat_highlights: 10

  commitment_log:
    enabled: true
    hour_utc: 20
    minute_utc: 30
    autonomy_level: medium
    context_limits:
      chat_hits: 50
      task_hits: 25

  weekly_review:
    enabled: true
    hour_utc: 21
    minute_utc: 0
    day_of_week: 6            # Sunday (Mon=0..Sun=6)
    autonomy_level: medium
    context_limits:
      completed_tasks: 25
      meetings: 15
      commitments: 15
      chat_highlights: 10

  person_profile:
    enabled: true
    hour_utc: 22
    minute_utc: 0
    day_of_week: 6            # Sunday
    trigger_mentions_threshold: 3
    min_body_chars: 120
    lookback_days: 7
    autonomy_level: low       # drafts land in Inbox/ for user review
    context_limits:
      vault_hits: 10
      chat_hits: 10
      task_hits: 10
      correction_hits: 5