Compare commits

...

1 Commits

Author SHA1 Message Date
openhands 54cc81c09a Fix issue #7947: [Bug]: Resolver is down on main due to improper action serialization 2025-04-19 01:13:02 +00:00
2 changed files with 39 additions and 0 deletions
+4
View File
@@ -84,6 +84,10 @@ def handle_action_deprecated_args(args: dict[str, Any]) -> dict[str, Any]:
'command'
) # "view" will be translated to FileReadAction which doesn't have a command argument
# Handle is_static field for CmdRunAction
if 'is_static' in args and args['is_static'] is None:
args.pop('is_static') # Remove is_static if it's None to use the default value
return args
+35
View File
@@ -224,6 +224,41 @@ def test_cmd_run_action_legacy_serialization():
assert event_dict['args']['is_input'] is False
def test_cmd_run_action_is_static_serialization():
# Test with is_static=None
original_action_dict = {
'action': 'run',
'args': {
'blocking': False,
'command': 'echo "Hello world"',
'thought': '',
'hidden': False,
'confirmation_state': ActionConfirmationStatus.CONFIRMED,
'is_static': None,
'cwd': None,
},
}
event = event_from_dict(original_action_dict)
assert isinstance(event, Action)
assert isinstance(event, CmdRunAction)
assert event.command == 'echo "Hello world"'
assert event.is_static is False # Default value from class definition
event_dict = event_to_dict(event)
assert event_dict['args']['is_static'] is False # Should use default value
# Test with is_static=True
original_action_dict['args']['is_static'] = True
event = event_from_dict(original_action_dict)
assert isinstance(event, Action)
assert isinstance(event, CmdRunAction)
assert event.command == 'echo "Hello world"'
assert event.is_static is True
event_dict = event_to_dict(event)
assert event_dict['args']['is_static'] is True
def test_file_llm_based_edit_action_legacy_serialization():
original_action_dict = {
'action': 'edit',