Release Notes - v0.7.0¶
Protocol-agnostic SDK release with BiDi-first, CDP-fallback architecture for improved compatibility.
Highlights¶
Automatic protocol selection for maximum compatibility.
The SDK now automatically chooses the best protocol for each operation:
- BiDi First - Try WebDriver BiDi (cross-browser standard) first
- CDP Fallback - Fall back to Chrome DevTools Protocol when BiDi doesn't support the feature
- Transparent - No code changes required; existing code works automatically
Protocol-Agnostic Methods¶
These methods try BiDi first and fall back to CDP automatically:
| Method | BiDi Command | CDP Fallback |
|---|---|---|
SetOffline() |
vibium:network.setOffline |
Network emulation |
ConsoleMessages() |
vibium:console.messages |
Console debugger |
ClearConsoleMessages() |
vibium:console.clear |
Console debugger |
Example:
// Works automatically - tries BiDi, falls back to CDP if needed
err := pilot.SetOffline(ctx, true)
// Get console messages - uses CDP console debugger as fallback
messages, err := pilot.ConsoleMessages(ctx, "error")
Bug Fixes¶
Fixed BiDi Command Names¶
Corrected command names to match clicker implementation:
| Method | Was Sending | Now Sends |
|---|---|---|
HandleDialog() |
vibium:dialog.handle |
vibium:dialog.accept / vibium:dialog.dismiss |
SetExtraHTTPHeaders() |
vibium:network.setHeaders |
vibium:page.setHeaders |
Improved Test Cleanup¶
Fixed Chrome process leaks in integration tests:
- Cleanup now uses a fresh context (not the potentially-timed-out test context)
- Registered via
t.Cleanup()for automatic handling on test end/panic - Made cleanup idempotent for safety
Temporarily Disabled Features¶
Tracing¶
Tracing functionality is commented out pending clicker support for vibium:tracing.* commands.
Affected:
- Pilot.Tracing() method
- BrowserContext.Tracing() method
- MCP tools: trace_start, trace_stop, trace_chunk_*, trace_group_*
Workaround: Use CDP performance tracing for performance analysis (different from action tracing).
Storage State¶
StorageState() is limited pending clicker support for vibium:context.storageState.
Workaround: Use JavaScript evaluation to access localStorage/sessionStorage directly:
// Get localStorage
result, _ := pilot.Evaluate(ctx, "JSON.stringify(localStorage)")
// Set localStorage
pilot.Evaluate(ctx, `localStorage.setItem("key", "value")`)
Breaking Changes¶
None. All changes are backwards compatible.