gui/pkg/chat
Snider 7976b579a4 feat(gui): pkg/chat + gui.chat.* IPC actions (MVP chat surface)
pkg/chat/service.go + messages.go implement the RFC §15.1–§15.8
chat service with the full IPC surface:
- gui.chat.send — streams assistant reply, returns message id
- gui.chat.history — []Message for a conversation
- gui.chat.models — []Model (name, size, status)
- gui.chat.selectModel — sets active model
- gui.chat.conversations.list/load/delete
- gui.chat.thinking.start/stop — explicit thinking-state tracking

MCP tool registrations in pkg/mcp/tools_chat.go mirror the IPC
surface (chat_send, chat_history, chat_models, etc). WS bridge in
pkg/display/display.go wires chat:conversations:load and
chat🤔stop, keeping legacy chat:conversations:get and
chat🤔end paths pointed at the new handlers for compat.

Good/Bad/Ugly tests per action in service_test.go + godoc example
in service_example_test.go. go vet + go test ./pkg/chat/... +
./pkg/... all clean.

Closes tasks.lthn.sh/view.php?id=14

Co-authored-by: Codex <noreply@openai.com>
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-24 07:26:22 +01:00
..
chat.go Implement chat, preload shims, and smart layouts 2026-04-15 13:39:13 +01:00
chat_test.go Implement chat, preload shims, and smart layouts 2026-04-15 13:39:13 +01:00
messages.go feat(gui): pkg/chat + gui.chat.* IPC actions (MVP chat surface) 2026-04-24 07:26:22 +01:00
service.go feat(gui): pkg/chat + gui.chat.* IPC actions (MVP chat surface) 2026-04-24 07:26:22 +01:00
service_example_test.go feat(gui): pkg/chat + gui.chat.* IPC actions (MVP chat surface) 2026-04-24 07:26:22 +01:00
service_test.go feat(gui): pkg/chat + gui.chat.* IPC actions (MVP chat surface) 2026-04-24 07:26:22 +01:00