github buggregator/server v2.7.0

25 minutes ago

Built with harnsy — the Buggregator team runs its AI agents in harnsy.

Before you upgrade

  • With the Xdebug proxy on, xdebug_break() now pauses the script even without an IDE. The new default xdebug.mode: auto lets Buggregator drive a session itself when no IDE answers. A script then stops at xdebug_break() or at a saved breakpoint and waits for you in the UI or for an AI agent. A session left paused is released after xdebug.idle_timeout (default 10 minutes, 0 = never). Before, a script without an IDE simply ran on. For the old behaviour set xdebug.mode: proxy (XDEBUG_PROXY_MODE=proxy). With the Xdebug proxy off (the default) nothing changes. (#392)
  • OpenAPI import: new default group name with a project. An import for a project without an explicit group now goes to openapi:<project>:<title> (before: openapi:<title>). Rules imported for a project with v2.6.0 stay in the old group. A re-import creates the new group next to it, so delete the old group or pass group with the old name. Imports without a project keep openapi:<title>. (#391)
  • POST /api/mocks/import/openapi takes JSON only. Other content types get 415. (#391)
  • Use the matching UI. This release bundles frontend 1.36.0. The Xdebug controls and breakpoints, the mock template editor and the OpenAPI import pane need both.

Added

  • Xdebug without an IDE. Buggregator can drive a debug session itself: continue, step over / into / out, release or stop the request, from the Xdebug page or over the API (POST /api/xdebug/sessions/{id}/run|step-into|step-over|step-out|stop|detach). xdebug.mode picks proxy, auto (default) or standalone. «Pause on the first line» stops every new session at its first line. While an IDE is attached, the IDE drives and Buggregator stays read-only. (#392)
  • Saved breakpoints. Line breakpoints (file:line, optional condition) and exception breakpoints (for example RuntimeException) are stored in the database. They are sent to every session Buggregator drives and survive a restart. Set them from the code gutter or the Breakpoints panel, through /api/xdebug/breakpoints, or over MCP. Conditions run PHP code, so they need xdebug.allow_eval. (#401, #402, #403)
  • AI agents can step through PHP code. New MCP tools xdebug_step, xdebug_continue, xdebug_stop, xdebug_wait, xdebug_breakpoint_set and xdebug_breakpoint_remove drive a session Buggregator runs. xdebug_breakpoints lists breakpoints. The UI shows which agent made the last step. Agent control is on by default; xdebug.allow_control: false (XDEBUG_PROXY_ALLOW_CONTROL=false) keeps the Xdebug tools read-only. With the Xdebug proxy on, Buggregator now has 31 MCP tools (32 with allow_eval); without it, 19. (#395, #401)
  • Memory limit in containers. In a container or cgroup with a memory limit, the server sets the Go memory limit to 90% of the tightest limit it finds, so the garbage collector works harder before the container is killed for using too much memory. A GOMEMLIMIT you set yourself wins. The startup log shows the value: go memory limit mib=… source=cgroup|GOMEMLIMIT. (#398, #399, refs #331)

Changed

  • OpenAPI import: a spec info.title that is not a string becomes spec in the group name. Every generated template rule is test-rendered once at import; a rule that cannot render is skipped with response template fails: …. (#391)
  • The mock_template_helpers MCP tool no longer states a fixed number of fake data generators. (#393)

Fixed

  • Ray: chained calls on one ray() (->trace(), ->color(), ->size() and others) now show up in the same event; before, they failed on UNIQUE constraint failed and were lost. Webhooks still fire once, with the first payload. One Ray event keeps at most 1000 payloads or 8 MB; more follow-ups are dropped with a warning in the server log. (#396, #400, fixes #345)

  • Xdebug: hints for exception breakpoints (MCP tool and API errors) now show a class such as RuntimeException, or * for any exception. An interface such as Throwable never fires. (#405)

Upgrade

Replace the binary or pull the new image; migration 000035 (saved Xdebug breakpoints) runs on start and is one-way: back up the database file first if you may go back to v2.6.0. Bundled UI: frontend 1.36.0.

Thanks to @tminich for the Ray report.

Full Changelog: v2.6.0...v2.7.0

Don't miss a new server release

NewReleases is sending notifications on new releases.