v0.53.0
feder-cr/invisible_dotsv0.53.0Sep 14, 2026by github-actions[bot]
Upgrading?
AI Summary
This release simplifies the application lifecycle from a complex seven-step process into a streamlined architecture centered around `browser_open` and `Work.acting`. It consolidates browser state management and significantly reduces code complexity by removing legacy modules like `registry.py`.
Key Highlights
- Simplified lifecycle architecture replacing the previous 7-step process.
- Introduction of `browser_open` as the primary tool for browser initialization.
- Implementation of a unified funnel (`Work.acting`) for tool execution and state checks.
- Removal of `registry.py` (367 lines) and consolidation of test files.
- New `browser_close` tool added to free the engine.
Breaking Changes
- Removal of the legacy 7-step lifecycle (declare, wake, look, act, rebuild, remember, close).
- Removal of the `registry.py` module entirely.
- Removal of tab bookkeeping logic in `session.py` (ids, counter, active flag).
- Removal of specific 'nothing running' sentence handling in the old lifecycle.
New Features
- `browser_open` tool now handles browser initialization and profile reading.
- `Work.acting` funnel handles browser state errors (not open, gone, closed) and page refusals.
- `browser_close` tool added to free the engine.
- Live pane updated to interpret 'not-open' sentences as idle state.
Full Release Notes
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_open` opens a browser and nothing else does. With no arguments `main` is the person this session already was: seed, exit and profile read from the file, which `browser_open` writes 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 answers `the main browser is not open. Call browser_open to open it.`; one that was open and died answers `the 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_close` frees 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.
Related Repositories
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
Reverse engineer anything with agents, from app behavior down to native binaries.
The open source coding agent.
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.