[App][Browser] Synthetic typing does not update the Angular/DevExtreme form model

Open
#37,546 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
42/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Quiet
Tech stack
angular, playwright, rust
Domain
desktop, testing

Research direction

Reproduce the issue with the minimal Angular and DevExtreme form described, then compare manual typing with Playwright, CUA typing, and individual keypresses while logging input events, event ordering, widget values, and Angular model values. Done means synthetic input updates the DevExtreme and Angular models so the outgoing request includes the entered filter and returns no matching records.

Written by the indexing model from the issue text.

Description

app browser bug computer-use windows-os
Summary

In the Codex in-app browser, synthetic typing into a DevExtreme text filter changes the visible native input value but does not update the corresponding Angular form model. When the search action is executed, the optional filter is omitted and the API returns unfiltered data.

Environment
  • Codex desktop app, Codex in-app browser (IAB)
  • Windows
  • Local Angular/Vite web application
  • DevExtreme dx-form, dx-text-box and dx-button
Versions
  • Codex desktop app: 26.803.41515 (from the About dialog)
  • Operating system: Windows 11 Pro 64-bit, build 26200 (10.0.26200)
  • Browser: Codex embedded in-app browser (IAB); the embedded engine version is not exposed separately
  • Node.js: v25.2.1
  • npm: 11.7.0
  • Angular framework packages: 20.1.5
  • Angular CLI: 20.1.5
  • @angular/build: 20.3.11
  • DevExtreme and devextreme-angular: 25.1.5
  • Vite: 7.1.11
Reproduction
  1. Open a local Angular page containing a DevExtreme form, text filters and a data grid.
  2. Wait until the initial list loads.
  3. Focus any text filter.
  4. Enter a value that does not match any record, for example TEST_VALUE, using the in-app browser automation: Playwright typing, CUA typing, or individual CUA keypresses.
  5. The input visibly contains the entered value.
  6. Click the search button.
  7. Inspect the outgoing request or pause at the API breakpoint.
Actual behavior

The API receives no value for the corresponding optional filter (the parameter is null or missing). The request is therefore unfiltered and returns all records.

The DOM visibly contains the entered value, but the Angular/DevExtreme form model still contains an empty value.

No frontend exception or API error is reported. The request completes successfully.

Expected behavior

Synthetic typing should update the DevExtreme widget and the Angular form model in the same way as real keyboard input.

The outgoing request should contain the entered filter value and the API should return an empty result.

Important comparison

When a real user types the same value manually in the same browser session and clicks the same button, the filter is sent correctly and the UI displays an empty result.

This indicates that the API filtering logic and the application work with real user input. The problem is specific to synthetic input generated by the in-app browser automation.

Additional observations
  • The search button can show its loading spinner, so the click and HTTP request may execute successfully.
  • The reset button can also leave the visible control value and internal form state inconsistent.
  • Browser console contained no errors.
  • The only observed warning was unrelated: Inferno is running in development mode while using a production build.
Suspected cause

The automation changes the underlying native input value but does not reproduce the complete event sequence required by DevExtreme text editors and Angular two-way form binding, such as value-change propagation or Angular zone handling.

The native DOM value and the DevExtreme/Angular model become inconsistent.

Suggested investigation

Compare manual typing with IAB automation by logging the native input value, widget value, Angular model value, beforeinput/input/change/blur events, event trust state and event ordering.

A minimal Angular + DevExtreme reproduction containing one form, one text editor, one submit button and a data grid would help isolate the problem.

Dominant language
Rust
Stars
125k
Forks
19.5k
Avg merge
1m
Merged PRs (30d)
1k

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from openai/codex

All issues in openai/codex

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.