|
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. |
|---|
|
|
| .gitignore |
|---|
| docs/config.md |
|---|
| navi/api/routes/config_overlay.py 0 → 100644 |
|---|
| navi/api/routes/health.py |
|---|
| navi/auth/client.py |
|---|
| navi/config.py |
|---|
| navi/core/container.py |
|---|
| navi/core/registry.py |
|---|
| navi/identity.py |
|---|
| navi/llm/config.py |
|---|
| navi/main.py |
|---|
| navi/overlay/__init__.py 0 → 100644 |
|---|
| navi/overlay/apply.py 0 → 100644 |
|---|
| navi/overlay/fetch.py 0 → 100644 |
|---|
| navi/overlay/merge.py 0 → 100644 |
|---|
| navi/overlay/schema.py 0 → 100644 |
|---|
| navi/overlay/state.py 0 → 100644 |
|---|
| navi/overlay/util.py 0 → 100644 |
|---|
| navi/overlay/validate.py 0 → 100644 |
|---|
| navi/settings_model.py 0 → 100644 |
|---|
| navi/swarm.py |
|---|
| tests/conftest.py |
|---|
| tests/unit/overlay/test_apply.py 0 → 100644 |
|---|
| tests/unit/overlay/test_fetch.py 0 → 100644 |
|---|
| tests/unit/overlay/test_merge.py 0 → 100644 |
|---|
| tests/unit/overlay/test_notify_route.py 0 → 100644 |
|---|
| tests/unit/overlay/test_validate.py 0 → 100644 |
|---|
| tests/unit/test_swarm.py |
|---|