fix(flows): pin generated Claude agent model - #121
Conversation
Session-Id: 01a0e2b3-ef42-7541-bdce-dcd6b88caecc Session-Id: 01a0e2c3-b5bd-7631-b137-02be9af83c2e
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 204f7c82d1
ℹ️ 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".
|
Preview deployed!
This is a Cloudflare Workers preview version of this PR's build. |
Session-Id: 01a0e2c3-b5bd-7631-b137-02be9af83c2e
Session-Id: 01a0e2c3-b5bd-7631-b137-02be9af83c2e
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b5ce9b0e48
ℹ️ 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".
Session-Id: 01a0e2c3-b5bd-7631-b137-02be9af83c2e
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit cadc1cd. Configure here.
|
Codex Review: Didn't find any major issues. Keep it up! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |

Summary
Every executable agent step generated by the software-factory onboarding now carries an explicit CLI and model. The generator uses verified per-harness defaults:
claude-sonnet-5gpt-5.6-solgpt-5.6-sol-highgrok-4.7Explicit per-step overrides still win. Changing an unavailable saved agent falls back to the selected agent and its generated default. Prototype agents now serialize
modelunconditionally, and default effective models no longer inflatecustom_modeltelemetry.This repairs failed Cloud v2 run
b5d6ab22-caee-58c5-a1c7-4c02d4aa9e26: deterministic steps completed, thenagent-3was refused before execution because the generated Slack Simple source omittedmodel. Relayflows correctly inherited and probed Claude's adapter default,claude-opus-5, which that connected credential could not use.Failed run: https://agentrelay.com/cloud/dashboard/workflow/b5d6ab22-caee-58c5-a1c7-4c02d4aa9e26/runner
Contract
(cli, model)readiness probe and its actionable refusal.Regression coverage
The invariant matrix enumerates:
Across all 60 variants it executes failure/repair/review paths with a capturing
f.agent, asserts every observed pair matches the generator contract, and independently parses every emittedf.agentobject with the TypeScript AST to require literalcliandmodelfields. Separate assertions cover Cloud handoff/local-kit preservation, explicit overrides, malformed persisted models, unavailable saved agents, and the third Simple agent from the failed topology.Exact-head verification
Head:
cadc1cd32a267c881c5bae1638b79d3f46e70aa4npm run build: passing (Next.js compile, TypeScript, 459 static pages)git diff --check origin/main...HEAD: passingclaude-sonnet-5: used by current Flows canonical fixtures and exact readiness round-trip exit 0gpt-5.6-sol: used by the current Flows real-adapter contract and exact readiness round-trip exit 0. The similarly namedgpt-5.6-codexcontrol returned HTTP 400 as unsupported for this ChatGPT-account Codex credential, so it is deliberately not used here.gpt-5.6-sol-high: present in the live account catalog and exact readiness round-trip exit 0grok-4.7: named as the live CLI catalog default; the exact request reached the provider but returned HTTP 402 because this local credential's usage balance is exhausted. That proves the literal is recognized, not that this credential can execute it. Relayflows therefore remains responsible for the exact credential/model readiness check and will fail closed before agent work.The accepted incident-minimal first commit is patch-identical to tested handoff
47f6315(stable patch-id5e28a962e6c12bb8af9f5612f574abc3c2d94cba). Review findings led to a deliberate split between blank editable overrides and explicit generated models: prompt-only edits keep telemetry and persistence clean, while executable source and previews show the current pinned model.Rollout / rollback
Rollout is the normal reviewed PR path; this PR does not deploy. Roll back by reverting the PR commits, which restores adapter-default inheritance and would reintroduce the reported Claude refusal.
Follow-up train
Flows first-party sources and Cloud recommended-catalog/model-persistence paths contain the same omission class and require ordered follow-up PRs. This PR does not weaken or globally change the Relayflows adapter contract.