a2ui-project / a2ui-project/a2ui
[FEATURE]: Add a unified ordered Flutter GenUI transport event stream
- 主要语言
- 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.
Incoming text, parsed messages, errors, and outbound requests use separate streams/methods. An observational recorder cannot establish one authoritative order when channels interleave, while parsed-only observation cannot diagnose parser/chunking failures.
## Describe the Proposed Solution
Add an optional ordered event stream with a monotonic sequence and typed variants for opt-in incoming raw/text observation, parsed A2UI messages, outbound requests/client actions, transport/parser errors, and completion/cancellation. Keep existing typed streams, define ordering relative to them, and avoid whole-response buffering. Clearly mark pre-parser observation as unsafe for structural redaction.
## Describe Alternatives Considered
Merging streams in the application is too late to recover order. Parsed-only recording is safe for replay but cannot diagnose parser failures. Wrapping private parser internals is brittle.
## Additional Context
This is an observation seam, not a wire-protocol change. It complements explicit turn-state work such as #1882.
贡献指南
调研方向
Look at the existing transport streams for incoming text, parsed messages, errors, and outbound requests in the codebase. Understand how they are currently separated. The goal is to create a new unified, ordered event stream that sequences these events. Start by examining the transport layer and parser internals to see where events are emitted. Check related issue #1882 for context on turn-state work. Implementing this requires understanding the existing architecture to add ordering without buffering whole responses.
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- flutter, typescript
- 领域
- backend-api-design, observability
- Issue 类型
- 功能
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 活跃
- 描述清晰度
- 基本清楚
- 新手友好度
- 45/100