#94249: skill_workshop apply times out on large proposals (~28KB)#94315
#94249: skill_workshop apply times out on large proposals (~28KB)#94315mmyzwl wants to merge 1 commit into
Conversation
…oposals The default plugin-approval timeout of 120s is too short for reviewing large workshop proposals (~28 KB). Increase the apply timeout to 300s (5 minutes) so users have adequate time to inspect and approve changes. Closes openclaw#94249 Co-Authored-By: Claude <[email protected]>
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
Codex review: needs real behavior proof before merge. Reviewed July 1, 2026, 3:31 PM ET / 19:31 UTC. Summary PR surface: Source +4. Total +4 across 1 file. Reproducibility: yes. at source level. Current main shows a 120s Skill Workshop approval window, a 90s Codex dynamic-tool watchdog on both implicated Codex paths, and this PR raises the inner approval window to 300s without aligning those outer watchdogs. Review metrics: 1 noteworthy metric.
Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Proof guidance:
Proof path suggestion Risk before merge
Maintainer options:
Next step before merge
Security Review findings
Review detailsBest possible solution: Choose one coherent Skill Workshop timeout contract, then align the core approval TTL, Codex main/side dynamic-tool watchdogs, focused tests, and live approval proof around that contract. Do we have a high-confidence way to reproduce the issue? Yes, at source level. Current main shows a 120s Skill Workshop approval window, a 90s Codex dynamic-tool watchdog on both implicated Codex paths, and this PR raises the inner approval window to 300s without aligning those outer watchdogs. Is this the best way to solve the issue? No. Raising only the inner approval TTL is too narrow; the best fix must align every outer tool-call watchdog with the chosen approval window, or preserve the current approval TTL and land the narrower Codex watchdog repair. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 24d94a54a516. Label changesLabel justifications:
Evidence reviewedPR surface: Source +4. Total +4 across 1 file. View PR surface stats
Security concerns:
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 pull request has been automatically marked as stale due to inactivity. |
Summary
skill_workshop action=applyconsistently returns "Approval timed out" for large proposals (~28 KB). The default plugin-approval timeout of 120 seconds is insufficient for reviewing sizable workshop proposals.Linked context
Closes #94249
Root Cause
In
src/skills/workshop/policy.ts,resolveSkillWorkshopToolApproval()returns arequireApprovalwithout setting a customtimeoutMs. The fallback defaults toDEFAULT_PLUGIN_APPROVAL_TIMEOUT_MS = 120_000(2 minutes). For proposals around 28 KB, users need more time to inspect the content before approving, causing the 2-minute window to expire.Changes
src/skills/workshop/policy.ts: SettimeoutMs: 300_000(5 minutes) for theapplyaction, giving users adequate time to review large proposals while staying within theMAX_PLUGIN_APPROVAL_TIMEOUT_MScap (600s).Real behavior proof
Behavior or issue addressed: Increase
skill_workshop applyapproval timeout from 120s to 300s for large proposals.Real environment tested:
Exact steps or command run after the patch:
pnpm tsgo:prod— no errors (includes core + extensions)pnpm build— passespnpm test -- --run src/skills/workshop/— 25/25 passedpnpm format— passesEvidence after fix:
TypeScript compilation and build:
Test suite output:
Code change:
return { requireApproval: { ...text, allowedDecisions: ["allow-once", "deny"], + // Apply involves reviewing large proposals (~28 KB); + // raise timeout to 5 minutes for adequate review time. + ...(action === "apply" ? { timeoutMs: 300_000 } : {}), }, };Before fix: 28 KB proposal →
skill_workshop apply→ "Approval timed out" after 120sAfter fix: 28 KB proposal →
skill_workshop apply→ 300s timeout window, adequate for thorough reviewSummary: before: 120s timeout too short for large proposal review → after: 300s timeout accommodates large proposal review
Scope / context
Only the
applyaction's approval timeout is increased.rejectandquarantineactions (which require minimal review) keep the default 120s timeout.