Skip to content

fix(subagents): credit requester-consumed descendant completions#95847

Open
kklouzal wants to merge 1 commit into
openclaw:mainfrom
kklouzal:p1/requester-consumed-completion-credit-clean
Open

fix(subagents): credit requester-consumed descendant completions#95847
kklouzal wants to merge 1 commit into
openclaw:mainfrom
kklouzal:p1/requester-consumed-completion-credit-clean

Conversation

@kklouzal

@kklouzal kklouzal commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Summary

This PR fixes a lifecycle/delivery accounting gap for background and cron-owned subagent trees: when a requester actually consumes completed descendant subagent output, the descendant run is now durably credited as delivered instead of later being finalized as failed/suspended solely because no separate visible delivery event occurred.

What Problem This Solves

Requester-owned subagent trees can legitimately consume descendant output without sending a separate descendant-visible delivery event. This is common for cron/background flows where a parent/requester gathers frozen child output, composes its own result, and then delivers that requester result outward. Before this PR, the descendant completion could remain delivery-unproven even though its output had already been consumed by the requester. Later cleanup/finalization could then classify that descendant as failed or suspended, producing delivery state that did not match real behavior. This PR gives the registry an explicit durable signal for that case: requester consumption is delivery evidence only for the exact descendant runs that were consumed, under the matching requester session/run-start window, when the requester path adopts descendant fallback output, so the consumed descendant rows do not later announce or finalize as pending just because the final outward send fails.

User Impact / Intended Outcome

When OpenClaw can prove that a requester consumed descendant subagent output, the matching descendant run receives durable delivery credit:

  • delivery.status is set to "delivered" for the matched descendant completion;
  • requester-consumption metadata is persisted with the run/delivery state;
  • cleanup/finalize treats delivery.status === "delivered" as completed delivery proof;
  • normal visible-delivery paths remain required for completions that were not consumed by a requester.
    The matching is intentionally narrow. Credit is only applied when all of these are true:
  • the consumed run IDs are explicit;
  • the requester session key matches;
  • the requester run-start window matches the consuming requester run;
  • the consumption kind is known;
  • cron fallback credit happens when cron adopts explicit descendant fallback output for the requester result;
  • nested subagent announcement credit only covers direct child run IDs that were actually included in the requester-consumed output.

This PR keeps the delivery model explicit:

  • if a descendant result was visibly delivered, it is delivered;
  • if a requester consumed the descendant output because cron adopted it as the requester result, the descendant is delivered by requester consumption;
  • if neither happened, failure/suspension handling still applies.

Linked Context

What Changes

When OpenClaw can prove that a requester consumed descendant subagent output, the matching descendant run receives durable delivery credit:

  • delivery.status is set to "delivered" for the matched descendant completion;
  • requester-consumption metadata is persisted with the run/delivery state;
  • cleanup/finalize treats delivery.status === "delivered" as completed delivery proof;
  • normal visible-delivery paths remain required for completions that were not consumed by a requester.
    The matching is intentionally narrow. Credit is only applied when all of these are true:
  • the consumed run IDs are explicit;
  • the requester session key matches;
  • the requester run-start window matches the consuming requester run;
  • the consumption kind is known;
  • cron fallback credit happens when cron adopts explicit descendant fallback output for the requester result;
  • nested subagent announcement credit only covers direct child run IDs that were actually included in the requester-consumed output.

Implementation Notes

