Overkey Reset leaves the client-state input populated

Open
#324 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
66/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
python
Domain
frontend

Research direction

Start with the Overkey app source at the referenced reflex-examples commit, especially the ClientStateVar and reset witness described in the issue. Then run the reusable browser flow in browser_flows.py and inspect its failing empty-input assertion after Reset. Done means Reset leaves the input empty and the round can start fresh.

Written by the indexing model from the issue text.

Description

Reset in the Overkey example restores the configuration controls after a typing round but leaves the shared client-State input populated. This reproduces before and after an unchanged app is upgraded from published Reflex 0.9.12 to 0.10.0a1; it is a preexisting example defect, not a demonstrated alpha regression.

Reproduce

Use the unmodified Overkey app from reflex-examples commit ebe19ff00dfee36f9d67a9a584840c6745950b05. A retained source copy and exact dependency graphs are also available below. Copy the app into a neutral directory and use an isolated published-package environment.

  1. Start the app with reflex run and open it in a browser.
  2. Choose 5 seconds in the time dropdown.
  3. Type the first ten characters of the displayed paragraph into the input.
  4. Wait for Time's up! and the accuracy result; the tested rounds reached 100.00% accuracy.
  5. Click the Reset button.

Expected: the input/client-State text is empty and a fresh round can start.

Actual: the controls return, but the input retains the previous text. The stable run retained course end; the alpha run retained into how b (the paragraph is generated, so text varies). Browser diagnostics contain no page errors or failed requests.

The source uses ClientStateVar.create("user_input", default="") and a reset witness component whose on_mount sets it to an empty string. The browser observation above establishes the failure; no fix or cause is claimed.

Environment and evidence
  • macOS, Python 3.13; stable Reflex/base 0.9.12, then an in-place upgrade to the exact alpha graph with Reflex/base 0.10.0a1.
  • App Python sources and rxconfig.py remained unchanged. Existing .web and reflex.lock were retained, followed by a successful cold alpha production export and the same browser flow in dev mode.
  • Upgrade report and frozen graphs.
  • Stable browser result and alpha result.
  • Reusable browser flow, including the failing empty-input assertion after Reset.
Dominant language
Python
Stars
578
Forks
362
PR merge metrics
No merged PRs in 30d

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

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 reflex-dev/reflex-examples

All issues in reflex-dev/reflex-examples

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.