fix: clarify Dismiss now informs the agent instead of silently dropping (#580)
* fix(#572): clarify Dismiss now informs agent instead of silently dropping * fix(#572): clarify Dismiss rejects the question (no answer) instead of telling agent to proceed --------- Co-authored-by: M57 <m57@hermes-control.app>
This commit is contained in:
1 parent
109fb1a04d
commit
e48778291a
2 files changed
+94
No files matched your search
@@ -766,6 +766,50 @@ class ChatViewModelTest {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testClarifyDismissInformsAgent() =
|
||||
runTest {
|
||||
val (viewModel, sessionId) = createViewModelWithSession()
|
||||
|
||||
mockEventsFlow.emit(
|
||||
WsEvent.ClarifyRequest(
|
||||
"Please choose:",
|
||||
listOf("Yes", "No"),
|
||||
"clarify-789",
|
||||
),
|
||||
)
|
||||
advanceUntilIdle()
|
||||
assertEquals("clarify-789", viewModel.uiState.value.clarifyRequest?.clarifyId)
|
||||
|
||||
viewModel.dismissClarify()
|
||||
advanceUntilIdle()
|
||||
|
||||
// Dialog dismissed locally
|
||||
assertNull(viewModel.uiState.value.clarifyRequest)
|
||||
// Baseline has 1 "Connected" system message; dismiss adds exactly
|
||||
// ONE system note and must NOT fake a user bubble.
|
||||
val messages = viewModel.uiState.value.messages
|
||||
assertEquals(2, messages.size)
|
||||
assertEquals(MessageRole.SYSTEM, messages[0].role) // pre-existing "Connected"
|
||||
assertEquals(MessageRole.SYSTEM, messages[1].role) // dismiss trace
|
||||
assertTrue(messages[1].content.contains("dismissed", ignoreCase = true))
|
||||
|
||||
verify {
|
||||
HermesWsClient.send(
|
||||
WsMethods.CLARIFY_RESPOND,
|
||||
params =
|
||||
mapOf(
|
||||
"session_id" to sessionId,
|
||||
"response" to "The user cancelled — no answer provided.",
|
||||
"answer" to "The user cancelled — no answer provided.",
|
||||
"clarify_id" to "clarify-789",
|
||||
"request_id" to "clarify-789",
|
||||
),
|
||||
onSent = any(),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
// ── Attachments ──────────────────────────────────────────────────────────
|
||||
|
||||
/** Add [count] dummy attachments so a test starts with a populated list. */
|
||||
|
||||
Reference in new issue
Block a user