Allow security_analyzer to differ during agent reconciliation #669
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR fixes issue #668 by allowing the
security_analyzerfield to be different between runtime and persisted agents during conversation restoration.Problem
Previously, when trying to restart a conversation with a different security analyzer configuration, the reconciliation logic in
AgentBase.resolve_diff_from_deserialized()would fail with an error:This prevented users from:
security_riskfieldSolution
Modified
AgentBase.resolve_diff_from_deserialized()to explicitly allow thesecurity_analyzerfield to differ, with the runtime agent's value taking precedence. This is appropriate because:Changes
openhands/sdk/agent/base.py: Updatedresolve_diff_from_deserialized()to includesecurity_analyzerin the updates dict, ensuring the runtime agent's security analyzer is used regardless of what's persistedtests/cross/test_agent_reconciliation.py: Added comprehensive tests covering:Testing
All tests pass, including:
Related Issues
Fixes #668
Breaking Changes
None. This is a backward-compatible change that relaxes validation to support a previously unsupported use case.
@xingyaoww can click here to continue refining the PR
Agent Server images for this PR
• GHCR package: https://github.com/All-Hands-AI/agent-sdk/pkgs/container/agent-server
Variants & Base Images
golang:1.21-bookwormeclipse-temurin:17-jdknikolaik/python-nodejs:python3.12-nodejs22Pull (multi-arch manifest)
Run
All tags pushed for this build
The
233775btag is a multi-arch manifest (amd64/arm64); your client pulls the right arch automatically.