Rebuilt repro steps
This release rebuilds how Rebase captures and presents reproduction steps: every step identifies the exact element it touched, typed input is recorded, and the trail links back to the live page. It also ships release attribution for regressions and an agent handoff for fixes.
#Steps identify their targets
- Clicks resolve their visible label, accessible name, or image alt text, so an icon-only control reads as
Clicked "Apply"instead ofClicked a button. - Typing records the field and its contents:
Typed "SAVE20 " in "Discount code". Whitespace is preserved. - Paste is recorded separately from typing:
Pasted "SAVE20 " in "Discount code". - Selects, checkboxes, and radios record the chosen value:
Selected "Express" in "Shipping",Turned on "Subscribe". - Key presses record the field they landed in:
Pressed Enter in "Discount code". - Tab switches and back/forward navigations appear in the trail.
#Typed values are captured by default
Previously, all input values were masked. Starting with this release, values in ordinary fields are captured and shown in the repro trail.
The following are always masked, regardless of configuration: password, telephone, and hidden inputs; payment fields (autocomplete="cc-*"); one-time codes; and anything matched by your mask selectors or existing FullStory, Hotjar, Sentry, PostHog, or LogRocket markers. Captured values are also scanned for token and secret patterns. Raw values only leave the page inside a report the reporter submits; session-storage state and automatic error captures stay masked.
To restore the previous behavior, set privacy.maskAllInputs: true in the widget configuration.
#Repro steps are interactive
- Click a step to scroll to the element on the live page and highlight it. Missing elements are reported.
- Hover a step to preview its element without scrolling. Arrow keys move between steps.
- Each step exposes its CSS selector, structural attributes, and absolute timestamp on hover.
- The report screenshot marks the exact point the reporter clicked.
- An empty capture shows an empty state instead of hiding the Repro tab.
#Consistent timelines across surfaces
Repeated interactions collapse into single entries: a typing burst is one step, repeated reloads read Page reloaded ×3, and duplicate blur events are removed. The same rules apply to the timelines Rebase writes into GitHub, Linear, Jira, and Asana issues, so the panel and the exported issue match. Generated Playwright tests receive the captured selector for every step.
#First seen on: release attribution
Set the optional data-release attribute on the widget script tag and Rebase records your deployed version with every report. When a bug cluster first appears on a release, the debug panel shows First seen on v1.4.2, with a compare link where available. Without data-release, Rebase falls back to the framework build ID it already captures.
#Fix with agent
The debug panel can hand a ticket to your own MCP-connected coding agent (Cursor, Claude Code). One prompt tells the agent to pull the ticket's fix bundle: triage summary, reproduction steps, the generated regression test, and likely-source permalinks. The agent opens a pull request in your environment, with your credentials. Rebase never touches your repository.
#Fixes
- Removed the widget's own screenshot-capture requests from recorded network activity. These previously appeared in repro trails as unexplained failed requests.
- Fixed an issue where typing quickly across two fields discarded the first field's entry.
- Fragment-only URLs no longer produce blank network entries, and percent-encoded paths now display decoded.
- Trailing whitespace in captured values is no longer trimmed in exported issues.
- The Repro tab no longer disappears when a capture contains no interactions.