Skip to content

feat(sdd-execute): raise per-run wall-clock budget to 60m - #306

Merged
norrietaylor merged 1 commit into
mainfrom
feat/execute-timeout-60
Jun 21, 2026
Merged

feat(sdd-execute): raise per-run wall-clock budget to 60m#306
norrietaylor merged 1 commit into
mainfrom
feat/execute-timeout-60

Conversation

@norrietaylor

Copy link
Copy Markdown
Owner

Raise the agent-job wall-clock budget on all three execute tiers (haiku/sonnet/opus) from gh-aw's default 20m → 60m.

Why

The 20m budget is spent on file exploration + the in-sandbox cargo build/test pre-PR gate (step 6). A broad multi-file change (e.g. a workspace-wide caller migration) cannot finish a cold compile + tests within it, so the agent job is killed at 20m with no PR — a clean wall-clock timeout, not a turn/capability limit.

Observed on a consumer pilot run: a NetworkMode enum + 7-file caller migration timed out at ~20m across three attempts (sonnet ×3). Bumping the model does not help a time limit (opus is slower wall-clock); extending the budget does.

Change

  • timeout-minutes: 60 added to each sdd-execute-{haiku,sonnet,opus}.md frontmatter
  • Locks recompiled with patched gh-aw v0.77.5 (byte-identical to CI)
  • Diff is surgical: only the agent job's timeout-minutes and GH_AW_TIMEOUT_MINUTES change (20 → 60). Activation/conclusion jobs keep their own short timeouts. Digest snapshot unchanged.

Propagation

Consumers call these reusable locks @main, so the new budget takes effect on the next execute run after merge. GitHub's per-job ceiling is 360m; 60m stays well within it.

🤖 Generated with Claude Code

All three execute tiers (haiku/sonnet/opus) used gh-aw's default 20-minute
agent-job timeout. That budget is consumed by file exploration plus the
in-sandbox `cargo build/test` pre-PR gate (step 6); a broad multi-file change
(e.g. a workspace-wide caller migration) cannot finish a cold compile + tests
within it, so the agent job is killed at 20m with no PR — a clean wall-clock
timeout, not a turn or capability limit. Opus is slower wall-clock than sonnet
and hit this hardest.

Set `timeout-minutes: 60` in each execute .md frontmatter and recompile the
locks (patched gh-aw v0.77.5, byte-identical to CI). Only the agent job's
`timeout-minutes` and `GH_AW_TIMEOUT_MINUTES` change (20 → 60); the activation
and conclusion jobs keep their own short timeouts. Consumers calling these
reusable locks @main pick up the new budget on the next run.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ss8WXtUUr9PBHuJcJMseBj
@coderabbitai

coderabbitai Bot commented Jun 21, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 771b5e82-90c7-44a1-863a-664b54d6b3b2

📥 Commits

Reviewing files that changed from the base of the PR and between f8aad26 and 88e77df.

📒 Files selected for processing (6)
  • .github/workflows/sdd-execute-haiku.lock.yml
  • .github/workflows/sdd-execute-haiku.md
  • .github/workflows/sdd-execute-opus.lock.yml
  • .github/workflows/sdd-execute-opus.md
  • .github/workflows/sdd-execute-sonnet.lock.yml
  • .github/workflows/sdd-execute-sonnet.md

📝 Walkthrough

Summary by CodeRabbit

  • Chores
    • Increased workflow execution timeout from 20 to 60 minutes across all model tiers (Haiku, Opus, Sonnet) to allow additional time for code building, testing, and multi-file changes to complete before job termination.

Walkthrough

The timeout-minutes value is increased from 20 to 60 in the sdd-execute workflow configurations for all three tiers (haiku, opus, sonnet). Each .md file adds the explicit timeout setting with comments, and the corresponding .lock.yml generated files are regenerated with updated heredoc marker IDs, the new agent execution timeout, and the matching GH_AW_TIMEOUT_MINUTES env var.

Changes

SDD Execute Workflow Timeout Increase (all tiers)

Layer / File(s) Summary
timeout-minutes: 60 in workflow configs
.github/workflows/sdd-execute-haiku.md, .github/workflows/sdd-execute-opus.md, .github/workflows/sdd-execute-sonnet.md
Each workflow config adds timeout-minutes: 60 under workflow_call, replacing the implicit default of 20, with inline comments citing the cargo build/test pre-PR gate and multi-file change budget.
Timeout and env var update in lock files
.github/workflows/sdd-execute-haiku.lock.yml, .github/workflows/sdd-execute-opus.lock.yml, .github/workflows/sdd-execute-sonnet.lock.yml
In each lock file, the agent execution step timeout-minutes is increased from 20 to 60, and GH_AW_TIMEOUT_MINUTES in the failure handler step is updated from "20" to "60".
Regenerated heredoc marker IDs in lock files
.github/workflows/sdd-execute-*.lock.yml
Lock files are fully regenerated with new hash-based heredoc marker IDs for the prompt assembly (GH_AW_PROMPT_*), Safe Outputs config (GH_AW_SAFE_OUTPUTS_CONFIG_*), and MCP gateway config (GH_AW_MCP_CONFIG_*) blocks; content and structure are unchanged.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • norrietaylor/spectacles#291: Regenerates the same gh-aw workflow artifacts with updated heredoc marker/hash identifiers for the safe-output-tools block and MCP gateway config wrappers inside the same lock files.
  • norrietaylor/spectacles#260: Touches the same sdd-execute-*.lock.yml heredoc marker IDs and safe-output-tools/github_mcp_tools_with_safeoutputs_prompt fragment boundaries.
  • norrietaylor/spectacles#214: Regenerates the same sdd-execute-*.lock.yml prompt/system-message and heredoc-marker wiring around the <safe-output-tools> blocks.

Poem

🐇 Tick-tock, the clock was small,
Twenty minutes — not enough at all!
Now sixty ticks before the axe,
cargo test can finally relax.
The rabbit hops with newfound time,
And lockfiles hum in perfect rhyme! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main change: raising the wall-clock budget for sdd-execute tiers from 20m to 60m, which is the primary focus of the changeset across all modified workflow files.
Description check ✅ Passed The description is directly related to the changeset, providing clear context about why the timeout increase was necessary and documenting the scope of changes across haiku, sonnet, and opus tiers.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/execute-timeout-60

Comment @coderabbitai help to get the list of available commands and usage tips.

@norrietaylor
norrietaylor enabled auto-merge June 21, 2026 00:01
@norrietaylor
norrietaylor merged commit aacd025 into main Jun 21, 2026
13 checks passed
@norrietaylor
norrietaylor deleted the feat/execute-timeout-60 branch June 21, 2026 00:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant