Skip to content

feat(viewer): add owner badge, unified session key format, and improved session display#1419

Merged
tangbotony merged 14 commits into
MemTensor:openclaw-local-plugin-20260331from
tangbotony:native_memos
Apr 3, 2026
Merged

feat(viewer): add owner badge, unified session key format, and improved session display#1419
tangbotony merged 14 commits into
MemTensor:openclaw-local-plugin-20260331from
tangbotony:native_memos

Conversation

@tangbotony
Copy link
Copy Markdown
Contributor

Summary

  • Unified session key format: Migrate session keys from openclaw-import-{id} / openclaw-session-{id} to agent:{id}:import / agent:{id}:session:{sid} with backward-compatible dedup checks in both storage and viewer layers
  • Owner badge: Add owner tag (agent name) to memory cards and detail modal for clearer attribution
  • Session display helpers: Introduce fmtSessionDisplay, fmtAgentName, isImportedSession utility functions for consistent formatting across the viewer UI
  • Version bump: 1.0.8-beta.7

Changed Files

File Change
apps/memos-local-openclaw/package.json Version bump to 1.0.8-beta.7
apps/memos-local-openclaw/openclaw.plugin.json Version bump to 1.0.8-beta.7
apps/memos-local-openclaw/src/viewer/html.ts Owner tag CSS, display helpers, card/modal rendering
apps/memos-local-openclaw/src/viewer/server.ts Session key format migration with backward compat

Test Plan

  • Verify memory cards show owner badge when agent source is present
  • Verify session display uses shortened format for long session IDs
  • Verify backward compatibility with old openclaw-import-* / openclaw-session-* keys
  • Verify Memory Viewer config save triggers gateway reload via SIGUSR1

Made with Cursor

…isolation

- Add hubInstanceId to team_shared_chunks, local_shared_tasks, and
  client_hub_connection to prevent stale sharing state when switching
  between Hub instances
- Fix memory_search/timeline/get owner isolation by accepting agentId
  from tool execution context
- Fix viewer sharing queries to use role-appropriate tables (hub_memories
  vs team_shared_chunks)
- Apply maxChars truncation in memory_get handler
- Fix 11 failing tests: accuracy thresholds, integration env isolation,
  plugin-impl join flow, and task-processor topic judge flakiness

Made-with: Cursor
…n search, LLM dedup

- Compute embeddings on Hub when memories are shared (same as task/skill),
  instead of on-the-fly at search time; auto-backfill missing vectors on startup
- Hub search now reads pre-computed vectors from hub_memory_embeddings + FTS + RRF
  (unified retrieval strategy across memory/chunk/skill)
- Add deduplication rule to LLM filterRelevant prompt so merged local+remote
  results automatically drop near-duplicate snippets
- Add LLM filtering to skill_search hub merge path (consistent with memory_search)
- Persist latest Hub username/role during client 401 recovery
- Add admin rename notification + fix client nickname consistency
- Fix Hub join dryRun logic, normalizeTimestamp compile error
- Define missing OpenClaw provider prompt constants
…d 3-phase recall

- Refactor both memory_search tool and auto-recall to a 3-phase pipeline:
  Phase 1: local engine.search() ∥ hubSearchMemories() via Promise.all
  Phase 2: merge all candidates → single LLM filterRelevant() call
  Phase 3: build response with unified { candidates, hubCandidates, filtered } structure
- Remove redundant double LLM filtering (was: local filter → hub fallback → merge filter)
- Separate hub-memory origin hits from local candidates in RecallEngine results
- Simplify trackTool serialization to a single branch matching the unified details shape
- Add dedicated "远程召回" (Hub Remote) display section in Viewer between initial retrieval and LLM filtered results
… npm cache

- update-check: installCommand now uses exact version (e.g. @1.0.6-beta.11) instead of dist-tag (@beta)
- frontend: always construct pkgSpec as packageName@exactVersion, pass targetVersion to backend
- backend: verify downloaded version matches targetVersion, rollback on mismatch
- npm pack: add --prefer-online flag as extra safety
- postinstall: fix native binding validation, delegate to native-binding.cjs
- update-install: flush HTTP response before SIGUSR1 restart, add no-cache headers
Add disable, enable, and hard-delete management for skills in the memory viewer so inactive skills stop participating in recall while remaining manageable from the UI.

Made-with: Cursor
Merge the latest upstream openclaw-local-plugin-20260331 changes into the fork branch so follow-up MemOS local plugin work can continue from the synced codebase.

Made-with: Cursor
…, task auto-finalize, and viewer enhancements

- Replace simple NEW/SAME topic judge with structured two-stage LLM classifier
  (JSON output with confidence score, low-confidence arbitration fallback)
- Compact prompts and task state to reduce token consumption by ~50-60%
- Add role-based dedup filtering to prevent cross-role memory merging
- Add sourceAgent/owner field to memory search results and hub sharing
- Add task auto-finalize for stale active tasks (configurable timeout in settings)
- Add agent filter badges and i18n support in viewer UI
- Fix session-scoped task processing to prevent cross-agent task interference
- Update task-processor tests for new classifier API with arbitration scenarios

Made-with: Cursor
…ed session display

- Migrate session keys from `openclaw-import-{id}` / `openclaw-session-{id}` to `agent:{id}:import` / `agent:{id}:session:{sid}` with backward-compatible dedup checks
- Add owner tag to memory cards and detail modal
- Add fmtSessionDisplay / fmtAgentName / isImportedSession helpers for consistent formatting
- Bump version to 1.0.8-beta.7
@tangbotony tangbotony merged commit 11fa25d into MemTensor:openclaw-local-plugin-20260331 Apr 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant