Fix subagent thread spawn safety#83274
Conversation
|
Thanks for the context here. I swept through the related work, and this is now duplicate or superseded. Close as superseded: merged current-main work already replaced the raw-output and core thread-binding pieces, and the remaining Telegram forum-topic spawn behavior is tracked by the canonical open issue rather than this stale, broader branch. Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Canonical path: The remaining Telegram sessions_spawn(thread:true, mode:session) forum-topic capability is tracked by #42986; #82023 is an active but conflicting candidate for that issue. So I’m closing this here and keeping the remaining discussion on #42986 and #82023. Review detailsBest possible solution: Close this branch and keep the remaining Telegram child-topic subagent spawn work on the canonical issue using an explicit capability that preserves Telegram's normal current-topic placement. Do we have a high-confidence way to reproduce the issue? Yes, source-level. Current main shows the raw-output and core thread-binding pieces already replaced, while Telegram still stays on current placement and the remaining child-topic spawn capability is tracked separately. Is this the best way to solve the issue? No. This branch is no longer the best solution because it mixes superseded fixes with a broad Telegram placement change; the safer path is the canonical explicit capability work on #42986. Security review: Security review cleared: No dependency, workflow, permission, secret-handling, package execution, or supply-chain changes were found; the blocker is functional supersession and routing compatibility. AGENTS.md: found and applied where relevant. What I checked:
Likely related people:
Codex review notes: model internal, reasoning high; reviewed against 0c7bac34ae68. |
Mantis Telegram Desktop ProofSummary: Mantis did not generate before/after GIFs because PR 83274 changes Telegram-origin subagent thread-binding/tool availability and unsafe subagent announce filtering, but the native Telegram proof harness mock model cannot emit the required sessions_spawn(thread=true) tool call; a Telegram Desktop recording would only show a generic text reply or /status, not the PR behavior.
|
|
@clawsweeper re-review Addressed the review findings in 801308c:
Verification run locally:
|
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
@clawsweeper re-review Pushed follow-up commit
Local verification after the fix: OPENCLAW_TSGO_MAX_WORKERS=1 corepack pnpm tsgo:core:test
OPENCLAW_TSGO_MAX_WORKERS=1 corepack pnpm tsgo:extensions:test
OPENCLAW_VITEST_MAX_WORKERS=1 node scripts/run-vitest.mjs run --config test/vitest/vitest.agents.config.ts src/agents/subagent-spawn.thread-binding.test.ts src/agents/sessions-spawn-hooks.test.ts
OPENCLAW_VITEST_MAX_WORKERS=1 node scripts/run-vitest.mjs run --config test/vitest/vitest.extension-telegram.config.ts extensions/telegram/src/thread-bindings.test.ts
OPENCLAW_VITEST_MAX_WORKERS=1 node scripts/run-vitest.mjs run --config test/vitest/vitest.channels.config.ts src/channels/thread-bindings-policy.test.ts src/channels/plugins/thread-binding-api.test.ts
OPENCLAW_TSGO_MAX_WORKERS=1 corepack pnpm tsgo:core
OPENCLAW_TSGO_MAX_WORKERS=1 corepack pnpm tsgo:extensions
corepack pnpm format:check src/agents/subagent-spawn.ts src/agents/sessions-spawn-hooks.test.ts src/agents/subagent-spawn.thread-binding.test.ts extensions/telegram/src/channel.ts extensions/telegram/thread-binding-api.ts extensions/telegram/src/thread-bindings.test.ts
git diff --checkAll passed locally. Real behavior proof is still pending: I do not have a safe redacted live Telegram runtime transcript from this checkout to attach yet. The latest commit addresses the concrete source/CI blockers from the review comment. |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
ClawSweeper PR egg 🎁 Pass real behavior proof to wake the egg and unlock a hatchable treat. Where did the egg go?
|
|
@Svetznaniy33 thanks for the PR. ClawSweeper is still waiting on real behavior proof before this can move forward. Useful proof can be a screenshot, short video, terminal output, copied live output, linked artifact, or redacted logs that show the changed behavior after the fix. Please redact private tokens, phone numbers, private endpoints, customer data, and anything else sensitive. Once proof is added to the PR body or a comment, ClawSweeper or a maintainer can re-check it. |
|
@Svetznaniy33 thanks for the PR. ClawSweeper is still waiting on real behavior proof before this can move forward. Useful proof can be a screenshot, short video, terminal output, copied live output, linked artifact, or redacted logs that show the changed behavior after the fix. Please redact private tokens, phone numbers, private endpoints, customer data, and anything else sensitive. Once proof is added to the PR body or a comment, ClawSweeper or a maintainer can re-check it. |
Summary
Tests
OPENCLAW_VITEST_MAX_WORKERS=1 node scripts/run-vitest.mjs run --config test/vitest/vitest.agents.config.ts src/agents/sessions-spawn-hooks.test.tsOPENCLAW_VITEST_MAX_WORKERS=1 node scripts/run-vitest.mjs run --config test/vitest/vitest.agents.config.ts src/agents/subagent-announce.timeout.test.tsOPENCLAW_VITEST_MAX_WORKERS=1 node scripts/run-vitest.mjs run --config test/vitest/vitest.channels.config.ts src/channels/thread-bindings-policy.test.tscorepack pnpm format:check src/agents/subagent-announce-output.ts src/agents/subagent-announce.timeout.test.ts src/agents/subagent-spawn.ts src/agents/sessions-spawn-hooks.test.ts src/channels/thread-bindings-policy.ts src/channels/thread-bindings-policy.test.tsReal behavior proof
openclaw-mantis[bot], comment4472640801).proof: overridelabel is required.