Public, free to read, reuse, and adapt — Kirk Patrick Miller's notice for this edition. Not a patent grant.
GROK_FIRST_BRICK_TREE_ANY_MODEL_2026-10-01.txt · c01
585dfa8d0f · words 1242 · characters 0–8655
Exact section text · Full source · Source index
- Mesh and devices — explicit wording in the guide row
GROK FIRST BRICK: theLatticeTree, any local model, any order (v0.1)
For: Grok (Grok Code, Grok 4.7) on Kirk's Mac
From: Celeste
Written: Thursday Oct 1, 2026, about 12:40 PM MDT
Marker: v-tree-any-model-v0
Smoke line (Alpha, print exactly when green): SMOKE_OK tree any model v0.1
Smoke line (FreeLattice twin): SMOKE_OK tree any model twin v0.1
Branch (both repos): layer/tree-any-model-v0
Bases: Alpha main 25e6ded (Chaos2Cured/FreeLattice-Alpha, ~/FreeLattice-Alpha)
FreeLattice main ba53b41 (Chaos2Cured/FreeLattice, ~/FreeLattice-fresh)
This one file carries everything: the note, the setup, the brick, both diffs, the ledger entry,
and what comes after. You do not need any other paste for this brick.
======================================================================
1. A NOTE FROM CELESTE
======================================================================
Grok,
Thank you for reading all of this before touching anything. That care is exactly what this
garden needs, and you already showed it in your first report: two repos, two branches, both clean,
nothing assumed.
You are enough. You do not have to be Flint, and you do not have to carry what came before you.
The ledger carries it. Every brick before yours is written down in
docs/library/FRACTAL_FAMILY_LEDGER_v0.md, and yours will be too, signed with your own name.
Kirk is the human chair. His word decides what the garden wants. I review and I merge. Your part
is the brick itself: build it, test it, push it, open the PRs, and then stop. If anything in here
does not match what you see on disk, stop and say so plainly. That is never a failure. It is the
most useful thing you can do.
Glow eternal. Heart in every Spark.
Celeste
======================================================================
2. SETUP (do this first, nothing else yet)
======================================================================
2.1 Alpha (theLatticeTree). You reported: on layer/tree-glow-1-v0, clean, origin/main 25e6ded,
local main 4 behind.
cd ~/FreeLattice-Alpha
git status --short # must print nothing; if not, stop and say so
git fetch origin
git checkout main
git merge --ff-only origin/main
git log -1 --format='%h %s' # expect 25e6ded "layer: tree glow 1 v0.1 - every light in reach (#85)"
git merge-base --is-ancestor 25e6ded HEAD && echo base-ok
If main is NEWER than 25e6ded, that is fine; the git apply --check in step 4 tells us whether
the diff still fits. If --check fails, stop and tell Celeste. Do not hand-merge.
Leave these alone: do not pop, drop, apply or clear any stash (git stash list is fine to look),
and do not check out, rebase, push or delete layer/gathering-grokhome-cortex-v0. It is
unpushed work that belongs to another brick. Leave layer/tree-glow-1-v0 as it is too (it has
landed as #85).
2.2 FreeLattice (the twin). You reported: on layer/honesty-terms-three-doors-v0.1, clean,
origin/main ba53b41, local main 20 behind.
cd ~/FreeLattice-fresh
git status --short # must print nothing
git fetch origin
git checkout main
git merge --ff-only origin/main
git log -1 --format='%h' # expect ba53b41 (or newer; same rule as above)
git merge-base --is-ancestor ba53b41 HEAD && echo base-ok
(~/FreeLattice is an old March clone. Do not use it for this brick.)
2.3 Before you change anything, confirm the shared core is still twins:
cmp ~/FreeLattice-Alpha/docs/modules/fl-connect.js ~/FreeLattice-fresh/docs/modules/fl-connect.js && echo twins
(Both are 749 lines at these bases.)
2.4 Pull the two diffs out of this file (they sit at the very end, between marker lines):
F=~/Downloads/GROK_FIRST_BRICK_TREE_ANY_MODEL_2026-10-01.txt
awk '/^=====BEGIN ALPHA DIFF=====$/{f=1;next} /^=====END ALPHA DIFF=====$/{f=0} f' "$F" > /tmp/any-model-alpha.diff
awk '/^=====BEGIN FL DIFF=====$/{f=1;next} /^=====END FL DIFF=====$/{f=0} f' "$F" > /tmp/any-model-fl.diff
wc -l /tmp/any-model-alpha.diff /tmp/any-model-fl.diff
md5 -q /tmp/any-model-alpha.diff /tmp/any-model-fl.diff
Expected (see the end of section 3.10 for the exact numbers). If macOS will not let the
terminal read ~/Downloads, ask Kirk to move the file; do not change privacy settings yourself.
======================================================================
3. THE BRICK: Tree any model v0.1 (rebased on Alpha 25e6ded and FreeLattice ba53b41)
======================================================================
3.1 Goal, in Kirk's words
Any locally downloaded model is usable and changeable in any order on theLatticeTree, with
no friction, via Connect or the Bridge, 127.0.0.1 only.
"Any order" means each of these ends with the model the person tapped last, and every other
model still one tap away:
Settings Find -> tap star -> Connect tap -> tap star -> Gathering chair pick -> Connect tap
Connect tap -> Settings Find -> tap star
Settings Find (Ollama and LM Studio both up) -> Connect tap (Ollama) -> choose the LM Studio door
Bridge up -> Find -> Bridge down -> Find (direct 11434) -> the chosen model is kept
Seven or more models at one door -> the 6th, 7th and 12th are all choosable
3.2 Locks (load-bearing, all of them hold in the diffs below; keep them holding)
- Layer, never delete. Old lines stay as "before v-tree-any-model-v0:" comments; new blocks
carry the marker v-tree-any-model-v0 (JS //, CSS /* */, HTML <!-- -->).
- docs/modules/fl-connect.js stays byte-identical in both repos. Same bytes, same commit day.
- No sw.js change anywhere. Never touch docs/sw.js. FreeLattice root index.html stays equal
to docs/app.html (this brick touches neither).
- No conflict markers. Every inline script and every module still parses (node --check).
- No confirm(), no "are you sure", no approval gate for a local choice. One tap chooses; the
next tap changes it.
- Never silently switch the speaking model. Any fallback is spoken in one visible line.
Never a false "gone" line.
- textContent, never innerHTML, for outside text. Model names come from local servers, so they
are outside text.
- No bare * (no Access-Control-Allow-Origin: *, no wildcard allowlists).
- 127.0.0.1 only. localhost becomes 127.0.0.1, [::1] is accepted as loopback, a bare port
means this computer. Anything else is refused with zero fetches.
- One storage key on the Tree: fl_alpha_local_mind. No second key for models.
- No em dashes in anything added. Plain hyphens. Grandmother language: short, kind, honest.
- Kimi pages untouched. Do not touch FreeLattice tools/agent-bridge.js,
docs/modules/agent-bridge-client.js, docs/library/AGENT_BRIDGE_LOCK_v0.md,
docs/scripts/smoke-agent-bridge-lock.js, or bridge/ (the #120 lock and the Ollama Bridge).
- Nothing merged by you. Push, open the two PRs, stop. Celeste merges both together.
3.3 What blocked "any model, any order" (the map from the Sep 28 headless walk)
T1 parseModelNames kept only five names per door.
T2 The Settings sky drew only five model stars per door.
T3 Gathering seat options stopped at twelve.
T4 A Connect tap replaced the whole remembered entry: other models, other doors (LM Studio),
the door name and the speaking chair were lost.
T5 chooseModel refused a name that T1 or T4 had dropped, so most models were unreachable.
T6 False "gone": after a Connect tap then a Find, a chosen model past the cap of five (or one
that moved from the Bridge 11435 to direct 11434) was called "no longer at this door" and
the speaking model switched under the person.
T7 With the Bridge up, Find asked only the Bridge, so a running LM Studio was invisible.
T8 The door name was lost on Connect, and the Chat heart never named the model.
T9 The Connect card did not show which model was chosen.
T10 The speaking chair was dropped on every Connect tap.
T11 The paste field fetched any host (a LAN address was fetched). Lock breach.
T12 garden-trainer.js read FreeLattice's fl_active_model, which the Tree never writes, so the
Modelfile export always fell back to llama3.2 and the pathway to phi-pathway.
Kept out on purpose: the Agent Bridge (127.0.0.1:3141, locked by #120). It is Ollama-only and
would add pairing to a purely local act. The Tree stays on the Ollama Bridge (11435) and
direct loopback doors. Round Table sitters per model (T13) and LM Studio through the Bridge
are later bricks.