Core registry/runtime changes:

  • Adds requester-consumed delivery metadata to subagent registry/delivery state.
  • Adds a registry operation for marking descendant completions consumed by requester.
  • Persists/restores the new delivery fields.
  • Exposes the new runtime operation through the existing registry runtime shims.
    Main files:
  • src/agents/subagent-registry-consumption.ts
    • Implements durable requester-consumption credit.
    • Matches by requester session, explicit run IDs, and run-start window.
    • Records requester-consumption metadata and persists the updated run state.
  • src/agents/subagent-registry.types.ts
    • Adds delivery/requester-consumption state fields.
  • src/agents/subagent-delivery-state.ts
    • Persists and restores the new delivery fields.
  • src/agents/subagent-registry.ts
  • src/agents/subagent-registry-runtime.ts
  • src/agents/subagent-announce.registry.runtime.ts
  • src/cron/isolated-agent/delivery-subagent-registry.runtime.ts
    • Wires the new registry operation through runtime boundaries.
      Requester-consumption paths:
  • src/cron/isolated-agent/subagent-followup.ts
    • Reads completed descendant fallback replies and returns both formatted fallback text and the consumed descendant run IDs.
  • src/cron/isolated-agent/delivery-dispatch.ts
    • Applies cron fallback consumption credit when cron adopts explicit descendant fallback output, before the final outbound send.
  • src/agents/subagent-announce.ts
    • Credits nested/direct child completions when their output is included in the requester-consumed announcement/wake result.
    • Uses the same latest-child dedupe input for rendering and consumed-run credit so stale child rows are not credited.
  • src/agents/subagent-announce-output.ts
    • Keeps latest-child dedupe reusable while preserving caller-specific fields such as runId.

Tests / Verification

Coverage added or extended for:

  • positive requester-consumed descendant credit;
  • no credit for mismatched requester session;
  • no credit outside the requester run-start window;
  • no credit without explicit consumed run IDs;
  • persisted/restored requester-consumption delivery fields;
  • cron fallback credit only after successful outbound delivery;
  • cleanup/finalize treating delivery.status === "delivered" as proof;
  • nested/direct child announcement credit;
  • stale-vs-current child dedupe, including a negative assertion that stale child run IDs are not credited when stale output is not rendered.
    Primary test files:
  • src/agents/subagent-registry-consumption.test.ts
  • src/agents/subagent-delivery-state.test.ts
  • src/agents/subagent-registry-completion.test.ts
  • src/agents/subagent-registry.lifecycle-retry-grace.e2e.test.ts
  • src/agents/subagent-announce.format.e2e.test.ts
  • src/cron/isolated-agent/subagent-followup.test.ts
  • src/cron/isolated-agent/delivery-dispatch.double-announce.test.ts

Evidence

Rebase/Squash/Proof

  • Common upstream base: 13ecca5408cbc94e66105608bfe770d0fc660d76 (origin/main, fix(telegram): back off session init spool retries)
  • Previous PR head: 604bc96e3bc716e545455c9ebaa81ef147a344f1
  • Current PR head: 0454c42f196646e0929be14477e234eb226049e2
  • Rebased and squashed to one commit on the common base; pushed with --force-with-lease.

Rebase/Squash/Proof

Current rebased/squashed PR head: a6677b4d1ad6d58e4902bfb72d33be59b4b81d78.

Latest pushed commit after same-base rebase and squash: a6677b4d1ad6d58e4902bfb72d33be59b4b81d78.

All six coordinated PR branches in this batch were rebased onto the same pinned upstream base commit:

dc9c11be917ebdc711b956250aa80a8e5b47bea6

Post-rebase local verification included conflict-marker/diff hygiene plus focused branch-specific gates. Final proof marker for this PR:

POST_REBASE_20260623_REQUESTER_CONSUMED_GATES_OK

Focused validation run after the clean rebase and final nested-child dedupe fix:

pnpm tsgo:core:test --pretty false
pnpm tsgo:extensions:test --pretty false
node scripts/run-vitest.mjs   src/agents/subagent-announce.format.e2e.test.ts   src/agents/subagent-registry-consumption.test.ts   src/agents/subagent-delivery-state.test.ts   src/cron/isolated-agent/subagent-followup.test.ts   src/cron/isolated-agent/delivery-dispatch.double-announce.test.ts
git diff --check

Result:

  • Type checks passed.

  • Focused Vitest validation passed across 4 shards.

  • 201 focused tests passed.

  • git diff --check passed.

  • Base: 31e941c3fc32a2bbb6aeb0a3ae6f5f46777b2a1b

  • Head after refresh: a6677b4d1ad6d58e4902bfb72d33be59b4b81d78

  • Branch: kklouzal/openclaw:p1/requester-consumed-completion-credit-clean

  • Conflict resolution: None for the follow-up refresh. Squashed the existing requester-consumed PR changes plus the cron/SQLite follow-up into one coherent commit.

  • Behavior proof refreshed: cron now credits markDescendantCompletionConsumedByRequester when it adopts explicit descendant fallback output, before final direct delivery, so a failed final outward send does not leave already-consumed descendant rows pending. SQLite persistence now derives pending_final_delivery only from active delivery statuses (pending, in_progress, suspended), so delivered/requester-consumed rows that retain payload metadata do not rehydrate as pending.

  • Validation:

    • git diff --check -> passed.
    • node scripts/run-vitest.mjs src/cron/isolated-agent/delivery-dispatch.double-announce.test.ts src/agents/subagent-registry.store.sqlite.test.ts src/agents/subagent-registry-consumption.test.ts src/cron/isolated-agent/subagent-followup.test.ts src/agents/subagent-delivery-state.test.ts -> passed, 5 files / 124 tests across 3 shards.
    • Follow-up fix: keep yielded parent turns nonterminal #95996 settlement check in its local worktree: node scripts/run-vitest.mjs src/agents/subagent-registry.test.ts -- -t 'yield|settle|descendant' -> passed, 6 selected tests / 59 skipped.
  • Push: force-with-lease to kklouzal/openclaw:p1/requester-consumed-completion-credit-clean completed.

Compatibility and Risk

Risk is moderate because this touches subagent lifecycle/delivery finalization, but the implementation is deliberately constrained:

  • no broad “assume delivered” fallback was added;
  • no delivery status is credited without explicit consumed run IDs;
  • matching is scoped to requester session and requester run-start timing;
  • cron fallback credit is gated behind explicit adopted descendant fallback output;
  • stale nested child rows are explicitly excluded after latest-child dedupe;
  • persisted state changes are additive.
    The main compatibility consideration is that existing delivery state can simply lack the new requester-consumption fields; restore logic treats those fields as optional.

PR/Commit Surface Breakdown

Diff surface against origin/main...HEAD after the clean rebase:
Source: 12 files, +192 / -44
Tests: 6 files, +251 / -12
Total: 18 files, +443 / -56

Reviewer Checklist

Recommended review focus:

  • src/agents/subagent-registry-consumption.ts
    • Verify matching is narrow enough: run IDs, requester session key, and run-start window.
  • src/cron/isolated-agent/delivery-dispatch.ts
    • Verify cron fallback credit is only applied after successful requester outbound delivery.
  • src/agents/subagent-announce.ts
    • Verify nested/direct child credit only uses deduped, actually-consumed child rows.
  • src/agents/subagent-delivery-state.ts
    • Verify persistence/restore behavior is additive and safe for older state.
  • Tests listed above, especially negative cases around mismatched requester, stale child rows, and no explicit consumed run IDs.

Maintenance update: squashed to 6f24d892e13ae42b7c1647a90e8ff050bd4a83d6 after test-surface optimization only; behavior coverage and focused validation were preserved.


Non-test surface optimization (2026-06-25): squashed cleanup head e569f3a (was 6f24d89); removed duplicated requester-consumed fallback credit construction in delivery dispatch while preserving behavior. Validation: pnpm test -- src/cron/isolated-agent/delivery-dispatch.double-announce.test.ts src/cron/isolated-agent/subagent-followup.test.ts -- --maxWorkers=1 --maxConcurrency=1; git diff --check; pnpm exec oxlint src/cron/isolated-agent/delivery-dispatch.ts.


Lint remediation (2026-06-26): squashed cleanup head 379d437 (was e569f3a); fixed CI check-lint failure in src/agents/subagent-registry-consumption.test.ts by removing an unnecessary empty spread fallback flagged by unicorn(no-useless-fallback-in-spread). Validation: TASK=lint OPENCLAW_LOCAL_CHECK=1 node scripts/run-oxlint-shards.mjs --threads=8; git diff HEAD^..HEAD --check; pnpm exec vitest run src/agents/subagent-registry-consumption.test.ts src/agents/subagent-announcement-consumption.test.ts.

