[Quick Web] Async Config Import Race Causes Empty Argument Lists
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 7.8k
- Forks
- 6.9k
- Avg merge
- 2d 6h
- Merged PRs (30d)
- 442
Description
Extension
https://www.raycast.com/ShawYoungTang/quick-web
Raycast Version
0.66.1.0
OS Version
macOS Tahoe 26.4.1 arm64
Description
This issue occurs when a JS project starts multiple async config writes but does not wait for them to finish before updating the index state or rendering the UI. As a result, the app may see a config key exists while its related value list has not been written yet, causing empty or incomplete data to appear
Steps To Reproduce
Solution: Ensure all async config writes are awaited before marking import as complete. Collect each LocalStorage.setItem operation into an array and use await Promise.all(...) before writing the index key, navigating away, or refreshing the UI. On the read side, also await all batch queries before updating state, so the page does not render with partially loaded argument data.
Current Behaviour
No response
Expected Behaviour
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in the Quick Web extension linked in the issue and trace the async config import path, including LocalStorage.setItem writes and the index update. Verify that import completion, navigation, and UI state updates wait for all writes and that batch reads finish before rendering, with no empty or incomplete argument lists.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100