chore(agent-memory): record collect_pr_context cross-child contamination (#589) - #590
Merged
drmoisan merged 1 commit intoAug 22, 2026
Conversation
…ion (#589) During epic child #449's PR authoring, mcp__drm-copilot__collect_pr_context returned ok:true with worktree artifact paths, wrote nothing there, and wrote instead into the main checkout -- a location shared by every concurrently running epic child. Sibling child #491 overwrote the file in the interval between collection and use, so the copied context described #491's branch, commits, and evidence folder. The contamination was caught by comparing the summary's resolved head SHA against HEAD before authoring. Presence and mtime checks both pass on a sibling's file, so ownership verification is the only reliable guard. Also records two further defects confirmed in the same bundle: a false "GitHub CLI is not installed" report while gh was working in the same session, and an author-asserted autoclose list containing AC-1..AC-16 scraped as issue numbers alongside issues not owned by the child. The tool defect itself is tracked as issue #589. Refs #449, #589 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
drmoisan
merged commit Aug 22, 2026
4108c91
into
epic/quickfiler-suite-determinism-foundation-integrationdrmoisan added a commit
that referenced
this pull request
Aug 22, 2026
Children 449 (PR #585, follow-up #590), 445 (PR #587), and 491 (PR #588) are merged; each merge commit was confirmed reachable from the fetched integration head rather than taken from a completion notification. Child 511 remains in atomic execution. Records seven carried findings, two of which correct this epic's own inputs: epic.md misattributed QuickFiler/Legacy/QuickFileController.cs's 1,065 lines to QuickFiler/Controllers/QfcExplorerController.cs (182 lines after change, and the legacy file has zero compile references), and collect_pr_context writes into the shared main checkout, letting one child overwrite a sibling's PR context (issue #589). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UHj7wjLweuwfAP8NDA4iiP
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 freeto 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.
Follow-up to PR #585 (already merged as
5d1c2074).Records the
collect_pr_contextcross-child contamination discovered while authoring #585's PR body, appended to the existing orchestrator memory for that tool.What happened
mcp__drm-copilot__collect_pr_contextreturnedok: truewith worktree artifact paths, wrote nothing there, and wrote instead into the main checkout — a location shared by every concurrently running epic child. Sibling child #491 ran its own collection in the interval between #449's collection and its use, so the copied context resolved tobug/quickfiler-test-form1-live-form-491-exec @ bec83397and enumerated 14 artifacts from #491's feature folder.Authoring from it would have described the wrong change on #449's pull request. Nothing in the return value or the file format signalled the substitution.
Why a memory entry and not only an issue
The tool defect is tracked as #589. This entry protects agents until that is fixed, and records the one check that actually catches it: verify ownership by comparing the summary's resolved head SHA against
HEAD, because presence checks and mtime checks both pass on a sibling's file.Two further defects confirmed in the same bundle are recorded alongside it: a false
GitHub CLI is not installedreport whileghwas working in the same session, and an author-asserted autoclose list containing#AC-1..#AC-16scraped as issue numbers.Scope
Documentation only — one file under
.claude/agent-memory/. No production code, no tests, no toolchain impact.GitHub Auto-close
None. Base is the epic integration branch, so a closing keyword would not fire.
Refs Bug: quickfiler-explorer-controller-latent-defects #449
Refs Bug: collect-pr-context-shared-path-race-across-concurrent-children #589
🤖 Generated with Claude Code