feat(desktop): multilingual memory retrieval, archive, and management panel (PR 0007) - #169
Merged
MagicCube merged 2 commits intoSep 9, 2026
Conversation
added 2 commits
September 8, 2026 21:15
…val, archive, and management panel (PR 0007) Upgrade the built-in memory plugin (1.0 -> 1.1.0) and add a Settings panel to browse/manage the machine-wide store. Plugin engine (bun/plugins/memory-plugin-files.ts, self-contained scripts): - Script-aware tokenization (Unicode script classes, Intl.Segmenter for CJK with bigram fallback, per-script normalization) so Chinese/Japanese/ Korean/Arabic/Russian/Thai/Hebrew memories are retrievable. - Scoring: coverage + whole-term match, origin weighting, 90-day time decay with a floor, optional project boost; scope parameter. - memory_save: optional id for upsert, normalized dedupe/near-duplicate detection (Jaccard), overflow moves to an archive file instead of being dropped, context.notify on changes. - Archive file (memories.archive.jsonl) with count + clear entry points; package bumped to 1.1.0 with config.schema.json knobs. Bun-side store + RPC (bun/memory/index.ts, shared/memory.ts): - list/delete/update/export/clearArchive over the JSONL store; every mutation re-reads before writing so concurrent plugin writes survive. - DesktopRPCType: memoryList/memoryDelete/memoryUpdate/memoryExport/ memoryClearArchive; client/memory.ts wrappers. UI: - Settings -> Memory page: search, project filter, usage/quota, archived count, show/hide/edit/delete with confirms, export, clear archive (en/zh). Tests: seed.test.ts extended (multilingual recall, bigram, dedupe, upsert, archive, boost, decay, upgrade path).
…R 0007) memory-page.tsx imports useVirtualizer from @tanstack/react-virtual, but the dependency was only declared in packages/ui. With hoisted workspace install it worked locally, but CI's typed eslint run resolves imports per-package and reported 14 'error typed value' / unsafe-* errors on memory-page.tsx. Declare the catalog dependency so module types resolve. Verified: full-repo 'bun run lint' (eslint .) and full typecheck pass.
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.
Summary
Implements spec 0007: upgrade the built-in memory plugin (1.0 → 1.1.0) and add a Settings panel to browse/manage the machine-wide store.
Plugin engine (
bun/plugins/memory-plugin-files.ts, self-contained embedded scripts):Intl.Segmenterfor CJK with bigram fallback, per-script normalization) so Chinese/Japanese/Korean/Arabic/Russian/Thai/Hebrew memories are retrievable.scopeparameter.memory_save: optionalidfor upsert, normalized dedupe/near-duplicate detection (Jaccard), overflow moves to an archive file instead of being dropped,context.notifyon changes.memories.archive.jsonl) with count + clear entry points; package bumped to 1.1.0 withconfig.schema.jsonknobs.Bun-side store + RPC (
bun/memory/index.ts,shared/memory.ts,client/memory.ts):DesktopRPCType:memoryList/memoryDelete/memoryUpdate/memoryExport/memoryClearArchive.UI
Test plan
seed.test.tsextended: multilingual recall, bigram fallback, dedupe, upsert, archive, boost, decay, upgrade path — 20 plugin tests pass.apps/desktop+packages/uisuites (439 tests) pass;typecheck:changed/lint:changedclean.Notes
config.schema.jsonfor tuning.