Skip to content

Issue #2742: Propagate keepalive execution profiles - #2746

Merged
stranske merged 6 commits into
mainfrom
codex/issue-2742-execution-profiles
Jul 10, 2026
Merged

Issue #2742: Propagate keepalive execution profiles#2746
stranske merged 6 commits into
mainfrom
codex/issue-2742-execution-profiles

Conversation

@stranske

@stranske stranske commented Jul 10, 2026

Copy link
Copy Markdown
Owner

Source: Issue #2742

Closes #2742

Automated Status Summary

Scope

Workflows is close to supporting remote model choice but does not wire it through Keepalive. On verified origin/main, .github/workflows/reusable-codex-run.yml:55-64 accepts codex_model, resolves/falls back it at :700-746, runs Codex with --model at :925-979, and emits selected-model details at :990-1000. The Keepalive caller at .github/workflows/agents-keepalive-loop.yml:687-715 does not pass that input. Routing remains agent-label only (docs/keepalive/MULTI_AGENT_ROUTING.md:10-21), and .github/agents/registry.yml has no registry-backed execution profile.

Missing behavior: a local provider/model decision cannot reach the remote coding worker or return causally valid requested/resolved worker identity; evaluator telemetry can currently be mistaken for worker identity.

Tasks

  • Add registry-backed allowed execution profile IDs and fallback chains to .github/agents/registry.yml or a companion versioned registry, including exact model, runner, capacity-pool references, safety defaults, and lifecycle state.
  • Add a validated profile input to .github/workflows/agents-keepalive-loop.yml and pass the corresponding exact model into .github/workflows/reusable-codex-run.yml; reject unknown profiles before worker execution.
  • Extend the runner's langsmith-fleet/v1 artifact to emit operation role worker, profile ID, requested model, selected/resolved model, fallback reason, and runner/CLI version separately from evaluator/verifier traces.
  • Update config/model_registry.json and config/llm_slots.json documentation so auxiliary judge models are not confused with coding-worker profiles.
  • Update templates/consumer-repo workflow/registry copies and Workflows freshness/sync tests from the canonical source.

Acceptance criteria

  • A Workflows keepalive contract test proves a known profile reaches reusable-codex-run.yml and its exact model reaches the Codex command.
  • An unknown profile fails before any coding worker step starts and emits a bounded registry-validation reason.
  • A fallback fixture emits both requested and selected/resolved worker models plus fallback reason as a worker attempt; evaluator traces remain separate.
  • Template freshness tests prove the root workflow, consumer workflow, and registry contract remain synchronized.
  • Deliberate break: in the call currently rooted at .github/workflows/agents-keepalive-loop.yml:687-715, delete only the new execution_profile/codex_model forwarding line; run exact test .github/scripts/__tests__/keepalive-model-profile-contract.test.js::profile reaches codex runner via node --test .github/scripts/__tests__/keepalive-model-profile-contract.test.js --test-name-pattern='profile reaches codex runner'; observe AssertionError: expected selected profile model in reusable runner inputs; revert and show the exact test passes.

Summary by CodeRabbit

  • New Features

    • Added configurable Codex execution profiles, including default and fast options.
    • Keepalive workflows now accept an execution profile and route model selections accordingly.
    • Added configurable fallback models when the preferred model is unavailable.
    • Workflow results now report the selected profile, model, and selection details.
  • Bug Fixes

    • Added validation and clear errors for unknown or incomplete execution profiles.
  • Documentation

    • Clarified the distinction between coding-worker profiles and auxiliary evaluator model catalogs.

Copilot AI review requested due to automatic review settings July 10, 2026 04:11
@stranske stranske added agent:codex Agent-created issues from Codex agents:keepalive Use to initiate keepalive functionality with agents autofix Opt-in automated formatting & lint remediation labels Jul 10, 2026
@coderabbitai

coderabbitai Bot commented Jul 10, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 4 minutes

Your organization has reached its usage spending cap. Adjust your spending cap in the billing tab.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: a09a66ef-fa5a-42ff-9f0b-191fc96a7d32

📥 Commits

