Skip to content

Clear stale subagent lineage on top-level sessions#67946

Open
pfrederiksen wants to merge 1 commit into
openclaw:mainfrom
pfrederiksen:fix/stale-subagent-lineage-depth
Open

Clear stale subagent lineage on top-level sessions#67946
pfrederiksen wants to merge 1 commit into
openclaw:mainfrom
pfrederiksen:fix/stale-subagent-lineage-depth

Conversation

@pfrederiksen

@pfrederiksen pfrederiksen commented Apr 17, 2026

Copy link
Copy Markdown
Contributor

Fixes #67943.

Summary

Prevents normal top-level sessions from inheriting stale subagent lineage metadata that can incorrectly trip sessions_spawn depth limits.

What changed

  • clear persisted subagent lineage fields on ordinary top-level session turns
  • preserve lineage only for actual subagent:* and acp:* sessions
  • stop reusing stale sessionEntry.spawnedBy for normal top-level agent runs
  • add regression coverage proving top-level sessions no longer pass stale lineage through
  • preserve newer model-thinking compatibility tests while rebasing onto current upstream/main

Real behavior proof

  • Behavior or issue addressed: A normal top-level session key (agent:main:main) could carry stale stored subagent lineage (spawnedBy, spawnDepth, spawnedWorkspaceDir, subagentRole, subagentControlScope). With maxSpawnDepth: 1, that stale stored depth makes sessions_spawn reject a normal top-level caller as already nested.

  • Real environment tested: Local OpenClaw checkout for PR Clear stale subagent lineage on top-level sessions #67946 on Linux/Node 22, rebased onto current origin/main, head a1cc7e7681ccdb488f9fa2bb1d78823995291d25.

  • Exact steps or command run after this patch: Ran a redacted local runtime proof from the patched checkout. It seeds the session store with stale lineage for agent:main:main, calls production getSubagentDepthFromSessionStore and spawnSubagentDirect, applies the same ordinary-session lineage gate used by the patch (isSubagentSessionKey(sessionKey) || isAcpSessionKey(sessionKey)), then calls spawnSubagentDirect again. The gateway agent call is replaced with a local proof client returning accepted so the proof isolates session-lineage/depth behavior without contacting an external gateway.

  • Evidence after fix: Copied terminal output from the after-fix command:

    proof head: a1cc7e7681ccdb488f9fa2bb1d78823995291d25
    session key: agent:main:main
    is subagent/acp: false false
    before cleanup entry: {"sessionId":"11111111-1111-4111-8111-111111111111","updatedAt":1778983631000,"sessionStartedAt":1778983631000,"lastInteractionAt":1778983631000,"spawnedBy":"agent:main:subagent:stale-parent","spawnDepth":1,"spawnedWorkspaceDir":"/stale/subagent/workspace","subagentRole":"leaf","subagentControlScope":"operator.admin"}
    before cleanup depth: 1
    before cleanup sessions_spawn status: forbidden
    before cleanup sessions_spawn error: sessions_spawn is not allowed at this depth (current depth: 1, max: 1)
    after cleanup entry: {}
    after cleanup depth: 0
    after cleanup sessions_spawn status: accepted
    after cleanup sessions_spawn runId: proof-run-1
    after cleanup sessions_spawn childSessionKey: agent:main:subagent:3ea9be1a-ca77-49e9-b9f5-cd08d6d1ffc4
    PASS: true
    
  • Observed result after fix: The top-level session key is not subagent/ACP-shaped, the stale lineage fields are cleared, depth resolution drops from 1 to 0, and the same sessions_spawn path changes from forbidden to accepted.

  • What was not tested: This proof does not launch a real child model run against a live external gateway; the gateway agent request is stubbed after the production spawn-depth/session-store path so the proof stays redacted and deterministic.

Validation

  • git diff --check
  • pnpm run lint:plugins:no-extension-test-core-imports
  • CI=true pnpm exec vitest run --config test/vitest/vitest.agents.config.ts src/agents/agent-command.live-model-switch.test.ts
    • Test Files 1 passed (1)
    • Tests 20 passed (20)
  • pnpm check:test-types

Note: targeted pnpm exec oxlint on touched files still reports the pre-existing exported test helper name __testing in src/agents/agent-command.ts, so I did not count that as a passing validation gate.

@openclaw-barnacle openclaw-barnacle Bot added agents Agent runtime and tooling size: S labels Apr 17, 2026
@greptile-apps

greptile-apps Bot commented Apr 17, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR fixes issue #67943 by preventing regular top-level sessions from inheriting stale subagent lineage metadata (spawnedBy, spawnDepth, subagentRole, subagentControlScope, forkedFromParent, spawnedWorkspaceDir) that could incorrectly trip sessions_spawn depth limits. The fix gates these fields behind a preserveSpawnLineage check (keyed on isSubagentSessionKey || isAcpSessionKey) in both session.ts (at session state initialization) and agent-command.ts (at the point spawnedBy is passed to runAgentAttempt), and adds a regression test confirming spawnedBy is undefined for top-level session runs.

Confidence Score: 5/5

Safe to merge — targeted fix with a clear regression test and no collateral risk.

All three changed files are narrowly scoped: the production changes gate stale lineage fields behind a well-tested predicate, the test converts a static mock to a spy and adds a regression case that directly covers the bug scenario. No P0/P1 findings.

No files require special attention.

Reviews (1): Last reviewed commit: "clear stale subagent lineage on top-leve..." | Re-trigger Greptile

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7f772863cb

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/auto-reply/reply/session.ts Outdated
@pfrederiksen

Copy link
Copy Markdown
Contributor Author

Good catch. I narrowed the cleanup so it only clears stale subagent lineage fields, while preserving for normal thread sessions that have already forked from their parent. Re-pushed.

@openclaw-barnacle openclaw-barnacle Bot added gateway Gateway runtime size: M and removed size: S labels Apr 17, 2026
@pfrederiksen

Copy link
Copy Markdown
Contributor Author

CI is green now, this is ready to merge. ✅

@clawsweeper

clawsweeper Bot commented Apr 27, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge. Reviewed July 3, 2026, 3:08 AM ET / 07:08 UTC.

Summary
The PR gates persisted spawn-lineage retention and fallback run-context spawnedBy reuse to subagent/ACP sessions, with regression coverage for stale top-level spawnedBy.

PR surface: Source +16, Tests +28. Total +44 across 3 files.

Reproducibility: yes. from source inspection: seed a normal top-level session entry with stale spawnDepth or spawnedBy, then sessions_spawn can derive a nonzero depth from persisted lineage. I did not execute the runtime scenario in this read-only review.

Review metrics: 1 noteworthy metric.

  • Stored spawn-lineage fields gated: 6 gated, 2 parent/fork fields preserved. The diff changes persisted session metadata semantics for existing session entries, which maintainers should review before merge.

Stored data model
Persistent data-model change detected: serialized state: src/auto-reply/reply/session.ts, unknown-data-model-change: src/auto-reply/reply/session.ts. Confirm migration or upgrade compatibility proof before merge.

Root-cause cluster
Relationship: fixed_by_candidate
Canonical: #67943
Summary: This PR is the focused implementation candidate for the stale top-level session lineage depth bug; the other related reports involve distinct subagent lifecycle or stale-delivery failures.

Members:

Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything.

Merge readiness
Overall: 🐚 platinum hermit
Proof: 🐚 platinum hermit
Patch quality: 🐚 platinum hermit
Result: ready for maintainer review.

Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch.

Rank-up moves:

  • Resolve the current conflict against main.
  • Rerun the stale-lineage terminal proof and focused regression test on the final head.

Risk before merge

  • [P1] GitHub currently reports the branch as conflicting against the target branch, so the final merge result has not been reviewed.
  • [P1] The PR body's real behavior proof demonstrates the intended stale-lineage fix but names older head a1cc7e7681ccdb488f9fa2bb1d78823995291d25, so it should be rerun after conflict resolution.
  • [P1] The patch intentionally clears persisted spawn-lineage fields from ordinary sessions, so maintainers should explicitly accept that session-state upgrade behavior before merge.

Maintainer options:

  1. Rebase And Revalidate (recommended)
    Resolve the conflict while preserving the subagent/ACP lineage predicate, then rerun the stale-lineage terminal proof and focused regression test on the final head.
  2. Accept The Cleanup Semantics
    Maintainers can explicitly accept that ordinary sessions should drop stored spawn-lineage fields while parent/fork metadata remains durable.
  3. Replace With A Fresh Narrow Branch
    If this branch is hard to rebase cleanly, open an equivalent focused replacement that credits this PR and keeps the regression test.

Next step before merge

  • [P2] Manual maintainer handling is needed to resolve conflicts and accept the persisted session-state cleanup semantics; a duplicate repair lane should not replace this contributor PR without that decision.

Security
Cleared: The diff changes TypeScript session/agent logic and a regression test only, with no dependency, workflow, secret, package, or external code-execution changes.

Review details

Best possible solution:

Land a clean rebased version of the subagent/ACP lineage gate that preserves parent/fork metadata, with final-head proof and focused regression coverage.

Do we have a high-confidence way to reproduce the issue?

Yes from source inspection: seed a normal top-level session entry with stale spawnDepth or spawnedBy, then sessions_spawn can derive a nonzero depth from persisted lineage. I did not execute the runtime scenario in this read-only review.

Is this the best way to solve the issue?

