Skip to content

[不合併] develop rebase 到 v1.4.241 的 CI 驗證 - #83

Closed
audichuang wants to merge 319 commits into
ci-base/v1.4.241from
rebase/v1.4.241
Closed

audichuang wants to merge 319 commits into
ci-base/v1.4.241from
rebase/v1.4.241

Conversation

@audichuang

Copy link
Copy Markdown
Owner

只用來在 rebase 後的 develop 上跑 Fork PR Checks,不會合併。base 是指向上游 v1.4.241 的暫時分支 ci-base/v1.4.241(對 develop 開會因兩份歷史衝突而跑不了 CI),驗完就刪。這次是 MANUAL(有手動解的衝突與一個額外修正 commit),由 auto-rebase 依 FORK.md「Unattended merges」判斷能否自動移動 develop;不能的話會在留言寫出移動指令。

Summary

-develop = v1.4.240 + 313 個 fork commit(含 PR merge,rebase 後攤平)
+develop = v1.4.241 + 同樣 313 個 fork commit + 1 個修正
  • 沒有丟掉任何 fork commit(range-diff 沒有 <)。locale 衝突由 merge driver 自動合好,沒有停下來。
  • 用到的筆記條目(known-resolutions.md):
  • 衝突解法(逐 commit;rerere 沒有重放任何舊解法):
    • ec28156 folder workspace 多 repo(條目 7d6603a 註解清理)
      • use-entry-mutations.ts(3 hunks+1 刪除塊):fork 程式碼(editorWorktreeId、quiesceEditorSaves/editorOwnerIds,allSettled 已在 fork helper 內)+上游改寫後註解;上游 inline allSettled 區塊採 fork(刪)。
      • panel.tsx:上游刪掉的元件 doc comment 不加回,程式碼為 fork。
      • remap-open-editor-tabs-for-path-change.ts:上游註解+fork clearGitOwner。
      • workspace-session-hydration-keys.ts:fork gitWorktreeId 迴圈+上游 activeRepoId 註解;上游 import 路徑自動合入。
      • open-conflict-review.ts:上游註解+fork gitWorktreeIdArg/getScopedTabIdOwner。
    • 472c628 folder 多 repo × ClipCode 修正(條目 7d6603a)
      • source-control-entry-failure-toast.ts、use-discard-confirmation.ts:fork readGitCommandFailureMessage+上游改寫註解。
      • use-worktree-operation-state.ts:保留 fork 的 saveSessionCommitErrors/saveSessionRemoteActionErrors 兩個 effect+上游註解(條目特例)。
      • tab-bar-item-model.ts(筆記沒寫到):上游把 drag label 搬到 tab-bar-item-label.ts,不再用 getEditorDisplayLabel;fork 把 normalizeRelativePath 換成 getEditorTabGitStatusKey。import 只留 getEditorTabGitStatusKey。
    • fa84af8 Commits 區分支篩選(條目 7d6603a 特例)
      • use-git-history-commit-actions.ts:採 fork(刪掉 explainCommitWithDefaultAgent,已搬到 sync/git-history-commit-explain.ts),上游改寫的兩行註解搬到 git-history-commit-explain.ts。
    • fb0b3d9 folder 裡的 repo 只在 folder 顯示(條目 7d6603a)
      • nested-repo-discovery.ts:上游改寫註解+fork options.descendIntoRepos 判斷。
    • 6805d59 commit 檔案選單收進 fork 檔(條目 7d6603a)
      • git-history-commit-files.tsx:fork 的 body 變數;上游刪掉的「Author and date…」註解不加回。
    • 9715d9e ClipCode 修正+commit 檔案高亮(條目 7d6603a)
      • main.css:fork 加的 [data-commit-file-path][data-selected='true'] selector;上游刪掉的 /* ── Sidebar ── */ 標題不加回。
    • 681e178 reown 測試改成 fork 語意(條目 7d6603a 特例)
      • restored-editor-same-workspace-reown.test.tsx:採 fork 斷言(folder 分頁已綁 repo、id 不變);上游在這裡只刪註解。
    • 519950c Git Graph 全螢幕分支樹(筆記沒寫到,同 7d6603a 原則)
      • github-user-avatar.tsx:上游刪掉 initialsFor 的 doc comment;fork 把它 export。結果:不加回註解、保留 export。
    • 3e56c69 Git Graph 編輯器分頁(條目 7d6603a)
      • EditorFileTab.tsx:fork 的 git-graph → GitGraph icon 分支+上游改寫的 strikethrough 註解。
      • open-file.ts:fork 的 gitGraph?: OpenGitGraphState 欄位+上游改寫的 mirrored tab 註解。
    • 5aee682 Changed files 樹狀顯示(條目 7d6603a)
      • git-history-commit-files.tsx:fork 的 treeRoots/menuEntries/body;上游刪掉的「Author and date…」註解不加回。
    • d1600e2 release autosave holds(前面解法帶出的連鎖衝突)
      • use-entry-mutations.ts:fork 的 requestEditorSaveQuiesceAll+上游改寫註解(兩處)。
    • 7829314 toast 避開 bulk action bar(條目 7d6603a)
      • panel-content.tsx:fork 的 ref={toastBottomClearanceRef}+上游改寫註解。
      • sonner.tsx:fork 的 TOAST_BOTTOM_OFFSET(max() 含上游原本的 calc)+上游改寫註解+fork 自己的 Fork-only 註解。
    • 86336a5 diff 最後一個變更跳到下一個檔(條目 7d6603a)
      • EditorPanel.tsx(2):fork 的 useDiffFilePosition/filePosition prop+上游改寫註解。
      • diff-navigation-context.tsx:fork 的 registerDiffEditor(onDiffUpdated、navigate)+上游改寫註解;上游刪掉的「Hold at most one…」兩行不加回。
      • git-history-commit-files.tsx:fork 的 openFile;不加回 Author 註解。
      • use-git-history-commit-actions.ts:fork 的 openCommitFileInSequence;上游刪掉的「The cache is populated…」註解不加回。
    • 4a79ab0 fork 欄位接上 v1.4.238 editor tab views(條目 7d6603a 特例)
      • restored-editor-same-workspace-reown.test.tsx 第 2 個 hunk:採 fork 斷言(不送 renameEditorFiles、id 不變)。
    • a820445 pin fork seams(條目 7d6603a)
      • restored-editor-same-workspace-reown.test.tsx(2):fork 的參數化簽章(folderPath、filePath);上游刪掉的兩個 doc comment 不加回。
    • ea994fa Explain commit 的 agent 可見性(前面搬註解帶出的連鎖衝突)
      • git-history-commit-explain.ts:fork 的 launch 參數+上游改寫註解。
    • 0f3c397 fork 測試搬到 .fork.test(條目 7d6603a)
      • restored-editor-same-workspace-reown.test.tsx(2):fork 把簽章改回上游形狀;採上游(無參數、無 doc comment)。
    • de0f9db fork 值改用 options 物件(前面解法帶出的連鎖衝突)
      • open-conflict-review.ts:fork 的 forkOptions/resolveOpenGitWorktreeId+上游改寫註解。
    • 48c4ccd fork 參數全改 options 物件(連鎖衝突)
      • git-history-commit-files.tsx:fork 的 { entries: menuEntries };不加回 Author 註解。
      • open-conflict-review.ts:fork 的 gitOwner+上游改寫註解。
    • 7857a6a folder tab/git owner 收進 fork helper(連鎖衝突)
      • use-entry-mutations.ts(2):fork 的 requestEditorSaveQuiesceForOwners+上游改寫註解。
    • 0eed350 folder discard 通知測試(連鎖衝突)
      • use-entry-mutations.ts:fork 的 targets 陣列+上游改寫註解。
    • eaf7deb save-hold helper 接受單一或清單(連鎖衝突)
      • use-entry-mutations.ts:fork 的單一 target 呼叫+上游改寫註解。
    • 0238f87 不再 export 上游內部函式(連鎖衝突)
      • github-user-avatar.tsx:拿掉 export,回到上游 v1.4.241 原樣(無 doc comment)。
    • 5f2708c editor-kind 經 fork-editor-tab-kinds(連鎖衝突)
      • EditorFileTab.tsx:fork 的 forkEditorTabIcon(file.mode) ?? FileIcon+上游改寫註解。
  • 額外 commit:
    • fix(source-control): refresh folder repos through one resolved git copy:use-folder-repo-status-refresh.ts 照上游 useGitStatusPolling.ts 一次解析 resolveWorktreeGitCopyNow,傳 ownerHostId/connectionId/transport;測試 mock 換成 @/lib/worktree-git-copy,並新增一個斷言三者都送到 refresh 的測試(拿掉 ownerHostId 那行會紅,已驗)。
  • 上游這版新增 .github/workflows/wsl-orcad-e2e-frozen-runner-retry.yml,develop 移動後要跑 make fork-ci-disable-upstream。上游 lint 新增 lint:js-plugins、lint:ast-grep、test:ast-grep、check:e2e-typecheck-ratchet、check:flaky-test-pattern-ratchet,fork-lint-run.mjs 直接讀 package.json,不用改。

Evidence

本機閘門、e2e/wire/mobile 與審查結果見留言。

Merge Danger

Door: two-way(不合併;develop 移動前有備份分支)

Blast Radius: 全部 fork 功能

🤖 Generated with Claude Code

audichuang and others added 30 commits October 26, 2026 12:20
… 的圖層判斷、使用者另行導覽時取消待跳轉、分支樹支援 Home/End、寬度存取下限一致、In branches 註明只算已載入、抽出分支樹 hook 與共用鍵盤移動
…取、任何導覽都取消待跳轉、重開後 Cmd/Ctrl 點選保留恢復的 commit
- Git Graph 從只能在 Commits 工具列開的彈窗,改成每個 workspace 一個的編輯器分頁(不跨重啟保存)
- 分頁標頭加 repo/worktree 切換器:folder workspace 列成員 repo,一般 worktree 列同一 host 的所有 git worktree
- 新增 Mod+Shift+H(sourceControl.openGitGraph)與 Cmd+J「Open Git Graph」;側欄按鈕改成開分頁
- 分頁在 commit/push/pull/HEAD 變動與 SSH 重連時重抓;寬度依分頁實際寬度計算;不搶其他 pane 焦點

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…mits 標題列常駐開啟按鈕、commit 右鍵選單

- 表頭與資料列共用 gitGraphColumnsForWidth/gitGraphGridTemplate,隱藏的欄不再渲染;dev 模式 React Grab 重宣告 .flex 時欄位不再錯位
- 記住的選取改存整組 commit 與 range anchor,開 diff 回來仍是多選;清空的選取不會復活
- Open Git Graph 按鈕移到 Commits 標題列(新 headerActions slot),區塊收合時也看得到
- 列上接 GitHistoryCommitContextMenu;選單內方向鍵不再移動 commit 選取
- 新增 e2e:欄位對齊斷言、Open all changes together 迴圈(graph 分頁與側欄各一)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…sh、多選複製 hash/訊息涵蓋全部選取、Git Graph 可在旁邊開 diff

