ec8a2fc8fd
[claude] Mnemosyne archive snapshots — backup and restore ( #1268 ) ( #1270 )
2026-04-12 12:36:04 -04:00
d78656ca07
docs: update FEATURES.yaml with new CLI commands
2026-04-12 12:36:04 -04:00
5788925f38
test: add CLI command tests for path, touch, decay, vitality, fading, vibrant
2026-04-12 12:36:04 -04:00
ce546e0f42
fix: mnemosyne path command bug + add vitality/decay CLI commands
...
Closes #1266
- Fix cmd_path calling nonexistent _load() -> use MnemosyneArchive()
- Add path to dispatch dict
- Add touch, decay, vitality, fading, vibrant CLI commands
2026-04-12 12:36:04 -04:00
8a1623dbcd
docs: mark memory_pulse as shipped, add memory_path feature
2026-04-12 12:36:04 -04:00
820b8635a6
test: add tests for shortest_path and path_explanation
2026-04-12 12:36:04 -04:00
2ef37d1d61
feat: add 'path' CLI command for memory pathfinding
2026-04-12 12:36:04 -04:00
af80963d4f
feat: add shortest_path and path_explanation to MnemosyneArchive
...
BFS-based pathfinding between memories through the connection graph.
Enables 'how is X related to Y?' queries across the holographic archive.
2026-04-12 12:36:04 -04:00
fb6ed0d7bb
[claude] Memory Pulse — BFS wave animation on crystal click ( #1263 ) ( #1264 )
2026-04-12 12:36:04 -04:00
486c98894a
[claude] Mnemosyne: memory consolidation — auto-merge duplicates ( #1260 ) ( #1262 )
2026-04-12 12:36:04 -04:00
8d92ea9905
docs(mnemosyne): mark memory_decay as shipped
...
Part of #1258 .
2026-04-12 12:36:04 -04:00
95f3434c08
test(mnemosyne): add memory decay test suite
...
Part of #1258 .
- Test vitality fields on entry model
- Test touch() access recording and boost
- Test compute_vitality decay math
- Test fading/vibrant queries
- Test apply_decay bulk operation
- Test stats integration
- Integration lifecycle test
2026-04-12 12:36:04 -04:00
6dce93d948
feat(mnemosyne): add memory decay system to MnemosyneArchive
...
Part of #1258 .
- touch(entry_id): record access, boost vitality
- get_vitality(entry_id): current vitality status
- fading(limit): most neglected entries
- vibrant(limit): most alive entries
- apply_decay(): decay all entries, persist
- stats() updated with avg_vitality, fading_count, vibrant_count
Decay: exponential with 30-day half-life.
Touch: 0.1 * (1 - current_vitality) — diminishing returns.
2026-04-12 12:36:04 -04:00
be45c7f88b
feat(mnemosyne): add vitality and last_accessed fields to ArchiveEntry
...
Part of #1258 — memory decay system.
- vitality: float 0.0-1.0 (default 1.0)
- last_accessed: ISO datetime of last access
Also ensures updated_at and content_hash fields from main are present.
2026-04-12 12:36:04 -04:00
77f2ad4a80
feat: export embedding backends from mnemosyne __init__
2026-04-12 12:36:04 -04:00
23a89f22b7
docs: mark embedding_backend as shipped in FEATURES.yaml
2026-04-12 12:36:04 -04:00
0317e72d6e
feat: CLI --backend flag for embedding backend selection
...
- search: --backend ollama|tfidf|auto
- rebuild: --backend flag
- Auto-detects best backend when --semantic is used
2026-04-12 12:36:04 -04:00
0cf152317d
test: add embedding backend test suite
...
Tests cosine similarity, TF-IDF backend,
auto-detection, and fallback behavior.
2026-04-12 12:36:04 -04:00
3aa084bdb6
feat: archive.py uses embedding backend for semantic search
...
- MnemosyneArchive.__init__ accepts optional EmbeddingBackend
- Auto-detects best backend via get_embedding_backend()
- semantic_search uses embedding cosine similarity when available
- Falls back to Jaccard token similarity gracefully
2026-04-12 12:36:04 -04:00
e31c8179da
feat: linker supports pluggable embedding backend
...
HolographicLinker now accepts optional EmbeddingBackend.
Uses cosine similarity on embeddings when available,
falls back to Jaccard token similarity otherwise.
Embedding cache for performance during link operations.
2026-04-12 12:36:04 -04:00
48fcadb4e8
feat: add pluggable embedding backend (Ollama + TF-IDF)
...
Implements embedding_backend from FEATURES.yaml:
- Abstract EmbeddingBackend interface
- OllamaEmbeddingBackend for local sovereign models
- TfidfEmbeddingBackend pure-Python fallback
- get_embedding_backend() auto-detection
2026-04-12 12:36:04 -04:00
perplexity
879cc2a336
[IaC] Add CONTRIBUTING.md — assignment-lock protocol and workflow conventions
...
Closes #1252
- Assignment-as-lock protocol for humans and agents
- Branch naming conventions
- PR requirements (rebase, reference issues, no bytecode)
- Path conventions table
- Feature manifest workflow
- Stale PR policy documentation
2026-04-12 12:36:04 -04:00
perplexity
b2bb253157
[IaC] Add Mnemosyne FEATURES.yaml — declarative feature manifest
...
Closes #1251
- Documents all shipped backend modules (archive, entry, ingest, linker, cli, tests)
- Documents all shipped frontend components (11 components)
- Lists planned/unshipped features (decay, pulse, embeddings, consolidation)
- References merged PRs for each feature
- Enforces canon_path: nexus/mnemosyne/
2026-04-12 12:36:04 -04:00
perplexity
68d2fa7abb
[IaC] Add stale PR closer script — auto-close conflicted superseded PRs
...
Closes #1250
- Shell/Python script for cron on Hermes (every 6h)
- Identifies PRs that are both conflicted AND superseded
- Matches by Closes #NNN references and title similarity (60%+ overlap)
- Configurable grace period via GRACE_HOURS env var
- DRY_RUN mode for safe testing
- Idempotent — safe to re-run
2026-04-12 12:36:04 -04:00
perplexity
b1d86f6a07
[IaC] Fix .gitignore — recursive __pycache__ exclusion + purge 22 cached .pyc files
...
Closes #1249
- Replace path-specific __pycache__ entries with recursive **/__pycache__/
- Add *.pyc and *.pyo globs
- Remove 22 tracked .pyc files from bin/, nexus/evennia_mempalace/,
nexus/mempalace/, and nexus/mnemosyne/
- Reorganize .gitignore with section comments for clarity
2026-04-12 12:36:04 -04:00
Alexander Whitestone
2d7a531f82
feat(mnemosyne): Add connection panel HTML + CSS
...
- Panel container in index.html after memory-inspect-panel
- Full CSS styles matching Mnemosyne aesthetic
- Slide-in from right, positioned next to inspect panel
- Connected memories list with navigate/remove actions
- Suggested memories with add-connection button
- Hover highlight state for 3D crystal feedback
2026-04-12 12:36:04 -04:00
Alexander Whitestone
d37b9ae074
feat(mnemosyne): Memory Connection Panel — interactive connection management
...
- Browse all connections from a selected memory crystal
- Suggested connections from same region + nearby memories
- Add/remove connections with bidirectional sync
- Hover highlights connected crystals in 3D world
- Navigate to connected memories via click
- Clean slide-in panel UI matching Mnemosyne aesthetic
2026-04-12 12:36:04 -04:00
dd05abe4f7
[claude] Add temporal query methods: by_date_range and temporal_neighbors ( #1244 ) ( #1246 )
2026-04-12 12:36:04 -04:00
05b01ad771
[claude] Mnemosyne entry update + content deduplication ( #1239 ) ( #1241 )
2026-04-12 12:36:04 -04:00
2adcbd0372
[claude] Mnemosyne tag management — add, remove, replace topics ( #1236 ) ( #1238 )
2026-04-12 12:36:04 -04:00
Alexander Whitestone
25f07dcc63
test(mnemosyne): graph cluster analysis tests — 22 tests
...
- graph_clusters: empty, orphans, linked pairs, separate clusters, topics, density
- hub_entries: ordering, limit, inbound/outbound counting
- bridge_entries: triangle (none), chain (B is bridge), small cluster filtered
- rebuild_links: creates links, threshold override, persistence
2026-04-12 12:36:04 -04:00
Alexander Whitestone
64686d81a3
feat(mnemosyne): CLI commands for graph analysis
...
- mnemosyne clusters: show connected component clusters with density + topics
- mnemosyne hubs: most connected entries by degree centrality
- mnemosyne bridges: articulation points (entries connecting clusters)
- mnemosyne rebuild: recompute all links from scratch
2026-04-12 12:36:04 -04:00
Alexander Whitestone
c13b9b52d5
feat(mnemosyne): graph cluster analysis — clusters, hubs, bridges, rebuild_links
...
- graph_clusters(): BFS connected component discovery with density + topic analysis
- hub_entries(): degree centrality ranking of most connected entries
- bridge_entries(): Tarjan's articulation points — entries that connect clusters
- rebuild_links(): full link recomputation after bulk ingestion
- _build_adjacency(): internal adjacency builder with validation
2026-04-12 12:36:04 -04:00
Alexander Whitestone
fbafa10ee7
test(mnemosyne): add graph_data() tests
...
- empty archive returns empty nodes/edges
- nodes have all required fields
- edges have weights in [0,1]
- topic_filter returns subgraph
- bidirectional edges deduplicated
2026-04-12 12:36:04 -04:00
Alexander Whitestone
3e9b9a215a
feat(mnemosyne): add graph_data() for 3D constellation export
...
Returns {nodes, edges} with live link weights. Supports topic_filter
for subgraph extraction. Edges are deduplicated (bidirectional links
become single undirected edges).
Closes #1232
2026-04-12 12:36:04 -04:00
33fbe851b2
feat: add metadata for ordinal archive
2026-04-12 12:36:03 -04:00
fe9139262d
feat: Sovereign Ordinal Archive - block 944648
...
Scanned 2026-04-11, documenting philosophical and moral inscriptions on Bitcoin blockchain.
2026-04-12 12:36:03 -04:00
0b352bc436
[claude] Memory Inspect Panel — click-to-read detail view ( #1227 ) ( #1229 )
2026-04-12 12:36:03 -04:00
a03db862fa
feat: integrate MemoryBirth into app.js
...
- Import MemoryBirth module
- Initialize alongside SpatialMemory
- Wrap placeMemory() for automatic birth animations
- Call MemoryBirth.update() in render loop
2026-04-12 12:36:03 -04:00
1cb28fec34
feat: add memory-birth.js — crystal materialization animation system
...
- Elastic scale-in from 0 to full size
- Bloom flash at materialization peak
- Neighbor pulse: nearby memories brighten on birth
- Connection line progressive draw-in
- Auto-wraps SpatialMemory.placeMemory() for zero-config use
2026-04-12 12:36:03 -04:00
b5ae7f4c2c
[claude] Mnemosyne: semantic search via holographic linker similarity ( #1223 ) ( #1225 )
2026-04-12 12:36:03 -04:00
46da2a8c81
[claude] Mnemosyne: export, deletion, and richer stats ( #1218 ) ( #1220 )
2026-04-12 12:36:03 -04:00
a9f4a0651f
merge: Mnemosyne Phase 1 — Living Holographic Archive
...
Co-authored-by: Alexander Whitestone <alexander@alexanderwhitestone.com >
Co-committed-by: Alexander Whitestone <alexander@alexanderwhitestone.com >
2026-04-12 12:36:03 -04:00
63334387e6
feat(mnemosyne): wire memory filter panel in app.js
...
- G key toggles filter panel
- Escape closes filter panel
- toggleMemoryFilter() bridge function
2026-04-12 12:36:03 -04:00
360155f1b6
feat(mnemosyne): add memory filter panel CSS
...
- Frosted glass panel matching Mnemosyne theme
- Category toggle switches with color dots
- Slide-in animation from right
2026-04-12 12:36:03 -04:00
68a6fad1d6
feat(mnemosyne): add memory filter panel with category toggles
...
- Filter panel with toggle switches per memory region
- Show All / Hide All bulk controls
- Memory count per category
- Frosted glass UI matching Mnemosyne design
2026-04-12 12:36:03 -04:00
ff7fef4f73
feat(mnemosyne): add region filter visibility methods to SpatialMemory
...
- setRegionVisibility(category, visible) — toggle single region
- setAllRegionsVisible(visible) — bulk toggle
- getMemoryCountByRegion() — count memories per category
- isRegionVisible(category) — query visibility state
2026-04-12 12:36:03 -04:00
298a2bf3f6
fix: wire SpatialMemory.setCamera(camera) for entity line LOD ( #1167 )
...
Pass camera reference to SpatialMemory so entity resolution lines get distance-based opacity fade and LOD culling.
2026-04-12 12:36:03 -04:00
060832a8ed
fix: export setCamera from SpatialMemory ( #1167 )
...
Entity resolution lines were drawn but LOD culling never activated because setCamera() was defined but not exported. Without camera reference, _updateEntityLines() was a no-op.
2026-04-12 12:36:03 -04:00
7d78f4bfbf
[claude] Mnemosyne archive health dashboard — statistics overlay panel ( #1210 ) ( #1211 )
2026-04-12 12:36:03 -04:00