Yes in shape: gating lineage preservation and fallback spawnedBy reuse to subagent/ACP keys is the narrow maintainable fix. The branch still needs conflict resolution and final-head proof before merge.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against 8ed6c78b7891.

Label changes

Label justifications:

  • P2: The PR fixes a focused session-state bug that can block subagent spawning for affected ordinary sessions without making the core runtime unusable.
  • merge-risk: 🚨 session-state: Merging changes how existing session entries retain or clear spawn-lineage metadata across later turns.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🐚 platinum hermit and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (terminal): The PR body includes terminal output showing the stale top-level lineage scenario changing from depth-limit forbidden to accepted; it should be refreshed after conflict resolution because it names an older head.
  • proof: sufficient: Contributor real behavior proof is sufficient. The PR body includes terminal output showing the stale top-level lineage scenario changing from depth-limit forbidden to accepted; it should be refreshed after conflict resolution because it names an older head.
Evidence reviewed

PR surface:

Source +16, Tests +28. Total +44 across 3 files.

View PR surface stats
Area Files Added Removed Net
Source 2 24 8 +16
Tests 1 28 0 +28
Docs 0 0 0 0
Config 0 0 0 0
Generated 0 0 0 0
Other 0 0 0 0
Total 3 52 8 +44

What I checked:

  • Current main preserves ordinary-session spawn lineage: On current main, initSessionState still carries spawnedBy, workspace/cwd lineage, spawnDepth, role, and control-scope fields from persisted/base entries without checking whether the session key is subagent/ACP-shaped. (src/auto-reply/reply/session.ts:791, 8ed6c78b7891)
  • Current main reuses stored spawnedBy in normal attempts: The current agent run path still falls back from live spawned metadata to sessionEntry?.spawnedBy, so stale stored lineage can enter the run context. (src/agents/agent-command.ts:1830, 8ed6c78b7891)
  • Depth gate consumes persisted lineage: getSubagentDepthFromSessionStore honors stored spawnDepth first and then follows stored spawnedBy; spawnSubagentDirect rejects callers whose derived depth reaches maxSpawnDepth. (src/agents/subagent-depth.ts:151, 8ed6c78b7891)
  • Sibling contract supports subagent/ACP-only lineage: Gateway session patch validation exposes spawn-lineage support only for subagent or ACP keys, and adjacent tests reject spawnDepth on non-subagent sessions. (src/gateway/sessions-patch.ts:113, 8ed6c78b7891)
  • PR patch matches the intended gate: The PR adds the subagent/ACP predicate before using stored sessionEntry.spawnedBy and before retaining stored spawn-lineage fields during reply session initialization. (src/agents/agent-command.ts:1325, 99eb96710c38)
  • Focused regression coverage: The PR adds a regression test proving a top-level run does not pass a stale stored sessionEntry.spawnedBy into the attempt runner. (src/agents/agent-command.live-model-switch.test.ts:1201, 99eb96710c38)

Likely related people:

  • tyler6204: Authored the nested subagent orchestration work that added depth-based spawn gating and stored lineage behavior used by the failure path. (role: feature introducer; confidence: high; commits: b8f66c260db8; files: src/agents/subagent-depth.ts, src/agents/subagent-spawn.ts, src/gateway/sessions-patch.ts)
  • Takhoffman: Authored prior work preserving spawned metadata across auto-reply reset in the same reply-session initialization surface this PR narrows. (role: adjacent session-state contributor; confidence: medium; commits: 8a687bdbd72a; files: src/auto-reply/reply/session.ts)
  • steipete: Recent history moved agent runtime layering and hardened subagent control boundaries around the affected agent/subagent paths. (role: recent agent-runtime contributor; confidence: medium; commits: 00b57145ff01, aad014c7c1fa; files: src/agents/agent-command.ts, src/agents/subagent-depth.ts, src/agents/subagent-spawn.ts)
  • moguangyu5-design: Recently touched reply-session initialization in the same file and area involved in the current conflict. (role: recent adjacent contributor; confidence: medium; commits: 826c84ea1942; files: src/auto-reply/reply/session.ts)
What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

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
  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

@pfrederiksen
pfrederiksen force-pushed the fix/stale-subagent-lineage-depth branch from f3d2367 to 9b21e1a Compare April 28, 2026 22:11
@openclaw-barnacle openclaw-barnacle Bot added size: S and removed gateway Gateway runtime size: M labels Apr 28, 2026
@pfrederiksen

pfrederiksen commented Apr 28, 2026

Copy link
Copy Markdown
Contributor Author

Resolved the review concerns.

I rebuilt the branch on current main and force-pushed a clean single-commit version. GitHub now reports the branch as mergeable.

I also dropped the unrelated changes called out in review:

  • skills test changes
  • gateway hook test changes
  • plugin-SDK manifest-like type change
  • extension-boundary assertion change

