mirror of
https://github.com/mudler/LocalAI.git
synced 2026-09-29 09:35:02 -04:00
fix(docs): correct warm-toggle and Reconcile-without-Store claims
The failover chain editor leaves the warm toggle enabled on every row (the model list has no backend field to gate on) and relies on the server warning instead, so the docs describing it as disabled for remote targets were wrong. Separately, syncstate's hydrate() returns early with no Store or Loader, so a Reconcile tick is a no-op rather than one that empties the map — correct that claim everywhere it was repeated (contributor guide, distsync comment, design spec). No behavior change. Assisted-by: Claude:claude-opus-5-5 Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
This commit is contained in:
1 parent
00d9d80897
commit
452a3a0cbe
4 files changed
+14
-13
No files matched your search
@@ -44,9 +44,9 @@ Examples:
|
||||
`failover.targets` and `failover.chains` are ephemeral live-health state
|
||||
with no `Store`, republished by the leader every 10 s.
|
||||
|
||||
**Gotcha:** `Reconcile` with neither a `Store` nor a `Loader` re-hydrates the
|
||||
map **empty** on a reconnect or a late join — there is nothing for it to pull
|
||||
from. If your map has no durable backing, a leader (or another privileged
|
||||
**Gotcha:** `Reconcile` with neither a `Store` nor a `Loader` does **nothing**
|
||||
— there is nothing for it to pull from, so it cannot help a late joiner catch
|
||||
up. If your map has no durable backing, a leader (or another privileged
|
||||
writer) must republish its live state after a reconnect instead of relying on
|
||||
`Reconcile` to recover it.
|
||||
|
||||
|
||||
@@ -25,9 +25,9 @@ var (
|
||||
// PinStore is given) so a late joiner hydrates every pin from the DB on
|
||||
// Start, not just from whatever peers happen to broadcast afterwards.
|
||||
// - failover.targets and failover.chains are ephemeral live-health state,
|
||||
// NATS-only with no Store and no Reconcile: there is nothing durable to
|
||||
// hydrate from, and a Reconcile tick would re-hydrate them empty and wipe
|
||||
// live state clean off a running frontend. A late joiner instead catches
|
||||
// NATS-only with no Store and no Reconcile: with neither set, a Reconcile
|
||||
// tick's hydrate is a no-op (nothing durable to pull from), so it could
|
||||
// never help a late joiner catch up anyway. A late joiner instead catches
|
||||
// up from the leader's periodic Republish (see failover.Manager.Republish).
|
||||
type Sync struct {
|
||||
pins *syncstate.SyncedMap[string, PinRecord]
|
||||
|
||||
@@ -236,11 +236,11 @@ continue. On a single LocalAI instance, a restart removes the pin. In
|
||||
- The model editor's template picker has a **Failover Chain** template that
|
||||
starts a new model with two empty targets. Any model can also add a
|
||||
`failover.targets` field directly: each row picks a target model and a
|
||||
**warm** toggle, with move up/down and remove controls. The warm toggle is
|
||||
disabled, with an explanation, for a target on a remote (`localai-proxy` or
|
||||
`cloud-proxy`) backend, since `warm` has no effect there. The field flags
|
||||
fewer than two targets, a duplicate target, and the chain naming itself as
|
||||
one of its own targets.
|
||||
**warm** toggle, with move up/down and remove controls. The toggle is
|
||||
available on every row; `warm` has no effect on a remote (`localai-proxy` or
|
||||
`cloud-proxy`) target, and LocalAI logs a warning when it loads a chain with
|
||||
one set. The field flags fewer than two targets, a duplicate target, and the
|
||||
chain naming itself as one of its own targets.
|
||||
- Opening an existing chain in the model editor shows a health strip: the
|
||||
chain's status pill, its active target and how long it has been active,
|
||||
and a table of every target with its kind, warm flag, status, last probe
|
||||
|
||||
@@ -70,8 +70,9 @@ below applies when distributed mode is on.
|
||||
maps. The manager does not import NATS or gorm directly.
|
||||
- A peer delta is applied through `OnApply`, which changes local state
|
||||
without publishing again (no echo loops).
|
||||
- The NATS-only maps have no `Store`, so `Reconcile` would re-hydrate them
|
||||
empty. Instead the leader republishes every target and chain snapshot every
|
||||
- The NATS-only maps have no `Store`, so a `Reconcile` tick's hydrate would be
|
||||
a no-op — nothing durable to pull from, so it could never help a late
|
||||
joiner. Instead the leader republishes every target and chain snapshot every
|
||||
10 s. A frontend that joins late converges within 10 s and uses its own
|
||||
state until then.
|
||||
|
||||
|
||||
Reference in new issue
Block a user