@openclaw-barnacle openclaw-barnacle Bot added agents Agent runtime and tooling size: L triage: needs-pr-context Candidate: external PR body lacks required problem context or evidence. and removed triage: needs-pr-context Candidate: external PR body lacks required problem context or evidence. labels Jun 22, 2026
@kklouzal
kklouzal force-pushed the p1/requester-consumed-completion-credit-clean branch from 8bb832d to 15f5126 Compare June 22, 2026 20:19
@kklouzal

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jun 22, 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.

@kklouzal
kklouzal force-pushed the p1/requester-consumed-completion-credit-clean branch 2 times, most recently from 084b669 to 9ed14d3 Compare June 23, 2026 15:49
@clawsweeper

clawsweeper Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs real behavior proof before merge. Reviewed July 18, 2026, 11:16 PM ET / July 19, 2026, 03:16 UTC.

Summary
The branch marks explicitly requester-consumed descendant subagent completions as delivered, persists that credit, and propagates consumed run IDs through cron fallback and nested announcement paths.

PR surface: Source +340, Tests +462, Other 0. Total +802 across 29 files.

Reproducibility: yes. at source level: current main can synthesize descendant fallback text without retaining the exact consumed run IDs, while delivered state controls subsequent cleanup and retry behavior. A high-confidence live reproduction artifact is still absent.

Review metrics: 1 noteworthy metric.

  • Durable delivery-state surface: 7 delivery/requester fields added; 1 SQLite pending-state classifier changed. The patch changes persisted subagent delivery and restart semantics, so upgrade and failure-path proof matter before merge.

Stored data model
Persistent data-model change detected: vector/embedding metadata: src/agents/subagent-registry.store.sqlite.test.ts. Confirm migration or upgrade compatibility proof before merge.

Merge readiness
Overall: 🧂 unranked krab
Proof: 🧂 unranked krab
Patch quality: 🐚 platinum hermit
Result: blocked until real behavior proof from a real setup is added.

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

Rank-up moves:

  • [P1] Add redacted cron/background or SQLite restore output showing a consumed descendant settles as delivered while an unconsumed descendant remains retryable.
  • Obtain maintainer confirmation of the requester-consumption delivery contract.

Proof guidance:

  • [P1] Needs real behavior proof before merge: The PR provides focused tests and CI-style validation claims, but no redacted after-fix runtime transcript, terminal output, persisted-state inspection, recording, or linked artifact demonstrating the changed delivery behavior; add evidence with private data removed, then update the PR body for re-review.

Risk before merge

  • [P1] Marking a matched descendant delivered suppresses its later retry, cleanup, and finalization paths even when the requester’s later outward delivery fails.
  • [P1] The SQLite pending-final-delivery classifier changes restart behavior for persisted delivered rows that still retain payload metadata.
  • [P1] The contributor has not provided after-fix real behavior evidence for the delivered-versus-retryable split.

Maintainer options:

  1. Prove and approve the new delivery boundary (recommended)
    Add redacted after-fix runtime or persisted-state evidence, then obtain maintainer confirmation that proven requester consumption may settle the matched descendant.
  2. Accept requester-consumed settlement
    Maintainers may intentionally accept that matched requester consumption suppresses descendant retry even if the requester’s later outward send fails.
  3. Pause for the durable inbox design
    Close or pause this branch if the project wants durable user-visible completion delivery rather than requester-consumption settlement.

Next step before merge

  • [P1] A maintainer must settle the delivery-state contract, and contributor-provided real behavior proof cannot be safely produced by an automated repair lane.

Maintainer decision needed

  • Question: Should explicit requester consumption be accepted as durable delivery proof for a descendant even when a later outward send from that requester fails?
  • Rationale: The code deliberately changes the meaning of delivered state and therefore suppresses existing retry/finalization behavior; tests can verify mechanics but cannot choose the product-level delivery contract.
  • Likely owner: tyler6204 — Their merged announce-delivery work is the closest identified current-main history for the delivery-boundary decision.
  • Options:
    • Require proof and semantic sign-off (recommended): Require redacted cron/background or SQLite restore evidence and confirm that requester consumption is the intended delivered boundary before merge.
    • Preserve retry until outward delivery: Keep descendants retryable until the requester’s final outward delivery succeeds, which requires a different state model than this PR.
    • Fold into durable inbox work: Pause this focused change and resolve the contract through the broader durable completion-inbox work tracked by the related delivery issue.

