Feat/merge main 2.0.9#1190
Merged
CaralHsi merged 27 commits intoMemTensor:dev-20260309-v2.0.9from Mar 9, 2026
Merged
Conversation
…e to the failure in passing the 'user_name' parameter. (MemTensor#1174) * add log * add log * add log * hot fix --------- Co-authored-by: 黑布林 <11641432+heiheiyouyou@user.noreply.gitee.com>
feat:optimize search_by_fulltext
Reorganize project structure by moving the openwork-memos-integration module under the apps/ directory for consistency. Made-with: Cursor
Move the openwork-memos-integration module to apps/ directory as part of the monorepo restructuring. Made-with: Cursor
- Extract agentId from OpenClaw events, pass owner to captureMessages, ownerFilter to search/recall/dedup across the full pipeline - Task creation now uses per-agent owner instead of hardcoded "agent:main" - Add owner filter to getActiveTask, getAllActiveTasks, getUnassignedChunks, listTasks in sqlite.ts for proper task-level isolation - Dedup (findDuplicate/findTopSimilar) now scopes to agent's own + public embeddings to prevent cross-agent deduplication - Fix cursor key to include agentId, preventing shared session cursor conflicts in multi-agent scenarios - On gateway restart, initialize cursor from last user message instead of zero to avoid re-ingesting entire session history - Add multi-agent isolation tests for task owner filtering - Bump version to 0.3.20 Made-with: Cursor
- Update root .gitignore to whitelist apps/ directory files (json, html, ts, etc.) that were previously excluded by the global *.json rule - Update memos-local-openclaw .gitignore to exclude package-lock.json, www/, docs/, ppt/, .DS_Store, and database files - Remove unnecessary www/docs symlink from tracking - Add missing package.json, tsconfig.json, openclaw.plugin.json to git - Add previously ignored config files for openwork-memos-integration Made-with: Cursor
- Remove video-thumbnail.png (4.6MB), font files (280KB), lock files (258KB), and usecase image assets from git tracking - Add .gitignore for openwork-memos-integration to prevent re-adding binary assets, lock files, and build artifacts - Add comprehensive Development Guide to memos-local-openclaw README covering prerequisites, project structure, build, test, local dev workflow, publishing, and utility scripts Made-with: Cursor
…ifecycle fix(memos-local-openclaw): flush ingest work before shutdown
fix(memos-local-openclaw): honor memory_search maxResults
fix(memos-local-openclaw): sanitize captured metadata and evidence
fix(memos-local-openclaw): enforce owner isolation for memory tools
…l evolution improvements - Add task/skill edit, delete, retry-skill-generation on list cards - Fix task boundary detection: per-turn LLM judgment with warm-up=1 - Fix detectAndProcess to not blindly assign all unassigned chunks - Strengthen topic judge prompt to reduce false NEW splits - Add LLM fallback chain (strongCfg → cfg → OpenClaw native model) - Add skill evolver FK constraint safety checks - Remove redundant edit/delete buttons from detail modals - Add input validation for /api/memory content field - Add /api/search minScore filter (0.64) and keyword fallback - Shared LLM call utility (src/shared/llm-call.ts) Made-with: Cursor
…stall guidance - Add Step 0: proactive C++ build tools install before plugin install - Clarify Windows users usually don't need build tools (prebuilt binaries) - Document per-turn LLM topic judge, warm-up=1, Task/Skill CRUD on cards - Add LLM fallback chain details (skillSummarizer → summarizer → OpenClaw native) - Add viewer search minScore 0.64 and keyword fallback docs - Add agent parallelism (1-8 concurrency) for import - Add shared/llm-call.ts to project structure - Link to better-sqlite3 official troubleshooting in all install sections Made-with: Cursor
…enclaw) (MemTensor#1182) ## Description Introduce **MemOS** (`memos-local-openclaw-plugin`), a fully local OpenClaw memory plugin that gives AI agents persistent memory, intelligent task summarization, self-evolving skills, and multi-agent collaboration. **Problem:** OpenClaw agents have no persistent memory across sessions. Every conversation starts from scratch — the agent forgets previous interactions, repeats mistakes, and cannot learn from past experience. There is no mechanism to organize conversations into structured knowledge, distill successful executions into reusable skills, or share knowledge across multiple agents. **Solution — Four Intelligent Pipelines:** 1. **Memory Write Pipeline** — Auto-captures every conversation via `agent_end` hook → semantic chunking → LLM summarization → vector embedding → smart deduplication (content-hash + Top-5 vector + LLM judge: DUPLICATE/UPDATE/NEW) → SQLite + FTS5 storage 2. **Task Summarization Pipeline** — Per-turn LLM topic boundary detection (warm-up: 1 user turn, 2h idle timeout) → structured summaries (Goal → Steps → Result → Key Details) → quality filtering → full CRUD from Viewer 3. **Skill Evolution Pipeline** — Rule filter → LLM evaluation → SKILL.md generation with scripts + evals → quality scoring (0-10) → auto-upgrade on similar tasks (refine/extend/fix) → version management → 3-level LLM fallback chain (skillSummarizer → summarizer → OpenClaw native model) 4. **Smart Retrieval Pipeline** — FTS5 + vector hybrid search → RRF fusion → MMR diversity reranking → recency decay → LLM relevance filter → auto-recall via `before_agent_start` hook **Additional capabilities:** - **Multi-agent collaboration** — Memory isolation via `owner` field + public memory + skill sharing/publishing - **Memory Migration (Reconnect 🦞)** — One-click import from OpenClaw native memories with smart dedup, pause/resume, configurable agent parallelism (1-8) - **Memory Viewer** — 7-page web dashboard (Memories, Tasks, Skills, Analytics, Logs, Import, Settings) with full CRUD, i18n, light/dark theme, password protection - **12 smart agent tools** — `auto_recall`, `memory_search`, `memory_get`, `memory_timeline`, `memory_write_public`, `task_summary`, `skill_get`, `skill_install`, `skill_search`, `skill_publish`, `skill_unpublish`, `memory_viewer` - **Tiered models** — Embedding (lightweight) / Summarizer (mid-tier) / Skill generation (high-quality), each independently configurable - **Zero-config start** — Falls back to local embedding + rule-based summarization when no API keys configured - **100% local** — All data in local SQLite, zero cloud uploads, localhost-only Viewer Related Issue (Required): Fixes MemTensor#1181 ## Type of change - [x] New feature (non-breaking change which adds functionality) - [x] Documentation update ## How Has This Been Tested? - [x] Unit Test - [x] Test Script Or Test Steps (please provide) **Unit tests** (`npm test` in `apps/memos-local-openclaw/`): - `tests/policy.test.ts` — Retrieval strategy, search filtering, evidence extraction - `tests/recall.test.ts` — RRF fusion, recency decay correctness - `tests/capture.test.ts` — Message filtering, evidence block stripping, self-tool exclusion - `tests/storage.test.ts` — SQLite CRUD, FTS5, vector storage, content hash dedup - `tests/chunker.test.ts` — Semantic chunking for code blocks, paragraphs, function bodies - `tests/task-processor.test.ts` — Task boundary detection, skip logic, summary generation - `tests/multi-agent.test.ts` — Multi-agent memory isolation, owner filtering, public sharing - `tests/integration.test.ts` — End-to-end ingestion and retrieval pipeline **Manual testing:** 1. Install plugin via `openclaw plugins install .` → start gateway → verify Memory Viewer at `http://127.0.0.1:18799` 2. Have conversations with OpenClaw agent → verify auto-capture, dedup, task detection, skill generation 3. Test memory migration from OpenClaw native memories → verify dedup, resume, post-processing 4. Test multi-agent scenarios → verify memory isolation and skill sharing 5. Test task/skill CRUD operations from Viewer list cards (edit, delete, retry, visibility toggle) 6. Test LLM fallback chain by disabling primary model → verify automatic fallback to next level ## Checklist - [x] I have performed a self-review of my own code | 我已自行检查了自己的代码 - [x] I have commented my code in hard-to-understand areas | 我已在难以理解的地方对代码进行了注释 - [x] I have added tests that prove my fix is effective or that my feature works | 我已添加测试以证明我的修复有效或功能正常 - [x] I have created related documentation issue/PR in [MemOS-Docs](https://github.com/MemTensor/MemOS-Docs) (if applicable) | 我已在 [MemOS-Docs](https://github.com/MemTensor/MemOS-Docs) 中创建了相关的文档 issue/PR(如果适用) - [x] I have linked the issue to this PR (if applicable) | 我已将 issue 链接到此 PR(如果适用) - [x] I have mentioned the person who will review this PR | 我已提及将审查此 PR 的人 ## Reviewer Checklist - [ ] closes MemTensor#1181 (Replace with actual issue number) - [ ] Made sure Checks passed - [ ] Tests have been provided
- Root README: consolidate Cloud & Local OpenClaw plugins under one section with aligned formatting; add Local plugin to News and Resources - Plugin README: add npm/license/node/GitHub badges and homepage links; fix git clone URL (tangbotony → MemTensor) - Bump memos-local-openclaw-plugin version from 0.3.20 to 1.0.0 Made-with: Cursor
Made-with: Cursor
…emTensor#1184) - Root README: consolidate Cloud & Local OpenClaw plugins under one section with aligned formatting; add Local plugin to News and Resources - Plugin README: add npm/license/node/GitHub badges and homepage links; fix git clone URL (tangbotony → MemTensor) - Bump memos-local-openclaw-plugin version from 0.3.20 to 1.0.0 Made-with: Cursor ## Description Update documentation to reflect the Local OpenClaw Plugin's v1.0.0 NPM release. The root README now presents Cloud and Local plugins as parallel sub-sections under a unified heading, adds a News entry for the plugin launch, and lists the Local plugin in Resources. The plugin README adds npm/license/node/GitHub badges with homepage links and fixes an incorrect git clone URL. The package version is bumped from 0.3.20 to 1.0.0 to match the published NPM package. Related Issue (Required): ## Type of change - [x] Documentation update ## How Has This Been Tested? - [x] Test Script Or Test Steps (please provide) Verified all badge URLs and links render correctly on GitHub. Confirmed `package.json` version matches the published NPM package (`@memtensor/memos-local-openclaw-plugin@1.0.0`). ## Checklist - [x] I have performed a self-review of my own code | 我已自行检查了自己的代码 - [x] I have commented my code in hard-to-understand areas | 我已在难以理解的地方对代码进行了注释 - [x] I have added tests that prove my fix is effective or that my feature works | 我已添加测试以证明我的修复有效或功能正常 - [x] I have created related documentation issue/PR in [MemOS-Docs](https://github.com/MemTensor/MemOS-Docs) (if applicable) | 我已在 [MemOS-Docs](https://github.com/MemTensor/MemOS-Docs) 中创建了相关的文档 issue/PR(如果适用) - [x] I have linked the issue to this PR (if applicable) | 我已将 issue 链接到此 PR(如果适用) - [x] I have mentioned the person who will review this PR | 我已提及将审查此 PR 的人 ## Reviewer Checklist - [ ] Made sure Checks passed - [ ] Tests have been provided
## Description Please include a summary of the change, the problem it solves, the implementation approach, and relevant context. List any dependencies required for this change. Related Issue (Required): Fixes @issue_number ## Type of change Please delete options that are not relevant. - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) - [ ] Refactor (does not change functionality, e.g. code style improvements, linting) - [ ] Documentation update ## How Has This Been Tested? Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration - [ ] Unit Test - [ ] Test Script Or Test Steps (please provide) - [ ] Pipeline Automated API Test (please provide) ## Checklist - [ ] I have performed a self-review of my own code | 我已自行检查了自己的代码 - [ ] I have commented my code in hard-to-understand areas | 我已在难以理解的地方对代码进行了注释 - [ ] I have added tests that prove my fix is effective or that my feature works | 我已添加测试以证明我的修复有效或功能正常 - [ ] I have created related documentation issue/PR in [MemOS-Docs](https://github.com/MemTensor/MemOS-Docs) (if applicable) | 我已在 [MemOS-Docs](https://github.com/MemTensor/MemOS-Docs) 中创建了相关的文档 issue/PR(如果适用) - [ ] I have linked the issue to this PR (if applicable) | 我已将 issue 链接到此 PR(如果适用) - [ ] I have mentioned the person who will review this PR | 我已提及将审查此 PR 的人 ## Reviewer Checklist - [ ] closes #xxxx (Replace xxxx with the GitHub issue number) - [ ] Made sure Checks passed - [ ] Tests have been provided
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Please include a summary of the change, the problem it solves, the implementation approach, and relevant context. List any dependencies required for this change.
Related Issue (Required): Fixes @issue_number
Type of change
Please delete options that are not relevant.
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
Checklist
Reviewer Checklist