Skip to content

Codex/keepalive gate runner - #27

Merged
stranske merged 4 commits into
mainfrom
codex/keepalive-gate-runner
Dec 21, 2025
Merged

Codex/keepalive gate runner#27
stranske merged 4 commits into
mainfrom
codex/keepalive-gate-runner

Conversation

@stranske

Copy link
Copy Markdown
Owner

No description provided.

Copilot AI review requested due to automatic review settings December 21, 2025 01:17
@github-actions

Copy link
Copy Markdown
Contributor

Health 45 Agents Guard stopped this pull request.

What we found

  • Protected workflows modified:
    • .github/workflows/agents-pr-meta-v4.yml
  • Missing agents:allow-change label.
  • Request approval from a CODEOWNER.

Next steps

  • Apply the agents:allow-change label to this pull request once the change is justified.
  • Ask a CODEOWNER to review and approve the change.
  • Push an update or re-run this workflow after addressing the issues.

Files seen in this run

  • .github/workflows/agents-pr-meta-v4.yml (modified)

@stranske

Copy link
Copy Markdown
Owner Author

⚠️ Action Required: Unable to determine source issue for PR #27. The PR title, branch name, or body must contain the issue number (e.g. #123, branch: issue-123, or the hidden marker ).

@github-actions

github-actions Bot commented Dec 21, 2025

Copy link
Copy Markdown
Contributor

Automated Status Summary

Head SHA: b21b004
Latest Runs: ⏳ pending — Gate
Required contexts: Gate / gate, Health 45 Agents Guard / Enforce agents workflow protections
Required: core tests (3.11): ⏳ pending, core tests (3.12): ⏳ pending, docker smoke: ⏳ pending, gate: ⏳ pending

Workflow / Job Result Logs
(no jobs reported) ⏳ pending

Coverage Overview

  • Coverage history entries: 1

Coverage Trend

Metric Value
Current 77.97%
Baseline 0.00%
Delta +77.97%
Minimum 70.00%
Status ✅ Pass

Updated automatically; will refresh on subsequent CI/Docker completions.


Keepalive checklist

Scope

No scope information available

Tasks

  • No tasks defined

Acceptance criteria

  • No acceptance criteria defined

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR implements a token fallback mechanism for the keepalive orchestrator workflow and standardizes token priority ordering. The changes allow the workflow to fall back to the default GITHUB_TOKEN when Personal Access Tokens (PATs) encounter scope limitation errors.

Key Changes:

  • Reordered token priority in workflow to prefer ACTIONS_BOT_PAT and SERVICE_BOT_PAT over AGENTS_AUTOMATION_PAT, aligning with codebase conventions
  • Added fallback mechanism to retry orchestrator dispatch with GITHUB_TOKEN when PAT scope errors occur
  • Refactored retry logic into a reusable dispatchWithClient function

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
.github/workflows/agents-pr-meta-v4.yml Updated token priority order in two workflow steps to prioritize ACTIONS_BOT_PAT and SERVICE_BOT_PAT before AGENTS_AUTOMATION_PAT, matching the pattern used consistently across other workflows
.github/scripts/agents_pr_meta_orchestrator.js Added isScopeError helper function, refactored dispatch logic into dispatchWithClient for reusability, and implemented fallback to GITHUB_TOKEN when PAT scope limitations are detected

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/scripts/agents_pr_meta_orchestrator.js Outdated
Comment thread .github/scripts/agents_pr_meta_orchestrator.js
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@stranske

Copy link
Copy Markdown
Owner Author

@codex fix comment. But make sure that the code section isn't useful and that the real issue isn't something else in the code that needs to be changed so this section is reachable

@chatgpt-codex-connector

Copy link
Copy Markdown

Summary

Testing

  • ⚠️ Not run (not requested).

View task →

@stranske
stranske merged commit f2ed6d0 into main Dec 21, 2025
29 of 32 checks passed
stranske added a commit that referenced this pull request May 10, 2026
… systems

The opener cron selects work by `priority:high|normal|low` label. The
weekly repo-review's design-vs-impl pass selects by traced gap. Issues
created manually with `enhancement` or `feature` labels but no
`priority:*` label fall into a hole: neither system sees them.

Worked example surfaced 2026-05-07: Inv-Man-Intake #25, #26, #27 were
created 2026-03-01 with `enhancement` + `milestone:B-extraction-queue-images`
only. 71 days later, no activity, no agent ever picked them up.

New `scripts/repo_review_backlog_scan.py`:

  - Scans all active repos via `gh issue list`
  - Surfaces issues with `enhancement` OR `feature` label that:
    - have NO `priority:*` label (opener would already see them)
    - have NO `agent:*` label (an agent owns it)
    - have NO dependabot / sync* / process-eval label (other automations)
    - have NOT been updated in the past `--stale-days` days (default 7)
  - Sorts oldest-stale-first; writes JSON to --out

Coordinator runs the scan after the final evaluator pass and feeds the
result to the notify step. The desktop file now includes a "Backlog
needing your attention" section listing each stale item with the exact
three `gh issue edit/close` commands to promote / deprioritize / close
it. macOS notification subtitle shows both queue and backlog counts.

Goal: an enhancement issue sits unaddressed for at most 1-2 weekly
cycles before the human surfaces it.

Smoke-test against current state: found 4 items in Inv-Man-Intake
(#27, #26, #25 at 71 days; #10 at 14 days) — exactly the pattern the
user's report identified.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
stranske added a commit that referenced this pull request May 10, 2026
…mans

The 2026-05-10 feedback: surfacing every unaddressed enhancement issue
for human triage is heavier than necessary. The system should label the
clear-cut cases itself and only ask for human input when the issue shape
is ambiguous.

Two-tier classification in `repo_review_backlog_scan.py`:

**auto-labelable** — leaf enhancement issues. Heuristic priority:
- has `milestone:*` label → `priority:normal` (declared planned work)
- created >90 days ago without milestone → `priority:low` (likely stale)
- otherwise → `priority:normal` (default)

With `--apply` (the cron default), the scanner calls `gh issue edit
--add-label priority:X` for each leaf. The opener picks them up on its
next pass.

**needs-human** — surfaced for decision, not auto-labeled:
- title contains epic/tracker/umbrella/roadmap/rollup/parent issue
- has `epic`/`umbrella`/`tracker`/`meta`/`parent`/`needs-triage`/`discussion`
- has any `blocked*` label
- body has ≥2 task-checkbox lines mentioning #NNN (umbrella tracking children)
- body has a "Children: #..." or "Child issues: #..." declaration

Validated against the user's worked example: #25/#26/#27 → leaf
(auto-label `priority:normal`); #10 → umbrella detected via 4 child
checkboxes (surface for human); #7 → umbrella detected via "epic" in
title. Matches the user's stated preference exactly.

The desktop reminder now renders two backlog subsections:
- **Auto-labeled this week (N items) — FYI, no action required**: brief
  one-line summary per item with applied priority.
- **Backlog needing your decision (M items)**: full three-command resolution
  block per item (promote / deprioritize / close).

macOS notification text now distinguishes the cases: clean weeks with
auto-labels only show "no action required"; weeks with needs-human items
show "decisions needed".

Coordinator now passes `--apply` to the scanner so the cron actually
mutates labels (dry-run is still the default when running the scanner
standalone for testing).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.

2 participants