Memory/QMD: isolate mcporter sidecars per agent#79745
Conversation
|
Codex review: needs changes before merge. Reviewed June 8, 2026, 1:19 AM ET / 05:19 UTC. Summary PR surface: Source +540, Tests +1340. Total +1880 across 2 files. Reproducibility: yes. from source inspection: current main passes QMD-scoped XDG env into mcporter, and mcporter's source/docs show the affected config discovery and logging contracts. I did not run a live gateway reproduction in this read-only review. Review metrics: 1 noteworthy metric.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Copy recommended automerge instructionNext step before merge
Security Review findings
Review detailsBest possible solution: Keep the env split and per-agent generated-config approach, but make preservation match mcporter's project/home/explicit config resolution and nested logging/lifecycle semantics before merge. Do we have a high-confidence way to reproduce the issue? Yes, from source inspection: current main passes QMD-scoped XDG env into mcporter, and mcporter's source/docs show the affected config discovery and logging contracts. I did not run a live gateway reproduction in this read-only review. Is this the best way to solve the issue? No, not yet. The proposed env split is the right owner-boundary fix, but the implementation must preserve mcporter project configs and logging.daemon.enabled before it is the safest fix. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model gpt-5.5, reasoning high; reviewed against b8adc11977ab. Label changesLabel justifications:
Evidence reviewedPR surface: Source +540, Tests +1340. Total +1880 across 2 files. View PR surface stats
Acceptance criteria:
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
This comment was marked as low quality.
This comment was marked as low quality.
592764d to
d716ad1
Compare
d716ad1 to
a3a3741
Compare
c5d8ae4 to
a12f4f2
Compare
|
This PR directly addresses this issue — the XDG_CONFIG_HOME / XDG_CACHE_HOME leak described in #79847 breaks mcporter ≥ 0.10, which is exactly what this fix resolves. Linking for maintainer visibility. |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
Pushed a fresh rebase onto current QMD/mcporter changes remain the same:
Additional CI-only cleanup from the moving base:
Verification on rebased head
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
Updated this PR on current Behavior addressed: qmd now keeps its own scoped config/cache env for the qmd CLI, but the spawned mcporter child no longer inherits qmd-scoped Real environment tested: GitHub PR CI on Exact steps or command run after this patch: Evidence after fix: focused Vitest passed 151 tests across 2 shards; both tsgo commands exited 0; Observed result after fix: the PR branch is rebased on current What was not tested: no live external mcporter service was launched; coverage is from qmd manager behavior tests, agent bundle mcporter config tests, typechecks, and PR CI. |
|
Updated this branch with What changed:
Fresh proof is in the PR body's Verification run:
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
Rebase verification — conflicts resolvedRebased What changed
Conflict resolution
Local verification
Proof gaps
Branch head: |
|
This assigned pull request has been automatically marked as stale after being open for 27 days. |
1 similar comment
|
This assigned pull request has been automatically marked as stale after being open for 27 days. |
…or configured stdio
|
@clawsweeper re-review Re-pushed with the classifier fix and new regression tests. What changed since the last review:
PR 2 (i18n split): #91210 |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
This assigned pull request has been automatically marked as stale after being open for 27 days. |
|
Reworked the branch and updated the implementation. The branch has been restored and is ready for review. Requesting reopen. |
Summary
qmd mcpentry.logging.daemon.enabledon mcporter stdio servers to preserve daemon logging config.config/mcporter.jsonfrom workspace directory as an additional mcporter config layer.reviewMetrics
Verification
git diff --checkpnpm exec oxfmt --check --threads=1 CHANGELOG.md extensions/memory-core/src/memory/qmd-manager.ts extensions/memory-core/src/memory/qmd-manager.test.tsOPENCLAW_VITEST_MAX_WORKERS=1 pnpm test extensions/memory-core/src/memory/qmd-manager.test.tspnpm run lint:extensions:bundledpnpm tsgo:extensionspnpm tsgo:extensions:testReal behavior proof
Behavior addressed: QMD memory search through mcporter must keep each agent on its own mcporter config/daemon state while preserving a configured stdio
qmdserver even when mcporter stores the command as an absolute executable path.Real environment tested: Local OpenClaw checkout on Linux with Node
v24.15.0,mcporter 0.10.2,qmd 2.1.0, and the configured mcporterqmdstdio server whose command is an absolute qmd binary path. Home/state/workspace paths are redacted.Exact steps or command run after this patch:
Evidence after fix: Copied terminal output, redacted:
Observed result after fix: The manager classified the absolute-command mcporter
qmdserver asgeneratedfor both agents, wrote separate per-agent mcporter configs, preserved the absolute qmd command and["mcp"]args, and injected per-agentXDG_CONFIG_HOME,QMD_CONFIG_DIR, andXDG_CACHE_HOMEvalues.What was not tested: I did not run the full product
openclaw memory ...CLI in this linked checkout because the local user config is currently invalid on this branch and plugin commands do not register before config validation. I also did not test a live remote HTTP mcporter server; that preservation path remains covered by the focused unit tests already in this PR.Branch update: This PR has been rebased onto latest upstream/main. The original branch was recreated with rebased commits.