You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
browser_agent returned its whole JSON payload uncapped while every other tool
capped at 40k, so a single run could put tens of kB into the caller's context — the
one thing the "context hygiene is a feature" invariant exists to prevent. Steps are
now projected to the reasoning trail ({step, action, thought}); the coordinates,
keystrokes and typed text were consumed when the action was issued. browser_action
gets the same cap for symmetry.
truncate() kept only the head of a long page. The 40k limit already cuts a large
page, and it cut the end — the last rows of a table, the conclusion of an article.
It now keeps a head and a tail with the elision stated between them, and browser_fetch gains text_offset so a long page can be paged deliberately instead
of guessed at. save_text_to still writes the whole page: paging applies to the
inline path only.
/fetch asked the daemon for the full rendered HTML on every call and then dropped
it. The daemon has to read the DOM either way, so the default bought nothing while
costing a full-page transfer and a large transient JS heap on a 1 GB host. HTML is
now requested only when save_html_to is used; html_length is still reported
either way.
The gitleaks job gets GITHUB_TOKEN, so it no longer fails on every pull request
while passing on pushes to main.
Changed
info/debug log lines are buffered and flushed on setImmediate instead of one
synchronous appendFileSync per line — two per tool call plus one per HTTP attempt,
each blocking the stdio server's event loop. warn and error stay synchronous:
they are rare, they are what you need after a failure, and a crash is exactly when a
buffer would be lost.
The log file rotates to a single .1 generation past 8 MB instead of growing
without bound into a directory on a 20 GB SSD shared with a live VPN.
browser_action's coordinate description claimed a "1280x720 viewport" when the
space is the whole X11 window, page area included. It now describes the real space
and states no offset number, because that gap varies and the daemon measures it.