a2ui-project / a2ui-project/a2ui

[FEATURE]: Expose awaitable SurfaceController message-processing completion

Open
#2,240 2 comments 0 reactions 0 assignees View on GitHub
P2 status: first-line-handled type: feature/enhancement
Dominant language
TypeScript
Stars
16.4k
Forks
1.3k
Avg merge
2d 13h
Merged PRs (30d)
134

Description

- [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.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.