mirror of
https://github.com/feder-cr/Jobs_Applier_AI_Agent.git
synced 2026-11-07 10:36:05 -10:00
A Dot keeps the golden image it was made from and boots every new runtime disk, so the engine already talked to servers other than the one its pinned copy of the interface described. The engine now reads the interface from the installed server when it starts (nanobot/dots/server_interface.py, server_capture.py run as dot by the server's own python): the page tools are what that server serves, a page tool it does not serve is not offered (GET /tools says so), and a Dot whose server cannot be read offers no page tool and its launches say why. With nothing in the engine tied to a version, the image no longer pins one: each build asks PyPI for the newest invisible-playwright-mcp, the newest invisible-playwright it accepts and the invisible-core that one pins (browser-release.ts). The three enter the inputs digest, pins.env and the manifest, which records what was installed. mcp-requirements.lock and capture-mcp-interface.py go; the copy of the interface becomes a test fixture. The owner's no-other-browser rule is checked at build on what was actually installed (builder/other-browsers.txt), and the golden image workflow runs every six hours so a new release is published as a prebuilt image.