The lifecycle had seven steps - declare, wake, look, act, rebuild,
remember, close - because a command aimed at a browser that was not
running STARTED one, and an action whose browser had died REBUILT it and
ran the action again. Each was a place to be wrong, and both were. The
owner cut it on 2026-09-14. What is left:
browser_openopens a browser and nothing else does. With no arguments
mainis the person this session already was: seed, exit and profile
read from the file, whichbrowser_openwrites and which nothing else
touches. Any argument is a decision and goes through the planner.- Every other tool goes through one funnel,
Work.acting. A browser that
is not open answersthe main browser is not open. Call browser_open to open it.; one that was open and died answersthe main browser is gone: it closed or crashed. Call browser_open to open it again; it comes back as the same person.and is forgotten, so the next open
starts clean. A closed target raised under an action is the same fact
and the same sentence. A page that refuses passes through untouched. browser_closefrees the engine and keeps who it was.- The live pane reads the not-open sentence as idle and every other
sentence as something to say.
What died with it: registry.py (367 lines - locks per key, refusals,
tab numbering across rebuilds, ensure/drop/declare/on_change/is_dead),
half of work.py (ready, looking, already_open, retrying, the pages
owed and seen, three sentences for "nothing running"), the tab
bookkeeping in session.py (ids, counter, active flag, close_page: a
browser drives one page, the newest live one of its context), and the
strip of other browsers in the page with its stylesheet, empty by
construction once nothing is "declared and not started". Nine test
files of the old lifecycle are one file of the new one.
The model's instructions open with it, and so does the system prompt.
Driven with the real model from this tree: asked to read a heading with
nothing open, it called browser_open first, then navigated. The page
loads with no script error and one screen.
Eight mutations, seven killed and one equivalent (remember called for the
helper writes nothing either way). Suite 584; engine tests 32 green on
firefox-30.