a2ui-project / a2ui-project/a2ui
[FEATURE]: Expose awaitable SurfaceController message-processing completion
- 主要语言
- TypeScript
- 星标
- 16.4k
- 派生
- 1.3k
- 平均合并
- 2 天 13 小时
- 30 天内合并 PR
- 134
描述
- [x] I have searched the existing issues to make sure this feature has not already been requested.
## Is your feature request related to a problem? Please describe.
After submitting a parsed message, callers have no public signal that all message-owned asynchronous work—especially schema validation and resulting surface notifications—has completed. Flutter frame quiescence is not equivalent to controller transaction completion, creating races for replay, tests, and coherent observation.
## Describe the Proposed Solution
Expose an awaitable API such as Future handleMessageAsync(A2uiMessage message), or an equivalent completion token tied to the submitted message. Completion should mean the controller applied the message, awaited validation owned by that transaction, reconciled surface state, and published public notifications/diagnostics. The synchronous API can remain for compatibility.
## Describe Alternatives Considered
Pumping frames can be held open by unrelated animations and is not a validation boundary. Fixed delays are slow and flaky. Reading private controller state is unsupported.
## Additional Context
Related architectural work: #1877. This request is deliberately smaller and can land independently.
贡献指南
调研方向
Look at the SurfaceController class and its current message handling methods. Review the related architectural issue #1877 for context. Identify where asynchronous validation and state reconciliation happen. The goal is to design and implement a new public async method that returns a Future/MessageProcessingResult, ensuring it signals the completion of all message-owned work.
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- typescript
- 领域
- backend-api-design
- Issue 类型
- 功能
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 冷清
- 描述清晰度
- 基本清楚
- 新手友好度
- 45/100