Skip to content

chore: sync workflow templates#142

Closed
stranske wants to merge 2 commits intomainfrom
sync/workflows-a4c8811ece41
Closed

chore: sync workflow templates#142
stranske wants to merge 2 commits intomainfrom
sync/workflows-a4c8811ece41

Conversation

@stranske
Copy link
Copy Markdown
Owner

Sync Summary

Files Updated

  • autofix.yml: Autofix workflow - automatically fixes lint/format issues
  • agents-71-codex-belt-dispatcher.yml: Codex belt dispatcher - selects issues and creates codex/issue-N branches for agent work
  • agents-72-codex-belt-worker.yml: Codex belt worker - executes Codex agent on issues with full prompt and context
  • agents-72-codex-belt-worker-dispatch.yml: Codex belt worker dispatch wrapper - allows workflow_dispatch for the worker
  • agents-73-codex-belt-conveyor.yml: Codex belt conveyor - orchestrates belt worker execution and handles completion
  • agents-autofix-loop.yml: Autofix loop - dispatches Codex when autofix can't fix Gate failures (deprecated; replaced by agents-81-gate-followups.yml, removal no earlier than 2026-02-15)
  • agents-verify-to-issue.yml: Verify to issue v1 (DEPRECATED) - disabled workflow, replaced by v2
  • agents-verify-to-issue-v2.yml: Verify to issue v2 - creates follow-up issues from verification feedback with LLM curation (Phase 4E; deprecated for agents-80-pr-event-hub.yml, removal no earlier than 2026-02-15)
  • agents-verify-to-new-pr.yml: Verify to new PR - creates follow-up issue and triggers auto-pilot to prepare a new PR
  • agents-auto-pilot.yml: Auto-pilot - end-to-end automation orchestrator (format → optimize → agent → verify)
  • sync_dev_dependencies.py: Syncs dev dependency versions from autofix-versions.env to pyproject.toml
  • requirements-llm.txt: Pinned LLM dependencies - required by agents-auto-pilot.yml
  • registry.yml: Agent registry - source of truth for agent keys and runner workflow mapping
  • agent_registry.js: Agent registry helper - loads registry and resolves agent key from labels
  • keepalive_loop.js: Core keepalive loop logic
  • issue_optimizer.py: Issue optimizer - analyzes issues and suggests improvements
  • progress_reviewer.py: Progress reviewer - evaluates agent progress for keepalive rounds
  • pr_verifier.py: PR verifier - validates PR changes against acceptance criteria
  • followup_issue_generator.py: Follow-up issue generator - creates issues from verification feedback
  • llm_provider.py: LLM provider configuration - GitHub Models and OpenAI client setup
  • CLAUDE.md: Context file for Claude/AI assistants

Files Skipped

  • pr-00-gate.yml: File exists and sync_mode is create_only
  • ci.yml: File exists and sync_mode is create_only
  • dependabot.yml: File exists and sync_mode is create_only
  • llm_slots.json: None

Review Checklist

  • CI passes with updated workflows
  • No repo-specific customizations were overwritten

Source: stranske/Workflows
Manifest: .github/sync-manifest.yml

Automated sync from stranske/Workflows
Template hash: a4c8811ece41

Changes synced from sync-manifest.yml
Copilot AI review requested due to automatic review settings February 16, 2026 23:31
@stranske stranske added sync Automated sync from Workflows automated Automated sync from Workflows labels Feb 16, 2026
@agents-workflows-bot
Copy link
Copy Markdown
Contributor

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

@agents-workflows-bot
Copy link
Copy Markdown
Contributor

agents-workflows-bot bot commented Feb 16, 2026

🤖 Keepalive Loop Status

PR #142 | Agent: Codex | Iteration 0/5

Current State

Metric Value
Iteration progress [----------] 0/5
Action wait (missing-agent-label)
Disposition skipped (transient)
Gate failure
Tasks 0/25 complete
Timeout 45 min (default)
Timeout usage 3m elapsed (9%, 42m remaining)
Keepalive ❌ disabled
Autofix ❌ disabled

🔍 Failure Classification

| Error type | infrastructure |
| Error category | resource |
| Suggested recovery | Confirm the referenced resource exists (repo, PR, branch, workflow, or file). |

@github-actions
Copy link
Copy Markdown
Contributor

Autofix updated these files:

  • scripts/langchain/issue_optimizer.py
  • scripts/langchain/pr_verifier.py
  • tests/test_historical_update.py

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Syncs automation/workflow templates from stranske/Workflows, expanding the repo’s agent automation to be registry-driven (agent keys/branch prefixes), and standardizing LangSmith metadata wiring across LangChain scripts.

Changes:

  • Introduces an agent registry (.github/agents/registry.yml) plus a JS helper (.github/scripts/agent_registry.js) and wires multiple workflows to resolve agent behavior from labels/registry.
  • Updates belt/autofix/verify workflows to accept/propagate agent_key, adjust branch naming, and improve autofix triggering.
  • Updates LLM workflow/runtime pins and centralizes LangSmith metadata construction.

Reviewed changes

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

