v0.51.0
feder-cr/invisible_dotsv0.51.0Sep 14, 2026by github-actions[bot]
Upgrading?
AI Summary
This release refactors the server lifecycle management by introducing a `Work` class to centralize state, significantly reducing code complexity and file size. It also improves user feedback by making browser rebuilds explicit and updates error handling to align with invisible-playwright 0.15.0.
Key Highlights
- Introduction of a `Work` class to own the server lifecycle (declare, wake, look, act, remember, close).
- Reduction of `server.py` from 1,231 to 783 lines by consolidating state management.
- Browser rebuilds are no longer silent; `browser_navigate` now warns users if the browser died and was reopened.
- Updated error handling to recognize `TargetClosedError` from invisible-playwright 0.15.0.
New Features
- Centralized server lifecycle management via the `Work` class.
- Explicit warning messages for browser rebuilds in the transcript.
- Address scanners now read both modules.
Full Release Notes
The server held its whole lifecycle in four module globals - the registry, a restored flag, the pages seen and the pages owed - and a dozen free functions reading them. Every fixture that wanted a clean server rebuilt all four by hand, which is the tell of state that wants to be one thing with one lifecycle; the cost showed three times in one afternoon (#1324). `Work` now owns it: declare, wake, look, act, remember, close, each one method, documented in the order it happens. The server builds one from `AIHAWK_SESSION_ID` and every tool goes through it; a test installs one of its own with a factory that launches nothing. `server.py` is 783 lines where it was 1231, with nothing added but the object. A rebuild is no longer silent: `browser_navigate` says in front of its answer that the browser had died and was reopened as the same person, so a person watching the window close and reopen reads the same thing in the transcript. And a dead browser is recognised by its type: invisible-playwright 0.15.0 raises one `TargetClosedError` for a disposed object and a closed pipe alike and exports it, so the three sentences 0.50.0 matched are gone and the floor moves to 0.15.0. The address scanners read both modules now. Five known-bad mutations seen red. Suite 622 green, ruff, content and english gates clean. Version 0.51.0.
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.