a2ui-project / a2ui-project/a2ui
[FEATURE]: Add a unified ordered Flutter GenUI transport event stream
- Langage dominant
- TypeScript
- Étoiles
- 16.4k
- Forks
- 1.3k
- Merge moyen
- 2 j 13 h
- PR mergées (30 j)
- 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.
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.
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
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.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- flutter, typescript
- Domaine
- backend-api-design, observability
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- Active
- Clarté
- Plutôt claire
- Accessibilité débutants
- 45/100