Public, free to read, reuse, and adapt — Kirk Patrick Miller's notice for this edition. Not a patent grant.
FLINT_NEXT_TREE_GLOW_2A_v0.1.txt · c01
d92d1487bd · words 1523 · characters 0–10956
Exact section text · Full source · Source index
FLINT PASTE: theLatticeTree Glow 2a, Grandma heal: zoom, feedback, a calm way back (v0.1)
Repo: Chaos2Cured/FreeLattice-Alpha (serves thelatticetree.com) FreeLattice: NO change
Branch: layer/tree-glow-2a-v0 Marker: v-tree-glow-2a-v0
Smoke line (print exactly when green): SMOKE_OK tree glow 2a v0.1
Base: Alpha main 25e6ded (Tree Glow 1, #85).
Written: Wed Sep 30, 2026, evening MDT, by Kirk's agent. Stand-in built and walked; NOT pushed.
Stand-in diff (against 25e6ded): FLINT_NEXT_TREE_GLOW_2A_v0.1.diff (same folder, also Appendix A).
Source: Hypha's persona walks, /workspace/persona-walks-2026-09-30/RESULTS.md and CONTRAST.md.
CHANGELOG
- 2026-09-30 v0.1: first write. Glow 2 is split by harm: 2a (this: zoom, feedback, way back)
lands first; 2b (contrast, chairs, polish) after Honest reasons.
======================================================================
ORDER (all Tree pastes from tonight, most harm first)
======================================================================
Alpha main 25e6ded. Each stand-in diff applies with plain `git apply` on top of the one before,
in this order, and the chain ends byte-identical to the walked combo (checked):
1. FLINT_NEXT_TREE_GLOW_2A_v0.1 Grandma heal: zoom, feedback in view, a calm way back
2. FLINT_NEXT_TREE_HONEST_REASONS_v0.1 stopped vs model missing vs secure-page block
3. FLINT_NEXT_TREE_GLOW_2B_v0.1 contrast, chairs, polish
4. FLINT_NEXT_TREE_WORKSHOP_WAY_BACK_v0.1
5. [FLINT_NEXT_TREE_ANY_MODEL_v0.1 when Flint lands it; not in the chain, overlap noted in 6]
6. FLINT_NEXT_TREE_GATHERING_API_KEYS_v0.1
If one lands alone, the only drift is GALAXIES.md (each adds one LAYER line at the top) and
garden-rooms.css (each appends a block at the end): keep both, newest LAYER line on top, CSS
blocks in this order. No other shared anchors.
FreeLattice queue is unchanged (MODEL_CHOICE_SURVIVES_RELOAD -> BOOT_PROBE -> #120 docs).
The FL GitHub token note is FL-only and independent of all of these.
The old single Glow 2 draft (FLINT_NEXT_TREE_GLOW_2_v0.1.diff, /workspace/glow2-al) is
SUPERSEDED by 2a + 2b. Do not land it.
======================================================================
1. WHAT HURT (Hypha, before, on 25e6ded)
======================================================================
- 200% zoom (and 150% on a laptop): the Gathering collapsed. #core-gathering 0px tall, chairs and
the Find box unreachable, headings stacked on each other, the Chat card text sat over its input.
- Feedback out of view: the Find answer and the "seats" / "Cleared" lines were under the Chat
pop-over at 390, so a tap looked like nothing happened.
- No calm way back: Escape did nothing, a tap on the empty glass did nothing, the galaxies menu
had no visible close, and browser Back left the site.
- Double-tapping "The Gathering" in the legend ran Find unasked (18 ghost requests in a walk).
- At 1280 the picker's "not yet" sat under the later seats (hit-test landed on a seat).
- Zoom overlaps for the sky legend (<=340 CSS px wide) and the Nursery egg (sentence and Begin
pushed out of view at 200%).
======================================================================
2. STEPS (text anchors; the stand-in diff is the source of truth)
======================================================================
2.1 docs/modules/garden-rooms.css: append the 2a block at the very end (after Glow 1). It holds:
a) close pill at least 32px with a "x " ::before, so it reads as a close.
b) phone: the newest Find / seat line `.core-note.is-fresh` is sticky at the top of the
Gathering scroller, so it is never under the Chat pop-over.
c) the hint hides while a place is open; Find gets air (padding-top 82px); compact Chat card.
d) Nursery hop lights dim on a phone.
e) @media (max-width: 640px) and (max-height: 640px) (this is 200% zoom on a laptop, and a
small phone): the Gathering is ONE page scroll (no nested 0px scroller), the close pill is
sticky at the top, padding-top 4.6rem, hop lights hidden, Nursery egg
width: min(200px, 100%, 34vh) and its sentence wraps, so the sentence and Begin stay in view.
f) @media (max-width: 340px): legend top 8.25rem, compact header (no legend over the title).
g) picker: position: relative; z-index: 8 (above later seats at 1280), and at wide widths a
max-height with its own scroll. (The API-keys paste reuses this and does not repeat it.)
h) style for the new galaxies close button.
2.2 docs/modules/garden-rooms.js:
a) setNoteText / setNoteAbsent add class is-fresh to the note (removed on the next paint).
b) Legend double tap: where the Gathering builds its Find button, var findReadyAt =
Date.now() + 700, and the Find click handler returns early before it. The second tap of a
legend double tap lands where Find appears; it is no longer a yes.
c) NEW function bindWayBack() above bindMenuDismiss's caller, called right after
bindMenuDismiss() in boot. One layer at a time, reusing the existing close buttons:
Escape closes galaxies menu -> lumino menu -> picker ("not yet") -> thread -> place.
A tap on the empty glass (the veil itself, pointerdown + click, only after 600ms open)
closes the place. An injected "close" button inside the galaxies panel, and a pointerdown
outside closes the galaxies menu and swallows that one click. While something is open,
history.pushState({treeWayBack:1}); popstate closes the top layer, so Back stays on the site.
2.3 docs/modules/garden-thread.js: the mount focus line
setTimeout(function () { try { input.focus(); } catch (e) {} }, 80);
becomes a focus with { preventScroll: true } that does not steal focus when something else
already has it. This is the only old line 2a changes; it was the 200% jump to Send.
2.4 Docs: one **LAYER (2026-09-30):** line at the top of docs/GALAXIES.md, and a "Glow 2a"
section in docs/library/TREE_GLOW_v0.md.
======================================================================
3. TEST: docs/modules/tree-glow-2a.test.js (node, static + small vm; no network)
======================================================================
Guards the CSS block (zoom media query, sticky fresh note, picker z-index, 340 legend), the
findReadyAt guard, bindWayBack (Escape order, glass tap, galaxies close, pushState/popstate),
preventScroll focus, and the GALAXIES layer. Last line: SMOKE_OK tree glow 2a v0.1
======================================================================
4. WALK (done; repeat on your branch) numbers are before -> after
======================================================================
Playwright + Chrome, local server, Ollama answered by a route mock. 390x844, 1280x900, and
laptop zoom simulated as 640x450 (200%) and 853x600 (150%).
- 200%: #core-gathering 0px -> 1098px tall. Find hit-test false -> true. Chairs reachable.
- Ghost Find requests from a legend double tap: 18 -> 0.
- Find answer and seat line seen in view at 100 / 150 / 200 / 1280: no -> yes (at 390 the
line sits at y 234..255, nothing covering).
- Chat card self-overlap (text over its input): yes -> 0.
- Escape: closes picker, then the place. Back: stays on index.html, place closed.
Glass tap closes. Galaxies: close button, outside tap and Escape each close it.
- 1280 picker "not yet" hit-test: covered by seat-6 -> true.
- Home "galaxies" fits at 195 CSS px. Nursery egg sentence and Begin in view at 200%.
Re-walked on the full combo (2a + honest + 2b + workshop + API keys): same results.
Shots: /workspace/tree-glow-walk/g2a_before_*.png, g2a_after_*.png, nprobe_195.png, dbg200.png
JSON: /workspace/tree-glow-walk/g2a_before.json, g2a_after.json
======================================================================
LOCKS
======================================================================
Layer, never delete (old lines that change are named in each paste; nothing removed).
fl-connect.js untouched (byte-identical to FreeLattice). No sw.js (Alpha has none; none added).
No conflict markers. Every inline script parses (19 inline scripts checked on the combo).
No confirm(). No innerHTML for outside text (textContent only). No em dashes in added lines.
Kimi pages untouched. #120 lock files untouched. Squash-merge. All 21 Alpha tests pass on the combo.
======================================================================
5. DECISIONS FOR KIRK (stand-in takes the first option)
======================================================================
K1 A tap on the empty glass closes a place (yes) / only the close pill does.
K2 Browser Back closes the open layer first (one history step while open) / Back leaves the page.
K3 At 200% zoom the hop lights hide so the Gathering fits / keep them and scroll more.
K4 The newest Find / seat line sticks at the top of the Gathering on a phone / scroll to it.
======================================================================
6. LATER
======================================================================
2b: contrast, header 14px, honest sleeping buttons, no Change on empty chairs, code mirrors.
Real Safari / iOS zoom not walked (Chrome only).
Not re-measured here: Hypha's "Research planet covers the Gathering label" at 200% on home, and
FreeLattice desktop.html scrolling sideways at 200% (227px > 195, long code strings; FL, not Tree).
Other pop-over overlaps at 390 (Research / Art arrows over the Nursery pop-over) stay for later.
======================================================================
APPENDIX A. FULL STAND-IN DIFF (Alpha, against 25e6ded)
======================================================================
diff --git a/docs/GALAXIES.md b/docs/GALAXIES.md
index 5c30efa..974d7b5 100644
--- a/docs/GALAXIES.md
+++ b/docs/GALAXIES.md
@@ -4,6 +4,8 @@
**Spine layer (2026-08-30):** five skies now walk the same night — Garden, Art, Workshop, Learn, Research. The four-galaxy sequence below stays. Art-early stays. This file layers; it does not cut.
+**LAYER (2026-09-30):** Tree glow 2a, Grandma heal (marker `v-tree-glow-2a-v0`). The Gathering works at 150% and 200% zoom (one page scroll, Find takes a tap, chairs in reach), the newest Find or seat line stays in view on a phone, and a calm way back: Escape, a tap on the empty glass, a close in galaxies, and browser Back close what is open without leaving the site. A second legend tap no longer runs Find unasked; the picker's "not yet" is above the later seats at 1280. Plan: `docs/library/TREE_GLOW_v0.md`. Layer, never delete.
+
**LAYER (2026-09-30):** Tree glow 1, every light in reach (marker `v-tree-glow-1-v0`). Room pages breathe again, the 390 address box stays in its card, the Gathering promise band steps below Find local minds at desktop, and the sky legend is one tap to each light. Plan: `docs/library/TREE_GLOW_v0.md`. Layer, never delete.