Skip to content

fix: Update download-artifact from v7 to v4 in bridge workflow#1392

Merged
stranske merged 2 commits intomainfrom
hotfix/fix-download-artifact-version
Feb 8, 2026
Merged

fix: Update download-artifact from v7 to v4 in bridge workflow#1392
stranske merged 2 commits intomainfrom
hotfix/fix-download-artifact-version

Conversation

@stranske
Copy link
Copy Markdown
Owner

@stranske stranske commented Feb 8, 2026

Source: Issue #1372

Automated Status Summary

Scope

PR #1367 addressed issue #1365, but verification flagged CONCERNS due to gaps in how tests validate internal behavior (notably max_repair_attempts effective handling and quality_context forwarding) and potential missing/pinned dependencies. This follow-up tightens test assertions to observe real call sites (spies/mocks), verifies identity-forwarding robustly (positional + keyword), fixes a client signature mismatch, and pins dependencies for reproducible, fresh-env test runs.

Context for Agent

Related Issues/PRs

Tasks

  • Update tests/test_structured_output.py to parameterize max_repair_attempts over [0, 1, 2, 10] and assert the effective value by spying on the repair-loop invocation (capture the argument passed into the repair loop). Set expected effective values to match the production rule (clamp vs no-clamp) and add an inline comment describing that rule.
    • Define scope for: Update tests/test_structured_output.py to parameterize max_repair_attempts over `[0 (verify: tests pass)
    • Implement focused slice for: Update tests/test_structured_output.py to parameterize max_repair_attempts over `[0 (verify: tests pass)
    • Validate focused slice for: Update tests/test_structured_output.py to parameterize max_repair_attempts over `[0 (verify: tests pass)
    • 1 (verify: confirm completion in repo)
    • 2 (verify: confirm completion in repo)
    • Define scope for: assert the effective value by spying on the repair-loop invocation (capture the argument passed into the repair loop). Set expected effective values to match the production rule (clamp vs no-clamp) (verify: confirm completion in repo)
    • Implement focused slice for: assert the effective value by spying on the repair-loop invocation (capture the argument passed into the repair loop). Set expected effective values to match the production rule (clamp vs no-clamp) (verify: confirm completion in repo)
    • Validate focused slice for: assert the effective value by spying on the repair-loop invocation (capture the argument passed into the repair loop). Set expected effective values to match the production rule (clamp vs no-clamp) (verify: confirm completion in repo) add an inline comment describing that rule. (verify: confirm completion in repo)
  • Strengthen tests/test_fallback_chain_provider.py to build a FallbackChainProvider with at least two providers, call analyze_completion once with a unique sentinel quality_context, assert the selected provider method is called exactly once, and verify quality_context forwarding by identity by inspecting both call_args.args and call_args.kwargs (explicitly assert kwargs['quality_context'] is sentinel when present).
    • Define scope for: Strengthen tests/test_fallback_chain_provider.py to build a FallbackChainProvider with at least two providers (verify: tests pass)
    • Implement focused slice for: Strengthen tests/test_fallback_chain_provider.py to build a FallbackChainProvider with at least two providers (verify: tests pass)
    • Validate focused slice for: Strengthen tests/test_fallback_chain_provider.py to build a FallbackChainProvider with at least two providers (verify: tests pass)
    • Define scope for: Strengthen tests/test_fallback_chain_provider.py to build a FallbackChainProvider with call analyze_completion once with a unique sentinel quality_context (verify: tests pass)
    • Implement focused slice for: Strengthen tests/test_fallback_chain_provider.py to build a FallbackChainProvider with call analyze_completion once with a unique sentinel quality_context (verify: tests pass)
    • Validate focused slice for: Strengthen tests/test_fallback_chain_provider.py to build a FallbackChainProvider with call analyze_completion once with a unique sentinel quality_context (verify: tests pass)
    • Define scope for: Strengthen tests/test_fallback_chain_provider.py to build a FallbackChainProvider with assert the selected provider method is called exactly once (verify: tests pass)
    • Implement focused slice for: Strengthen tests/test_fallback_chain_provider.py to build a FallbackChainProvider with assert the selected provider method is called exactly once (verify: tests pass)
    • Validate focused slice for: Strengthen tests/test_fallback_chain_provider.py to build a FallbackChainProvider with assert the selected provider method is called exactly once (verify: tests pass)
    • Define scope for: Strengthen tests/test_fallback_chain_provider.py to build a FallbackChainProvider with (verify: tests pass)
    • Implement focused slice for: Strengthen tests/test_fallback_chain_provider.py to build a FallbackChainProvider with (verify: tests pass)
    • Validate focused slice for: Strengthen tests/test_fallback_chain_provider.py to build a FallbackChainProvider with (verify: tests pass) verify quality_context forwarding by identity by inspecting both call_args.args
    • Define scope for: Strengthen tests/test_fallback_chain_provider.py to build a FallbackChainProvider with call_args.kwargs (explicitly assert kwargs['quality_context'] is sentinel when present). (verify: tests pass)
    • Implement focused slice for: Strengthen tests/test_fallback_chain_provider.py to build a FallbackChainProvider with call_args.kwargs (explicitly assert kwargs['quality_context'] is sentinel when present). (verify: tests pass)
    • Validate focused slice for: Strengthen tests/test_fallback_chain_provider.py to build a FallbackChainProvider with call_args.kwargs (explicitly assert kwargs['quality_context'] is sentinel when present). (verify: tests pass)
  • Adjust tests/test_anthropic_provider.py so DummyClient.invoke accepts the positional/keyword pattern used by the provider (e.g., *args, **kwargs), and add assertions that invoke is called exactly once and that invoke.call_args.kwargs['quality_context'] is sentinel.
    • Define scope for: Adjust tests/test_anthropic_provider.py so DummyClient.invoke accepts the positional/keyword pattern used by the provider (e.g. (verify: tests pass)
    • Implement focused slice for: Adjust tests/test_anthropic_provider.py so DummyClient.invoke accepts the positional/keyword pattern used by the provider (e.g. (verify: tests pass)
    • Validate focused slice for: Adjust tests/test_anthropic_provider.py so DummyClient.invoke accepts the positional/keyword pattern used by the provider (e.g. (verify: tests pass)
    • `*args (verify: confirm completion in repo)
    • *kwargs`) (verify: confirm completion in repo)
    • Define scope for: add assertions that invoke is called exactly once (verify: confirm completion in repo)
    • Implement focused slice for: add assertions that invoke is called exactly once (verify: confirm completion in repo)
    • Validate focused slice for: add assertions that invoke is called exactly once (verify: confirm completion in repo)
    • Define scope for: that invoke.call_args.kwargs['quality_context'] is sentinel. (verify: confirm completion in repo)
    • Implement focused slice for: that invoke.call_args.kwargs['quality_context'] is sentinel. (verify: confirm completion in repo)
    • Validate focused slice for: that invoke.call_args.kwargs['quality_context'] is sentinel. (verify: confirm completion in repo)
  • Review test-suite imports and add any missing runtime dependencies to requirements.txt, pinning langchain-community and requests with exact == versions and adding any other required packages with exact pins where feasible.
    • Review test-suite imports (verify: confirm completion in repo) add any missing runtime dependencies to requirements.txt (verify: dependencies updated) pinning langchain-community (verify: dependencies updated)
    • requests with exact == versions (verify: dependencies updated)
    • Define scope for: requests with adding any other required packages with exact pins where feasible. (verify: dependencies updated)
    • Implement focused slice for: requests with adding any other required packages with exact pins where feasible. (verify: dependencies updated)
    • Validate focused slice for: requests with adding any other required packages with exact pins where feasible. (verify: dependencies updated)

Acceptance criteria

  • tests/test_structured_output.py contains a single parameterized test case over max_repair_attempts values [0, 1, 2, 10] (e.g., via pytest.mark.parametrize) and the test asserts the effective value used internally by capturing the argument passed to the repair-loop invocation (spy/mock on the repair-loop callsite, not by directly calling internal helper functions).
  • For each input value in [0, 1, 2, 10], the structured-output test asserts that the captured repair-loop argument equals the expected effective value according to the production rule (either unchanged or clamped), and the expected mapping is explicitly encoded in the test (e.g., an expected_effective parameter) rather than inferred at runtime.
  • The structured-output test includes an inline comment adjacent to the expectation that states the production rule for max_repair_attempts (e.g., “value is clamped to X” or “value is not clamped; forwarded as-is”), so that changing production behavior requires updating the comment and expected values together.
  • tests/test_fallback_chain_provider.py constructs a FallbackChainProvider using at least two distinct underlying provider instances/mocks and invokes analyze_completion(...) exactly once with a unique sentinel = object() passed as quality_context.
  • In the strengthened fallback-chain test, the selected/active underlying provider method (the one expected to handle the call) is asserted to have been called exactly once, and all other underlying provider methods are asserted not to have been called (call count == 0).
  • The fallback-chain test verifies quality_context forwarding by identity by inspecting both call_args.args and call_args.kwargs, and includes an explicit assertion call_args.kwargs['quality_context'] is sentinel when the kwarg is present.
  • In tests/test_anthropic_provider.py, DummyClient.invoke is defined with a signature that can accept the provider call pattern (must accept *args and **kwargs), so the test does not fail due to TypeError from argument mismatch.
  • The anthropic-provider test asserts DummyClient.invoke is called exactly once during the operation under test (e.g., invoke.assert_called_once()), not merely that it was called.
  • The anthropic-provider test passes a sentinel = object() as quality_context and asserts identity forwarding via DummyClient.invoke.call_args.kwargs['quality_context'] is sentinel.
  • requirements.txt contains exact version pins (using ==) for both langchain-community and requests (no ranges like >= or unpinned entries for these two packages).
  • Any additional packages required to import all modules exercised by the test suite are added to requirements.txt with exact == pins where feasible, and running python -m pytest -q in a fresh environment created from requirements.txt completes without ModuleNotFoundError.

Head SHA: 4889263
Latest Runs: ✅ success — Gate
Required: gate: ✅ success

Workflow / Job Result Logs
Agents PR meta manager ❔ in progress View run
CI Autofix Loop ✅ success View run
Gate ✅ success View run
Health 40 Sweep ✅ success View run
Health 44 Gate Branch Protection ✅ success View run
Health 45 Agents Guard ✅ success View run
Health 50 Security Scan ✅ success View run
Health 73 Template Completeness ✅ success View run
Health 74 Template Drift ✅ success View run
Maint 52 Validate Workflows ✅ success View run
PR 11 - Minimal invariant CI ✅ success View run
Selftest CI ✅ success View run
Validate Sync Manifest ✅ success View run

CRITICAL BUG FIX - both verify:create-new-pr and auto-pilot are broken

The agents-verify-to-new-pr-autopilot bridge workflow was using
actions/download-artifact@v7, which doesn't exist (latest is v4).
This was causing the bridge workflow to fail silently, preventing
auto-pilot from being dispatched for follow-up issues.

Impact:
- PR #1372: verify:create-new-pr label added but no follow-up created
- Issue #1391: Created with agents:auto-pilot label but workflow never ran

Root cause:
1. verify:create-new-pr creates follow-up issue
2. Uploads metadata artifact with upload-artifact@v6
3. Bridge workflow tries download with download-artifact@v7 → FAILS
4. Auto-pilot never gets dispatched

This is the 3rd failure of these workflows. Testing protocol:
- Run full validation before commit (done - passed)
- Create test PR to verify verify:create-new-pr flow
- Manually trigger auto-pilot for issue #1391 to verify flow

Fixes #1391
Copilot AI review requested due to automatic review settings February 8, 2026 20:13
@stranske stranske temporarily deployed to agent-high-privilege February 8, 2026 20:13 — with GitHub Actions Inactive
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

Fixes broken bridge workflows by replacing a nonexistent GitHub Action version (actions/download-artifact@v7) with the valid current major version (@v4) so the follow-up issue metadata can be downloaded and auto-pilot dispatch can proceed.

Changes:

  • Update actions/download-artifact from @v7 to @v4 in the main bridge workflow
  • Mirror the same fix in the consumer-repo workflow template

Reviewed changes

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

File Description
.github/workflows/agents-verify-to-new-pr-autopilot.yml Fixes workflow execution by using an existing download-artifact major version.
templates/consumer-repo/.github/workflows/agents-verify-to-new-pr-autopilot.yml Keeps the consumer template consistent with the corrected action version.

@stranske-keepalive
Copy link
Copy Markdown
Contributor

stranske-keepalive bot commented Feb 8, 2026

Automated Status Summary

Head SHA: d92c75e
Latest Runs: ⏳ pending — Gate
Required contexts: Gate / gate, Health 45 Agents Guard / guard
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 93.12%
Baseline 85.00%
Delta +8.12%
Minimum 70.00%
Status ✅ Pass

Top Coverage Hotspots (lowest coverage)

File Coverage Missing
src/cli_parser.py 81.8% 4
src/percentile_calculator.py 95.0% 1
src/aggregator.py 95.0% 2
src/__init__.py 100.0% 0
src/ndjson_parser.py 100.0% 0

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


Keepalive checklist

Scope

PR #1367 addressed issue #1365, but verification flagged CONCERNS due to gaps in how tests validate internal behavior (notably max_repair_attempts effective handling and quality_context forwarding) and potential missing/pinned dependencies. This follow-up tightens test assertions to observe real call sites (spies/mocks), verifies identity-forwarding robustly (positional + keyword), fixes a client signature mismatch, and pins dependencies for reproducible, fresh-env test runs.

Context for Agent

Related Issues/PRs

Tasks

  • Update tests/test_structured_output.py to parameterize max_repair_attempts over [0, 1, 2, 10] and assert the effective value by spying on the repair-loop invocation (capture the argument passed into the repair loop). Set expected effective values to match the production rule (clamp vs no-clamp) and add an inline comment describing that rule.
    • Define scope for: Update tests/test_structured_output.py to parameterize max_repair_attempts over `[0 (verify: tests pass)
    • Implement focused slice for: Update tests/test_structured_output.py to parameterize max_repair_attempts over `[0 (verify: tests pass)
    • Validate focused slice for: Update tests/test_structured_output.py to parameterize max_repair_attempts over `[0 (verify: tests pass)
    • 1 (verify: confirm completion in repo)
    • 2 (verify: confirm completion in repo)
    • Define scope for: assert the effective value by spying on the repair-loop invocation (capture the argument passed into the repair loop). Set expected effective values to match the production rule (clamp vs no-clamp) (verify: confirm completion in repo)
    • Implement focused slice for: assert the effective value by spying on the repair-loop invocation (capture the argument passed into the repair loop). Set expected effective values to match the production rule (clamp vs no-clamp) (verify: confirm completion in repo)
    • Validate focused slice for: assert the effective value by spying on the repair-loop invocation (capture the argument passed into the repair loop). Set expected effective values to match the production rule (clamp vs no-clamp) (verify: confirm completion in repo) add an inline comment describing that rule. (verify: confirm completion in repo)
  • Strengthen tests/test_fallback_chain_provider.py to build a FallbackChainProvider with at least two providers, call analyze_completion once with a unique sentinel quality_context, assert the selected provider method is called exactly once, and verify quality_context forwarding by identity by inspecting both call_args.args and call_args.kwargs (explicitly assert kwargs['quality_context'] is sentinel when present).
    • Define scope for: Strengthen tests/test_fallback_chain_provider.py to build a FallbackChainProvider with at least two providers (verify: tests pass)
    • Implement focused slice for: Strengthen tests/test_fallback_chain_provider.py to build a FallbackChainProvider with at least two providers (verify: tests pass)
    • Validate focused slice for: Strengthen tests/test_fallback_chain_provider.py to build a FallbackChainProvider with at least two providers (verify: tests pass)
    • Define scope for: Strengthen tests/test_fallback_chain_provider.py to build a FallbackChainProvider with call analyze_completion once with a unique sentinel quality_context (verify: tests pass)
    • Implement focused slice for: Strengthen tests/test_fallback_chain_provider.py to build a FallbackChainProvider with call analyze_completion once with a unique sentinel quality_context (verify: tests pass)
    • Validate focused slice for: Strengthen tests/test_fallback_chain_provider.py to build a FallbackChainProvider with call analyze_completion once with a unique sentinel quality_context (verify: tests pass)
    • Define scope for: Strengthen tests/test_fallback_chain_provider.py to build a FallbackChainProvider with assert the selected provider method is called exactly once (verify: tests pass)
    • Implement focused slice for: Strengthen tests/test_fallback_chain_provider.py to build a FallbackChainProvider with assert the selected provider method is called exactly once (verify: tests pass)
    • Validate focused slice for: Strengthen tests/test_fallback_chain_provider.py to build a FallbackChainProvider with assert the selected provider method is called exactly once (verify: tests pass)
    • Define scope for: Strengthen tests/test_fallback_chain_provider.py to build a FallbackChainProvider with (verify: tests pass)
    • Implement focused slice for: Strengthen tests/test_fallback_chain_provider.py to build a FallbackChainProvider with (verify: tests pass)
    • Validate focused slice for: Strengthen tests/test_fallback_chain_provider.py to build a FallbackChainProvider with (verify: tests pass) verify quality_context forwarding by identity by inspecting both call_args.args
    • Define scope for: Strengthen tests/test_fallback_chain_provider.py to build a FallbackChainProvider with call_args.kwargs (explicitly assert kwargs['quality_context'] is sentinel when present). (verify: tests pass)
    • Implement focused slice for: Strengthen tests/test_fallback_chain_provider.py to build a FallbackChainProvider with call_args.kwargs (explicitly assert kwargs['quality_context'] is sentinel when present). (verify: tests pass)
    • Validate focused slice for: Strengthen tests/test_fallback_chain_provider.py to build a FallbackChainProvider with call_args.kwargs (explicitly assert kwargs['quality_context'] is sentinel when present). (verify: tests pass)
  • Adjust tests/test_anthropic_provider.py so DummyClient.invoke accepts the positional/keyword pattern used by the provider (e.g., *args, **kwargs), and add assertions that invoke is called exactly once and that invoke.call_args.kwargs['quality_context'] is sentinel.
    • Define scope for: Adjust tests/test_anthropic_provider.py so DummyClient.invoke accepts the positional/keyword pattern used by the provider (e.g. (verify: tests pass)
    • Implement focused slice for: Adjust tests/test_anthropic_provider.py so DummyClient.invoke accepts the positional/keyword pattern used by the provider (e.g. (verify: tests pass)
    • Validate focused slice for: Adjust tests/test_anthropic_provider.py so DummyClient.invoke accepts the positional/keyword pattern used by the provider (e.g. (verify: tests pass)
    • `*args (verify: confirm completion in repo)
    • *kwargs`) (verify: confirm completion in repo)
    • Define scope for: add assertions that invoke is called exactly once (verify: confirm completion in repo)
    • Implement focused slice for: add assertions that invoke is called exactly once (verify: confirm completion in repo)
    • Validate focused slice for: add assertions that invoke is called exactly once (verify: confirm completion in repo)
    • Define scope for: that invoke.call_args.kwargs['quality_context'] is sentinel. (verify: confirm completion in repo)
    • Implement focused slice for: that invoke.call_args.kwargs['quality_context'] is sentinel. (verify: confirm completion in repo)
    • Validate focused slice for: that invoke.call_args.kwargs['quality_context'] is sentinel. (verify: confirm completion in repo)
  • Review test-suite imports and add any missing runtime dependencies to requirements.txt, pinning langchain-community and requests with exact == versions and adding any other required packages with exact pins where feasible.
    • Review test-suite imports (verify: confirm completion in repo) add any missing runtime dependencies to requirements.txt (verify: dependencies updated) pinning langchain-community (verify: dependencies updated)
    • requests with exact == versions (verify: dependencies updated)
    • Define scope for: requests with adding any other required packages with exact pins where feasible. (verify: dependencies updated)
    • Implement focused slice for: requests with adding any other required packages with exact pins where feasible. (verify: dependencies updated)
    • Validate focused slice for: requests with adding any other required packages with exact pins where feasible. (verify: dependencies updated)

Acceptance criteria

  • tests/test_structured_output.py contains a single parameterized test case over max_repair_attempts values [0, 1, 2, 10] (e.g., via pytest.mark.parametrize) and the test asserts the effective value used internally by capturing the argument passed to the repair-loop invocation (spy/mock on the repair-loop callsite, not by directly calling internal helper functions).
  • For each input value in [0, 1, 2, 10], the structured-output test asserts that the captured repair-loop argument equals the expected effective value according to the production rule (either unchanged or clamped), and the expected mapping is explicitly encoded in the test (e.g., an expected_effective parameter) rather than inferred at runtime.
  • The structured-output test includes an inline comment adjacent to the expectation that states the production rule for max_repair_attempts (e.g., “value is clamped to X” or “value is not clamped; forwarded as-is”), so that changing production behavior requires updating the comment and expected values together.
  • tests/test_fallback_chain_provider.py constructs a FallbackChainProvider using at least two distinct underlying provider instances/mocks and invokes analyze_completion(...) exactly once with a unique sentinel = object() passed as quality_context.
  • In the strengthened fallback-chain test, the selected/active underlying provider method (the one expected to handle the call) is asserted to have been called exactly once, and all other underlying provider methods are asserted not to have been called (call count == 0).
  • The fallback-chain test verifies quality_context forwarding by identity by inspecting both call_args.args and call_args.kwargs, and includes an explicit assertion call_args.kwargs['quality_context'] is sentinel when the kwarg is present.
  • In tests/test_anthropic_provider.py, DummyClient.invoke is defined with a signature that can accept the provider call pattern (must accept *args and **kwargs), so the test does not fail due to TypeError from argument mismatch.
  • The anthropic-provider test asserts DummyClient.invoke is called exactly once during the operation under test (e.g., invoke.assert_called_once()), not merely that it was called.
  • The anthropic-provider test passes a sentinel = object() as quality_context and asserts identity forwarding via DummyClient.invoke.call_args.kwargs['quality_context'] is sentinel.
  • requirements.txt contains exact version pins (using ==) for both langchain-community and requests (no ranges like >= or unpinned entries for these two packages).
  • Any additional packages required to import all modules exercised by the test suite are added to requirements.txt with exact == pins where feasible, and running python -m pytest -q in a fresh environment created from requirements.txt completes without ModuleNotFoundError.

@stranske-keepalive
Copy link
Copy Markdown
Contributor

stranske-keepalive bot commented Feb 8, 2026

🤖 Keepalive Loop Status

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

Current State

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

REAL FIX - Previous attempts were wrong.

Root cause of failures:
- actions/download-artifact@v4 does NOT support 'run-id' parameter
- Cannot download artifacts from different workflow runs with official action
- Need third-party action dawidd6/action-download-artifact for this

Changes:
- Switch from actions/download-artifact@v4 to dawidd6/action-download-artifact@v6
- Use correct parameter names: run_id (underscore), github_token (underscore)
- Add workflow parameter to identify source workflow

This should actually work now for:
- PR #1372: verify:create-new-pr label → follow-up issue creation
- Issue #1391: agents:auto-pilot label → auto-pilot trigger

Testing: Will verify workflows run successfully after merge.
@stranske stranske temporarily deployed to agent-high-privilege February 8, 2026 20:39 — with GitHub Actions Inactive
@stranske stranske merged commit ac5ddb0 into main Feb 8, 2026
115 checks passed
@stranske stranske deleted the hotfix/fix-download-artifact-version branch February 8, 2026 20:43
stranske added a commit that referenced this pull request Feb 8, 2026
Two bugs fixed:

1. agents-verify-to-new-pr.yml: duplicate 'const prBody' declaration
   (lines 156 and 216) caused SyntaxError at runtime, making the
   upstream workflow fail every time. Bridge workflow then skipped
   because upstream never succeeded. This broke verify:create-new-pr
   and agents:auto-pilot label automation.
   Fix: remove the redundant second declaration; prBody from line 156
   is already in scope.

2. agents-verify-to-new-pr-autopilot.yml: restore actions/download-artifact@v7
   (repo standard, used successfully by maint-46-post-ci, pr-00-gate,
   maint-68-sync-consumer-repos) replacing dawidd6/action-download-artifact@v6
   third-party action introduced by mistake in PR #1392.
   Parameter names updated: run_id→run-id, github_token→github-token,
   removed unnecessary workflow param.

All changes applied to both .github/workflows/ and templates/consumer-repo/.
stranske added a commit that referenced this pull request Feb 8, 2026
…v7 (#1394)

Two bugs fixed:

1. agents-verify-to-new-pr.yml: duplicate 'const prBody' declaration
   (lines 156 and 216) caused SyntaxError at runtime, making the
   upstream workflow fail every time. Bridge workflow then skipped
   because upstream never succeeded. This broke verify:create-new-pr
   and agents:auto-pilot label automation.
   Fix: remove the redundant second declaration; prBody from line 156
   is already in scope.

2. agents-verify-to-new-pr-autopilot.yml: restore actions/download-artifact@v7
   (repo standard, used successfully by maint-46-post-ci, pr-00-gate,
   maint-68-sync-consumer-repos) replacing dawidd6/action-download-artifact@v6
   third-party action introduced by mistake in PR #1392.
   Parameter names updated: run_id→run-id, github_token→github-token,
   removed unnecessary workflow param.

All changes applied to both .github/workflows/ and templates/consumer-repo/.
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