Repository navigation
Conversation
…tries The shared config schema declares recallExcludeUris (env OPENVIKING_RECALL_EXCLUDE_URIS) and buildContextSearchBody already maps options.excludeUris to the search body's exclude_uris, but the claude-code and codex auto-recall entries never passed it, so the knob was silently ignored — the same gap volcengine#5312 fixed for the DSH plugin and volcengine#5368 for the pi extension. Both entries now pass cfg.recallExcludeUris in the recall options, and the vendored recall-core applies the same subtree prefixes in the client-side fallback path (searchAllSources), so the fallback cannot reintroduce what the search body excludes. Fixes volcengine#5402 Co-Authored-By: Claude Code <noreply@anthropic.com>
ktz03
reviewed
Sep 29, 2026
ktz03
left a comment
Contributor
There was a problem hiding this comment.
First-pass review (Integration / Claude+Codex — recallExcludeUris wiring)
Verdict: Correct plumbing follow-through for the shared exclude path. LGTM from a first-pass, with one CI hygiene note.
What checks out
- Claude / Codex
auto-recallnow passexcludeUris: cfg.recallExcludeUrisinto the recall options (aligned with DSH / Pi). - Client-side fallback filter mirrors server
exclude_uris(prefix + exact), so the multi-source flatten path cannot reintroduce excluded subtrees. - New
recall-exclude.test.mjspins body shape, non-array ignore, and the 200-cap.
Note
- Diff does not bump host-visible plugin versions. If
plugin-versionstreats these entry/scripts changes as bump-worthy (same gate as other plugin PRs), please patch-bump Claude/Codex manifests (+ lock/metadata if present) on top of currentmainbefore merge.
Happy to re-check once CI reports.
The recallExcludeUris wiring changes entry scripts in both plugins; the plugin-versions gate requires changed plugins to move their version string (same as the DSH volcengine#5312 and pi volcengine#5368 precedents). Co-Authored-By: Claude Code <noreply@anthropic.com>
Author
|
Version bumps pushed in 🤖 Generated with Claude Code |
9 of 21 tasks
Take upstream's 0.6.9 / 0.10.10 and re-bump to 0.6.10 / 0.10.11 so the version-bump gate passes for the auto-recall/recall-core changes after the rebase. Main did not touch the files this PR modifies.
The client-side subtree filter for recallExcludeUris was written into the generated claude-code/codex copies; the sync gate regenerates those from lib/recall-core.mjs, so the fix belongs in the canonical source. Port it there and regenerate every committed copy (openclaw included). Drop the auto-recall option wiring — upstream volcengine#5407 already forwarded excludeUris in both hooks (one of the two lines here had become a duplicate key after that merge). Move the exclusion tests to the shared suite and cover the raw fallback path (subtree root + children, exact URI, and the no-exclusion pass- through), which neither volcengine#5407 nor volcengine#5616 touches. Bump all six distributed plugins: a shared-lib change reaches every consumer per the release gate. Targets deliberately match ktz03's volcengine#5616 (both PRs ride the same lib); whichever lands second re-bumps.
d9352f2 (volcengine#5647) moved dsh to 0.5.15; this PR's shared-lib change still requires a dsh bump relative to the new base, so it lands on 0.5.16. Other plugin manifests are untouched by the new commits and keep their targets.
volcengine#5653/volcengine#5663/volcengine#5664 moved claude-code to 0.7.1; this PR's shared-lib change still requires a bump relative to the new base, so it lands on 0.7.2. No content conflicts — the usage-card work touches different files than the recall exclude fallback.
volcengine#5699 moved codex to 0.11.2; the shared-lib fallback change still requires a bump relative to the new base.
volcengine#5677/volcengine#5467 moved the agent-hook family to 0.5.11; the shared-lib fallback change still requires a bump relative to the new base.
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.
Description
recallExcludeUriswas only honored on the context-face path (the request body'sexclude_uris). The legacy raw-retrieval fallback (searchAllSources) never saw the list, so a configured subtree URI could still surface through/findresults and reach the host prompt.This PR adds the client-side mirror of the server's exclude semantics in the canonical shared library: a configured subtree URI drops both the root and everything under it, and an exact URI drops that document — so the fallback path cannot reintroduce what the request body excludes (#5402).
Scope update (rebase onto current main)
recallExcludeUristhrough the Claude Code / Codex hooks; the wiring hunks this PR originally carried are dropped as superseded.recallForPromptentry inagent-hook-runtime.mjs. That PR and this one are complementary: fix(plugins): forward recall exclusions through agent hooks #5616 covers the canonical hook entry; this PR covers the raw fallback belowbuildContextSearchBody, which fix(plugins): forward recall exclusions through agent hooks #5616 explicitly leaves unchanged. Both ride the shared lib, so their six-plugin version bumps target the same numbers — whichever lands second needs one more patch bump.Human Involvement
Changes Made
examples/memory-plugin-shared/lib/recall-core.mjs: client-side subtree/exact-URI exclusion insearchAllSources(canonical source).node examples/memory-plugin-shared/sync.mjs): claude-code, codex, openclaw.examples/memory-plugin-shared/recall-exclude.test.mjs): request-bodyexclude_urisplumbing plus three raw-fallback cases (subtree root + children, no-exclusion pass-through, exact URI → nothing recalled).PLUGIN_VERSION), pi 0.4.10 (package, lock).Testing
Local validation against official main
9d9bc85e:recall-exclude.test.mjs+recall-core.test.mjs: 40 passed / 0 failed; the two fallback-exclusion cases fail when the filter is removed (mutation-checked) and pass with it.agent-hook-runtime,recall-session-wiring,plugin-config,ov-http,sync): 119 passed / 0 failed.node sync.mjsthengit diff --exit-code: clean (committed copies match the generator, twice).check-plugin-version-bumps.sh origin/main: all six plugins ok, exit 0.Upstream CI snapshot
Current head
1d4ec8a6(2026-10-04): plugin tests include a pre-existing OpenClaw skill-list mismatch (718/1, existing #3866) and the API/CLI integration job had not completed at last observation — not introduced by this PR.Additional Notes
No new configuration; the existing
recallExcludeUrisknob gains coverage on the path that previously ignored it. Does not add subtree filtering server-side, change the context-face path, or alter cached blocks.