Skip to content

Releases: stack-bound/stackllm

v0.4.1

19 Apr 21:28
v0.4.1
89a677a

Choose a tag to compare

Added

  • Added pagination for sessions

v0.4.0

19 Apr 19:26
v0.4.0
445e2cd

Choose a tag to compare

Added

  • Added endpoint for logging in with all providers
  • Added a web example of how to log in to a provider, choose a model and start a chat

Fixed

  • Fixed model communication issues with OpenAI models

v0.3.0

15 Apr 11:47
v0.3.0
0cf5b72

Choose a tag to compare

Changed

  • Changed colour of the thinking blocks and made italic.

Fixed

  • Show Gemini thinking blocks as they come under a differnt name to other models

v0.2.0

11 Apr 19:17
v0.2.0
8cf800f

Choose a tag to compare

Added

  • TUI /help command listing all available slash commands with descriptions
  • TUI /sessions command to browse, switch, and delete persisted sessions from a keyboard-driven picker
  • TUI /rename command with a centered modal for renaming the current session
  • TUI /fork command with a message picker for branching the current session at any point in its history
  • TUI /delete command to remove the current session and start fresh
  • TUI /export command for saving the current session to a JSONL file
  • Session indicator in the TUI status bar showing the current session name and message count
  • TUI image paste: Ctrl+V reads the system clipboard via wl-paste / xclip / pngpaste / osascript / powershell.exe, inserts a [Image #N] placeholder into the textarea, and emits an interleaved BlockImage on send so all five OpenAI-compatible backends receive the bytes as a base64 data URI. Falls back transparently to the default text paste when the clipboard holds no image or the platform tools are unavailable.
  • TUI status line now shows the current model and context usage right-aligned (e.g. gpt-5.4 · 12,345 / 200,000 (6.2%)). Token counts come from actual provider usage fields (opts into stream_options.include_usage on chat completions; reads response.completed.usage on /responses), and the max context length is read from capabilities.limits.max_prompt_tokens where the provider exposes it (Copilot) with a hardcoded fallback table covering the GPT / Claude / Gemini / Llama / Mistral / Qwen / DeepSeek families. Per-session LastUsage is persisted via SQLite schema v2 so reopening a session restores the figures without a round-trip to the model.

Changed

  • TUI example now uses the SQLite-backed session store so sessions persist across runs

v0.1.0

10 Apr 22:34
v0.1.0
7cdf12f

Choose a tag to compare

Added

  • Block-shaped messages: every Message now holds an ordered slice of typed blocks (text, thinking, redacted_thinking, image, tool_use, tool_result), so interleaved assistant output replays faithfully through every layer — providers, agent loop, TUI, web SSE, and the session store.
  • Reasoning capture across providers: chat completions parses delta.reasoning_content alongside delta.content, and the Responses API stream maps every output_item (reasoning / message / function_call) to its own block instead of dropping reasoning on the floor.
  • Durable SQLite session store: session.SQLiteStore persists full conversation history to a single pure-Go SQLite file (modernc.org/sqlite, no CGO) with OpenSQLiteStore for standalone embedders and NewSQLiteStore for parent apps that share a *sql.DB — all stackllm tables are prefixed stackllm_ so host-app schemas coexist.
  • Session branching: Fork, Rewind, and ListBranches let callers create sibling branches at any message boundary without deleting history, backed by a parent_id message tree and a current_leaf_id pointer.
  • Artifact offload with SHA-256 dedupe: large tool results, inline image bytes, and redacted thinking payloads move to a side table with a small inline preview kept on the block row; HydrateArtifact fetches the full payload lazily and identical blobs share a single artifact row across sessions.
  • FTS5 full-text search: session.Search runs full-text queries across text, thinking, and tool_result blocks with optional block-type and per-session scoping.
  • JSONL export and import: ExportJSONL / ImportJSONL round-trips every block type, inlining artifact bytes so exported sessions are fully self-contained.
  • examples/sqlite: runnable shared-DB demo that runs a parent-app migration alongside session.NewSQLiteStore on the same SQLite file.

Removed

  • conversation: Message.Content (string) and Message.ToolCalls ([]ToolCall) — superseded by Message.Blocks. Readers should switch to m.TextContent() or Blocks iteration; builders should switch to the block-oriented Builder methods.