Reviewing files that changed from the base of the PR and between b29a48a and c016aab.

📒 Files selected for processing (11)
  • .github/scripts/__tests__/agent-registry.test.js
  • .github/scripts/__tests__/keepalive-model-profile-contract.test.js
  • .github/scripts/agent_registry.js
  • .github/scripts/keepalive_loop.js
  • .github/workflows/reusable-codex-run.yml
  • config/model_registry.json
  • docs/ci/WORKFLOW_OUTPUTS.md
  • templates/consumer-repo/.github/scripts/agent_registry.js
  • templates/consumer-repo/.github/scripts/keepalive_loop.js
  • templates/consumer-repo/config/model_registry.json
  • tests/workflows/test_workflow_llm_installs.py
📝 Walkthrough

Walkthrough

Adds Codex execution profiles to agent registries, validates and resolves selected profiles during keepalive evaluation, and propagates profile and model fallback data through the keepalive and reusable Codex workflows with contract tests.

Changes

Execution profile routing

Layer / File(s) Summary
Registry contracts and resolution
.github/agents/registry.yml, .github/scripts/agent_registry.js, templates/consumer-repo/.github/..., config/*.json
Defines Codex profiles, validates required fields and agent references, resolves profile IDs, and documents the separation between worker profiles and evaluator catalogs.
Keepalive profile resolution
.github/scripts/keepalive_loop.js, templates/consumer-repo/.github/scripts/keepalive_loop.js
Normalizes profile configuration, resolves the requested profile, enforces Codex routing, and returns resolved profile data.
Keepalive workflow propagation
.github/workflows/agents-keepalive-loop.yml, .github/scripts/__tests__/keepalive-model-profile-contract.test.js
Adds the workflow input and forwards resolved profile and model fields to the reusable runner, with workflow contract coverage.
Reusable runner model telemetry
.github/workflows/reusable-codex-run.yml
Adds fallback-model input and exposes worker profile, requested-model, selected-model, and selection-reason outputs.

Estimated code review effort: 4 (Complex) | ~45 minutes

Possibly related issues

  • #2742 — Directly covers execution-profile propagation, validation, fallback handling, telemetry, documentation, and consumer-template synchronization.

Suggested labels: codex-automation, github:actions, sync, automation

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: propagating keepalive execution profiles.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/issue-2742-execution-profiles

Comment @coderabbitai help to get the list of available commands.

@stranske-keepalive

stranske-keepalive Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

🤖 Keepalive Loop Status

PR #2746 | Agent: Codex | Iteration 0/12

Current State

Metric Value
Iteration progress [----------] 0/12
Action skip (needs-human)
Disposition skipped
Gate success
Tasks 0/10 complete
Timeout 45 min (default)
Timeout usage 13m elapsed (29%, 32m remaining)
Keepalive ✅ enabled
Autofix ❌ disabled

🔍 Failure Classification

| Error type | infrastructure |
| Error category | unknown |
| Suggested recovery | Capture logs and context; retry once and escalate if the issue persists. |

⚠️ Failure Tracking

| Consecutive failures | 5/3 |
| Reason | agent-run-failed |

@stranske-keepalive

stranske-keepalive Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor
Keepalive Work Log (click to expand)
# Time (UTC) Agent Action Result Files Tasks Progress Commit Gate
0 2026-07-10 04:12:09 Codex wait (gate-cancelled-transient-transient) skipped 0 0/10 cancelled
0 2026-07-10 04:12:51 Codex run (agent-run-skipped) skipped 0 0/10 cancelled
0 2026-07-10 04:13:56 Codex wait (gate-not-success) skipped 0 0/10 failure
0 2026-07-10 04:30:03 Codex run (agent-run-failed) failure 1 file(s) 0 0/10 cancelled
0 2026-07-10 04:33:53 Codex run (agent-run-failed) failure 1 file(s) 0 0/10 cancelled
0 2026-07-10 04:36:45 Codex run (agent-run-failed-repeat) failure 1 file(s) 0 0/10 cancelled
0 2026-07-10 04:37:20 Codex skip (needs-human) skipped 0 0/10 failure
0 2026-07-10 04:37:57 Codex skip (needs-human) skipped 0 0/10 cancelled
0 2026-07-10 04:41:23 Codex skip (needs-human) skipped 0 0/10 failure
0 2026-07-10 05:11:23 Codex skip (needs-human) skipped 0 0/10 success
0 2026-07-10 05:22:57 Codex run (agent-run-failed-repeat) retry failure 1 file(s) 0 0/10 success
0 2026-07-10 05:24:12 Codex skip (needs-human) retry skipped 0 0/10 cancelled
0 2026-07-10 05:27:39 Codex skip (needs-human) retry skipped 0 0/10 success
0 2026-07-10 05:32:43 Codex run (agent-run-failed-repeat) retry failure 1 file(s) 0 0/10 a537aa3
0 2026-07-10 05:33:18 Codex skip (needs-human) skipped 0 0/10 cancelled
0 2026-07-10 05:33:24 Codex skip (needs-human) retry skipped 0 0/10 cancelled
0 2026-07-10 05:34:21 Codex skip (needs-human) skipped 0 0/10 cancelled
0 2026-07-10 05:46:01 Codex skip (needs-human) skipped 0 0/10 success

@github-actions

github-actions Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Runner dispatch state for codex on PR #2746. Do not edit.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b29a48a06c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/scripts/keepalive_loop.js Outdated
Comment thread .github/workflows/reusable-codex-run.yml
@stranske
stranske temporarily deployed to agent-high-privilege July 10, 2026 04:16 — with GitHub Actions Inactive

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

Propagates a registry-backed “execution profile” through the keepalive evaluation and into the Codex reusable runner so that the requested worker model (and fallback chain) can be validated early and forwarded into the remote Codex invocation, while also clarifying that config/model_registry.json / config/llm_slots.json are evaluator/judge catalogs (not worker profiles).

Changes:

  • Add execution_profiles to the agent registry plus JS helpers to validate/resolve them, and plumb the resolved profile through keepalive evaluation outputs.
  • Forward execution_profile, codex_model, and codex_fallback_models into reusable-codex-run.yml, and expose worker model/profile telemetry as reusable-workflow outputs.
  • Add contract/unit tests covering profile resolution and keepalive→reusable forwarding, and annotate model/slot JSON configs with “purpose” fields.

Reviewed changes

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

Show a summary per file
File Description
.github/agents/registry.yml Introduces execution_profiles (codex-default / codex-fast) in the canonical registry.
.github/scripts/agent_registry.js Adds validation + resolveExecutionProfile() to load and enforce profile contracts.
.github/scripts/keepalive_loop.js Normalizes execution_profile, resolves/validates it during keepalive evaluation, and surfaces it in results.
.github/workflows/agents-keepalive-loop.yml Adds workflow input and forwards resolved profile/model/fallback outputs into the Codex reusable call.
.github/workflows/reusable-codex-run.yml Adds inputs for fallback models + execution profile ID and exposes worker telemetry outputs; wires fallback models into model-resolution env.
.github/scripts/__tests__/keepalive-model-profile-contract.test.js Adds a contract test to prevent accidental removal of the new forwarding.
.github/scripts/__tests__/agent-registry.test.js Adds tests for profile resolution and unknown-profile rejection.
config/model_registry.json Adds a “purpose” field clarifying it is an auxiliary judge/evaluator catalog.
config/llm_slots.json Adds a “purpose” field clarifying slots are evaluator/judge-only.
templates/consumer-repo/.github/agents/registry.yml Mirrors registry execution profile additions in the consumer template.
templates/consumer-repo/.github/scripts/agent_registry.js Mirrors profile validation/resolution helpers in the consumer template.
templates/consumer-repo/.github/scripts/keepalive_loop.js Mirrors keepalive execution-profile normalization/resolution in the consumer template.
templates/consumer-repo/config/model_registry.json Mirrors the “purpose” clarification in the consumer template.
templates/consumer-repo/config/llm_slots.json Mirrors the “purpose” clarification in the consumer template.

Comment thread .github/scripts/__tests__/keepalive-model-profile-contract.test.js
Comment thread .github/workflows/reusable-codex-run.yml

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 5

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.github/workflows/reusable-codex-run.yml (1)

727-759: 🎯 Functional Correctness | 🔴 Critical | ⚡ Quick win

Fallback model chain is dropped for any profile besides codex-default.

candidates only picks up $FALLBACK_CODEX_MODELS when "$model" = "$DEFAULT_CODEX_MODEL" (the hardcoded gpt-5.5) or when the model matches *-codex*. For the registry's codex-fast profile (model=gpt-5.4, fallback_model=gpt-5.5), codex_model resolves to gpt-5.4, which matches neither branch, so candidates stays just "gpt-5.4" — the profile's fallback model is never tried if the primary model is unavailable. This silently defeats the fallback propagation this PR is meant to add for any non-default execution profile.

🐛 Proposed fix: always append the resolved fallback chain
           candidates="$model"
-          if [ "$model" = "$DEFAULT_CODEX_MODEL" ]; then
-            candidates="$DEFAULT_CODEX_MODEL $FALLBACK_CODEX_MODELS"
-          fi
+          if [ -n "${FALLBACK_CODEX_MODELS:-}" ]; then
+            candidates="$model $FALLBACK_CODEX_MODELS"
+          fi
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/reusable-codex-run.yml around lines 727 - 759, Always
append FALLBACK_CODEX_MODELS to candidates after resolving the requested or
default model, rather than only when model equals DEFAULT_CODEX_MODEL or matches
the unsupported *-codex* branch. Update the candidates construction in the
“Resolve Codex run model” step so profiles such as codex-fast retain their
primary model followed by the configured fallback chain, while preserving the
specialized-model normalization behavior.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/agents/registry.yml:
- Around line 8-25: validateExecutionProfile() must verify that each execution
profile’s model and fallback_model exists in config/model_registry.json instead
of only checking non-empty values. Load or reuse the model registry during
validation, reject unknown model identifiers with a clear validation error, and
preserve the existing runner and other field checks.

In @.github/scripts/__tests__/keepalive-model-profile-contract.test.js:
- Around line 14-53: Add a runtime-focused test alongside the existing workflow
contract tests that exercises the “Resolve Codex run model” candidate-building
logic in reusable-codex-run.yml, covering a non-default requested model with
configured fallback models and asserting the fallback chain is applied. Reuse
the workflow’s actual shell logic or extract it into a testable helper, and
ensure the test would fail if fallbacks are only applied when the request equals
the hardcoded default.

In @.github/scripts/keepalive_loop.js:
- Around line 2840-2858: Resolve and validate the execution profile only for
actions that dispatch work, such as run, fix, or conflict, rather than
unconditionally for every keepalive action. Update the execution-profile block
around requestedExecutionProfile and the dispatch logic near its later use so
skip, wait, stop, defer, and review paths bypass it. Replace the hard throw in
the profile-resolution catch with graceful degradation consistent with the
existing agent-routing try/catch, logging the error and returning the
appropriate non-dispatch result instead of escaping evaluateKeepaliveLoop.

In @.github/workflows/agents-keepalive-loop.yml:
- Around line 34-38: Add the execution_profile workflow input to the consumer
template’s agents-keepalive-loop workflow, matching the definition in the source
workflow: description, optional required flag, codex-default value, and string
type.

In `@templates/consumer-repo/.github/scripts/keepalive_loop.js`:
- Around line 2840-2858: Update the execution-profile handling around
requestedExecutionProfile and resolveExecutionProfile so it only runs for run,
fix, and conflict actions; skip profile resolution and validation for skip,
wait, and stop paths. Make profile errors non-fatal for those non-execution
actions, and apply the identical control flow and error handling used to fix the
main keepalive_loop.js copy so both implementations remain synchronized.

---

Outside diff comments:
In @.github/workflows/reusable-codex-run.yml:
- Around line 727-759: Always append FALLBACK_CODEX_MODELS to candidates after
resolving the requested or default model, rather than only when model equals
DEFAULT_CODEX_MODEL or matches the unsupported *-codex* branch. Update the
candidates construction in the “Resolve Codex run model” step so profiles such
as codex-fast retain their primary model followed by the configured fallback
chain, while preserving the specialized-model normalization behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 17940123-00f4-4d97-b551-a38d2eb41fa4

📥 Commits

Reviewing files that changed from the base of the PR and between f3036c1 and b29a48a.

📒 Files selected for processing (14)
  • .github/agents/registry.yml
  • .github/scripts/__tests__/agent-registry.test.js
  • .github/scripts/__tests__/keepalive-model-profile-contract.test.js
  • .github/scripts/agent_registry.js
  • .github/scripts/keepalive_loop.js
  • .github/workflows/agents-keepalive-loop.yml
  • .github/workflows/reusable-codex-run.yml
  • config/llm_slots.json
  • config/model_registry.json
  • templates/consumer-repo/.github/agents/registry.yml
  • templates/consumer-repo/.github/scripts/agent_registry.js
  • templates/consumer-repo/.github/scripts/keepalive_loop.js
  • templates/consumer-repo/config/llm_slots.json
  • templates/consumer-repo/config/model_registry.json

Comment thread .github/agents/registry.yml
Comment thread .github/scripts/__tests__/keepalive-model-profile-contract.test.js
Comment thread .github/scripts/keepalive_loop.js Outdated
Comment thread .github/workflows/agents-keepalive-loop.yml
Comment thread templates/consumer-repo/.github/scripts/keepalive_loop.js Outdated
@stranske
stranske temporarily deployed to agent-high-privilege July 10, 2026 04:27 — with GitHub Actions Inactive
Comment thread .github/workflows/reusable-codex-run.yml
@stranske

Copy link
Copy Markdown
Owner Author

Closer review-fix update for #2746 pushed in commits 757d7aaf and 25fcde83.

Addressed review findings:

  • workflow_dispatch execution profiles now win when the PR body has no profile config, and profile validation only runs for Codex execution actions (run/fix/conflict) rather than wait/skip/stop paths.
  • Non-default profile fallback chains are now attempted by reusable-codex-run.yml; the candidate list includes the selected model plus the supplied fallback models with duplicates removed.
  • The Codex runner now emits and uploads a langsmith-fleet/v1 worker attempt artifact with operation_role: worker, requested/selected model, fallback models, profile ID, runner, and CLI version.
  • Execution profile model / fallback_model values are cross-checked against config/model_registry.json; added the missing gpt-5.5 catalog entry and mirrored registry/catalog changes into the consumer template.
  • The template workflow-input comment appears stale for this repo state: there is no templates/consumer-repo/.github/workflows/agents-keepalive-loop.yml; the mirrored template script files were updated instead.

Validation run locally:

  • node --test .github/scripts/__tests__/agent-registry.test.js .github/scripts/__tests__/keepalive-model-profile-contract.test.js -> 33 passed
  • python -m pytest -q tests/scripts/test_validate_workflow_yaml.py tests/workflows/test_reusable_run_shared_base.py tests/workflows/test_sync_manifest_delivery.py tests/workflows/test_workflow_agents_consolidation.py -> 78 passed
  • git diff --check -> passed

@stranske
stranske temporarily deployed to agent-high-privilege July 10, 2026 04:31 — with GitHub Actions Inactive
@stranske
stranske temporarily deployed to agent-high-privilege July 10, 2026 04:32 — with GitHub Actions Inactive
@agents-workflows-bot agents-workflows-bot Bot added agent:needs-attention Agent needs human review or intervention needs-human Requires human intervention or review labels Jul 10, 2026
@agents-workflows-bot
agents-workflows-bot Bot temporarily deployed to agent-high-privilege July 10, 2026 04:37 Inactive
@stranske
stranske temporarily deployed to agent-high-privilege July 10, 2026 05:06 — with GitHub Actions Inactive
@agents-workflows-bot

Copy link
Copy Markdown
Contributor

🤖 Bot Comment Handler

  • Agent: codex
  • Bot comments to address: 8

The agent has been assigned to this PR to address the bot review comments.

Instructions for agent

  1. Implement suggested fixes that improve the code
  2. Skip suggestions that don't apply (note why in your response)

The bot comment handler workflow has prepared context in the artifacts.

@stranske stranske added agent:retry Add to trigger agent retry after rate limit or pause and removed agent:needs-attention Agent needs human review or intervention needs-human Requires human intervention or review labels Jul 10, 2026
@stranske
stranske temporarily deployed to agent-high-privilege July 10, 2026 05:17 — with GitHub Actions Inactive
@agents-workflows-bot agents-workflows-bot Bot added agent:needs-attention Agent needs human review or intervention needs-human Requires human intervention or review labels Jul 10, 2026
@agents-workflows-bot
agents-workflows-bot Bot temporarily deployed to agent-high-privilege July 10, 2026 05:23 Inactive
@stranske stranske removed needs-human Requires human intervention or review agent:needs-attention Agent needs human review or intervention labels Jul 10, 2026
@stranske
stranske merged commit 3d04259 into main Jul 10, 2026
139 of 149 checks passed
@stranske
stranske deleted the codex/issue-2742-execution-profiles branch July 10, 2026 05:31
@stranske stranske added the verify:compare Compare multiple LLM evaluations label Jul 10, 2026
@stranske
stranske temporarily deployed to agent-standard July 10, 2026 05:31 — with GitHub Actions Inactive
@stranske
stranske temporarily deployed to agent-high-privilege July 10, 2026 05:31 — with GitHub Actions Inactive
@stranske
stranske temporarily deployed to agent-standard July 10, 2026 05:31 — with GitHub Actions Inactive
@stranske
stranske temporarily deployed to agent-standard July 10, 2026 05:32 — with GitHub Actions Inactive
@agents-workflows-bot agents-workflows-bot Bot added agent:needs-attention Agent needs human review or intervention needs-human Requires human intervention or review labels Jul 10, 2026
@agents-workflows-bot
agents-workflows-bot Bot temporarily deployed to agent-high-privilege July 10, 2026 05:33 Inactive
@github-actions

Copy link
Copy Markdown
Contributor

Provider Comparison Report

Provider Summary

Provider Model Verdict Confidence Summary
openai gpt-5.4 PASS 90% The merged changes appear to satisfy the documented acceptance criteria. The implementation adds registry-backed execution profiles to the agent registry and template copy, extends the keepalive wo...
anthropic claude-sonnet-4-6 PASS 68% The PR addresses all five acceptance criteria at the structural level: execution profiles are added to registry.yml, profile validation is added to agent_registry.js and keepalive_loop.js, the keep...
📋 Full Provider Details (click to expand)

openai

  • Model: gpt-5.4
  • Verdict: PASS
  • Confidence: 90%
  • Scores:
    • Correctness: 9.0/10
    • Completeness: 9.0/10
    • Quality: 8.0/10
    • Testing: 9.0/10
    • Risks: 8.0/10
  • Summary: The merged changes appear to satisfy the documented acceptance criteria. The implementation adds registry-backed execution profiles to the agent registry and template copy, extends the keepalive workflow and keepalive_loop script to accept and validate an execution_profile, and forwards the resolved exact codex model into reusable-codex-run.yml. The reusable runner was updated to emit worker-oriented telemetry including requested/resolved model details and fallback reason, addressing the worker/evaluator trace separation requirement. Documentation/config updates to model_registry.json and llm_slots.json clarify worker profiles versus auxiliary judge models. Completeness is strong: the PR also updates template copies and freshness/sync coverage. Testing is notably aligned with the acceptance criteria: new registry tests, a keepalive-model-profile contract test covering profile-to-codex forwarding, and updated sync tests for workflow/template consistency. Based on the code changes described, known profiles should reach the reusable runner, unknown profiles should fail before worker execution with bounded validation, fallback telemetry is emitted with worker identity fields, and template synchronization is enforced.
  • Concerns:
    • The review is based on the provided diff summary/context rather than a full line-by-line inspection of every modified file, so minor implementation details could be missed.
    • Registry/profile behavior now depends on duplicated canonical/template files staying aligned; tests were updated for freshness/sync, but this remains an ongoing maintenance risk.

anthropic

  • Model: claude-sonnet-4-6
  • Verdict: PASS
  • Confidence: 68%
  • Scores:
    • Correctness: 7.0/10
    • Completeness: 7.0/10
    • Quality: 7.0/10
    • Testing: 7.0/10
    • Risks: 7.0/10
  • Summary: The PR addresses all five acceptance criteria at the structural level: execution profiles are added to registry.yml, profile validation is added to agent_registry.js and keepalive_loop.js, the keepalive workflow gains a profile input that forwards to reusable-codex-run.yml, the contract test file exists with the correct name for the deliberate-break scenario, template files are synchronized, and config documentation is updated. The 16 changed files map cleanly to all required task areas. However, the truncated diff prevents full verification of implementation correctness - particularly whether the deliberate-break test correctly asserts the expected AssertionError, whether fallback telemetry is properly separated from evaluator traces, and whether all required registry fields are present. The selftest-ci.yml passed with all 5 jobs succeeding including JavaScript Tests and Lint/Format/YAML Validation, providing reasonable confidence the tests are syntactically correct and passing.
  • Concerns:
    • The diff summary is truncated and actual file contents cannot be fully verified - particularly the test implementations in keepalive-model-profile-contract.test.js cannot be confirmed to correctly implement the deliberate-break scenario as specified in AC5.
    • pr-00-gate.yml was cancelled; while post-merge CI status is noted as irrelevant, this means the primary gate validation did not complete on this commit.
    • Cannot confirm the langsmith-fleet/v1 artifact extension fully emits all required fields (operation role 'worker', profile ID, requested model, selected/resolved model, fallback reason, runner/CLI version) separately from evaluator/verifier traces as required by AC3.
    • Template freshness test changes in tests/workflows/test_workflow_llm_installs.py (+16/-6) cannot be verified to actually enforce synchronization between root and consumer-repo templates.
    • The registry.yml additions (+18 lines each in root and template) cannot be confirmed to include all required fields: exact model, runner, capacity-pool references, safety defaults, and lifecycle state.

Agreement

  • Verdict: PASS (all providers)
  • Quality: scores within 1 point (avg 7.5/10, range 7.0-8.0)
  • Risks: scores within 1 point (avg 7.5/10, range 7.0-8.0)

Disagreement

Dimension openai anthropic
Correctness 9.0/10 7.0/10
Completeness 9.0/10 7.0/10
Testing 9.0/10 7.0/10

Unique Insights

  • openai: The review is based on the provided diff summary/context rather than a full line-by-line inspection of every modified file, so minor implementation details could be missed.; Registry/profile behavior now depends on duplicated canonical/template files staying aligned; tests were updated for freshness/sync, but this remains an ongoing maintenance risk.
  • anthropic: The diff summary is truncated and actual file contents cannot be fully verified - particularly the test implementations in keepalive-model-profile-contract.test.js cannot be confirmed to correctly implement the deliberate-break scenario as specified in AC5.; pr-00-gate.yml was cancelled; while post-merge CI status is noted as irrelevant, this means the primary gate validation did not complete on this commit.; Cannot confirm the langsmith-fleet/v1 artifact extension fully emits all required fields (operation role 'worker', profile ID, requested model, selected/resolved model, fallback reason, runner/CLI version) separately from evaluator/verifier traces as required by AC3.; Template freshness test changes in tests/workflows/test_workflow_llm_installs.py (+16/-6) cannot be verified to actually enforce synchronization between root and consumer-repo templates.; The registry.yml additions (+18 lines each in root and template) cannot be confirmed to include all required fields: exact model, runner, capacity-pool references, safety defaults, and lifecycle state.

🔍 LangSmith Traces

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agent:codex Agent-created issues from Codex agent:needs-attention Agent needs human review or intervention agent:retry Add to trigger agent retry after rate limit or pause agents:keepalive Use to initiate keepalive functionality with agents autofix Opt-in automated formatting & lint remediation needs-human Requires human intervention or review verify:compare Compare multiple LLM evaluations

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Propagate execution profiles through Workflows/Keepalive and return worker-model telemetry

4 participants