fix(sdd-execute): per-item concurrency group (closes #308) - #309
Conversation
The compiled execute lock used gh-aw's default workflow-level concurrency
group `gh-aw-${{ github.workflow }}`, shared across every same-tier execute
run. GitHub cancels a *previously pending* run when a new run joins the same
group, so a freshly re-triggered task could be silently cancelled at its
`activation` job by unrelated execute activity on a sibling task of the same
tier — leaving it stranded (sdd:in-progress, no run, no escalation), needing a
manual /execute re-bump.
Override `concurrency.group` in each execute tier's frontmatter to include the
resolved item number, so distinct tasks never share a group; fall back to
run_id when the context is absent. Recompiled with the patched gh-aw v0.77.5;
only the three execute locks' concurrency lines change.
The wrapper already keys its own per-issue group; this aligns the called lock
so cross-task cancellation can no longer happen at either layer.
Closes #308
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ss8WXtUUr9PBHuJcJMseBj
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (6)
📝 WalkthroughSummary by CodeRabbit
WalkthroughThree ChangesPer-item concurrency scoping across sdd-execute tiers
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Closes #308.
Problem
The compiled execute lock used gh-aw's default workflow-level concurrency:
github.workflowis identical for every invocation of a tier, so all same-tier execute runs share one group. GitHub cancels a previously-pending run when a new run joins a group — so a freshly re-triggered task gets silently cancelled at itsactivationjob when unrelated execute activity (a sibling task's PR review //revise) queues on the same tier. The task strands:sdd:in-progress, no run, no escalation, no auto-retry — only a manual/executere-bump recovers it.Observed in a consumer pilot: route ✅ / ack ✅ /
<tier> / activationcancelled, coincident with another same-tier run's activation window.Fix
Override
concurrency.groupin each execute tier's.mdfrontmatter to include the resolved item number:Distinct tasks get distinct groups → cross-task cancellation can no longer happen; same-task superseding is still handled by the wrapper's own per-issue group. Falls back to
run_id(unique) when the context is absent, so it never over-collapses.Scope / fidelity
sdd-execute-{haiku,sonnet,opus}.md+.lock.ymlchange; the concurrencygroup:line is the sole functional change.v0.77.5; the other 10 locks and the digest snapshot are byte-identical (lint clean).🤖 Generated with Claude Code