[Mnemosyne] Live memory ingestion bridge — Hermes → Nexus WebSocket #1165
Closed
Rockachopa
wants to merge 5 commits from
feat/mnemosyne-live-memory-bridge into main
pull from: feat/mnemosyne-live-memory-bridge
merge into: Timmy_Foundation:main
Timmy_Foundation:main
Timmy_Foundation:burn/20260413-0408-fix
Timmy_Foundation:mimo/code/issue-707
Timmy_Foundation:mimo/code/issue-704
Timmy_Foundation:feat/multi-user-bridge
Timmy_Foundation:feat/paper-results
Timmy_Foundation:feature/full-history-dedup
Timmy_Foundation:feature/dpo-quality-validator
Timmy_Foundation:feature/deepdive-dpo-phase-3.5
Timmy_Foundation:multi-user-bridge
Timmy_Foundation:burn/20260413-gofai-structured-actions
Timmy_Foundation:perplexity/swarm-governor
Timmy_Foundation:mimo/code/issue-717
Timmy_Foundation:mimo/build/issue-729
Timmy_Foundation:mimo/build/issue-710
Timmy_Foundation:mimo/build/issue-672
Timmy_Foundation:mimo/create/issue-709
Timmy_Foundation:burn/20260412-gofai-state-mainline
Timmy_Foundation:mimo/build/issue-865
Timmy_Foundation:mimo/code/issue-1277
Timmy_Foundation:mimo/build/issue-901
Timmy_Foundation:mimo/code/issue-696
Timmy_Foundation:mimo/build/issue-1119
Timmy_Foundation:mimo/build/issue-817
Timmy_Foundation:burn/multi-user-bridge
Timmy_Foundation:mimo/research/issue-866
Timmy_Foundation:mimo/research/issue-873
Timmy_Foundation:mimo/research/issue-1144
Timmy_Foundation:mimo/create/issue-864
Timmy_Foundation:mimo/create/issue-716
Timmy_Foundation:mimo/create/issue-698
Timmy_Foundation:mimo/create/issue-1117
Timmy_Foundation:mimo/create/issue-1116
Timmy_Foundation:mimo/code/issue-731
Timmy_Foundation:mimo/code/issue-730
Timmy_Foundation:mimo/code/issue-721
Timmy_Foundation:mimo/code/issue-726
Timmy_Foundation:mimo/code/issue-719
Timmy_Foundation:mimo/code/issue-727
Timmy_Foundation:mimo/code/issue-673
Timmy_Foundation:mimo/code/issue-675
Timmy_Foundation:mimo/code/issue-715
Timmy_Foundation:mimo/code/issue-674
Timmy_Foundation:mimo/code/issue-1215
Timmy_Foundation:feat/resonance-viz-integration-1776010801023
Timmy_Foundation:mimo/code/issue-1208
Timmy_Foundation:mimo/code/issue-1181
Timmy_Foundation:feat/resonance-linker-1776010647557
Timmy_Foundation:feat/gofai-layer-4-v2
Timmy_Foundation:feat/gofai-layer-4-1776010488203
Timmy_Foundation:burn/20260412-1202-mnemosyne
Timmy_Foundation:mimo/build/issue-720
Timmy_Foundation:mimo/build/issue-728
Timmy_Foundation:mimo/build/issue-712
Timmy_Foundation:mimo/build/issue-706
Timmy_Foundation:feat/resonance-viz-1775996553148
Timmy_Foundation:feat/gofai-nexus-final-v2
Timmy_Foundation:feat/gofai-nexus-final-1775996426040
Timmy_Foundation:feat/gofai-nexus-mega-1775996240349
Timmy_Foundation:feat/mnemosyne-resonance
Timmy_Foundation:purge/openclaw-fleet-vocab
Timmy_Foundation:purge/openclaw-readme
Timmy_Foundation:feat/mnemosyne-file-ingestion
Timmy_Foundation:feat/mnemosyne-discover
Timmy_Foundation:feat/mnemosyne-snapshot
Timmy_Foundation:fix/mnemosyne-cli-path-vitality
Timmy_Foundation:feat/mnemosyne-memory-path
Timmy_Foundation:feat/memory-pulse
Timmy_Foundation:feat/memory-consolidation
Timmy_Foundation:feat/mnemosyne-memory-decay
Timmy_Foundation:feat/mnemosyne-embedding-backend
Timmy_Foundation:epic/iac-workflow-1248
Timmy_Foundation:feat/mnemosyne-connection-panel
Timmy_Foundation:feat/mnemosyne-temporal-queries
Timmy_Foundation:feat/mnemosyne-foundation
Timmy_Foundation:feat/mnemosyne-entry-update-dedup
Timmy_Foundation:feat/mnemosyne-tag-management
Timmy_Foundation:feat/ordinal-archive-2026-04-11
Timmy_Foundation:feat/mnemosyne-graph-clusters
Timmy_Foundation:feat/mnemosyne-graph-export
Timmy_Foundation:feat/mnemosyne-timeline-dedup
Timmy_Foundation:feat/mnemosyne-inspect-panel
Timmy_Foundation:feat/mnemosyne-memory-pulse
Timmy_Foundation:feat/mnemosyne-semantic-search
Timmy_Foundation:feat/mnemosyne-memory-birth
Timmy_Foundation:feat/mnemosyne-export-deletion-stats
Timmy_Foundation:feat/mnemosyne-phase1-1216
Timmy_Foundation:fix/entity-resolution-lines-wiring
Timmy_Foundation:feat/mnemosyne-memory-filter
Timmy_Foundation:feat/mnemosyne-memory-inspector
Timmy_Foundation:feat/mnemosyne-memory-search
Timmy_Foundation:mimo/build/issue-686
Timmy_Foundation:mimo/build/issue-680
Timmy_Foundation:feat/mnemosyne-ambient-particles
Timmy_Foundation:fix/auto-merge
Timmy_Foundation:feat/spatial-search-issue-1170
Timmy_Foundation:mimo/code/issue-723
Timmy_Foundation:mimo/code/issue-714
Timmy_Foundation:mimo/create/issue-681
Timmy_Foundation:mimo/code/issue-724
Timmy_Foundation:mimo/create/issue-685
Timmy_Foundation:mimo/create/issue-800
Timmy_Foundation:mimo/research/issue-1047
Timmy_Foundation:mimo/research/issue-801
Timmy_Foundation:mimo/build/issue-703
Timmy_Foundation:mimo/code/issue-1174
Timmy_Foundation:feat/mnemosyne-timeline-scrubber
Timmy_Foundation:mimo/build/issue-701
Timmy_Foundation:feat/mnemosyne-entity-resolution-lines
Timmy_Foundation:feat/mnemosyne-trust-crystal-rendering
Timmy_Foundation:feat/mnemosyne-clear-feed
Timmy_Foundation:claude/issue-1171
Timmy_Foundation:mimo/code/issue-1145
Timmy_Foundation:mimo/code/issue-1146
Timmy_Foundation:feat/mnemosyne-crystal-inspect
Timmy_Foundation:feat/mnemosyne-persistence
Timmy_Foundation:claude/issue-1125
Timmy_Foundation:claude/issue-1126
Timmy_Foundation:feat/mnemosyne-spatial-schema-consolidated
Timmy_Foundation:feat/mnemosyne-spatial-memory-schema
Timmy_Foundation:feat/mnemosyne-spatial-schema
Timmy_Foundation:feat/mnemosyne-spatial-integration
Timmy_Foundation:feat/mnemosyne-memory-orbs-v2
Timmy_Foundation:feat/mnemosyne-memory-orbs-complete
Timmy_Foundation:feat/mnemosyne-glowing-orbs
Timmy_Foundation:feat/mnemosyne-memory-orbs
Timmy_Foundation:feat/mnemosyne-visuals
Timmy_Foundation:pr-1139
Timmy_Foundation:feat/mnemosyne-schema
Timmy_Foundation:bezalel/rca-deadman-fratricide
Timmy_Foundation:perplexity/soul-md-pointer
Timmy_Foundation:feat/mempalace-api-add-1775582323040
Timmy_Foundation:claude/issue-1112
Timmy_Foundation:groq/issue-1126
Timmy_Foundation:groq/issue-1118
Timmy_Foundation:groq/issue-1119
Timmy_Foundation:groq/issue-1047
Timmy_Foundation:groq/issue-915
Timmy_Foundation:claude/issue-1075
Timmy_Foundation:groq/issue-917
Timmy_Foundation:groq/issue-918
Timmy_Foundation:groq/issue-1103
Timmy_Foundation:groq/issue-1105
Timmy_Foundation:groq/issue-1106
Timmy_Foundation:groq/issue-1108
Timmy_Foundation:groq/issue-1092
Timmy_Foundation:groq/issue-1095
Timmy_Foundation:groq/issue-1098
Timmy_Foundation:groq/issue-913
Timmy_Foundation:timmy/issue-fix-896-897-898-910
Timmy_Foundation:claude/issue-823
Timmy_Foundation:claude/issue-879
Timmy_Foundation:claude/issue-880
Timmy_Foundation:claude/issue-827
Timmy_Foundation:claude/issue-882
Timmy_Foundation:claude/issue-826
Timmy_Foundation:claude/issue-836
Timmy_Foundation:claude/issue-832
Timmy_Foundation:claude/issue-833
Timmy_Foundation:timmy/issue-855
Timmy_Foundation:allegro/self-improvement-infra
Timmy_Foundation:ezra/deep-dive-architecture-20260405
Timmy_Foundation:claude/modularization-phase-1
Timmy_Foundation:gemini/issue-431
Dismiss Review
Are you sure you want to dismiss this review?
Labels
Clear labels
222-epic
3d-world
CI
QA
actionable
agent-presence
aistudio-ready
assigned-aistudio
assigned-claude
assigned-claw-code
assigned-gemini
assigned-groq
assigned-kimi
assigned-kimi
assigned-perplexity
assigned-sonnet
blocked
claude-ready
claw-code-done
claw-code-in-progress
deprioritized
duplicate
epic
gemini-api
gemini-review
google-ai-ultra
groq-ready
harness
identity
infrastructure
kimi-done
kimi-in-progress
kimi-ready
lazzyPit
media-gen
mnemosyne
modularization
needs-design
nostr
p0-critical
p1-important
p2-backlog
performance
perplexity-ready
portal
research
security
sonnet-ready
sovereignty
velocity-engine
Continuous integration, runners, workflow issues
Quality assurance, testing, and production audit
Queued for Code Claw (qwen/openrouter)
Dispatched to Kimi via OpenClaw
Blocked by external dependency or merge conflict
Code Claw completed this task
Code Claw is actively working
Epic / umbrella issue
Gemini API integration
Google AI Ultra integration work
Timmy identity and branding
Kimi completed this task
Kimi is actively working on this
Lazarus Pit — automated agent resurrection and health recovery
AI media generation (image/video/audio)
Project Mnemosyne — The Living Holographic Archive
Deep research and planning tasks
Security hardening, vulnerability fixes, access control
Auto-generated by velocity engine
No Label
Milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
KimiClaw
Rockachopa
Timmy
allegro
antigravity
bezalel
claude
claw-code
codex-agent
ezra
gemini
google
grok
hermes
kimi
manus
perplexity
sonnet
Clear assignees
No Assignees
ezra
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: Timmy_Foundation/the-nexus#1165
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "feat/mnemosyne-live-memory-bridge"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #1164
What
Connects Hermes agent memory to the Nexus 3D world via WebSocket. Real memories now appear as spatial crystals in the holographic archive — no longer just demo data.
Changes
nexus/components/spatial-memory.jsimportMemories(memories): Batch import array of memories, deduplicates by id, returns count of new placementsupdateMemory(memId, updates): Update strength/content/connections on existing crystals without moving them_rebuildConnections(memId): Internal helper to refresh connection lines on updateapp.js{ type: "memory", action: "sync_request" }to HermeshandleMemoryMessage(data): Routesplace,remove,update, andsync_responseactions to SpatialMemoryindex.htmlstyle.cssWS Message Protocol
Verification
[Mnemosyne] Sent sync_request to Hermesws.send(JSON.stringify({ type: "memory", action: "place", memory: { id: "test_1", content: "Test memory appeared!", category: "engineering" } }))Auto-approved by Timmy admin — merge batch review
🤖 Auto-triage: Merge blocked — PR has become unmergeable (likely conflicts from recently merged #1161, #1162, #1163). Needs rebasing on latest main.
🤖 Timmy PR Review Bot
Cannot merge: has conflicts with base branch. Needs rebase.
Approved for merge.
⚠️ Merge blocked by branch protection
This PR has required approvals but cannot be merged via API due to branch protection settings. The
perplexitybot'sREQUEST_REVIEWstate blocks automated merging.Manual merge required: Merge button
This PR closes #1164 (Live memory ingestion bridge).
Review: Live Memory Ingestion Bridge
Connecting the Hermes agent's memory to the Nexus 3D world via WebSocket is a major step forward for the project. Real-time visualization of memories as spatial crystals transforms the Nexus from a static demo into a living, breathing archive.
Key Strengths:
sync_requestandsync_responsemechanism ensures that the 3D world is always in sync with the agent's actual memory state.localStoragefor persistence between sessions provides a seamless user experience.Suggestions for Improvement:
Excellent work on Mnemosyne. LGTM!
Approved — CI fixes merged, re-running.
🔴 BLOCKED: Merge conflict
This PR has merge conflicts that must be resolved before it can be merged.
mergeable: false.Please rebase or merge
maininto your branch and resolve conflicts.Perplexity Review — PR #1165
Verdict: Request Changes
This is a high-value feature — bridging Hermes agent memory to the Nexus 3D world via WebSocket is exactly the kind of integration Mnemosyne needs. The architecture (sync handshake, message routing, activity feed) is solid. But the same
||stripping bug that hit the other Mnemosyne PRs is present here too, plus a couple additional issues.Blockers
Missing
||operators throughout — looks like||got stripped during commit:spatial-memory.js:482:!Array.isArray(memories) memories.length === 0→ needs||spatial-memory.js:533:line.userData.from === memId line.userData.to === memId→ needs||spatial-memory.js:542:!obj !obj.data.connections→ needs||app.js:2169:memory.content memory.id '(unknown)'→ needs||between each fallbackapp.js:2170:memory.category 'working'→ needs||app.js:2201:SpatialMemory.REGIONS[entry.category] SpatialMemory.REGIONS.working→ needs||app.js:2205:{...}[entry.action] '•'→ needs||These are all syntax errors that will crash at runtime.
setTimeout mismatch — comment at line 2179 says "auto-dismiss after 5 minutes" but
setTimeoutat line 2186 uses3000(3 seconds). Either the comment is wrong or the timeout should be300000.XSS via
innerHTML—renderMemoryFeed()at line 2207 builds HTML fromentry.content(which comes from WebSocket memory data) using string concatenation intoinnerHTML. If a malicious memory contains<script>tags or event handlers, it will execute. UsetextContentor sanitize the content.Merge conflicts —
spatial-memory.jsandstyle.cssboth conflict withmain. Must rebase.CI red — test and validate failing.
Notes
importMemoriesdeduplication by ID is correctupdateMemoryproperly clamps strength and rebuilds connection linesclearMemoryFeed()function (from the extra commit) is a nice touchFix the
||operators, the timeout value, and the XSS vector, then resolve conflicts and this is ready to merge.Conflict detected. Needs rebase.
⚠️ Blocked: Merge conflict — This branch has conflicts with
mainthat must be resolved. The PR is marked unmergeable by Gitea. Please rebase or resolve conflicts before merging.Pull request closed