Skip to content

Release v3.17.2#92

Merged
atomantic merged 10 commits into
releasefrom
main
Jun 26, 2026
Merged

Release v3.17.2#92
atomantic merged 10 commits into
releasefrom
main

Conversation

@atomantic

Copy link
Copy Markdown
Owner

Summary

Patch release v3.17.2.

Highlights

  • do:next issue auto-pick now respects ordering. Two opt-in, backward-compatible controls: a Depends on #N / Blocked by #N body line (or GitHub's native blocked-by relationship) holds an issue back until its blocker closes and surfaces it automatically afterward; a priority:<N> label nudges an independent issue earlier or later. Both are no-ops when unused.
  • do:replan understands the new markers. Blocked issues are never pruned as stale for inactivity, and a new dependency/priority pass strips satisfied Depends on #N markers once #N closes and flags broken references and cycles.
  • Infra & deps. Bumped actions/checkout from 6 to 7 across CI and release workflows.

Full changelog: .changelogs/v3.17.2.md

Test plan

  • npm test — 156 tests pass, 0 failures
  • Local Code Review gate: passed (all 6 changed files reviewed; priority-sort jq expression verified correct)

dependabot Bot and others added 10 commits June 21, 2026 15:42
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
…ns/checkout-7

chore(deps): bump actions/checkout from 6 to 7
…dencies

do:next --issues auto-pick was strictly oldest-first with no way to express
ordering, so a successor issue could be claimed before its predecessor shipped
and the only lever was parking the successor by hand. Add two opt-in,
backward-compatible controls (no behavior change when unused):

- Hard dependencies: a 'Depends on #N' / 'Blocked by #N' body line (or GitHub's
  native blocked-by relationship) makes auto-pick skip an issue while any blocker
  is open, and surface it automatically once the blocker closes. Self-clearing,
  encodes the real dependency DAG without hand-maintained sequence numbers.
- Soft priority: a 'priority:<N>' label moves an independent, unblocked issue
  earlier/later in the walk (sort key becomes [priorityRank, createdAt]).

do:replan is made aware of both: a blocked issue is kept (never pruned as stale
for inactivity), and a new Agent-6 dependency/priority pass drives marker hygiene
(strip a satisfied 'Depends on #N' once #N closes, flag broken refs and cycles).
Order do:next issue auto-pick by priority labels and Depends-on dependencies
…re in do:replan

A Depends-on dependency hygiene pass strips the marker when its blocker
closes, but the >30-day stale rule still read the dependent's old
updatedAt — so the same run could close a just-unblocked issue as stale
before /do:next ever picked it up, defeating the self-clearing behavior.
Classify a clearable (freshly-unblocked) issue still-pending for that run,
exempt from stale closure, mirroring the still-OPEN blocked exemption.
…do:replan, not hardcoded gh

Agent 6's new dependency graph ran 'gh issue view' unconditionally, but
/do:replan --issues documents GitLab support too (Phase 0 selects
CLI_TOOL=gh|glab and the rest of issue mode carries glab equivalents).
On a GitLab repo any issue with a Depends-on/Blocked-by marker would hit
gh against the wrong context. Branch on CLI_TOOL with a glab equivalent,
normalize the differing state strings (OPEN/CLOSED vs opened/closed), and
note GitHub's native blocked-by is GitHub-only so GitLab uses the portable
body convention.
…:next issues

The no-priority sort rank was a literal 9999, which a real priority:9999
(or larger) label would tie — letting unlabeled work sort ahead of an
explicitly low-prioritized issue, contradicting the documented 'unlabeled
falls after every prioritized one'. Use jq's infinite so no finite integer
label can collide.
…es invariant and cover Blocked-by in marker cleanup

Two doc-consistency fixes in the new do:replan dependency text:
- The actionable-issues invariant ('every filed issue immediately
  claimable') read as contradicting the new ability to file a successor
  with Depends on #N, which /do:next defers until the blocker closes.
  Clarify that 'actionable' means decision-complete, not pickable-now: a
  sequenced, self-clearing dependency is deferred, not un-actionable.
- Satisfied-marker cleanup only mentioned stripping 'Depends on #N'; it
  now covers the equally-supported 'Blocked by #N' form too.
@atomantic atomantic merged commit b5df9a7 into release Jun 26, 2026
4 checks passed
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