a2ui-project / a2ui-project/a2ui
Dart Simple Chat example should either handle or not allow interruption.
- Dominant language
- TypeScript
- Stars
- 16.4k
- Forks
- 1.3k
- Avg merge
- 2d 13h
- Merged PRs (30d)
- 134
Description
Simple Chat misses clear handling of concurrency: what happens when user clicks a genui UI button in the middle of the model's response? Right now conversation is messed up in this case.
This question should be handled clearly for both **code reader (AI and human) and end user**.
One of options to handle it is:
1. Disable all gen UI while model is thinking
2. Add button to interrupt thinking to enable UI back (or to enable just user chat box)
More advanced option:
1. Create button to pause/resume model - stop processing responses in the middle, maybe storing thinking responses in history. After pausing user will be able to either resume processing or send new message.
2. When user clicks a gen UI button, handle it as pause + send another message.
3. Make user chat box always enabled and using the same mechanism.
Contributor guide
Research direction
Find the Simple Chat example in the codebase, likely under examples/. Look at the UI components for the chat interface and the logic handling model responses and user interactions. Identify where concurrency control (like disabling buttons or managing state during generation) needs to be added. Test by simulating user interruptions during a model response to see the current broken behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- dart, typescript
- Domain
- desktop, frontend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100