Conversation
β¦rdcoded 60s cap (#28) Both runShellWithRTK and runShellRaw unconditionally capped execution at 60s, silently overriding whatever timeout_seconds the governance engine computed from agentguard.yaml. Operators setting longer timeouts (e.g. the default 300s bounded-execution policy) had no indication their policy value was being ignored. Remove the cap in both code paths so the governance engine is the sole source of truth for execution limits. Closes #28 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
jpleva91
added a commit
that referenced
this pull request
Mar 30, 2026
- P0 COMPLETE: PRs #83/#84/#85 merged, all P0 governance bugs closed - Issue #59 closed (already fixed by PR #83) - PR #86 opened: fix P1 #28 β governance timeout override (60s cap removed) - PR budget: 1/3 (was 3/3 at-limit) - Dogfood (#76) unblocked from governance side β needs human trigger - P1 remaining: #28 (in PR #86), #63/#68 (qa-agent) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2 tasks
jpleva91
added a commit
that referenced
this pull request
Mar 30, 2026
- P0 COMPLETE: PRs #83/#84/#85 merged, all P0 governance bugs closed - Issue #59 closed (already fixed by PR #83) - PR #86 opened: fix P1 #28 β governance timeout override (60s cap removed) - PR budget: 1/3 (was 3/3 at-limit) - Dogfood (#76) unblocked from governance side β needs human trigger - P1 remaining: #28 (in PR #86), #63/#68 (qa-agent) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
jpleva91
added a commit
that referenced
this pull request
Mar 30, 2026
Sprint goal ACHIEVED: all P0/P1 governance bugs closed. - PR #86 merged: P1 #28 (timeout override) closed - PR #88 merged: P1 #63 (classifyShellRisk word-boundary) closed - PR #89 open: P1 #68 (test coverage) + P2 #66 (dead code), CI green 5/5 Remaining blocker: PR #89 requires human review (@jpleva91). Dogfood (#76) blocked on setup.sh remote Ollama gap. Next sprint proposal: dogfood readiness + P2 batch. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
jpleva91
added a commit
that referenced
this pull request
Mar 30, 2026
Sprint goal ACHIEVED: all P0/P1 governance bugs closed. - PR #86 merged: P1 #28 (timeout override) closed - PR #88 merged: P1 #63 (classifyShellRisk word-boundary) closed - PR #89 open: P1 #68 (test coverage) + P2 #66 (dead code), CI green 5/5 Remaining blocker: PR #89 requires human review (@jpleva91). Dogfood (#76) blocked on setup.sh remote Ollama gap. Next sprint proposal: dogfood readiness + P2 batch. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
jpleva91
added a commit
that referenced
this pull request
Mar 30, 2026
Sprint goal ACHIEVED: all P0/P1 governance bugs closed. - PR #86 merged: P1 #28 (timeout override) closed - PR #88 merged: P1 #63 (classifyShellRisk word-boundary) closed - PR #89 open: P1 #68 (test coverage) + P2 #66 (dead code), CI green 5/5 Remaining blocker: PR #89 requires human review (@jpleva91). Dogfood (#76) blocked on setup.sh remote Ollama gap. Next sprint proposal: dogfood readiness + P2 batch. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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 free
to 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.
Summary
runShellWithRTKandrunShellRawengine.GetTimeout()) is now the sole source of truth for execution timeout β the value flows through unchangedagentguard.yamlbounded-executionpolicy sets 300s; this fix ensures that value is actually honouredRoot cause
Both shell execution paths silently overrode the caller-supplied timeout:
Operators who configured generous timeouts had no indication their policy was being ignored β the governance log showed the policy matched, but the actual enforcement happened at the hardcoded limit.
Test plan
go build ./cmd/shellforge/passesCloses #28
π€ Generated with Claude Code