Files
the-nexus/nexus/mnemosyne/FEATURES.yaml
Alexander Whitestone 3361a0e259
Some checks failed
CI / test (pull_request) Failing after 9s
CI / validate (pull_request) Failing after 14s
Review Approval Gate / verify-review (pull_request) Failing after 3s
docs: update FEATURES.yaml with new CLI commands
2026-04-12 08:43:16 +00:00

210 lines
7.1 KiB
YAML

# ═══════════════════════════════════════════════════════════════
# FEATURES.yaml — Mnemosyne Module Manifest
# ═══════════════════════════════════════════════════════════════
#
# Single source of truth for what exists, what's planned, and
# who owns what. Agents and humans MUST check this before
# creating new PRs for Mnemosyne features.
#
# Statuses: shipped | in-progress | planned | deprecated
# Canon path: nexus/mnemosyne/
#
# Parent epic: #1248 (IaC Workflow)
# Created: 2026-04-12
# ═══════════════════════════════════════════════════════════════
project: mnemosyne
canon_path: nexus/mnemosyne/
description: The Living Holographic Archive — memory persistence, search, and graph analysis
# ─── Backend Modules ───────────────────────────────────────
modules:
archive:
status: shipped
files: [archive.py]
description: Core MnemosyneArchive class — CRUD, search, graph analysis
features:
- add / get / remove entries
- keyword search (substring match)
- semantic search (Jaccard + link-boost via HolographicLinker)
- linked entry traversal (BFS by depth)
- topic filtering and counts
- export (JSON/Markdown)
- graph data export (nodes + edges for 3D viz)
- graph clusters (connected components)
- hub entries (highest degree centrality)
- bridge entries (articulation points via DFS)
- tag management (add_tags, remove_tags, retag)
- entry update with content dedup (content_hash)
- find_duplicate (content hash matching)
- temporal queries (by_date_range, temporal_neighbors)
- rebuild_links (re-run linker across all entries)
merged_prs:
- "#1217" # Phase 1 foundation
- "#1225" # Semantic search
- "#1220" # Export, deletion, richer stats
- "#1234" # Graph clusters, hubs, bridges
- "#1238" # Tag management
- "#1241" # Entry update + content dedup
- "#1246" # Temporal queries
entry:
status: shipped
files: [entry.py]
description: ArchiveEntry dataclass — id, title, content, topics, links, timestamps, content_hash
ingest:
status: shipped
files: [ingest.py]
description: Document ingestion pipeline — chunking, dedup, auto-linking
linker:
status: shipped
files: [linker.py]
description: HolographicLinker — Jaccard token similarity, auto-link discovery
cli:
status: shipped
files: [cli.py]
description: CLI interface — stats, search, ingest, link, topics, remove, export, clusters, hubs, bridges, rebuild, tag/untag/retag, timeline, neighbors, consolidate, path, touch, decay, vitality, fading, vibrant
tests:
status: shipped
files:
- tests/__init__.py
- tests/test_archive.py
- tests/test_graph_clusters.py
description: Test suite covering archive CRUD, search, graph analysis, clusters
# ─── Frontend Components ───────────────────────────────────
# Located in nexus/components/ (shared with other Nexus features)
frontend:
spatial_memory:
status: shipped
files: [nexus/components/spatial-memory.js]
description: 3D memory crystal rendering and spatial layout
memory_search:
status: shipped
files: [nexus/components/spatial-memory.js]
description: searchByContent() — text search through holographic archive
merged_prs:
- "#1201" # Spatial search
memory_filter:
status: shipped
files: [] # inline in index.html
description: Toggle memory categories by region
merged_prs:
- "#1213"
memory_inspector:
status: shipped
files: [nexus/components/memory-inspect.js]
description: Click-to-inspect detail panel for memory crystals
merged_prs:
- "#1229"
memory_connections:
status: shipped
files: [nexus/components/memory-connections.js]
description: Browse, add, remove memory relationships panel
merged_prs:
- "#1247"
memory_birth:
status: shipped
files: [nexus/components/memory-birth.js]
description: Birth animation when new memories are created
merged_prs:
- "#1222"
memory_particles:
status: shipped
files: [nexus/components/memory-particles.js]
description: Ambient particle system — memory activity visualization
merged_prs:
- "#1205"
memory_optimizer:
status: shipped
files: [nexus/components/memory-optimizer.js]
description: Performance optimization for large memory sets
timeline_scrubber:
status: shipped
files: [nexus/components/timeline-scrubber.js]
description: Temporal navigation scrubber for memory timeline
health_dashboard:
status: shipped
files: [] # overlay in index.html
description: Archive statistics overlay panel
merged_prs:
- "#1211"
# ─── Planned / Unshipped ──────────────────────────────────
planned:
memory_decay:
status: shipped
files: [entry.py, archive.py]
description: >
Memories have living energy that fades with neglect and
brightens with access. Vitality score based on access
frequency and recency. Exponential decay with 30-day half-life.
Touch boost with diminishing returns.
priority: medium
merged_prs:
- "#TBD" # Will be filled when PR is created
memory_pulse:
status: shipped
files: [nexus/components/memory-pulse.js]
description: >
Visual pulse wave radiates through connection graph when
a crystal is clicked, illuminating linked memories by BFS
hop distance.
priority: medium
merged_prs:
- "#1263"
embedding_backend:
status: shipped
files: [embeddings.py]
description: >
Pluggable embedding backend for true semantic search.
Supports Ollama (local models) and TF-IDF fallback.
Auto-detects best available backend.
priority: high
merged_prs:
- "#TBD" # Will be filled when PR is created
memory_path:
status: shipped
files: [archive.py, cli.py, tests/test_path.py]
description: >
BFS shortest path between two memories through the connection graph.
Answers "how is memory X related to memory Y?" by finding the chain
of connections. Includes path_explanation for human-readable output.
CLI command: mnemosyne path <start_id> <end_id>
priority: medium
merged_prs:
- "#TBD"
memory_consolidation:
status: shipped
files: [archive.py, cli.py, tests/test_consolidation.py]
description: >
Automatic merging of duplicate/near-duplicate memories
using content_hash and semantic similarity. Periodic
consolidation pass.
priority: low
merged_prs:
- "#1260"