fix: resolve the defects pinned during the UI-test pass - #266
Conversation
Greptile SummaryThis bug-fix PR updates capture and replay behavior along with several DevTools panels, runner controls, trace processing utilities, and their tests.
Confidence Score: 4/5The PR should not merge until real The current decoder still maps every Files Needing Attention: packages/app/src/components/browser/boolean-attribute.ts, packages/script/src/index.ts, packages/script/src/mutations.ts
|
| Filename | Overview |
|---|---|
| packages/app/src/components/browser/boolean-attribute.ts | Adds boolean-attribute decoding that fixes ordinary literal-false attributes but still conflates real checked="false" mutations with synthetic unchecked-state records. |
| packages/app/src/components/browser/snapshot.ts | Correctly distinguishes attribute removal from empty values and synchronizes replayed form state while preserving dirty input text. |
| packages/script/src/mutations.ts | Serializes removed attributes as absent values while preserving empty and literal string values for replay. |
| packages/script/src/index.ts | Emits synthetic field-state mutations, including checkbox property state using the same checked mutation shape as real attribute changes. |
| packages/app/test-ui/workbench/player/snapshot.test.ts | Adds broad replay coverage for boolean attributes, non-boolean removals, empty values, and pristine versus dirty fields. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart LR
A[Captured DOM and field events] --> B[Trace mutation stream]
B --> C{Mutation kind}
C -->|Document or child list| D[Rebuild replay DOM]
C -->|Non-boolean attribute| E[Set or remove attribute]
C -->|Boolean attribute| F[Decode presence or property state]
E --> G[Rendered snapshot]
F --> G
D --> G
Reviews (4): Last reviewed commit: "fix(app): empty a replayed field whose v..." | Re-trigger Greptile
What & why
Type of change
Packages touched
shared(types and contracts)core(framework-agnostic capture/reporting)service(WebdriverIO adapter)nightwatch-devtools(Nightwatch adapter)selenium-devtools(Selenium adapter)backend(server)app(UI)script(page-injected runtime)Notes for reviewers
Screenshots / recordings