Очки: история диалога в свайпе + распознавание в LLM только по клику (касяки 1-3)

This commit is contained in:
2026-08-23 20:15:21 +03:00
parent 51049d56a8
commit 706cc10d1e
9 changed files with 254 additions and 28 deletions
@@ -22,6 +22,8 @@ import pw.binom.viewmate.core.MediaCommand
import pw.binom.viewmate.core.net.GlassesTransport
import pw.binom.viewmate.core.net.WifiGlassesTransport
import pw.binom.viewmate.core.protocol.AssistantStateMsg
import pw.binom.viewmate.core.protocol.ChatHistoryItem
import pw.binom.viewmate.core.protocol.ChatHistoryMsg
import pw.binom.viewmate.core.protocol.ChatSessionMsg
import pw.binom.viewmate.core.protocol.DeleteFiles
import pw.binom.viewmate.core.protocol.DownloadFiles
@@ -340,6 +342,13 @@ class HostConnection(
is ChatSessionMsg -> addMessage("ChatSession: ${msg.sessionId} — ${msg.title}")
is ChatHistoryMsg -> {
log("chat", "история сессии ${msg.sessionId ?: "-"}: ${msg.messages.size} сообщ.")
GlassesApp.instance.chatHistory.value = msg.messages
.filter { it.role == "user" || it.role == "assistant" }
.map { ChatEntry(it.role, it.content) }
}
is SttPhrase -> {
GlassesApp.instance.sttText.value = msg.full
log("stt", "фраза: ${msg.phrase}")
@@ -351,9 +360,13 @@ class HostConnection(
}
is SttCancel -> {
log("stt", "отменено")
GlassesApp.instance.listening.value = false
// Фразы не было (клик без голоса) или отмена двойным кликом: НЕ выходим
// из режима, а возвращаемся в «слушаю» — оверлей остаётся, микрофон снова
// открыт (TASK-glasses-chat-fix.md касяк №2).
log("stt", "отменено — возврат в «слушаю»")
GlassesApp.instance.thinking.value = false
GlassesApp.instance.mainActivity?.resumeSttListening()
?: log("stt", "mainActivity ещё нет — не могу вернуть микрофон")
}
is Shutdown -> {