Skip to content

Commit 1434dfb

Browse files
author
Johan Broberg
committed
refactor: Ensure core service is called even for empty message lists in send_chat_history
1 parent 17cdb27 commit 1434dfb

File tree

1 file changed

+8
-12
lines changed

1 file changed

+8
-12
lines changed

docs/prd/azure-ai-foundry-chat-history-api-tasks.md

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -235,12 +235,10 @@ Implement the primary public method that accepts a sequence of `ThreadMessage` o
235235
```
236236
- [ ] Raises `ValueError` if `turn_context` is None with message "turn_context cannot be None"
237237
- [ ] Raises `ValueError` if `messages` is None with message "messages cannot be None"
238-
- [ ] Returns `OperationResult.success()` for empty message list without calling core service
239238
- [ ] Creates default `ToolOptions` with `orchestrator_name="AzureAIFoundry"` if not provided
240239
- [ ] Sets orchestrator_name to "AzureAIFoundry" if options provided but orchestrator_name is None
241240
- [ ] Converts messages using `_convert_thread_messages_to_chat_history()`
242-
- [ ] Returns `OperationResult.success()` if all messages filtered (no-op)
243-
- [ ] Delegates to `self._mcp_server_configuration_service.send_chat_history()` for actual sending
241+
- [ ] Always delegates to `self._mcp_server_configuration_service.send_chat_history()` even for empty/filtered messages (to register current user message)
244242
- [ ] Catches unexpected exceptions and returns `OperationResult.failed(OperationError(ex))`
245243
- [ ] Re-raises `ValueError` exceptions (validation errors should propagate)
246244
- [ ] Logs entry with message count at INFO level
@@ -264,14 +262,12 @@ async def send_chat_history_messages(
264262
tool_options: Optional[ToolOptions] = None,
265263
) -> OperationResult:
266264
# 1. Input validation (raise ValueError)
267-
# 2. Handle empty list (return success)
265+
# 2. Log entry
268266
# 3. Set default options
269-
# 4. Log entry
270-
# 5. Convert messages
271-
# 6. Handle all filtered (return success)
272-
# 7. Try: delegate to core service
273-
# 8. Except ValueError: re-raise
274-
# 9. Except Exception: log, return failed
267+
# 4. Convert messages (may result in empty list if all filtered)
268+
# 5. Try: delegate to core service (always, even if empty)
269+
# 6. Except ValueError: re-raise
270+
# 7. Except Exception: log, return failed
275271
```
276272

277273
**Estimated Time:** 3-4 hours
@@ -438,7 +434,7 @@ Implement comprehensive unit tests for input validation in both `send_chat_histo
438434
- [ ] Test class: `TestInputValidation`
439435
- [ ] Test: `test_send_chat_history_messages_validates_turn_context_none`
440436
- [ ] Test: `test_send_chat_history_messages_validates_messages_none`
441-
- [ ] Test: `test_send_chat_history_messages_empty_list_returns_success`
437+
- [ ] Test: `test_send_chat_history_messages_empty_list_still_calls_core_service`
442438
- [ ] Test: `test_send_chat_history_validates_agents_client_none`
443439
- [ ] Test: `test_send_chat_history_validates_thread_id_none`
444440
- [ ] Test: `test_send_chat_history_validates_thread_id_empty`
@@ -508,7 +504,7 @@ Implement unit tests that verify the happy path scenarios for both API methods,
508504
- [ ] Test: `test_send_chat_history_success`
509505
- [ ] Test: `test_send_chat_history_retrieves_from_client`
510506
- [ ] Test: `test_send_chat_history_delegates_to_send_chat_history_messages`
511-
- [ ] Test: `test_send_chat_history_all_messages_filtered_returns_success`
507+
- [ ] Test: `test_send_chat_history_messages_all_filtered_still_calls_core_service`
512508
- [ ] Tests verify correct method calls with `assert_called_once()`
513509
- [ ] Tests verify correct arguments passed to core service
514510

0 commit comments

Comments
 (0)