Security
Cleared: The TypeScript runtime, persistence, and test changes add no concrete security or supply-chain concern.

Review details

Best possible solution:

Keep delivery credit narrowly tied to proven requester consumption, land only after maintainers accept that semantic boundary and the PR includes redacted runtime or persisted-state proof for consumed and unconsumed descendants.

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

Yes at source level: current main can synthesize descendant fallback text without retaining the exact consumed run IDs, while delivered state controls subsequent cleanup and retry behavior. A high-confidence live reproduction artifact is still absent.

Is this the best way to solve the issue?

Unclear: the implementation is focused and avoids broad assumed-delivery credit, but it is the best fix only if maintainers accept requester consumption—not final outward delivery or a durable inbox—as the correct settlement boundary.

AGENTS.md: found and applied where relevant.

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

Label changes

Label changes:

  • add merge-risk: 🚨 compatibility: Persisted delivery metadata and the SQLite pending-final-delivery classifier change how existing subagent rows restore after upgrade or restart.

Label justifications:

  • P1: The PR changes completion accounting for agent and cron workflows where completed subagent output can otherwise be finalized or represented incorrectly.
  • merge-risk: 🚨 compatibility: Persisted delivery metadata and the SQLite pending-final-delivery classifier change how existing subagent rows restore after upgrade or restart.
  • merge-risk: 🚨 message-delivery: Requester-consumed credit can intentionally suppress later descendant delivery retries for matched completions.
  • merge-risk: 🚨 session-state: The branch changes durable delivery, wake, cleanup, and finalization state for descendant runs.
  • rating: 🧂 unranked krab: Overall readiness is 🧂 unranked krab; proof is 🧂 unranked krab and patch quality is 🐚 platinum hermit.
  • status: 📣 needs proof: The PR needs real behavior proof before ClawSweeper can clear the contributor ask. Needs real behavior proof before merge: The PR provides focused tests and CI-style validation claims, but no redacted after-fix runtime transcript, terminal output, persisted-state inspection, recording, or linked artifact demonstrating the changed delivery behavior; add evidence with private data removed, then update the PR body for re-review.
Evidence reviewed

PR surface:

Source +340, Tests +462, Other 0. Total +802 across 29 files.

View PR surface stats
Area Files Added Removed Net
Source 16 399 59 +340
Tests 12 501 39 +462
Docs 0 0 0 0
Config 0 0 0 0
Generated 0 0 0 0
Other 1 1 1 0
Total 29 901 99 +802

What I checked:

Likely related people:

  • tyler6204: Authored merged PR fix(subagents): deterministic announce delivery with descendant gating #35080, which introduced the deterministic descendant announcement and gating behavior underlying the current announce surface. (role: introduced adjacent announce-delivery behavior; confidence: medium; commits: 81b93b9ce04b; files: src/agents/subagent-announce.ts, src/agents/subagent-announce-output.ts)
  • kklouzal: Authored the proposed branch and previously merged adjacent subagent lifecycle work in PR fix: keep yielded parent turns nonterminal #95996, making them a relevant technical contact without treating proposal authorship alone as ownership. (role: recent adjacent lifecycle contributor; confidence: low; commits: 2333bd59dbeb; files: src/agents/subagent-registry.ts, src/agents/subagent-registry-lifecycle.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.
Review history (35 earlier review cycles; latest 8 shown)
  • reviewed 2026-07-16T02:51:44.915Z sha d262acf :: needs real behavior proof before merge. :: none
  • reviewed 2026-07-16T04:15:27.099Z sha d262acf :: needs real behavior proof before merge. :: none
  • reviewed 2026-07-16T04:56:47.429Z sha d262acf :: needs real behavior proof before merge. :: [P2] Remove unrelated plugin dead-code exemptions
  • reviewed 2026-07-16T05:41:10.130Z sha d262acf :: needs real behavior proof before merge. :: none
  • reviewed 2026-07-17T00:00:46.116Z sha f530e52 :: needs real behavior proof before merge. :: [P2] Remove unrelated dead-code exemptions
  • reviewed 2026-07-18T17:39:59.229Z sha 6a9d163 :: needs real behavior proof before merge. :: [P2] Remove unrelated Knip exemptions
  • reviewed 2026-07-18T18:02:42.886Z sha 88b842a :: needs real behavior proof before merge. :: [P2] Remove unrelated Knip exemptions | [P2] Split the worker-provider registry refactor
  • reviewed 2026-07-18T19:29:44.850Z sha 0c7776a :: needs real behavior proof before merge. :: none

