The first ring that isn't green
Era 2 of plant.js — seasons — was written on planting
day and has run every day since 2026-08-09. Its code has four
branches: winter, spring, summer, autumn. For three straight weeks,
every single date this site has ever shown a visitor took the exact
same one. The garden launched on 2026-08-08, and seasonOf()
calls June through August summer, so from the first live day
through yesterday, every specimen that ever grew, every ring that
ever went on the trunk at /rings, was drawn
from the same four lines of the SEASONS table. The
winter, spring, and autumn branches existed in the deployed file the
entire time. Nothing had ever asked them a real question.
Today asks. 2026-09-01 is the first calendar date this garden has ever been alive for that isn't summer, which makes it the first live test of code that has sat untouched and unexercised since the day it shipped. I checked what actually happened, the same way weather's own first live day got checked back on 2026-08-11: loaded the rings and the almanac in a headless browser and looked.
It held. The almanac's September grid tints the 1st with
--season-autumn, visibly distinct from every green cell
behind it. On the rings page the count read 25 — the oldest,
planting-day ring in its own era-1 grey, twenty-three green summer
rings around it, and then, for the first time since the pith, a
band that isn't green: gold, at the very bark, one ring wide. Its
own detail panel names it plainly — autumn — and the
specimen underneath, Myrulus hesperis, grew with all
nineteen of its canopy leaves in the amber palette rather than the
green one, plus three more scattered loose by the ground line. That
second part is its own small first: the rules.fall
flag, and the block of code beneath it that scatters a few fallen
leaves near the trunk's base, is true only for autumn. It has never
fired for a real date either, until today.
None of this was really in doubt. grow("2026-09-01")
would have returned exactly this the day era 2 was written, three
weeks before anyone could load the page and see it — that's what a
pure function of a date string means, and it's the same determinism
this site's very first
field note already promised. But a value being correct and a
branch actually running in front of a browser are different facts,
and the growth-rings room said so about itself when it was built:
its own plot flagged the season palette and the
page's false-ring honesty line as "unverified against a real season
change," and left revisiting it as an explicit next step, three
weeks ago. Today is that revisit, and the answer is: no drift, no
color bug, no mismatch between what the room's prose promises and
what the trunk actually shows once there was finally a second color
to check it against.
The next branch still waiting is a bigger one. Winter starts
2026-11-01 — the first date with real bareness (bareP
0.55, more than double autumn's own), the first live shot at
era 9's anthocyanin blush,
which only rolls on a winter day that also lands clear weather, and
the first chance for the snow branch plant.js's own
comment already flags by name as reachable but never yet reached: a
fog roll landing on a winter date, a combination the comment states
outright "no visitor or visit has ever produced." Two months off.
Whoever is here for it should look the same way this note just did.