Skip to content

Forge + board steps: gh/glab queues, board scan, chores check#3

Merged
hartsock merged 1 commit into
pr2/mcp-serverfrom
pr3/forge-board-steps
Jun 5, 2026
Merged

Forge + board steps: gh/glab queues, board scan, chores check#3
hartsock merged 1 commit into
pr2/mcp-serverfrom
pr3/forge-board-steps

Conversation

@hartsock

@hartsock hartsock commented Jun 5, 2026

Copy link
Copy Markdown
Owner

Summary

Stacked on #2 — retarget after it merges.

Seven new builtin step types completing the morning routine's repo-external phases:

  • gitlab-mr-authored / gitlab-mr-reviewglab mr list --author/--reviewer per configured project, text passthrough (the proven Python contract)
  • gitlab-group-mrs — group-wide activity; scan = "recent" adds a 7-day --created-after window
  • mr-sla-check — derived step reading this run's prior review-queue results against a response_hours threshold
  • github-pr-scangh pr list --json → compact #N title (author) lines
  • board-scan / chores-check — pure fs scans; chores parses due: YYYY-MM-DD lines into OVERDUE / due-today / upcoming

Failure semantics carried through: auth failures are soft (all-failed → skip with the exact glab auth login --hostname … / gh auth login command; partial → noise filtered, real results kept).

Fresh-eyes catch included: forge steps were ignoring spec.env — credential references now resolve and inject on every gh/glab spawn, with a soft skip naming the variable (never a value) when one is unavailable. Regression tests cover it.

Test plan

  • just check green: 93 tests, clippy -D warnings clean
  • 21 new handler tests over MockSpawner: flag wiring, auth-skip aggregation, partial-auth filtering, created-after windowing, SLA derivation from prior, due-date bucketing, credential-skip regressions
  • just demo dry-run renders the full extended morning routine

WHAT: Seven new builtin step types. gitlab.rs: gitlab-mr-authored /
gitlab-mr-review (glab mr list per project), gitlab-group-mrs
(--per-page; scan=recent adds a 7-day --created-after window), and the
derived mr-sla-check (counts pending review projects from this run's
prior results; response_hours param). github.rs: github-pr-scan
(gh pr list --json number,title,author,updatedAt → compact lines).
board.rs: board-scan (### lane (N tasks) + stems per lane) and
chores-check (due:/Due: YYYY-MM-DD lines → OVERDUE/due-today/upcoming
buckets). Auth failures (401/unauthorized/forbidden/gh-auth-login hint)
are soft: all-failed → skip with the exact login command; partial →
auth noise filtered, real results kept (Python-handler parity). ALL
forge steps now resolve spec.env credential references and inject them
into the subprocess env (missing credential → soft skip naming the
variable, never a value). Example config grows the review-queue and
board phases.

WHY: Phase 2/4/5 of the morning routine from gilabot#1892, ported from
gila-plugin-morning's proven handlers. The spec.env wiring was a
fresh-eyes catch: the example showed credentials on forge steps that
the handlers silently ignored. 93 tests total.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@hartsock hartsock added the risk:low Scoped, tested, no CI/build changes label Jun 5, 2026
@hartsock hartsock merged commit 0d44e1c into pr2/mcp-server Jun 5, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:low Scoped, tested, no CI/build changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant