5.0.3
Dive 5.0.3 — model and port selection stays in step
Which model is loaded, and on which port, was stored in three config files and cached again in the browser. Every write path updated only the copy it happened to own, so the same defect kept surfacing in a new place. One module now owns those copies and all writes go through it.
Fixed
- Deleting a model left the startup choice and the model dropdown still naming it. The next message asked the server for a model that no longer existed, and autostart tried to load it again on the next launch.
- Changing SERVER PORT moved neither derived address. The chat URL righted itself on the next model load; the library's embedding URL never did, so database search silently kept calling the old port.
- Loading a model from the MODELS tab left both dropdowns naming the model it replaced. Because a message sends that name explicitly, the next message loaded the old model back over the one just loaded.
- The dropdown in settings did not update when the one in the side panel changed, and the side panel could sit on "Automatic" at startup while a model was actually selected.
- Changing CONTEXT unloaded the model and never loaded it again. Applying a new context requires restarting the model server, and what came back was empty. Whatever was loaded is now put back afterwards.
- Deleting or downloading a model also unloaded whatever else was running, for the same reason. Fixed by the same change.
- Changing CONTEXT, GPU layers, threads, batch size, flash attention, mlock, cache type or the embedding flag did nothing at all when Dive runs its own model server — the value was saved but the running process kept its old settings, while the token counter reported the new one. The model is now reloaded so the change takes effect.
Changed
- Loading an embedding model no longer silently does nothing to database search. Dive adopts the new model only when it can confirm the server is serving it, and never when doing so would invalidate an existing index — it tells you to re-index instead. This protects your existing embeddings from being discarded without warning.