Skip to content

feat(sidechat): render explicit GenUI surfaces in Better Sidebar - #360

Merged
taekchef merged 6 commits into
omdsh-dev:mainfrom
sunxiuguo:feat/sidechat-surface-354
Oct 23, 2026
Merged

taekchef merged 6 commits into
omdsh-dev:mainfrom
sunxiuguo:feat/sidechat-surface-354

Conversation

@sunxiuguo

@sunxiuguo sunxiuguo commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Addresses #354, following the explicit opt-in direction in #354 (comment).

  • GenUI owns rendering; Better Sidebar supplies original sidechat text blocks and owning-thread context through its existing service convention.
  • Preserve source, thread, original content-block index and fence identity. Child actions never fall back to the main conversation; missing capability retains normal Markdown.
  • No fake main-conversation DOM attributes, second renderer, or new broad public protocol.

Companion: omdsh-dev/DSH-better-sidebar#1033 (exact tested head 34fbad8a75ca4e80af0375800378bcf7c4119d1d; separate repository CI still awaits maintainer approval).

Validation completed

  • The seven product/documentation files are byte-identical to the independently reviewed candidate that passed 1,487 repository tests, the normal eight-config production build, typecheck and package validation.
  • The final isolated CI/helper integration passed 147 dependency-free contracts again, plus four independent negative checks. Separate review tightened action-response checks, durable state/role validation, resource cleanup and artifact boundaries.
  • Actual official Markdown/component tests and synthetic host persistence checks are supporting evidence, not real dual-plugin browser acceptance.
  • A fresh whole pnpm run check attempt in the current local environment stopped before tests: global pnpm 11.25.0 could not create its default HOME store (ENOENT). The repository pins pnpm 11.7.0. No dependency/security check was disabled; the earlier identical-product result is not presented as a fresh full run.
  • All 33 changed files were read back byte-for-byte from this immutable fork commit before opening this PR.

Real host/browser gate added to the existing CI job

--sidechat is explicit and requires the existing packed smoke mode; ordinary smoke/link/npm invocations remain unchanged. The current Node 22/24 lanes require exact rc.2 dual-plugin acceptance. The minimum rc.1 lane explicitly reports not-applicable, never a dual-plugin PASS.

The gate builds the pinned companion through its normal frozen install/typecheck/build/pack, installs both exact packs normally, starts an isolated authenticated synthetic host, and checks main plus two children, independent forms/state, native switching, owning-child button/submit actions, durable replay receipts and cleanup. It uses no model keys or real data and has no fallback to a fake renderer or backend-only success.

Only four named synthetic screenshots and two named JSON reports are retained for seven days. No new workflow/job/runner/permissions/secrets; no new raw-log/profile/config upload.

Real dual-plugin acceptance completed

At head dbc6cc73aecf70f2b26875c759511837b803c66d, run 39816456694 completed 6/6 jobs successfully, including both required real rc.2 / Node 22 and 24 browser lanes. The earlier local pnpm limitation above is historical, not the current CI outcome.

Both lanes normally install the exact GenUI pack and companion 34fbad8, then verify 12 independent values across main/A/B, original blocks 0/2 and fences 0/1, native tab and top-level conversation away/return, and four actual button/submit actions. All four HTTP responses complete successfully and the exact payloads settle durably only in their owning children. The parent and both away sessions remain unchanged; four keyless replay calls consume two scripts, a fresh all-five-session reread follows a 1-second quiet window, and owned cleanup succeeds. The two safe reports and four synthetic element screenshots per lane were read back and independently reviewed; artifact upload alone was not used as proof.

The final four-file fixture correction established the required initial empty system head using the exact official host factory. Actual public JSONL none/zstd red/green controls reproduced the prior fixture error; no product behavior or acceptance assertion was relaxed. Supporting checks: 271 harness tests; independent 266 pure contracts plus 8 actual Session controls. Those local checks are not substituted for the real CI result.

Limits: this is the exact rc.2 source-layout web host with synthetic data and keyless replay, not live-model testing or DSH Desktop/native-link acceptance. The minimum rc.1 lane explicitly remains not-applicable to dual-plugin coverage. Sidebar's own full-history suite and dedicated plugin-mount/native-reload/editor/terminal gates still await its separate CI authorization; this run does not claim those checks or waive them. No automatic merge or release is requested.

AI-assisted implementation and tests; independently reviewed. No release is requested by this PR.

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

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 🔄 Running since 2026-10-22T17:00:12.717038Z dbc6cc7 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.

@taekchef
taekchef merged commit f724697 into omdsh-dev:main Oct 23, 2026
6 checks passed

Copy link
Copy Markdown
Collaborator

@sunxiuguo Thanks for the implementation and acceptance evidence. I reviewed the surface identity, child-only actions, cleanup and exact-head CI artifacts, then verified the combined main candidate with 1,515 tests, builds and package checks and merged this PR. The user-facing sidechat feature still depends on the companion Better Sidebar PR #1033 passing its own checks and being merged and released; #354 remains open until that coordinated delivery is verified.

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.

2 participants