Repository navigation
feat(sidechat): render explicit GenUI surfaces in Better Sidebar - #360
Conversation
Keep rendering in GenUI and child actions in the owning Sidebar thread. Add exact dual-plugin host/browser acceptance to the existing CI smoke path. No renderer duplication or public protocol expansion.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
@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. |
Summary
Addresses #354, following the explicit opt-in direction in #354 (comment).
Companion: omdsh-dev/DSH-better-sidebar#1033 (exact tested head
34fbad8a75ca4e80af0375800378bcf7c4119d1d; separate repository CI still awaits maintainer approval).Validation completed
pnpm run checkattempt 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.Real host/browser gate added to the existing CI job
--sidechatis 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.