Skip to content

fix(genui): repair incomplete output without user-message bubbles - #3771

Merged
wgqqqqq merged 2 commits into
GCWing:mainfrom
wgqqqqq:wgq/genui-automatic-repair
Nov 6, 2026
Merged

wgqqqqq merged 2 commits into
GCWing:mainfrom
wgqqqqq:wgq/genui-automatic-repair

Conversation

@wgqqqqq

@wgqqqqq wgqqqqq commented Nov 6, 2026

Copy link
Copy Markdown
Collaborator

Summary

Incomplete OpenUI output can render a partial card while losing later statements. Forward the parser's incomplete and unresolved metadata to host diagnostics, and automatically request repair for structural failures and missing content. Ordinary property warnings keep the card interactive.

Make repair eligible for deferred GenUI calls that first mount after generation while their owning turn is still live. Keep host repair evidence in stored context while omitting its internal user-message bubble and virtual row from the transcript. Also clarify the deferred tool description so agents can choose GenUI proactively when an interactive, vivid presentation helps.

Type and Areas

Type: Bug fix / UI/UX

Areas: Web UI GenUI, FlowChat, Rust tool description

Motivation / Impact

A missing closing delimiter previously surfaced only as downstream property errors, leaving missing content without automatic repair. Structural diagnostics now prioritize the root cause in repair requests. Degraded cards remain usable during repair; existing active-surface admission, persisted deduplication and repair limits remain in place. Completed historical cards do not start automatic repair when reopened.

Verification

  • Passed: pnpm --dir src/web-ui exec node scripts/run-vitest.mjs run src/tools/generative-ui src/tools/generative-widget/GenerativeWidgetPanel.test.tsx src/flow_chat/components/modern/UserMessageItem.test.tsx src/flow_chat/store/modernFlowChatStore.test.ts --maxWorkers=2 — 27 files, 545 tests.
  • Passed: pnpm run check:web — includes TypeScript checking and Appearance checks.
  • Passed: cargo test --locked -p openbitfun-core --no-default-features --features agent-runtime,tools-miniapp,git --lib -- generative_ui — 5 tests.
  • Passed: git diff --check upstream/main...HEAD.
  • Tests cover local rendering and simulated surface/session admission. Live remote workspace, remote control, peer device and detached dispatch scenarios were not exercised; no live model repair end-to-end claim is made.

Reviewer Notes

Uses existing OpenUI parse metadata rather than a second parser. No new persistence shape or network protocol. The complete GenUI specification remains deferred.

Checklist

  • This PR is focused and does not include secrets, temporary prompts, generated scratch files, or unrelated artifacts.
  • Relevant verification is recorded above, or skipped checks are explained.
  • User-facing strings, docs, and locales are updated where applicable.

@wgqqqqq
wgqqqqq merged commit 060f77e into GCWing:main Nov 6, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant