a2ui-project / a2ui-project/a2ui

[FEATURE]: Expose awaitable SurfaceController message-processing completion

未关闭
#2,240 2 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
P2 status: first-line-handled type: feature/enhancement
主要语言
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

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。