-
Notifications
You must be signed in to change notification settings - Fork 304
Port OpenClawTray.FunctionalUI to Reactor to stop hand-maintaining bespoke UI primitives #996
Copy link
Copy link
Closed
Labels
P3Low-risk cleanup, docs, polish, ergonomics, or speculative feature.Low-risk cleanup, docs, polish, ergonomics, or speculative feature.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.issue-rating: 🌊 off-meta tidepoolIssue quality rating does not apply to this item.Issue quality rating does not apply to this item.
Description
Activity
Metadata
Metadata
Assignees
Labels
P3Low-risk cleanup, docs, polish, ergonomics, or speculative feature.Low-risk cleanup, docs, polish, ergonomics, or speculative feature.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.issue-rating: 🌊 off-meta tidepoolIssue quality rating does not apply to this item.Issue quality rating does not apply to this item.
Type
Fields
Priority
None yet
Projects
- StatusShow more project fieldsChannels
Problem
OpenClawTray.FunctionalUIis an in-house MVU/reconciler with a hand-maintained set of primitives and element modifiers. Every new control need has to be added and maintained by hand, and non-trivial chat/UI features keep extending it:NativeElementescape hatch with a first-class FunctionalUIComboBoxprimitive (superseded fix(chat): keep session picker open during status renders #973) — i.e. we're still filling gaps in the primitive set.karkarl-chat-bubble-richtextblock, commits 2fa7279 + 47b335d) added aRichTextBlockprimitive and imperative block population purely to get selectable chat bubbles.Both are maintenance we take on only because FunctionalUI is bespoke. Porting to Microsoft.UI.Reactor (or the agreed Reactor-style MVU library) would let us bypass hand-rolling and maintaining these primitives and lean on an upstream-maintained component surface.
Goal
Migrate the tray UI from
OpenClawTray.FunctionalUIto Reactor, so:Suggested phasing
Constraints / guardrails
References
NativeElementescape hatch with FunctionalUIComboBoxprimitive (supersedes fix(chat): keep session picker open during status renders #973): fix(chat): replace NativeElement escape hatch with FunctionalUI ComboBox primitive (supersedes #973) #991karkarl-chat-bubble-richtextblock, commits 2fa7279 + 47b335d (RichTextBlock chat-bubble primitive + list coalescing) — PR pending from this branch; cross-link once opened.