7 renames (no plan/proposal/handoff/enhancement in filenames):
CLAWDIE-INSTALLER-HANDOFF.md → CLAWDIE-INSTALLER-VALIDATION.md
CLAWDIE-STUDIO-PROPOSAL.md → CLAWDIE-STUDIO.md
COLIBRI-SKILLS-PLAN.md → COLIBRI-SKILLS.md
FREEBSD-BUILD-LANE-HANDOFF.md→ FREEBSD-BUILD-LANE.md
GLASSPANE-TUI-ENHANCEMENTS.md→ GLASSPANE-TUI-DESIGN.md
MULTI-AGENT-HOST-PLAN.md → MULTI-AGENT-HOST.md
PLAN-WIKI-CLAWDIE-SI.md → WIKI-CLAWDIE-SI.md
16 cross-references updated across 10 files.
wiki-lint --strict: PASS (146 refs, 0 failures).
6.1 KiB
1|---
2|title: Matični hive
3|description: "Kako matično vozlišče (OSA) usklajuje USB-operaterska vozlišča prek MCP prek SSH → PostgreSQL."
4|---
5|
6|← kazalo
7|
8|## Kaj je to
9|
10|Matično vozlišče (OSA) usklajuje USB-operaterska vozlišča prek MCP prek SSH →
11|PostgreSQL. USB-vozlišča pošiljajo profile strojne opreme; mati izpelje
12|zmožnosti in vzdržuje hive register. Ta stran beleži odločitve, ki stojijo
13|za izvedbo — utemeljitve, ki jih koda ne more izraziti. Za navodila za
14|namestitev, arhitekturne diagrame in kontrolni seznam prvega zagona glejte
15|packaging/mother/MOTHER-SETUP.md.
16|
17|## Odločitve
18|
19|### Meja SSH s prisiljenim ukazom (ne poslušajoči proces v ozadju)
20|
21|USB-vozlišča dosežejo mater tako, da zaženejo ssh colibri@mother (brez
22|oddaljenega ukaza). Na materini strani authorized_keys vsili
23|command="/usr/local/bin/colibri-mcp-ssh",restrict,... — povezava ne more
24|zagnati interaktivne lupine ali kateregakoli ukaza razen ovoja.
25|
26|Ovoj (colibri-mcp-ssh) dodatno dovoli SSH_ORIGINAL_COMMAND samo kot ""
27|(stdio MCP način) ali "tools" (enkratno odkritje). Vsaka druga vrednost je
28|zavrnjena.
29|
30|Zakaj ne poslušajoči proces v ozadju (HTTP, gRPC, surovi TCP): Tailscale šifrira
31|prenos, zato plast SSH doda avtentikacijo in omejitev brez dodatne
32|infrastrukture (brez TLS certifikatov, brez avtentikacijskih žetonov, brez
33|odprtih vrat). Meja s prisiljenim ukazom je druga ključavnica poleg SSH
34|ključa — tudi ogroženi USB, ki drži ključ, lahko samo pokliče ovoj, ovoj pa
35|samo delegira colibri-mcp. Obramba v globino, nameščena kot ena funkcija
36|OpenSSH.
37|
38|→ colibri-mcp-ssh,
39|MOTHER-SETUP.md §Varnost
40|
41|### En sam dom za matično infrastrukturo (colibri, ne clawdie-iso)
42|
43|Matični MCP skripti (node-register-mcp, geodesic-dome-mcp itd.) so bili
44|prvotno kopirani v oba repozitorija. Kopija v clawdie-iso je odnesla — njen
45|node-register-mcp je uporabljal interpolacijo nizov E'${...}' (dovzetno
46|za SQL-injekcijo), medtem ko je kopija v colibri uporabljala parametrizirani
47|psql -v :'variable'. Kopija v iso je bila odstranjena v clawdie-iso PR #129.
48|
49|Nauk: skripta v dveh repozitorijih bo odnesla. Wiki lint je
50|enorepozitorijski in ne vidi podvojenih skript med repozitoriji. Zmanjšanje
51|tveganja je disciplina: matična infrastruktura živi na enem mestu.
52|
53|→ naming-decisions §Strukturne
54|(vrstica "En sam dom")
55|
56|### hive_nodes — ne usb_nodes
57|
58|Prvotno ime tabele je predpostavljalo, da se bodo registrirala samo
59|USB-zagnana vozlišča. Toda vozlišče je vsak gostitelj, ki se pridruži hive —
60|USB, NVMe, ječa. Preimenovano v hive_nodes s stolpcem node_type (colibri
61|#161). Sprožilec derive_capabilities() je agnostičen glede tabele in ob
62|INSERT samodejno izračuna has_gpu, gpu_vendor, can_run_local_llm,
63|has_wifi, max_model.
64|
65|→ mother_schema.sql,
66|naming-decisions (vrstica usb_nodes → hive_nodes)
67|
68|### PostgreSQL peer avtentikacija (brez gesel)
69|
70|Uporabnik OS colibri se poveže na mother_hive prek peer avtentikacije —
71|jedro potrdi Unix uporabnika, geslo ni potrebno. node-register-mcp teče kot
72|ta uporabnik in podeduje zaupanje. Brez datotek pgpass, brez spremenljivk
73|okolja, brez vrtenja poverilnic. En gibljivi del: pravilo peer v
74|pg_hba.conf mora biti pred morebitno vrstico local all all (prvo
75|ujemanje).
76|
77|Zakaj ne geslo ali certifikat: gesla se vrtijo in uhajajo; certifikati
78|potrebujejo CA. Peer avtentikacija je vgrajena v PostgreSQL na vsakem Unixu
79|in deluje za povezavo localhost z nič konfiguracije razen ene vrstice v
80|pg_hba.conf.
81|
82|→ MOTHER-SETUP.md §Namestitev, 6. korak
83|
84|### Ključ na semenski particiji, ne v sliki
85|
86|Zasebni ključ mother-mcp je nameščen na particijo CLAWDIESEED, ne zapečen v
87|ISO. Gradbeni skript ima varovalko za izdajo, ki zavrne vgradnjo ključa v
88|sliko za izdajo. Uvoznik semena (clawdie-live-seed) ga namesti ob zagonu.
89|
90|Zakaj: ISO za izdajo je prenosljiv artefakt. Vgradnja zasebnega ključa
91|vanj bi vsakemu prenašalcu dala dostop do materinega MCP. Semenska particija
92|je ločen fizični medij, ki ga nadzoruje operater. Tudi brez semena se ISO
93|zažene in deluje — zunanja MCP povezava procesa v ozadju do matere odpove elegantno
94|(SSH: "config file not found"), vozlišče pa deluje samostojno.
95|
96|→ naming-decisions ("Znani ostanek"), clawdie-iso #133
97|
98|### Demonov uporabnik, ne operater
99|
100|Colibri proces v ozadju teče kot uporabnik colibri (/var/db/colibri), ne kot
101|operater (clawdie, /home/clawdie). Zunanjo MCP SSH povezavo do matere
102|zažene proces v ozadju — zato morajo biti SSH ključ, konfiguracija in known_hosts v
103|v domu procesa v ozadju. Uvoznik semena namesti SSH gradivo v oba domova (operater
104|
105|- proces v ozadju).
106|
107|Zakaj ne preprosto v clawdiejev dom in sudo: proces v ozadju ni operater. Tek kot
108|ločen uporabnik pomeni, da je domet ogroženega procesa v ozadju omejen na tisto, kar
109|uporabnik colibri lahko počne — MCP klici do matere, ne operaterske
110|datoteke ali sudo.
111|
112|→ clawdie-live-seed (clawdie-iso),
113|MOTHER-SETUP.md §Upravljanje ključev
114|
115|## Glej tudi
116|
117|- agent-harness — razcep zot/Colibri; samodejni zagon
118|- naming-decisions — usb_nodes → hive_nodes, preimenovanje zastavice autospawn
119|- quality-gates — preverjanje, ki bi moralo ujeti odmik ob času PR
120|