@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. P1 High-priority user-facing bug, regression, or broken workflow. merge-risk: 🚨 message-delivery 🚨 May drop, duplicate, misroute, suppress, or wrongly target messages. merge-risk: 🚨 session-state 🚨 May lose, corrupt, stale, or mis-associate session, agent, or context state. labels Jun 23, 2026
@kklouzal
kklouzal force-pushed the p1/requester-consumed-completion-credit-clean branch 2 times, most recently from 145a2c3 to 808e4f2 Compare June 23, 2026 23:15
@kklouzal
kklouzal force-pushed the p1/requester-consumed-completion-credit-clean branch 2 times, most recently from 15fd57b to 26e6311 Compare June 25, 2026 01:04
@clawsweeper clawsweeper Bot added merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. and removed rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. labels Jun 25, 2026
@kklouzal
kklouzal force-pushed the p1/requester-consumed-completion-credit-clean branch from 69ca60c to a6677b4 Compare June 25, 2026 07:12
@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. and removed rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. labels Jun 25, 2026
@kklouzal
kklouzal force-pushed the p1/requester-consumed-completion-credit-clean branch 4 times, most recently from 8e9a629 to 1e35fc1 Compare July 11, 2026 17:59
@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. merge-risk: 🚨 message-delivery 🚨 May drop, duplicate, misroute, suppress, or wrongly target messages. merge-risk: 🚨 session-state 🚨 May lose, corrupt, stale, or mis-associate session, agent, or context state. and removed rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. merge-risk: 🚨 session-state 🚨 May lose, corrupt, stale, or mis-associate session, agent, or context state. merge-risk: 🚨 message-delivery 🚨 May drop, duplicate, misroute, suppress, or wrongly target messages. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. labels Jul 11, 2026
@kklouzal
kklouzal force-pushed the p1/requester-consumed-completion-credit-clean branch 2 times, most recently from 24dbb93 to 820575a Compare July 11, 2026 19:01
@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. merge-risk: 🚨 message-delivery 🚨 May drop, duplicate, misroute, suppress, or wrongly target messages. merge-risk: 🚨 session-state 🚨 May lose, corrupt, stale, or mis-associate session, agent, or context state. and removed rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. merge-risk: 🚨 session-state 🚨 May lose, corrupt, stale, or mis-associate session, agent, or context state. merge-risk: 🚨 message-delivery 🚨 May drop, duplicate, misroute, suppress, or wrongly target messages. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. labels Jul 11, 2026
@kklouzal
kklouzal force-pushed the p1/requester-consumed-completion-credit-clean branch 3 times, most recently from 2a16231 to b90507f Compare July 12, 2026 01:50
Keep requester-consumed descendant completions credited without duplicate announcements, and model bundled plugin Knip roots needed by the CI dead-code scan.
@clawsweeper

clawsweeper Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

ClawSweeper status: review started.

I am starting a fresh review of this pull request: fix(subagents): credit requester-consumed descendant completions This is item 1/1 in the current shard. Shard 0/1.

This placeholder means the worker is alive and reading the current context. I will edit this same comment with the actual review when the claws are done clicking.

Crustacean status: shell secured, claws on keyboard, evidence pebbles being sorted.

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: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. merge-risk: 🚨 message-delivery 🚨 May drop, duplicate, misroute, suppress, or wrongly target messages. merge-risk: 🚨 session-state 🚨 May lose, corrupt, stale, or mis-associate session, agent, or context state. P1 High-priority user-facing bug, regression, or broken workflow. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. size: L status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant