Clone progress and Windows long-path repair
September 6, 2026
The direct-clone mutex deferred registration of the temporary
repository until after AppStore._clone had synchronously
looked it up. Selection consequently received undefined,
rendering "No repository selected" during cloning. Registration now
happens before queueing, while journal and Git operations stay
serialized. The same temporary model is passed into the queued
operation.
Windows clone commands now set core.longpaths=true both
on the invoking Git process, for recursive operations, and through
clone's --config, for the resulting repository. Global Git
configuration is unchanged.
Verification
node script/test.mjs app/test/unit/cloning-repositories-store-test.ts app/test/unit/cloning-repositories-account-test.ts app/test/unit/cloning-repositories-staging-test.ts app/test/unit/git/clone-test.ts app/test/unit/ui/cloning-repository-view-render-test.tsx
39 tests passed across five files, with zero failures or skips:
| File | Tests |
|---|---|
cloning-repositories-store-test.ts |
5 |
cloning-repositories-account-test.ts |
2 |
cloning-repositories-staging-test.ts |
15 |
git/clone-test.ts |
14 |
ui/cloning-repository-view-render-test.tsx |
3 |
Removing the long-path arguments reproduced
Filename too long in the new real-Git checkout regression.
Restoring them returned the focused tests to green. An independent
read-only review found no introduced correctness defect.
The previous installer run 33822411314 and Windows CI
run 33821945423 failed with TS2345 in
script/draft-release/run.ts:173. Release drafting now
awaits Prettier before writing JSON and before printing its formatted
fallback instructions. yarn compile:script passes with that
correction.
Issue 225, Discussion 226 and draft PR 227 creation returned URLs,
but repeated read-back returned not found. Their publication is
therefore unverified. Project discovery is unavailable because the
active CLI authorization lacks read:project; no Project
state was changed.
Build unblock verification
The development compile reported 91 TypeScript diagnostics. Nine existing source files contained incomplete merge wiring: the dynamic Status Hub endpoint client, settings explanation imports and default constants, the transient account explanation interface, and dock description identifiers. Those fragments are restored without changing the shell or disabling checks. The new staging test also now asserts the progress value is non-null before reading it.
tsc --noEmit --pretty false passes after these repairs.
A focused run of Status Hub client/configuration, setting explanations
and clone staging passed 33 tests. A separate run of queue, Copilot,
appearance, agent-access preferences and settings-tab strip tests passed
99 tests. The 33-test run includes the same 15 clone-staging tests
present in the earlier 39-test run; do not double-count them.
Independent review found no introduced correctness or security
defect.
完整編譯發現原有合併漏接嘅符號;補回九個來源檔案嘅必要接線,再補明確進度非空斷言後, TypeScript 檢查通過。兩組相關測試分別 33 同 99 個通過,33 個入面包括早前已計過嘅 15 個複製測試。
Built clone verification
The production compile and unpackaged development-channel assembly
completed successfully at
3c2df876584830bda5d6106f5ae5af6e591e7e4f in 1125.48
seconds. An earlier build overlapped a deliberate regression mutation
and was stopped; that earlier output is not evidence. The optional
native shell extension was skipped because Visual Studio C++ x64 build
tools were unavailable.
The exact built output was launched on an isolated hidden desktop
through the installed lowlevel-computer-use-cheap CLI. Its
process identity, sole CDP page, and source were checked before
interaction. The real clone dialog immediately rendered
Cloning fixture-source with a progress bar and no blank
selection. The initial local-file URL fixture was refused by the
existing hosted-URL staging-origin validator. Completion was then tested
through the repository's existing loopback HTTP Git fixture, without
mocking Git or application state.
The HTTP clone completed with all 2,001 files present. A
277-character file path was readable, repository-local
core.longpaths was true, Git status was clean,
and HEAD matched fixture commit
221d3a6ba9e9022943417211d19a9466f96849a9. The application
selected fixture-clone and displayed
No local changes.
| Evidence | SHA-256 |
|---|---|
Built main.js |
5876e31f2acfa9ac13b0dfe037ff083fea37f7231be79e992c6b0fb8ede23d1a |
Built renderer.js |
d814747cd6e552346c88fd863409a24467a24958b5907ea2af4a273d30ef7cb6 |
| Completion capture | 06dc9d41798d61e43656d6d84694baeb586c94cae51c9762b9dfe1eaf41e799f |
Raw captures and interaction receipts are retained in the private task output. They have not been promoted to the public gallery: the capture run did not collect a complete console-error ledger for that stricter receipt contract. The completion PNG was decoded and visually inspected at 960 by 660 pixels. The visible desktop and the user's application profile were not touched.
CI run 34051067114 was confirmed running at the same
source commit, but later read-back returned HTTP 404. Its terminal
result and installer publication are unverified. Release and integration
proof remain separate from local UI proof.
複製暫存儲存庫而家會先登記,再排隊,進度唔會因為等候鎖而消失。 Windows 長路徑設定只影響今次 Git 操作同新儲存庫,唔會改全域設定。 實際建置已完成,隱藏桌面上嘅 HTTP 複製成功,2,001 個檔案齊全,277 字元路徑可讀, 完成後正確揀選新儲存庫。CI 後續讀取返回 404,唔會當作已成功發佈。