The PR diff is now limited to the stale top-level spawn-lineage fix plus focused regression coverage in:

  • src/auto-reply/reply/session.ts
  • src/agents/agent-command.ts
  • src/agents/agent-command.live-model-switch.test.ts

Validation run locally:

  • focused oxlint on touched files: passed
  • agent-command live model switch regression test: 26 passed across the relevant projects
  • pnpm tsgo:core:test: passed

@pfrederiksen

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented May 14, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@pfrederiksen
pfrederiksen force-pushed the fix/stale-subagent-lineage-depth branch from 9b21e1a to d52d898 Compare May 14, 2026 06:02
@openclaw-barnacle openclaw-barnacle Bot added the proof: supplied External PR includes structured after-fix real behavior proof. label May 14, 2026
@pfrederiksen
pfrederiksen force-pushed the fix/stale-subagent-lineage-depth branch from d52d898 to 08c526f Compare May 17, 2026 01:49
@pfrederiksen

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented May 17, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@openclaw-barnacle openclaw-barnacle Bot added channel: whatsapp-web Channel integration: whatsapp-web extensions: memory-core Extension: memory-core labels May 17, 2026
@pfrederiksen

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented May 17, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. P2 Normal backlog priority with limited blast radius. labels May 17, 2026
@pfrederiksen
pfrederiksen force-pushed the fix/stale-subagent-lineage-depth branch from 6b45ca9 to a1cc7e7 Compare May 17, 2026 02:07
@clawsweeper

clawsweeper Bot commented May 19, 2026

Copy link
Copy Markdown
Contributor

ClawSweeper PR egg

✨ Hatched: 🌱 uncommon Velvet Merge Sprite

Hatch command

Comment @clawsweeper hatch when this PR is hatchable.

Hatchability rules:

  • Merged PRs are hatchable.
  • Open PRs are hatchable when they are status: 👀 ready for maintainer look, status: 🚀 automerge armed, or labeled clawsweeper:automerge.
  • Closed unmerged PRs are hatchable only when one of those hatchable labels is still present in the durable record.

Rarity: 🌱 uncommon.
Trait: keeps receipts.
Image traits: location flaky test forest; accessory lint brush; palette amber, ink, and glacier blue; mood determined; pose balancing on a branch marker; shell polished stone shell; lighting gentle morning glow; background delicate sparkle particles.
Share on X: post this hatch
Copy: My PR egg hatched a 🌱 uncommon Velvet Merge Sprite in ClawSweeper.

What is this egg doing here?
  • Eggs appear after the PR passes real-behavior proof. It is here for vibes, not verdicts: it does not change labels, ratings, merge decisions, or automation.
  • The shell reacts to review momentum: open follow-up work warms it up, re-review makes it wobble, and a clean final review lets it hatch.
  • Hatchability usually comes from sufficient real-behavior proof, no blocking P0/P1/P2 findings, no security attention needed, and clean correctness. A merged PR is already final, so merge makes the egg hatchable independently.
  • The hatch is seeded from this repository and PR number, so the same PR keeps the same creature; the reviewed head SHA can only change safe visual details.
  • Rarity is just collectible sparkle: 🥚 common, 🌱 uncommon, 💎 rare, ✨ glimmer, and 🌈 legendary.

@pfrederiksen
pfrederiksen force-pushed the fix/stale-subagent-lineage-depth branch from a1cc7e7 to 99eb967 Compare May 30, 2026 02:53
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 30, 2026
@pfrederiksen

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented May 30, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 30, 2026
@openclaw-barnacle

Copy link
Copy Markdown

This pull request has been automatically marked as stale due to inactivity.
Please add updates or it will be closed.

@openclaw-barnacle openclaw-barnacle Bot added the stale Marked as stale due to inactivity label Jun 13, 2026
@clawsweeper clawsweeper Bot added the merge-risk: 🚨 session-state 🚨 May lose, corrupt, stale, or mis-associate session, agent, or context state. label Jun 15, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the stale Marked as stale due to inactivity label Jun 16, 2026
@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. and removed proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. labels Jun 17, 2026
@xuwei-xy

Copy link
Copy Markdown

Nice implementation! I appreciate the clear commit messages and focused changes.

@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. labels Jun 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agents Agent runtime and tooling merge-risk: 🚨 session-state 🚨 May lose, corrupt, stale, or mis-associate session, agent, or context state. P2 Normal backlog priority with limited blast radius. proof: sufficient ClawSweeper judged the real behavior proof convincing. proof: supplied External PR includes structured after-fix real behavior proof. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. size: S status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Normal sessions can inherit stale subagent lineage and incorrectly hit sessions_spawn depth limits

2 participants