Show a summary per file
File Description
tools/requirements-llm.txt Bumps pinned LangChain-related runtime versions for workflow LLM steps.
tools/llm_provider.py Adds shared LangSmith metadata/tag builder + trace URL helper.
scripts/sync_dev_dependencies.py Simplifies dependency drift reporting/exit flow.
scripts/langchain/progress_reviewer.py Minor string formatting adjustment in heuristic summaries.
scripts/langchain/pr_verifier.py Switches LangSmith config building to shared helper with fallback.
scripts/langchain/issue_optimizer.py Removes stray whitespace (format-only change).
scripts/langchain/followup_issue_generator.py Switches LangSmith config building to shared helper with fallback.
CLAUDE.md Removes CI policy block from assistant context doc.
.github/workflows/autofix.yml Adds workflow_job trigger + refactors PR file listing with rate-limit fallback.
.github/workflows/agents-verify-to-new-pr.yml Includes agent registry in sparse checkout and labels follow-ups using resolved agent key.
.github/workflows/agents-verify-to-issue.yml Updates instructions to refer to generic agent:* labels.
.github/workflows/agents-verify-to-issue-v2.yml Includes agent registry in sparse checkout and labels follow-ups using resolved agent key.
.github/workflows/agents-autofix-loop.yml Resolves agent type and gates autofix loop to codex-only support.
.github/workflows/agents-auto-pilot.yml Uses registry default agent for labeling and dispatches belt with agent_key.
.github/workflows/agents-73-codex-belt-conveyor.yml Adds agent_key input; makes conveyor concurrency/branch validation agent-aware; passes agent_key on redispatch.
.github/workflows/agents-72-codex-belt-worker.yml Adds agent_key input; makes concurrency/output/labels/branches agent-aware in steps.
.github/workflows/agents-72-codex-belt-worker-dispatch.yml Adds agent_key input and forwards it to the reusable worker workflow.
.github/workflows/agents-71-codex-belt-dispatcher.yml Adds agent_key input/output; selects issues and branch prefixes per agent registry.
.github/scripts/keepalive_loop.js Resolves agent routing via registry helper while keeping keepalive opt-in behavior.
.github/scripts/agent_registry.js Adds minimal YAML registry loader + label routing/config helpers.
.github/agents/registry.yml Defines default agent and per-agent config (runner workflow, branch prefix, capabilities).

LangSmith is enabled.
"""
repo = repo or os.environ.get("GITHUB_REPOSITORY", "unknown")
run_id = run_id or os.environ.get("GITHUB_RUN_ID", "unknown")
Copy link

Copilot AI Feb 16, 2026

Choose a reason for hiding this comment

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

build_langsmith_metadata() no longer mirrors the previous run-id resolution logic used by callers (they checked GITHUB_RUN_ID or RUN_ID). Since this helper is now the common path, consider resolving run_id via GITHUB_RUN_ID then falling back to RUN_ID before defaulting to unknown, to avoid losing run correlation in non-GitHub contexts/tests that set RUN_ID.

Suggested change
run_id = run_id or os.environ.get("GITHUB_RUN_ID", "unknown")
if run_id is None:
run_id = os.environ.get("GITHUB_RUN_ID") or os.environ.get("RUN_ID") or "unknown"

Copilot uses AI. Check for mistakes.
Comment on lines +266 to +270
const concurrencyGroup = concurrencyKey
? (agentKey === 'codex'
? `codex-belt-${concurrencyKey}`
: `belt-${agentKey}-${concurrencyKey}`)
: '';
Copy link

Copilot AI Feb 16, 2026

Choose a reason for hiding this comment

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

The worker computes a per-agent concurrency group (using belt-${agentKey}-... for non-codex), but the workflow-level concurrency.group is still hard-coded to codex-belt-... (see top of file). This can cause runs for different agents/keys to cancel each other and also makes the summary/output concurrency group disagree with actual concurrency behavior. Update the workflow concurrency.group expression to incorporate the normalized agent_key the same way this step does.

Copilot uses AI. Check for mistakes.
Comment on lines +52 to +55
(inputs.agent_key || 'codex') == 'codex'
&& format('codex-belt-conveyor-{0}', inputs.branch || format('issue-{0}', inputs.issue) || github.run_id)
|| format('belt-{0}-conveyor-{1}',
inputs.agent_key || 'codex',
Copy link

Copilot AI Feb 16, 2026

Choose a reason for hiding this comment

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

Top-level concurrency grouping uses the raw inputs.agent_key value (case-sensitive). Since the JS steps normalize agent_key to lower-case, dispatches like Codex vs codex can end up in different concurrency groups (allowing parallel runs / unexpected cancellations) even though they represent the same agent. Normalize inputs.agent_key in the expression (e.g., via toLower(...)) or validate/force lower-case inputs consistently.

Suggested change
(inputs.agent_key || 'codex') == 'codex'
&& format('codex-belt-conveyor-{0}', inputs.branch || format('issue-{0}', inputs.issue) || github.run_id)
|| format('belt-{0}-conveyor-{1}',
inputs.agent_key || 'codex',
toLower(inputs.agent_key || 'codex') == 'codex'
&& format('codex-belt-conveyor-{0}', inputs.branch || format('issue-{0}', inputs.issue) || github.run_id)
|| format('belt-{0}-conveyor-{1}',
toLower(inputs.agent_key || 'codex'),

Copilot uses AI. Check for mistakes.
@stranske
Copy link
Copy Markdown
Owner Author

Superseded by newer sync PR #143

@stranske stranske closed this Feb 17, 2026
@stranske stranske deleted the sync/workflows-a4c8811ece41 branch February 17, 2026 04:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

autofix:escalated autofix:patch autofix Triggers autofix on PR automated Automated sync from Workflows sync Automated sync from Workflows

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants