Add a chat list and server-minted new chats on top of the desk API's
GET/POST /desk/chats:
- server_client.list_chats() / create_chat(), same shape and error
handling as list_outbox_files().
- Switching is config.set_session(id): a plain reassignment of the
SESSION_ID every call reads, persisted to session.json. The window
refuses to switch mid-turn rather than locking.
- gui/chat_list_window.py: a Chats dialog (Ctrl+K) with a QListWidget,
populated on open, with Refresh and New Chat. Network calls run as
QRunnables on the global QThreadPool and come back through Signals,
never from a slot. The header New chat (Ctrl+N) uses the same path.
- Switching clears the local transcript; there is no endpoint for a
past chat's messages. Bolt's memory is per user, so it carries over.
- Terminal: /chats, /chat <n|id>, and /new (server-minted id, local
fallback).
This commit also carries the uncommitted work since 54030a7 that turned
this Bolt-Pet fork into Bolt Console: the pet, wake word, TTS and screen
features removed; a Claude Code-style terminal client; the PySide6
window with tool cards, approvals and diffs; mic dictation through the
server's /desk/stt relay; filectl/JSON repairs; and detection of
invented tool results.
Build output (build/, dist/, Release/, *.spec) is now ignored.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
35 lines
1.1 KiB
Bash
35 lines
1.1 KiB
Bash
# Bolt Console — copy to .env and fill in the first two.
|
|
|
|
# Your Bolt server and its desk API key (required).
|
|
BOLT_SERVER_URL=https://your-bolt-server.example.com
|
|
DESK_API_KEY=
|
|
|
|
# Conversation id on the server. Default: pet-console-<hostname>. Keep the
|
|
# "pet-" prefix: the server offers the filectl file tool to pet sessions.
|
|
#DESK_SESSION_ID=
|
|
|
|
# ask = confirm shell commands, file writes and edits (reads never ask)
|
|
# auto = run everything without asking
|
|
#APPROVAL_MODE=ask
|
|
|
|
# Seconds before a relayed shell command is killed.
|
|
#COMMAND_TIMEOUT_SECONDS=120
|
|
|
|
# Print sentences as they stream in (falls back automatically if unsupported).
|
|
#STREAMING_REPLIES=true
|
|
|
|
# Tell Bolt the working directory and OS with each message.
|
|
#CONSOLE_CONTEXT=true
|
|
|
|
# Files Bolt sends you with deliver_files land here.
|
|
#RECEIVE_FILES=true
|
|
#DELIVERED_FILES_DIR=~/Downloads/Bolt
|
|
|
|
# Dictation (mic button / Ctrl+M): input device index or name (blank = default),
|
|
# and how long a pause ends a recording once you've said something.
|
|
#MIC_DEVICE=
|
|
#DICTATION_SILENCE_SECONDS=3
|
|
|
|
# ANSI colour (NO_COLOR in the environment also turns it off).
|
|
#COLOR=true
|