From 7f443a228c9d45b9c0531f5e8bf9f808cf7a4bda Mon Sep 17 00:00:00 2001 From: Haitao Pan Date: Fri, 10 Apr 2026 10:46:46 +0800 Subject: [PATCH] fix: preserve external ACP workspace resolution --- lib/runtime/go_task_service_client.dart | 1 + test/runtime/go_task_service_client_test.dart | 21 +++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/lib/runtime/go_task_service_client.dart b/lib/runtime/go_task_service_client.dart index 57d068ea..6d8331c3 100644 --- a/lib/runtime/go_task_service_client.dart +++ b/lib/runtime/go_task_service_client.dart @@ -391,6 +391,7 @@ class GoTaskServiceResult { String get resolvedWorkingDirectory => raw['resolvedWorkingDirectory']?.toString().trim() ?? + raw['effectiveWorkingDirectory']?.toString().trim() ?? raw['workingDirectory']?.toString().trim() ?? ''; diff --git a/test/runtime/go_task_service_client_test.dart b/test/runtime/go_task_service_client_test.dart index f86aabe8..b91033cd 100644 --- a/test/runtime/go_task_service_client_test.dart +++ b/test/runtime/go_task_service_client_test.dart @@ -244,6 +244,27 @@ void main() { }, ); + test( + 'run result falls back to effective working directory when resolved path is absent', + () { + final result = goTaskServiceResultFromAcpResponse( + { + 'result': { + 'success': true, + 'turnId': 'turn-8', + 'summary': 'summary text', + 'effectiveWorkingDirectory': '/tmp/effective-thread', + }, + }, + route: GoTaskServiceRoute.externalAcpSingle, + ); + + expect(result.turnId, 'turn-8'); + expect(result.message, 'summary text'); + expect(result.resolvedWorkingDirectory, '/tmp/effective-thread'); + }, + ); + test('session update recognizes delta notifications', () { final update = goTaskServiceUpdateFromAcpNotification({ 'method': 'session.update',