feat(agents): add pluggable session backends - #3570
Conversation
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. |
|
✅ No security or compliance issues detected. Reviewed everything up to c1b56e2. Security OverviewDetected Code ChangesThe diff is too large to display a summary of code changes. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: fdd20bbb73
ℹ️ 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".
fdd20bb to
df1f7c5
Compare
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: dfdbf0e23f
ℹ️ 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".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 26470f973c
ℹ️ 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".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 857d2df1f1
ℹ️ 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".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: bf1c677cd6
ℹ️ 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".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6f8442e565
ℹ️ 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".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8fff744b03
ℹ️ 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".
jordan-umusu
left a comment
There was a problem hiding this comment.
LGTM, just a few thermos issues
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d9296a800a
ℹ️ 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".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e362d07397
ℹ️ 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".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f52ad49382
ℹ️ 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".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 125029ce9f
ℹ️ 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".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c1b56e2df3
ℹ️ 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".
Description
Allow trusted installed packages to provide agent backends through
tracecat.agent_backendsentry points. Tracecat retains authorization, configuration resolution, approval validation, session ownership, and chat rendering.backend_idandharness_typeseparately. The built-in backend remainsoss, usingclaude_code; installed providers declare and validate their own harness identifiers. Discovery also verifies registered Temporal workflow and control-update definitions.agent-runtimeengineering feature flag. Without an explicit override, chat creation uses the server default. Flagged chats wait for backend discovery; multiple-backend selection defers creation until the first message. Discovery errors offer retry and block new sessions. Removed backend selections fall back to the server default; unavailable selections submitted to session creation and rejected backend/harness changes submitted to session updates return HTTP 400.is_readonlystate for execution restrictions. Missing history backends raise an explicit read error instead of returning empty history. Session responses do not expose separate backend/history availability flags.Migration
Adds
agent_session.backend_idwith theossserver default while preserving existing harness values. Downgrade refuses to discard routing identity while non-osssessions exist.Validation
Session update validation: all 58 router tests passed, including HTTP 400 for changes to either immutable routing field.
Temporal registry verification: all 136 backend unit tests passed, including malformed decorator metadata and valid custom update names.
Review-fix verification: 218 targeted Python unit tests, 30 real PostgreSQL transaction tests, and 16 chat-interface tests passed. Coverage includes stale selections, unavailable-backend HTTP responses, isolated argument snapshots, definitive RPC rejection and retry, lost commit acknowledgements, guarded ownership cleanup, terminal workflows, and cancellation. Temporal transport is mocked in the PostgreSQL tests; earlier session-read verification also passed 83 frontend tests.
Ruff, targeted Python type checks, frontend Biome/type checks, generated-client checks, and commit hooks passed.
Updated images have not been deployed. Live browser/provider E2E and the broader migration/workflow suites were not rerun for these review fixes.
LOC breakdown
Summary by cubic
Lets trusted installed packages provide session execution backends through
tracecat.agent_backendsentry points, keeping shared authorization, config resolution, approvals, rendering, and history projection in Tracecat.Behavior changes
HarnessTypeinto separate stringbackend_idandharness_typefields;oss/claude_codestay the defaults and are immutable after creation, and changes to either return HTTP 400.agent_session.backend_idwith a server default ofoss; the downgrade is refused while non-osssessions exist, and API startup fails on invalid or duplicate installed backends or unverifiable Temporal workflow definitions.agent-runtimefeature flag; creation waits for backend discovery and blocks with retry on failure.ossbackend, and inbox lookups resolve backends through the registry.Written for commit c1b56e2. Summary will update on new commits.