Repository navigation
Memory plugin: import Claude Code and Codex memories with a skill and a button - #5760
Open
brsbl wants to merge 8 commits into
Conversation
The Memory settings card gains an Import memories button that opens a new thread prefilled with a request to use the new import-native-memories skill. The skill teaches an agent to find Claude Code and Codex memories on every connected machine, read them without changing them, propose what to keep, and save to bb memory only after approval. Refs #5757 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
brsbl
added this pull request to stack #5761
October 19, 2026 20:01
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Found in the agent dry run: the agent proposed an invalid kind, was unsure whether update keeps tags, and posted totals only inside its question. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Read the skill file with fileURLToPath; jsdom's URL is not a Node file URL. - A missing directory lists as empty with exit 0, so the home check now requires a non-empty paths list. - Query memory/.md so session transcripts don't flood the listing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
brsbl
marked this pull request as ready for review
October 19, 2026 20:52
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
The Memory settings card now finds providers through the provider catalog and plugin settings: an enabled provider whose plugin defines a boolean memoryEnabled setting counts. The advice, the Import memories row, and the prefilled request name only those providers, using each setting's label and plugin name, and the row is hidden when none qualify. The import skill imports only from the providers the request names. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Merge the generic banner from #5756 and rewrite the card around it: one sentence that links to plugin settings, one sentence and the Import memories button, and a request that names no provider. The card still shows only when an enabled provider has built-in memory. With no provider named, the import skill covers the enabled providers it can read. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
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.
Human comments
What was wrong
When someone turns off their agents' built-in memory (each provider plugin's
memoryEnabledsetting), what those agents learned stays in provider files that bb Memory cannot see. The Memory settings card said to turn built-in memory off, but offered no way to keep those memories. Planned in #5757.What changed
plugins/memory/app.tsx. The card shows only when an enabled provider's plugin defines a booleanmemoryEnabledsetting. It finds them throughuseSdk().providers.catalog()andplugins.getSettings(), so a new provider plugin with that setting is picked up automatically. The copy is short and names no provider; it's the same whichever providers are enabled:useBbNavigate().toComposewith "Import my agents' built-in memories into bb Memory. Show me the plan before saving."plugins/memory/skills/import-native-memories/SKILL.md. Its description matches requests to import built-in memories.bb provider list --json.bb file paths/read --host.bb memory add/updateonly after approval. Sources are read-only.memoryskill, README, PLUGIN_OVERVIEW: point to the import. The plugin version goes to 0.3.0. This includes Point Memory plugin guidance at the provider memory settings #5756's generic banner and description copy.No server, CLI, RPC, database, plugin API or daemon protocol changes. Provider plugins are untouched. Stacked on #5756.
Known limit:
toComposeonly fills an empty draft. If the new-thread box already holds an unsent draft, bb keeps it and does not insert the request.How you verified
Tests:
plugins/memory/app.test.tsxcovers:/settings/plugins, and no provider names;CI is green on ee2b4d6.
E2E and agent dry runs on ee2b4d6. Setup:
HOMEwith synthetic memories only;The fixture has Claude Code memories in 3 folders: a duplicate rule, a stale PR note, and a fake API key. It also has a Codex
MEMORY.mdwith a lasting block and a one-off block, plus an existing bb memory that duplicates two files.~/.codex/memories/(no.claudepaths) and saved 2 Codex-tagged memories after approval.sha256after every run.Slop Cop:
P2 follow-ups are not in this PR:
BB_PROJECT_IDon cross-project update and search;bb provider list --all, so providers that aren't installed on the server machine are still covered.Screenshots
Before: origin/main b87d855 · After: ee2b4d6 · Captured at 2× with the same fixture. Before shows main's old static copy, which is the same for every case.
Fixes #5757
BB-Thread-ID: thr_23dt7fuijf
🤖 Generated with Claude Code