Summary
When a user clears a text input that previously contained a value and then
commits the change, the exported trace does not contain an empty fill step.
As a result, some workflows that depend on removing an existing value cannot
be reproduced from the trace.
Steps to reproduce
Use a page containing a prefilled input and a button:
<input aria-label="Search query" value="browser" />
<button>Apply</button>
- Start
bsk record on the page.
- Clear the prefilled input.
- Click Apply.
- Finish recording and inspect
trace.json.
Actual behavior
The Apply click is recorded, but the input clear is omitted:
{
"steps": [
{
"op": "click",
"target": {
"role": "button",
"name": "Apply",
"tag": "button"
}
}
]
}
Expected behavior
The committed transition from the existing value to an empty value should be
represented before the click:
{
"steps": [
{
"op": "fill",
"target": {
"role": "textbox",
"name": "Search query",
"tag": "input"
},
"value": ""
},
{
"op": "click",
"target": {
"role": "button",
"name": "Apply",
"tag": "button"
}
}
]
}
This report is about a committed change from a non-empty value to an empty
value. A transient empty state while the user continues editing does not need
to become a separate step.
Source observation
The capture layer detects changes relative to the field's initial value, but
the trace reducer currently excludes every non-redacted blank fill:
if (step.op === "fill" && !(step.value ?? "").trim() && !step.redacted) return false;
This appears to make workflows that intentionally clear an existing value
impossible to express in the exported trace.
If preserving committed empty values aligns with the intended recording semantics, I'd be happy to work on the change.
Summary
When a user clears a text input that previously contained a value and then
commits the change, the exported trace does not contain an empty
fillstep.As a result, some workflows that depend on removing an existing value cannot
be reproduced from the trace.
Steps to reproduce
Use a page containing a prefilled input and a button:
bsk recordon the page.trace.json.Actual behavior
The Apply click is recorded, but the input clear is omitted:
{ "steps": [ { "op": "click", "target": { "role": "button", "name": "Apply", "tag": "button" } } ] }Expected behavior
The committed transition from the existing value to an empty value should be
represented before the click:
{ "steps": [ { "op": "fill", "target": { "role": "textbox", "name": "Search query", "tag": "input" }, "value": "" }, { "op": "click", "target": { "role": "button", "name": "Apply", "tag": "button" } } ] }This report is about a committed change from a non-empty value to an empty
value. A transient empty state while the user continues editing does not need
to become a separate step.
Source observation
The capture layer detects changes relative to the field's initial value, but
the trace reducer currently excludes every non-redacted blank
fill:This appears to make workflows that intentionally clear an existing value
impossible to express in the exported trace.
If preserving committed empty values aligns with the intended recording semantics, I'd be happy to work on the change.