a2ui-project / a2ui-project/a2ui

[FEATURE]: Add a unified ordered Flutter GenUI transport event stream

未关闭
#2,243 1 条评论 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.

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

把新 issue 发到你的邮箱

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