Conversation
Automated sync from stranske/Workflows Template hash: 5ff88480d09c Changes synced from sync-manifest.yml
🤖 Keepalive Loop StatusPR #311 | Agent: Codex | Iteration 0/5 Current State
🔍 Failure Classification| Error type | infrastructure | |
Keepalive Work Log (click to expand)
|
There was a problem hiding this comment.
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.ymlthin-wrapper workflow that delegates to the upstream reusable PR health workflow. - Updated
tools/requirements-llm.txtto adjust pinned LangChain dependency versions used byagents-auto-pilot.yml. - Refactored
tools/langchain_client.pyto 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. |
| try: | ||
| from langchain_openai import ChatOpenAI | ||
| except ImportError: | ||
| return None |
There was a problem hiding this comment.
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.
| try: | ||
| from langchain_openai import ChatOpenAI | ||
| except ImportError: | ||
| return [] |
There was a problem hiding this comment.
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.
| return [] | |
| ChatOpenAI = None # type: ignore[assignment] |
| dry_run: ${{ inputs.dry_run || false }} | ||
| max_prs: ${{ inputs.max_prs || 10 }} |
There was a problem hiding this comment.
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.
| 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 }} |
|
Superseded by newer sync PR that includes all updates (PR health + configurable interval). |
Sync Summary
Files Updated
Files Skipped
Review Checklist
Source: stranske/Workflows
Manifest:
.github/sync-manifest.yml