Skip to content

feat(sidechat): expose opt-in content surfaces for GenUI - #1033

Open
sunxiuguo wants to merge 2 commits into
omdsh-dev:devfrom
sunxiuguo:feat/genui-sidechat-surface-354
Open

sunxiuguo wants to merge 2 commits into
omdsh-dev:devfrom
sunxiuguo:feat/genui-sidechat-surface-354

Conversation

@sunxiuguo

@sunxiuguo sunxiuguo commented Oct 22, 2026 •

Copy link
Copy Markdown

Summary

Related to omdsh-dev/dsh-genui#354 and the scoped direction in omdsh-dev/dsh-genui#354 (comment) . This is the BetterSidebar provider half, targeting dev; the scoped real dual-plugin workflow is now validated on the exact rc.2 source-layout web host; the separate Sidebar repository gates below are not claimed complete.

  • Expose a narrow opt-in sidechat surface through the existing BetterSidebar service. Without a consumer, the existing host Markdown rendering remains the default.
  • Preserve source, child thread, assistant event sequence, and original text-block identity. Keep reasoning blocks from renumbering text blocks, and reject stale transcript responses after a thread switch.
  • Bind actions to the owning child conversation. Hidden, replaced, or disposed surfaces revoke old callbacks; there is no fallback to the main conversation.
  • Document the service boundary and add provider, visibility, lifecycle, cache, and consumer-type regressions. No second GenUI renderer, forged main-chat DOM attributes, dependency/version changes, host-source edits, or release/workflow changes.

Validation completed

  • pnpm typecheck, pnpm build, and package creation passed in the isolated source copy.
  • Full Sidebar test run: 2706 passed, 17 skipped, 7 failed. This is not an all-green full-suite claim. Six failures require Git metadata/history absent from the source-only copy; the seventh was a HOME-dependent media fixture path. Paired checks of unchanged dev and this candidate under a normal fresh owned HOME produced 65 passed / the same 6 Git-history failures on each, with the media-path case passing on both. No assertions or production behavior were relaxed.
  • Independent component integration: 8 cases passed using the real official rc.2 Markdown component plus the actual Sidebar provider and GenUI consumer. This remains jsdom, not real host/browser acceptance.
  • The 14 changed files were read back byte-for-byte from commit 9a11166c92e42166e19cba6f22a11eead29f51e7 after publication.

Real dual-plugin acceptance completed

The exact current provider head 34fbad8a75ca4e80af0375800378bcf7c4119d1d was built with the repository-pinned pnpm 11.8.0 and normal frozen install/typecheck/build/pack in both Node 22 and 24 lanes of GenUI run 39816456694, at GenUI head dbc6cc73aecf70f2b26875c759511837b803c66d. That run completed 6/6 jobs successfully. Both exact packs were installed normally into the real rc.2 host; 475 installed Sidebar package files matched their packed bytes in each lane.

Both real browser lanes verified 12 independent main/A/B form values, original text blocks 0/2 and fence indexes 0/1, native tab and conversation away/return, and button plus submit in each owning child. Four HTTP responses complete successfully and exact payloads settle durably in the correct children only. Parent and both away sessions remain unchanged through a 1-second quiet window; four replay calls consume both scripts and cleanup completes. Safe JSON receipts and synthetic element screenshots were independently reviewed. This closes the scoped dual-plugin acceptance gap, not merely a jsdom or backend rehearsal.

The provider's restored-history correction is included in the pinned head: only an inherited seed boundary cuts ancestor history; an ordinary restore does not discard this child's original surface. Its targeted regressions and the real native-switch/action flow above cover the reported case.

Remaining independent CI checks and limits

Sidebar's own workflow remains action_required; the full-history test suite and dedicated plugin-mount / native-reload / editor / terminal / search-engine gates still need that normal maintainer-authorized run. The previously disclosed source-copy failures above are not called all green, and GenUI's dual-plugin result does not substitute for those distinct repository checks. This is ready for review, not a request to waive CI or merge automatically.

The real acceptance uses synthetic data and keyless replay on exact rc.2 web, not live model traffic, rc.1-specific mount coverage, or DSH Desktop/native-link validation. No release is requested.

@sunxiuguo
sunxiuguo marked this pull request as ready for review October 22, 2026 16:57
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-22T17:08:05.404251Z 34fbad8 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

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