Bug Description
Memory Viewer HTTP server (port 18799) does not start after installing memos-local-openclaw-plugin on OpenClaw.
Expected behavior: After gateway starts, the Memory Viewer should be accessible at http://127.0.0.1:18799
Actual behavior: Port 18799 is never opened. No HTTP server listens on that port.
Environment
- memos-local-openclaw-plugin: @memtensor/memos-local-openclaw-plugin 1.0.10-beta.1
- Node.js: v24.15.0 (Homebrew, after downgrade from v25)
- OpenClaw: 2026.5.7
- OS: macOS Darwin 23.6.0 (arm64)
- Installation method: openclaw plugins install @memtensor/memos-local-openclaw-plugin
Steps to Reproduce
- Install the plugin:
openclaw plugins install @memtensor/memos-local-openclaw-plugin
- Restart gateway:
openclaw gateway restart
- Check port:
lsof -i :18799 -sTCP:LISTEN — returns nothing
Root Cause Analysis
The plugin initPlugin function in dist/index_.js initializes SqliteStore, Embedder, and tools, but never instantiates or starts the ViewerServer.
The ViewerServer class exists at src/viewer/server.ts and is exported, but initPlugin does not call it. The returned plugin object only contains:
id, tools, onConversationTurn, flush, shutdown
No HTTP server is started and no port is bound.
What Works
- Plugin register/activate succeeds
better-sqlite3 native module loads correctly
memory_search, memory_get, memory_timeline tools all work
- Agent memory recall functions properly
What Doesn't Work
- Memory Viewer web UI not accessible at any port
Expected Fix
The plugin should automatically start the Viewer HTTP server on the configured viewerPort (default 18799) during initPlugin activation, similar to how other HTTP services (browser, gateway) start on their configured ports.
Config
{
"plugins": {
"slots": {
"memory": "memos-local-openclaw-plugin"
},
"entries": {
"memos-local-openclaw-plugin": {
"enabled": true,
"viewerPort": 18799
}
}
}
}
Bug Description
Memory Viewer HTTP server (port 18799) does not start after installing memos-local-openclaw-plugin on OpenClaw.
Expected behavior: After gateway starts, the Memory Viewer should be accessible at http://127.0.0.1:18799
Actual behavior: Port 18799 is never opened. No HTTP server listens on that port.
Environment
Steps to Reproduce
openclaw plugins install @memtensor/memos-local-openclaw-pluginopenclaw gateway restartlsof -i :18799 -sTCP:LISTEN— returns nothingRoot Cause Analysis
The plugin
initPluginfunction indist/index_.jsinitializes SqliteStore, Embedder, and tools, but never instantiates or starts the ViewerServer.The
ViewerServerclass exists atsrc/viewer/server.tsand is exported, butinitPlugindoes not call it. The returned plugin object only contains:id,tools,onConversationTurn,flush,shutdownNo HTTP server is started and no port is bound.
What Works
better-sqlite3native module loads correctlymemory_search,memory_get,memory_timelinetools all workWhat Doesn't Work
Expected Fix
The plugin should automatically start the Viewer HTTP server on the configured
viewerPort(default 18799) duringinitPluginactivation, similar to how other HTTP services (browser, gateway) start on their configured ports.Config
{ "plugins": { "slots": { "memory": "memos-local-openclaw-plugin" }, "entries": { "memos-local-openclaw-plugin": { "enabled": true, "viewerPort": 18799 } } } }