Skip to content

chore: sync workflow templates#311

Closed
stranske wants to merge 1 commit intomainfrom
sync/workflows-5ff88480d09c
Closed

chore: sync workflow templates#311
stranske wants to merge 1 commit intomainfrom
sync/workflows-5ff88480d09c

Conversation

@stranske
Copy link
Copy Markdown
Owner

@stranske stranske commented Mar 2, 2026

Sync Summary

Files Updated

  • agents-pr-health.yml: PR health scanner - periodic conflict resolution and failing check re-dispatch
  • requirements-llm.txt: Pinned LLM dependencies - required by agents-auto-pilot.yml
  • langchain_client.py: LangChain client builder - multi-provider client with slot-based fallback and configuration

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: 5ff88480d09c

Changes synced from sync-manifest.yml
Copilot AI review requested due to automatic review settings March 2, 2026 02:14
@stranske stranske added sync Automated sync from Workflows automated Automated sync from Workflows labels Mar 2, 2026
@stranske stranske temporarily deployed to agent-standard March 2, 2026 02:14 — with GitHub Actions Inactive
@stranske stranske temporarily deployed to agent-standard March 2, 2026 02:14 — with GitHub Actions Inactive
@agents-workflows-bot
Copy link
Copy Markdown
Contributor

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

@stranske stranske temporarily deployed to agent-standard March 2, 2026 02:14 — with GitHub Actions Inactive
@agents-workflows-bot
Copy link
Copy Markdown
Contributor

agents-workflows-bot bot commented Mar 2, 2026

🤖 Keepalive Loop Status

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

Current State

Metric Value
Iteration progress [----------] 0/5
Action wait (missing-agent-label)
Disposition skipped (transient)
Gate success
Tasks 0/7 complete
Timeout 45 min (default)
Timeout usage 7m elapsed (17%, 38m 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). |

@agents-workflows-bot
Copy link
Copy Markdown
Contributor

agents-workflows-bot bot commented Mar 2, 2026

Keepalive Work Log (click to expand)
# Time (UTC) Agent Action Result Files Tasks Progress Commit Gate
0 2026-03-02 02:15:28 Codex wait (missing-agent-label-transient) skipped 0 0/7
0 2026-03-02 02:16:48 Codex wait (missing-agent-label-transient) skipped 0 0/7 cancelled
0 2026-03-02 02:17:47 Codex wait (missing-agent-label-transient) skipped 0 0/7 cancelled
0 2026-03-02 02:22:00 Codex wait (missing-agent-label-transient) skipped 0 0/7 success

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 workflow automation templates from stranske/Workflows, updating the repo’s agent health workflow wrapper and aligning LLM workflow dependency pins / helper client code used by workflow automation and scripts.

Changes:

  • Added .github/workflows/agents-pr-health.yml thin-wrapper workflow that delegates to the upstream reusable PR health workflow.
  • Updated tools/requirements-llm.txt to adjust pinned LangChain dependency versions used by agents-auto-pilot.yml.
  • Refactored tools/langchain_client.py to simplify provider class imports and usage.

Reviewed changes

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

File Description
.github/workflows/agents-pr-health.yml Introduces scheduled + manual PR health scanning via upstream reusable workflow.
tools/requirements-llm.txt Updates pinned LangChain workflow dependency versions for reproducible installs.
tools/langchain_client.py Refactors LangChain client builder import/selection logic for OpenAI/Anthropic/GitHub Models.

Comment on lines +214 to +217
try:
from langchain_openai import ChatOpenAI
except ImportError:
return None
Copy link

Copilot AI Mar 2, 2026

Choose a reason for hiding this comment

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

build_chat_client now returns None immediately if langchain_openai isn't installed, even when the selected provider is Anthropics-only and langchain_anthropic is available. This makes Anthropic support implicitly depend on the OpenAI package. Consider importing ChatOpenAI only inside the GitHub/OpenAI branches (or lazy-importing per provider like src/counter_risk/chat/providers/langchain_runtime.py) so each provider only requires its own dependency.

Copilot uses AI. Check for mistakes.
try:
from langchain_openai import ChatOpenAI
except ImportError:
return []
Copy link

Copilot AI Mar 2, 2026

Choose a reason for hiding this comment

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

build_chat_clients has the same implicit dependency issue as build_chat_client: if langchain_openai is missing it returns [] even when only Anthropic clients are requested/available. If provider-specific optionality is intended, defer the langchain_openai import to the OpenAI/GitHub code paths and allow the function to still build Anthropic clients when langchain_anthropic is present.

Suggested change
return []
ChatOpenAI = None # type: ignore[assignment]

Copilot uses AI. Check for mistakes.
Comment on lines +48 to +49
dry_run: ${{ inputs.dry_run || false }}
max_prs: ${{ inputs.max_prs || 10 }}
Copy link

Copilot AI Mar 2, 2026

Choose a reason for hiding this comment

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

inputs.* context is only available for workflow_dispatch / workflow_call. Because this workflow also runs on schedule, the expressions inputs.dry_run and inputs.max_prs can fail with "Unrecognized named-value: 'inputs'" on scheduled runs. Use github.event.inputs.* (with defaults) or guard on github.event_name == 'workflow_dispatch' so scheduled executions always have valid values.

Suggested change
dry_run: ${{ inputs.dry_run || false }}
max_prs: ${{ inputs.max_prs || 10 }}
dry_run: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.dry_run || false }}
max_prs: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.max_prs || 10 }}

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

stranske commented Mar 2, 2026

Superseded by newer sync PR that includes all updates (PR health + configurable interval).

@stranske stranske closed this Mar 2, 2026
@stranske stranske deleted the sync/workflows-5ff88480d09c branch March 2, 2026 05:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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