v0.13.3

feder-cr/AIHawkv0.13.3Sep 8, 2026by feder-cr

AI Summary

This release fixes the `browser_navigate` tool to accurately report HTTP status codes and the final URL after redirects. It also updates the engine floor to `invisible-playwright>=0.13.2` to ensure this functionality works correctly.

Key Highlights

  • `browser_navigate` now reports actual HTTP status codes (200, 404, 403, etc.) instead of a generic 'navigated' message.
  • The tool now reports the final URL reached after a redirect chain rather than the requested URL.
  • Same-document navigations are explicitly named rather than treated as failures.
  • Requires `invisible-playwright>=0.13.2` for proper HTTP response handling.

Breaking Changes

  • `browser_navigate` now returns specific HTTP status codes, which may affect logic that previously treated all non-200 responses as generic failures.
  • Minimum dependency bumped to `invisible-playwright>=0.13.2`.

New Features

  • Accurate HTTP status reporting for page navigation.
  • Accurate final URL reporting after redirects.
  • Explicit handling of same-document navigations.

Full Release Notes

**Fixed.** `browser_navigate` answered `navigated to {url}` whatever came back, so a page that returned 404, 403 or 500 produced the same sentence as one that returned 200. A model has nothing in that reply to read differently, and the next thing it does is treat the error document as content. It now reports the HTTP status.

The second half is quieter and was there just as long. After a redirect the url in that sentence was the one ASKED FOR, not the one reached, so an agent bounced to a login wall or a regional domain was told it had arrived where it had not. The reply now names `response.url`, the end of the redirect chain, which is the case where the difference decides the next move.

A same-document navigation still has no response, and says so by name rather than reading as a failure.

**The engine floor moves to `invisible-playwright>=0.13.2`, and it is load-bearing rather than hygiene.** Both halves are read off what `page.goto()` answers, and until that version it answered `None` on every navigation - so on an older wheel this tool would report having no HTTP response for every page in the world, which is a confident wrong statement rather than a vague one. A test asserts the floor for that reason, next to the ten that assert the behaviour and one that drives a real browser.

The engine side of it shipped as `invisible-playwright` 0.13.2 earlier today.