- DiffSectionBody:圖片 diff 自帶 Suspense,不再讓整個 combined diff 重新 suspend;diff editor 的 dispose 延後一個 microtask,StrictMode 重連 effect 時沿用同一個 editor(修 InstantiationService has been disposed)
- 多選時 Copy commit hashes/messages (N commits) 依 graph 順序複製全部;側欄與 Git Graph 共用
- Git Graph 分頁的 Alt+點擊與 Open to the Side 會在 graph 所在群組右側開 diff,重複開會沿用右側群組

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…commit 右鍵選單加寬不換行、窄詳情欄的多選摘要讓主旨優先

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…er-manager 測試會檢查它

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rew cask

- 新增 .github/workflows/fork-release.yml(macos-15):tag 必須是 fork main,匯入自簽憑證並設信任後跑 make fork-dmg,檢查打包版本,發 Release(說明取自 annotated tag),再用 HOMEBREW_TAP_TOKEN 更新 Casks/orca-fork.rb
- fork-release-dryrun-* tag 只打包簽章並上傳 artifact,不發 Release、不動 tap,用來測 workflow
- FORK.md 的 Release 段落改成推 annotated tag 由 CI 發版

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
folder 工作區的 Git Graph 只列已加入的 repo,乾淨沒動過的子 repo 因為從沒匯入而選不到。
選單打開時掃一次資料夾,底部顯示「Add repositories in this folder (N not added)...」,
點下去開 Source Control 同一個加入對話框;只限本機資料夾,和 Source Control 一致。
未加入 repo 的計算抽成 getNewNestedRepoCandidatesFromState,對話框共用。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UuoXdYuN5y46yVVU88kSwh
上游移除 check:deprecated-runtime-owner-ratchet,新增 check:unproven-pty-retirement-ratchet 與 check:id-only-store-write-ratchet。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… folder、git 留在 repo

v1.4.232 把開檔邏輯抽到 open-uncommitted-entry.ts;rebase 時 fork 的分頁/git 分流改成它的參數,補契約測試防上游改掉。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
electron-builder 的 files 是排除清單,本機 checkout 裡未追蹤或被 ignore 的項目
(.orca/drops 截圖、CLAUDE.local.md、.codegraph 等)會被打進 app.asar。fork 設定
改成排除 git 未追蹤的頂層項目(out/、node_modules/ 除外),fork-dmg 最後再檢查
app.asar,有未追蹤的頂層項目就讓 build 失敗。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
原本只保留 fork-pr.yml,rebase 後跑一次就把發版 workflow 也停掉;改成保留所有 fork-*.yml。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
repo 有 6 個以上時,清單上方出現過濾框:空白分隔的每個詞都要出現在 repo 名稱或分支裡(不分大小寫)。
Enter 打開第一個符合的 repo、↓ 移到第一列、Esc 清空;展開中的 repo 一律保留在清單裡。
面板超過 400 行,把頂端工具列和過濾框拆成各自的元件。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UuoXdYuN5y46yVVU88kSwh
實機看到:有 repo 展開時,過濾結果被擠到展開面板底下,離輸入框很遠,打完字像沒反應。
現在輸入過濾字時暫時收起展開的面板,只列符合的 repo;點選或 Enter 打開它並清掉過濾字。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UuoXdYuN5y46yVVU88kSwh
原本借用了真實工作環境的 repo 與資料夾名稱;改成 orders-api、not-added、docs/guide 這類說明測試在測什麼的名字。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UuoXdYuN5y46yVVU88kSwh
- 比對改用共用的 splitFileNameFilterTokens / pathMatchesFileNameFilterTokens(和檔案總管過濾一致,含全形空白)。
- toggleRepo 依畫面上是否展開判斷,過濾中點選與 Enter 走同一條路,拿掉 openRepo 與呼叫端的三元式。
- 過濾框因 repo 少於 6 個而隱藏時清掉過濾字,避免之後回來時悄悄縮小清單。
- 展開時的上下兩段清單還原成 slice(過濾中不會有展開面板);移除別名、重複算的 label 與多餘的 isComposing 檢查。
- 補 ↓ 移到第一個結果、過濾字隨框隱藏而清除的測試。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UuoXdYuN5y46yVVU88kSwh
原本只能從 COMMITS 標題旁的小圖示(資料夾工作區還得先展開某個 repo)、⌘⇧H 或 ⌘J 打開 Git Graph。
現在資料夾工具列與一般 repo 工作區的 Source Control 標題列都有帶文字的「Git Graph」按鈕,提示顯示快捷鍵。
資料夾開在目前選中的 repo;進去後仍可用切換選單看其他 repo 的完整圖。和 COMMITS 旁的入口共用提示元件。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UuoXdYuN5y46yVVU88kSwh
實機把右側欄拖到最窄時,資料夾工具列的名稱被「Git Graph」文字整個擠掉。
工具列寬度小於 300px 時收起文字(同 tab bar 的 container query 做法),按鈕仍帶 aria-label。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UuoXdYuN5y46yVVU88kSwh
分支一多,完整 Git Graph 的圖欄會被一路佔著 lane 的舊分支撐寬,Message 欄被擠到剩幾十 px。
改用 fork 自己的 lane 版面:沿用上游 view model 的拓撲和顏色,跨過超過 20 列的連線只在兩端各留 2 列並畫箭頭,
點箭頭跳到另一端;目前分支自己的主線固定在第 0 條、永不摺疊。側欄的小圖不變。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
實機看到一排長期分支疊在一起時,箭頭那一列的欄位被壓縮讓給下一個 commit,點剛好畫在箭頭上。
箭頭前後各多保留一列欄位,而且保留的欄位不跟著壓縮移動。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
audichuang and others added 9 commits October 26, 2026 12:24
…uto-move rule

The auto-rebase skill already lets a notes fix that touches only fork-owned test files
pass on a green test instead of a revert-goes-red proof; FORK.md, which the skill names
as its rule source, still demanded the proof for every fix commit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… conditions

Review of 94ba892: the exemption now names the entry type and the 守它的測試 field as the
notes write them, defines the files as test files absent at vNEW, keeps timing as the
reason rather than a condition, and says every other fix commit follows the rule.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…obs on docs

Docs went straight to develop so they would not wait 15-25 min for CI, which left no PR
record and needed a rebase-lock exception. Now every change opens a PR. fork-pr.yml's new
scope job classifies the changed paths with upstream's isDocsOnlyPath (plus FORK.md, never
.claude/skills); the heavy jobs run only on `full`, and verify accepts skipped jobs only
when scope succeeded and said `docs`. An empty path list or a failed scope runs everything.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… inputs

Gate review of #80: a docs-only PR skipped `pnpm lint`'s README link check, so a broken
link would turn every later PR red, and docs/site's package.json (read by the test-runner
check) counted as docs. The scope job now runs the link check itself, fork-pr-scope keeps
CI, build, agent and docs/site paths full even if upstream's docs list grows, and FORK.md
says a failed scope job blocks the PR.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…oves

/code-review of #80: scope tests keep only paths the fork's full-scope guard rejects
(docs/site) plus the skills rule; the skip rule lives in the scope script and the gate
checker only; the heavy jobs drop a draft check scope already applies; the
isDocsOnlyPath pin says why it imports; FORK.md's local-check line follows the scope job.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rge may be released

The user chose no branch protection: the auto-rebase force-pushes develop with a lease.
A docs-only PR's merge commit ran no build, so FORK.md's Release rule now releases it only
when its first parent passed the full checks.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review of #81: walk the first-parent chain past consecutive docs-only merges, name what
counts (a feat merge whose run built, or the auto-rebase head), say how to tell a docs run,
and keep the fork-check-full sentence's subject explicit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rebases

/code-review of #81: a docs-only merge is one whose PR's scope job said docs (no invented
job names); the vouching ancestor must be releasable by the full rule, and if it is not,
neither is the docs merge. The direct-push exception names the user's own rebases too,
which are also why develop stays unprotected.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Upstream stablyai#33428 makes refreshGitStatusForWorktree require ownerHostId so a
same-path twin on another host never gets this copy's transport. Resolve the
copy once, as useGitStatusPolling does, and pass its host, connection and
transport; the test pins that all three reach the refresh.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@audichuang

Copy link
Copy Markdown
Owner Author

本機閘門開始(RUN=20261026T041726Z,head 84a30d2)

…eck ratchet

v1.4.241 adds check:e2e-typecheck-ratchet with an empty baseline. The `in`
check could not narrow the page.evaluate union, so barBox stayed possibly
undefined; test the value instead.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@audichuang

Copy link
Copy Markdown
Owner Author

本機閘門第 2 輪開始:第 1 輪紅在上游 v1.4.241 新增的 check:e2e-typecheck-ratchet(fork e2e helper 1 個型別錯誤),已修(8cb2458412)。

…eline

v1.4.241 adds check:flaky-test-pattern-ratchet, grandfathering upstream's
existing findings. The fork's own tests (19 rule/file pairs, mostly e2e
specs and real-timer component tests) get their entries the same way, as
FORK.md asks for upstream ratchets; upstream rows keep their order.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@audichuang

Copy link
Copy Markdown
Owner Author

本機閘門第 3 輪開始:第 2 輪紅在上游新增的 check:flaky-test-pattern-ratchet(fork 測試 19 個 rule/檔),照 FORK.md 加進 baseline(不重排上游行)。

@audichuang

Copy link
Copy Markdown
Owner Author

resume 開始(RUN=20261026T041726Z):run 121 的 terminal 在 12:35 被 Orca 關掉,第 3 輪 fork-check 被殺。已推上 8cb2458、25aedee51f(head 25aedee),由互動 session 接手,從第 2 步第 3 輪 fork-check 繼續。

nwparker and others added 2 commits October 26, 2026 13:25
stablyai#33687 added English-only search keywords and a code sample to the chat font
setting, which fails main's localization coverage check.

(cherry picked from commit 5dfaee0)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…33715

The cherry-picked upstream fix adds two en.json keys that upstream has not
translated yet; fork-locale-parity counts them as fork keys until a release
carries them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@audichuang

Copy link
Copy Markdown
Owner Author

本機閘門第 4、5 輪:第 3 輪紅在 verify:localization-coverage——上游 v1.4.241 本身就紅(乾淨的 vNEW worktree 跑出同樣 6 筆 chat-appearance-search / ChatFontFamilySetting),上游 main 已用 stablyai#33715 修。cherry-pick 該 commit(23bc22afdf,下次 rebase 會以相同 patch 自動丟掉),並補 6 個 locale 的兩個新 key 翻譯(fork-locale-parity)。第 5 輪 fork-check 跑中。

@audichuang

Copy link
Copy Markdown
Owner Author

本機閘門第 5 輪結果(head c31fc67)

  • fork-check-lint:綠
  • fork-check-tests:13 檔 / 37 tests 紅。在乾淨的 v1.4.241 worktree 跑同 13 檔:12 檔一樣紅(上游既有/macOS 環境,37 failed),排除。
  • 唯一 fork 紅、上游綠:tests/e2e/structured-permission-report-publication.unit.test.ts(fork 未改此檔),單獨重跑 12/12 通過 → 全量負載下時序 flake。
  • fork-check-seams:78 檔 466 tests 全綠
  • footprint:production 182 files 2259 lines(含 cherry-pick fix(ci): localize the chat font family search keywords stablyai/orca#33715)
fork 失敗尾段
⎯⎯⎯⎯⎯⎯ Failed Tests 37 ⎯⎯⎯⎯⎯⎯⎯
⎯⎯⎯⎯⎯⎯ Unhandled Errors ⎯⎯⎯⎯⎯⎯
 Test Files  13 failed | 13608 passed | 158 skipped (13779)
      Tests  37 failed | 136037 passed | 17 expected fail | 1684 skipped (137775)
     Errors  35 errors
 ❯ |node| src/main/cli/packaged-cli-assets.test.ts (14 tests | 1 failed) 7271ms
 ❯ |node| config/scripts/process-host-dev-rebuild.test.ts (8 tests | 6 failed) 93084ms
 ❯ |node| config/scripts/pr-auxiliary-preflight-admission.test.mjs (214 tests | 8 failed) 5253ms
 ❯ |node| src/main/emulator/serve-sim-kill-contract.test.ts (0 test)
 ❯ |node| src/main/worker-thread-child-process/worker-thread-child-process.test.ts (12 tests | 1 failed) 532ms
 ❯ |node| config/scripts/ci-managed-ssh-execution.test.mjs (12 tests | 5 failed) 875ms
 ❯ |node| config/scripts/dependency-security-release.test.mjs (7 tests | 1 failed) 488ms
 ❯ |node| config/scripts/main-entry-facade.test.ts (1 test | 1 failed) 131ms
 ❯ |node| src/renderer/src/components/editor/RichMarkdownEditor.focus-leave.test.tsx (3 tests | 1 failed) 346ms
 ❯ |node| tests/e2e/structured-permission-report-publication.unit.test.ts (12 tests | 1 failed) 9748ms
 ❯ |node| config/scripts/verify-cli-bin.test.mjs (8 tests | 1 failed) 105ms
 ❯ |node| src/main/orcad/orcad-forked-child-paths.test.ts (5 tests | 4 failed) 12ms
 ❯ |node| src/main/fish-xdg-data-dirs-handoff.test.ts (26 tests | 7 failed) 1052ms
v1.4.241 對照尾段
 ❯ |node| config/scripts/verify-cli-bin.test.mjs (8 tests | 1 failed) 79ms
 ❯ |node| config/scripts/dependency-security-release.test.mjs (7 tests | 1 failed) 331ms
 ❯ |node| src/main/worker-thread-child-process/worker-thread-child-process.test.ts (12 tests | 1 failed) 546ms
 ❯ |node| src/main/emulator/serve-sim-kill-contract.test.ts (0 test)
 ❯ |node| src/main/fish-xdg-data-dirs-handoff.test.ts (26 tests | 7 failed) 821ms
 ❯ |node| config/scripts/ci-managed-ssh-execution.test.mjs (12 tests | 5 failed) 719ms
 ❯ |node| config/scripts/main-entry-facade.test.ts (1 test | 1 failed) 248ms
 ❯ |node| src/main/orcad/orcad-forked-child-paths.test.ts (5 tests | 4 failed) 24ms
 ❯ |node| config/scripts/pr-auxiliary-preflight-admission.test.mjs (214 tests | 8 failed) 4835ms
 ❯ |node| src/main/cli/packaged-cli-assets.test.ts (14 tests | 1 failed) 6770ms
 ❯ |node| src/renderer/src/components/editor/RichMarkdownEditor.focus-leave.test.tsx (3 tests | 1 failed) 170ms
 ❯ |node| config/scripts/process-host-dev-rebuild.test.ts (8 tests | 7 failed) 101374ms
⎯⎯⎯⎯⎯⎯ Failed Tests 37 ⎯⎯⎯⎯⎯⎯⎯
 Test Files  12 failed | 1 passed (13)
      Tests  37 failed | 285 passed (322)

@audichuang

Copy link
Copy Markdown
Owner Author

e2e / wire / mobile(本機,head c31fc67;跑時其他 session 讓 load 到 84/12 核)

  • fork-check-e2e:8 passed
  • fork-check-wire:第 1 次 qoder-history-search-downgrade.unit.test.ts 2 個 30s 逾時(高負載);單獨重跑 9/9 綠。
  • fork-check-mobile:mobile-web-app-native-chat-visual-links.test.mjs › blocks popups even when a visual restores the native open function 兩次都紅;乾淨 v1.4.241 跑同一套 mobile 檢查一樣紅 → 上游既有,排除。
fork / v1.4.241 尾段
# fork
 FAIL  |node| config/scripts/mobile-web-app/mobile-web-app-native-chat-visual-links.test.mjs > a chat visual's in-page links on chromium > blocks popups even when a visual restores the native open function
 Test Files  1 failed | 49 passed (50)
      Tests  1 failed | 475 passed (476)
# v1.4.241
 FAIL  |node| config/scripts/mobile-web-app/mobile-web-app-native-chat-visual-links.test.mjs > a chat visual's in-page links on chromium > blocks popups even when a visual restores the native open function
 Test Files  1 failed | 49 passed (50)
      Tests  1 failed | 475 passed (476)

@audichuang

Copy link
Copy Markdown
Owner Author

盲審開始(head c31fc67,CI 全綠)

v1.4.241 rebuilt buildTabStripLayoutKey; its fork lookup by the tab's own repo
had no test, so a revert to relativePath would stop folder tabs re-rendering
when their repo status changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@audichuang

Copy link
Copy Markdown
Owner Author

第 2 輪審查開始(head d809e41):第 1 輪 A/B/C1/C2/Codex 全 ACCEPTABLE、0 BLOCKING;C1 指出 tab-bar-item-model.ts 的 buildTabStripLayoutKey(v1.4.241 改寫過)裡 fork 的 getEditorTabGitStatusKey 沒有測試會紅,落在上游碰到的 seam 上,補測試(mutation:改回 item.data.relativePath → × re-keys the strip when a folder-workspace tab's own repo status changes)。

@audichuang

Copy link
Copy Markdown
Owner Author

盲審結果(head d809e41)

審查者 第 1 輪(c31fc67504) 第 2 輪(d809e41db0,只看修正)
A 衝突忠實度 ACCEPTABLE,0 BLOCKING –
B 上游 API 漂移 ACCEPTABLE,0 BLOCKING –
C1 mutation(前半 19 個 ! + 前 3 個額外 commit) ACCEPTABLE,0 BLOCKING –
C2 mutation(後半 21 個 ! + 後 2 個額外 commit) ACCEPTABLE,0 BLOCKING –
Claude(修正) – ACCEPTABLE
Codex(thread 01a176de…) ACCEPTABLE,0 發現(自跑 pnpm tc、79 檔 472 tests、3 處 mutation) ACCEPTABLE

range-diff:313 個 fork commit,273 =、40 !、0 <。

mutation 證據(摘錄)

  • spawn-agent-launch.ts:51/129 launch cwd → pty-agent-pane-launch.fork.test.ts:expected '/tmp/pane-launch' to be '/tmp/pane-launch/libs/core'
  • nested-repo-discovery.ts:175 → nested-repo-discovery.fork.test.ts:× also finds repos nested inside repos when asked
  • tab-bar-item-model.ts:75 → tab-bar-item-model.git-status.fork.test.ts:expected null to be 'modified'
  • pty-connection-test-environment.ts:164 → pty-connection-test-environment.test.ts:expected 3 to be +0
  • use-entry-mutations.ts:113,159 → folder-discard-autosave-holds.test.tsx:× releases the repo and folder holds once, after git finishes
  • ui/sonner.tsx:64 → sonner.fork.test.tsx:expected 'calc(2.5rem + env(…' to contain 'var(--orca-toast-bottom-clearance…'
  • git-diff-methods.ts:26 → git-diff-skip-render-limit.test.ts:× forwards it in runtime.getRuntimeGitDiff's read options
  • EditorFileTab.tsx:101 → EditorFileTab.fork.test.tsx:× draws the Git Graph icon
  • 語系 key(items 71/79/95/98/101/127/204)→ fork-locale-parity.mjs v1.4.241:zh.json: missing 1 fork key(s)…
  • 額外 commit:84a30d2418 → × refreshes through the resolved copy's host and transport;8cb2458412 → check:e2e-typecheck-ratchet 1 type error;25aedee51f → check:flaky-test-pattern-ratchet;23bc22afdf → verify:localization-coverage;c31fc67504 → fork-locale-parity
  • 修正 d809e41(C1 發現:v1.4.241 改寫的 buildTabStripLayoutKey 裡 fork 的 getEditorTabGitStatusKey 沒測試會紅):改回 item.data.relativePath → × re-keys the strip when a folder-workspace tab's own repo status changes

importer-sweep 人工確認(B)

refreshGitStatusForWorktree/updateWorktreeGitIdentity 需要 ownerHostId → fork use-folder-repo-status-refresh.ts 已跟上(84a30d2418);getTabDragLabel/buildTabStripLayoutKey 新參數 → fork 接線保留;isLiveEditorOpenGroup 搬家同簽章;buildAgentStartupPlan 新增 suppressStartupUpdatePrompt 與 fork launchCwd 並存;LaunchAgent 改 z.custom 無欄位遺失;skipRenderLimit/graph 鏈路無變動;updater/menu 無新入口繞過 isForkDistribution。

NON-BLOCKING(留待)

  • use-git-history-commit-actions.ts ~145:fork 拿掉上游 openCommitFile cache guard 沒有測試守(rebase 前即如此;上游此檔 v1.4.240..v1.4.241 只改註解)。
  • 新測試 tab-bar-item-model.git-status.fork.test.ts 尚未登錄 config/fork-seam-tests.txt(unit suite / CI 仍會跑)。
  • pty-agent-pane-launch.fork.test.ts 留在 src/main/ipc/,上游 sibling 已搬到 pty/。
  • 幾個 fork git-history/graph 呼叫點仍用 getConnectionId,與上游 v1.4.241 自己的 history 呼叫點一致,可待上游遷移後跟進。

@audichuang

Copy link
Copy Markdown
Owner Author

develop 已移動到 d809e41(舊 develop 備份在 backup/develop-v1.4.240-20261026T041726Z)。接著發版。

@audichuang

Copy link
Copy Markdown
Owner Author

發版開始 v1.4.241-fork.1

@audichuang

Copy link
Copy Markdown
Owner Author

v1.4.241-fork.1 已發佈:https://github.com/audichuang/orca/releases/tag/v1.4.241-fork.1 (develop = main = d809e41;cask 已更新,MacBook 上 Orca Fork 開著,未自動升級)

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