Extend MCP logs timeout for engine-filtered queries - #52063
Conversation
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Extends MCP log-query timeouts for engine-filtered requests and clarifies compile workflow input syntax.
Changes:
- Applies the five-minute timeout floor to engine filters.
- Adds timeout and schema regression coverage.
- Documents array syntax for compile inputs.
Show a summary per file
| File | Description |
|---|---|
pkg/cli/mcp_tools_readonly.go |
Clarifies compile workflow array syntax. |
pkg/cli/mcp_tools_privileged.go |
Extends engine-filtered log timeouts. |
pkg/cli/mcp_tools_privileged_test.go |
Updates timeout helper invocation. |
pkg/cli/mcp_server_defaults_test.go |
Tests compile schema documentation. |
pkg/cli/logs_timeout_test.go |
Tests engine-filtered timeout behavior. |
Review details
Tip
Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
- Files reviewed: 5/5 changed files
- Comments generated: 1
- Review effort level: Balanced
| if workflowName == "" || engine != "" { | ||
| // Without a workflow filter, or when filtering by engine, the CLI scans runs | ||
| // across workflows and reads their artifacts. Apply a higher minimum so the | ||
| // tool is less likely to exhaust the MCP gateway's per-tool timeout. | ||
| return max(defaultMCPLogsMinTimeoutMinutesAllWorkflows, base) |
There was a problem hiding this comment.
Fixed in the latest commit — getToolCallTimeoutMs now applies the 5-minute floor whenever engine is present, even if workflow_name is also set. Added bridge regression tests for both cases.
|
✅ Test Quality Sentinel completed test quality analysis.
|
|
✅ Ponytail Reviewer completed successfully! Lean already. Ship.
|
|
✅ Design Decision Gate 🏗️ completed the design decision gate check. No ADR enforcement needed: PR #52063 does not have the implementation label and has only 35 new lines of code in business logic directories (threshold: 100).
|
|
✅ PR Code Quality Reviewer completed the code quality review. Warning Threat Detection Engine Failure — The analysis engine could not complete. This is a tooling failure, not a security finding. What happenedThe threat detection engine failed to produce results. Review the workflow run logs for details. Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
To allow these domains, add them to the network:
allowed:
- defaults
- "api.individual.githubcopilot.com"See Network Configuration for more information.
|
|
🧠 Matt Pocock Skills Reviewer has completed the skills-based review. ✅
|
There was a problem hiding this comment.
The changes look correct and well-tested. The engine parameter addition to effectiveMCPLogsToolTimeoutMinutes is sound — engine-filtered queries scan across workflows just like no-workflow-name queries, so applying the higher timeout floor is the right behavior. All call sites and tests are updated consistently.
🧵 Reviewed using Impeccable skills by Impeccable Skills Reviewer · sonnet46 · 13.9 AIC · ⌖ 6.13 AIC · ⊞ 5.4K
🧪 Test Quality Sentinel Report✅ Test Quality Score: 100/100 — Excellent
📊 Metrics (3 tests)
AnalysisThis PR extends
All test files carry Verdict
|
There was a problem hiding this comment.
🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer · sonnet46 · 27.7 AIC · ⌖ 6.5 AIC · ⊞ 7.1K
Comment /matt to run again
| }, | ||
| // All-workflow cases: minimum 5 minutes when no workflow_name is given | ||
| { | ||
| name: "engine filtering uses all-workflow minimum for a named workflow", |
There was a problem hiding this comment.
[/tdd] The new test case sits under the // All-workflow cases comment but tests a named workflow with engine filtering — a mismatch that could mislead future editors. There is also no test for the workflowName="" + engine!="" combination, leaving one branch of the || uncovered.
💡 Suggested additions
Move the case to a new section and add a companion:
// Engine-filtering cases
{
name: "engine filtering with named workflow uses all-workflow minimum",
requestedTimeout: 0,
count: 2,
workflowName: "my-workflow",
engine: "claude",
want: defaultMCPLogsMinTimeoutMinutesAllWorkflows,
},
{
name: "engine filtering without workflow name also uses all-workflow minimum",
requestedTimeout: 0,
count: 2,
workflowName: "",
engine: "claude",
want: defaultMCPLogsMinTimeoutMinutesAllWorkflows,
},@copilot please address this.
There was a problem hiding this comment.
Moved the engine-filtering case into its own "Engine-filtering cases" section and added the missing workflowName="" + engine!="" companion test.
|
@copilot Please refresh this branch, verify checks, and use the pr-finisher skill before handing back. No failed checks were reported in the compact candidate set for this run.
|
Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
PR Triage: #52063
Automated triage — see labels for machine-readable classification.
|
|
@copilot Please refresh this branch, verify checks, and use the pr-finisher skill before handing back. No failed checks were reported in the compact candidate set for this run.
|
Engine-filtered
logsrequests can scan workflow artifacts across runs and exceed the default one-minute budget, even for small result counts. The compile tool also did not show thatworkflowsaccepts an array.engineis specified.Regression coverage
Compile tool schema
["workflow.md"].Run: https://github.com/github/gh-aw/actions/runs/31508439729> Generated by 👨🍳 PR Sous Chef · gpt54 · 35.1 AIC · ⌖ 6.14 AIC · ⊞ 8.5K · ◷