Allow read-only shell tools in Discussion Task Miner to prevent tool-denial cascade - #50686
Conversation
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
Great work on this fix, The change is well-scoped and well-documented:
Verification will happen naturally on the next scheduled trigger — the workflow will attempt to use the newly allowed tools without hitting The PR looks ready to merge!
|
|
@copilot resolve the merge conflicts on this branch. |
There was a problem hiding this comment.
Pull request overview
Updates Discussion Task Miner’s shell allowlist to support read-only paging of scratch files.
Changes:
- Adds
head,tail,sed -n, andwc. - Recompiles the generated workflow.
- However,
sed -nremains incompatible with the SDK’s exact full-command matching.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/discussion-task-miner.md |
Expands the shell allowlist. |
.github/workflows/discussion-task-miner.lock.yml |
Regenerates compiled permissions and metadata. |
Review details
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 2/2 changed files
- Comments generated: 1
- Review effort level: Balanced
| - cat * | ||
| - head * | ||
| - tail * | ||
| - sed -n * |
|
@copilot please refresh this branch if it is behind Run: https://github.com/github/gh-aw/actions/runs/31050365846
|
Discussion Task Miner's
bashallowlist permitted onlyfind,jq,cat, anddate. When the agent tried to page through its own scratch file withsed -n '205,260p' /tmp/gh-aw/agent/50544.md, the call was denied, retried with the same shape, and trippedmax-tool-denials: 3, killing the SDK session and burning the run's invocation cap.Changes
.github/workflows/discussion-task-miner.md— extend thetools.bashallowlist withhead *,tail *,sed -n *, andwc *, matching the pattern already used bydaily-community-attribution.mdanddaily-spdd-spec-planner.md..github/workflows/discussion-task-miner.lock.yml— recompiled.Only the non-mutating
sed -nform is allowed; baresed(which supports-iin-place writes) remains denied.Out of scope
The issue's second proposal — making
guard.tool_denials_exceededemit amissing_tool/report_incompletesignal instead of continuing to consume invocation budget — is a harness-level change affecting all workflows and is not addressed here. Worth tracking separately alongside #49096, since it's the shared mitigation for this failure class.Verification depends on the next scheduled trigger completing without
guard.tool_denials_exceededorinvocation_cap_exceeded.Run:> Generated by 👨🍳 PR Sous Chef · gpt54 · 10.9 AIC · ⌖ 8.46 AIC · ⊞ 8.3K · ◷