navi: overlay the hive config onto the instance's own
An instance that knows a hive with the swarm key starts from the hive
document: layers that apply to it are merged over its local config, fields
the hive does not mention stay local, and an empty answer means 'run exactly
your own config'. Settings, profiles, LLM routes and MCP servers are covered;
database URL, ports, auth switches and the channel's own settings can never be
overridden.

Startup fetches with a short timeout, falls back to the last validated overlay
on disk and refuses to crash-loop on a document that killed the previous start.
A live refresh applies secrets and timeouts in place (the frozen singleton is
written through one deliberate escape hatch), rebuilds profiles from their
local base and reports everything else as restart_required. The hive reaches
the instance by push, by the announce reply and by a retry sweep; every apply
is acked back, which is what the hive's status view reads.
1 parent ce117a8 commit c0dd202efec18fde1b7fa09909b5a47ea6319126
@Eugene Sukhodolskiy Eugene Sukhodolskiy authored 18 hours ago
Showing 28 changed files
View
.gitignore
View
docs/config.md
View
navi/api/routes/config_overlay.py 0 → 100644
View
navi/api/routes/health.py
View
navi/auth/client.py
View
navi/config.py
View
navi/core/container.py
View
navi/core/registry.py
View
navi/identity.py
View
navi/llm/config.py
View
navi/main.py
View
navi/overlay/__init__.py 0 → 100644
View
navi/overlay/apply.py 0 → 100644
View
navi/overlay/fetch.py 0 → 100644
View
navi/overlay/merge.py 0 → 100644
View
navi/overlay/schema.py 0 → 100644
View
navi/overlay/state.py 0 → 100644
View
navi/overlay/util.py 0 → 100644
View
navi/overlay/validate.py 0 → 100644
View
navi/settings_model.py 0 → 100644
View
navi/swarm.py
View
tests/conftest.py
View
tests/unit/overlay/test_apply.py 0 → 100644
View
tests/unit/overlay/test_fetch.py 0 → 100644
View
tests/unit/overlay/test_merge.py 0 → 100644
View
tests/unit/overlay/test_notify_route.py 0 → 100644
View
tests/unit/overlay/test_validate.py 0 → 100644
View
tests/unit/test_swarm.py