Skip to content

4.0.9

Choose a tag to compare

@DuckTapeKiller DuckTapeKiller released this 27 Jul 23:44
· 47 commits to main since this release

4.0.9

Queue messages while a response is streaming

Typing a follow-up mid-answer used to kill the reply — Enter was wired straight to Stop. Now text in the box means "send it next": Enter queues the message and it goes out when the run finishes. Works in every mode, including Pi runs that continue on the event channel after the stream closes.

  • Queued messages show as pills above the composer, each removable
  • An empty box still means Stop, so that gesture is unchanged
  • Stop discards the queue
  • The queue stays with the mode and conversation it was typed in — it will never fire into a transcript you've left
  • Attachments go with their message; the composer is free immediately

llama.cpp router preset sync (optional, off by default)

For setups running llama-server in router mode from a LaunchAgent, Dive keeps --models-preset .ini files in step with the models folder: embedding models get their section on download and lose it on delete, and vision models are paired with their mmproj projector.

  • Writes only to paths you enter, and only between its own markers — your comments, [*] globals and hand-written sections are untouched
  • Won't re-create a section that already exists, so an embedding alias keeps the name your vector index is keyed to
  • .dive-backup on first write; atomic replace
  • Deletion rewrites the preset before removing the file
  • Restarts only the embedding router, never mid-index, never the chat router

Fix: embedding server URL reverting to the chat port

In Database settings, correcting the embedding port and saving appeared to do nothing — the field snapped back. It was rebuilt on every render from a routed value using llama.cpp's chat port instead of the embedding port (chat + 1), and the stale value was written back to disk on the next save. Saved URLs now survive; auto-routing only replaces the untouched default.