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 defaultxdebug.mode: autolets Buggregator drive a session itself when no IDE answers. A script then stops atxdebug_break()or at a saved breakpoint and waits for you in the UI or for an AI agent. A session left paused is released afterxdebug.idle_timeout(default 10 minutes,0= never). Before, a script without an IDE simply ran on. For the old behaviour setxdebug.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
groupnow goes toopenapi:<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 passgroupwith the old name. Imports without a project keepopenapi:<title>. (#391) POST /api/mocks/import/openapitakes JSON only. Other content types get415. (#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.modepicksproxy,auto(default) orstandalone. «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 exampleRuntimeException) 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 needxdebug.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_setandxdebug_breakpoint_removedrive a session Buggregator runs.xdebug_breakpointslists 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 withallow_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
GOMEMLIMITyou 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.titlethat is not a string becomesspecin the group name. Every generated template rule is test-rendered once at import; a rule that cannot render is skipped withresponse template fails: …. (#391) - The
mock_template_helpersMCP 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 onUNIQUE constraint failedand 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 asThrowablenever 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