@@ -183,6 +183,7 @@ def test_from_config_extracts_fps_properties_without_runtime(tmp_path: Path) ->
183183 "conversationalService.conversationId" : "conv-123" ,
184184 "conversationalService.exchangeId" : "ex-456" ,
185185 "conversationalService.messageId" : "msg-789" ,
186+ "conversationalService.enableOutputs" : True ,
186187 "conversationalService.conversationalUserId" : "owner-guid" ,
187188 "mcpServer.id" : "server-id-123" ,
188189 "mcpServer.slug" : "my-mcp-server" ,
@@ -196,11 +197,30 @@ def test_from_config_extracts_fps_properties_without_runtime(tmp_path: Path) ->
196197 assert ctx .conversation_id == "conv-123"
197198 assert ctx .exchange_id == "ex-456"
198199 assert ctx .message_id == "msg-789"
200+ assert ctx .conversational_outputs_enabled is True
199201 assert ctx .conversational_user_id == "owner-guid"
200202 assert ctx .mcp_server_id == "server-id-123"
201203 assert ctx .mcp_server_slug == "my-mcp-server"
202204
203205
206+ def test_from_config_conversational_outputs_enabled_defaults_false (
207+ tmp_path : Path ,
208+ ) -> None :
209+ """When enableOutputs isn't in fpsProperties, the field defaults to False —
210+ legacy safe behavior for pre-migration conversational agents."""
211+ cfg = {
212+ "fpsProperties" : {
213+ "conversationalService.conversationId" : "conv-legacy" ,
214+ }
215+ }
216+ config_path = tmp_path / "uipath.json"
217+ config_path .write_text (json .dumps (cfg ))
218+
219+ ctx = UiPathRuntimeContext .from_config (config_path = str (config_path ))
220+
221+ assert ctx .conversational_outputs_enabled is False
222+
223+
204224def test_from_config_loads_runtime_and_fps_properties (tmp_path : Path ) -> None :
205225 """runtime.* keys and fpsProperties.* keys should both be applied."""
206226 cfg = {
0 commit comments