v0.42.0

feder-cr/invisible_dotsv0.42.0Sep 12, 2026by github-actions[bot]

Upgrading?

AI Summary

This release fixes a critical bug where the `support` browser helper was not being closed after use. The fix involved truncating tool descriptions to fit API limits, ensuring server instructions are sent, and modifying the end-of-turn sentence to prioritize closing the browser.

Key Highlights

  • Fixed the `support` browser helper not closing after use, increasing success rate from 0% to 100%.
  • Truncated `browser_open` and `browser_click_at` tool descriptions to comply with the 1024-character API limit.
  • Modified the end-of-turn sentence to explicitly instruct the model to close the browser before answering.
  • Ensured server instructions are properly passed to the helper browser loop.

Full Release Notes

The owner watched the helper browser get opened, used and never closed. Measured
before touching anything, with the real model on a task that needs both
browsers: six runs out of six left `support` open at the end, and in the owner's
own sessions one conversation of 247 steps used it 29 times and never closed it.

Three origins, none of them the model:

- The server's instructions never reached it. They are the one place the
  two-browser contract is written - what `support` is for, and that whoever
  opens it closes it - and the loop sent the system prompt and the tool
  descriptions and nothing else. The link keeps what the server says at
  `initialize`, and one function builds the system message from this build's
  prompt plus those instructions, refreshed at the start of every run, so a
  restored transcript and a fresh one carry the same current text. It was
  assembled by hand in two places and had the instructions in neither.

- The end-of-turn sentence forbade the very call that closes the helper: "reply
  with the answer and do NOT call any more tools", at the exact moment the
  close should happen. The order is in the sentence now - close `support` if
  you opened it and nothing more needs it, then answer, then no more tools -
  without exception vocabulary, because an exception is what a model reaches
  for.

- The API cuts every tool description at 1024 characters, and `browser_open`
  was 1996: the model read it ending mid-word inside the paragraph about
  profiles, and the one sentence about closing was past the cut.
  `browser_click_at` was over too. Both fit now, the contract comes first, and
  what was cut moved into comments for a reader of the source.

Measured after, same bench, same task, same model, six runs: `support` closed
before the answer in six, left open at the end in none. Every sequence ends
with browser_close support.

Gates: every description under the limit and identical to what the loop sends,
executed against the real server; `browser_open` names `browser_close` in its
first half; the loop puts the instructions in the one system message and
replaces them run to run; the brain hands the link's instructions to the loop;
the end-of-turn sentence closes before it answers and carries no loophole.

Related Repositories