mirror of
https://github.com/deepseek-ai/deepseek-harness.git
synced 2026-11-11 05:17:43 +08:00
ctx.sidebarRight acted on a binding the right Sidebar seat published from passive effects. React runs a commit's passive effects in tree order and the frame renders the Conversation column before the right column, so an opener mounting in the commit that switched Sessions or returned from a global panel ran while no seat was bound, and its open threw. The plugin now names the on-screen Session itself: the selected Session while the Conversation fills the main column, derived from the Sidebar's Session views and ctx.layout.panelInfo. Both notify before React renders, so `mounted` already names the arriving Session during that commit, and its seat mints the Session's store in the same render. Public commands act through the Session's adopted store; the seat reports only the room its docking kit measured, and focus continuity and the auto-fullscreen rule come from a host the plugin supplies. - ctx.layout gains viewportWidth from the root layout store. - SidebarRightBinding, controller.bind(), and the seat's bindService are removed; the seat's inject face gains measureRoom. - ui-plan's review opener returns to a plain open gated on `mounted`. - The plan-review e2e expands the Workspace group by its aria state.