From 8ab640bc5af02421f541cd3a94dca077d8200765 Mon Sep 17 00:00:00 2001 From: Haitao Pan Date: Sat, 11 Apr 2026 18:44:17 +0800 Subject: [PATCH] Show bridge resultSummary in task output --- lib/runtime/go_task_service_client.dart | 2 + ...sk_service_client_result_parsing_test.dart | 38 +++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 test/runtime/go_task_service_client_result_parsing_test.dart diff --git a/lib/runtime/go_task_service_client.dart b/lib/runtime/go_task_service_client.dart index ac903772..eba577b7 100644 --- a/lib/runtime/go_task_service_client.dart +++ b/lib/runtime/go_task_service_client.dart @@ -762,6 +762,8 @@ GoTaskServiceResult goTaskServiceResultFromAcpResponse( ? result['output'].toString().trim() : result['summary']?.toString().trim().isNotEmpty == true ? result['summary'].toString().trim() + : result['resultSummary']?.toString().trim().isNotEmpty == true + ? result['resultSummary'].toString().trim() : result['message']?.toString().trim() ?? '') .trim(); final primaryText = diff --git a/test/runtime/go_task_service_client_result_parsing_test.dart b/test/runtime/go_task_service_client_result_parsing_test.dart new file mode 100644 index 00000000..4391ec8b --- /dev/null +++ b/test/runtime/go_task_service_client_result_parsing_test.dart @@ -0,0 +1,38 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:xworkmate/runtime/go_task_service_client.dart'; + +void main() { + group('goTaskServiceResultFromAcpResponse', () { + test('uses resultSummary when output summary and message are empty', () { + final result = goTaskServiceResultFromAcpResponse( + { + 'result': { + 'success': true, + 'resultSummary': 'bridge result summary', + 'resolvedExecutionTarget': 'single-agent', + }, + }, + route: GoTaskServiceRoute.externalAcpSingle, + ); + + expect(result.success, isTrue); + expect(result.message, 'bridge result summary'); + }); + + test('still prefers output over resultSummary when both exist', () { + final result = goTaskServiceResultFromAcpResponse( + { + 'result': { + 'success': true, + 'output': 'primary output', + 'resultSummary': 'bridge result summary', + 'resolvedExecutionTarget': 'single-agent', + }, + }, + route: GoTaskServiceRoute.externalAcpSingle, + ); + + expect(result.message, 'primary output'); + }); + }); +}