Skip to content

upstream merge 2026-04-27 PR-D4: chat / header / v1→v2 keypad loading (3 commits)#451

Merged
MocA-Love merged 3 commits into
mainfrom
upstream/batch-2026-04-27-pr-d4
Apr 28, 2026
Merged

upstream merge 2026-04-27 PR-D4: chat / header / v1→v2 keypad loading (3 commits)#451
MocA-Love merged 3 commits into
mainfrom
upstream/batch-2026-04-27-pr-d4

Conversation

@MocA-Love
Copy link
Copy Markdown
Owner

Summary

upstream 2026-04-27 後半バッチ第4弾。PR-D4: chat / header / v1→v2 keypad loading (3 commits)。

依存: #450 (PR-D3) の上に乗っている。

取り込み

SHA upstream 概要
30de54f53 superset-sh#3803 v2 comment pane headers の統合
a7ec181b5 superset-sh#3788 v1 keypad loading screen を v2 専用 page に移植 (v2-workspace-loading/$workspaceId)
3606b3acf superset-sh#3805 v2 chat の double header 統合 (ChatPaneTitle 新設、useChatRawSnapshot 削除)

Fork 側コンフリクト解決

ChatPane.tsx (v1) — onPopOut 維持、dev raw snapshot copy は upstream に従って削除

ユーザー判断で「3ボタン残す」方針だったが、50eb12532 (superset-sh#3805) は v1 ChatPane の dev tooling (useChatRawSnapshot.ts) と ChatPaneInterface の onRawSnapshotChange prop を 削除する 整理が同時に入っており、fork 側で dev raw snapshot copy を生かすには ChatPaneInterface の onRawSnapshotChange 復元など更に大規模な手術が必要になる。

PR スコープを膨らませない判断として:

  • onPopOut (tear-off chat workflow) は維持
  • dev raw snapshot copyuseChatRawSnapshot の削除と一緒に upstream に従って削除
  • (onSplitPaneOpposite は conflict 対象外で元から維持)

dev raw snapshot は v1 ChatPane の dev 環境専用ツールで、fork のメインフロー (v2 chat) には影響しない。fork dev で再度必要なら別 PR で復元可能。

Fork 固有機能ヘルスチェック

baseline と比較し全項目健在:

  • 19 個の独自 tRPC procedures 健在
  • fork 専用依存維持
  • fork マーカー全項目健在
  • dmg.size = "4g" 維持
  • desktop version 1.6.2

Test plan

  • bun install 整合性 OK
  • bun run typecheck 全 28 task green
  • bun run lint biome green
  • (手動) v2 comment pane の header 表示
  • (手動) workspace 作成中の v2 keypad loading page 表示
  • (手動) v2 chat ペインの header collapse 動作
  • (手動) v1 ChatPane (optInV2=false) で onPopOut ボタン動作

saddlepaddle and others added 3 commits April 28, 2026 09:14
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.
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 28, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 45121fd5-02b3-4ed8-806f-59ab6d22b433

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch upstream/batch-2026-04-27-pr-d4

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@MocA-Love MocA-Love changed the base branch from upstream/batch-2026-04-27-pr-d3 to main April 28, 2026 00:35
@MocA-Love MocA-Love merged commit 3aafe0d into main Apr 28, 2026
6 checks passed
@github-actions
Copy link
Copy Markdown

🧹 Preview Cleanup Complete

The following preview resources have been cleaned up:

  • ⚠️ Neon database branch
  • ⚠️ Electric Fly.io app

Thank you for your contribution! 🎉

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment on lines +29 to +33
if (!isReady) return;
void navigate({
to: "/v2-workspace/$workspaceId",
params: { workspaceId },
replace: true,
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

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.

3 participants