upstream merge 2026-04-27 PR-D4: chat / header / v1→v2 keypad loading (3 commits)#451
Conversation
Move avatar, author, and path:line into the pane header title slot, and move the GitHub link + Copy button into the header extras alongside the existing close action. Drops the in-content header that previously duplicated avatar/author and only added path:line + Copy.
…h#3788) * add v2 workspace loading page Adds a separate /v2-workspace-loading/$workspaceId route that mirrors v1's keypad-loader/step-progress visuals while the v2Workspaces collection is hydrating. Layout redirects there when isReady is false and the loading page navigates back to the workspace once data lands. * wire keypad loader to host-service progress The pending workspace page now drives V2WorkspaceLoadingView off the live workspaceCreation.getProgress feed (fork + checkout) so keys press in response to real backend steps instead of a slow fixed timer. Mapper collapses the host's 3 steps onto the keypad's 5-key vocabulary; fallback timer for adopt + cold-load is sped up from 1500ms to 400ms. * keep keypad mounted during succeeded hand-off The host clears workspaceCreation progress without ever reporting "registering: done", so the 5th keypad key never got the pressed state from real progress alone — and the moment the pending row flipped to "succeeded" we swapped to the old text-based "Workspace ready" UI. Now V2WorkspaceLoadingView stays mounted through "succeeded" with currentStep="ready" (all keys pressed), and doNavigate is held 700ms so the press animation actually plays before the route transition. The sync-timeout recovery UI still applies when the workspace row hasn't synced; warnings render below the keypad in the success path. * remove navigate-after-succeeded delay The 700ms hold meant to let the keypad's last key animation finish was buggy — doNavigate's useCallback dep on `pending` (a fresh object each live-query tick) churned identity, so the effect cleared and re-armed the timer every render and never actually navigated. Workspace creation got stuck on the loading screen. Drop the hold; navigate immediately.
…et-sh#3805) Move the chat session switcher into the v2 pane header via renderTitle so the chat pane stops rendering its own h-8 header underneath the pane header. Also drop the dev-only "Copy raw chat JSON" button and the now-unused onRawSnapshotChange/ChatRawSnapshot plumbing in both v1 and v2.
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
🧹 Preview Cleanup CompleteThe following preview resources have been cleaned up:
Thank you for your contribution! 🎉 |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3606b3acff
ℹ️ 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if (!isReady) return; | ||
| void navigate({ | ||
| to: "/v2-workspace/$workspaceId", | ||
| params: { workspaceId }, | ||
| replace: true, |
There was a problem hiding this comment.
Wait for workspace before redirecting from loading page
The loading route redirects as soon as isReady is true, even when the queried workspace row is still missing, so it can immediately send users to /v2-workspace/$workspaceId and surface the not-found state instead of continuing to wait for sync. This is especially visible on slow sync paths where readiness is true but workspaces is still empty; gating the redirect on workspace existence (not just isReady) avoids premature exit from the loading flow.
Useful? React with 👍 / 👎.
Summary
upstream 2026-04-27 後半バッチ第4弾。PR-D4: chat / header / v1→v2 keypad loading (3 commits)。
取り込み
30de54f53a7ec181b5v2-workspace-loading/$workspaceId)3606b3acfuseChatRawSnapshot削除)Fork 側コンフリクト解決
ChatPane.tsx(v1) —onPopOut維持、dev raw snapshot copy は upstream に従って削除ユーザー判断で「3ボタン残す」方針だったが、
50eb12532(superset-sh#3805) は v1 ChatPane の dev tooling (useChatRawSnapshot.ts) と ChatPaneInterface のonRawSnapshotChangeprop を 削除する 整理が同時に入っており、fork 側で dev raw snapshot copy を生かすには ChatPaneInterface のonRawSnapshotChange復元など更に大規模な手術が必要になる。PR スコープを膨らませない判断として:
onPopOut(tear-off chat workflow) は維持useChatRawSnapshotの削除と一緒に upstream に従って削除onSplitPaneOppositeは conflict 対象外で元から維持)dev raw snapshot は v1 ChatPane の dev 環境専用ツールで、fork のメインフロー (v2 chat) には影響しない。fork dev で再度必要なら別 PR で復元可能。
Fork 固有機能ヘルスチェック
baseline と比較し全項目健在:
dmg.size = "4g"維持Test plan
bun install整合性 OKbun run typecheck全 28 task greenbun run lintbiome greenoptInV2=false) でonPopOutボタン動作