Repository navigation
Conversation
wSedlacek
left a comment
There was a problem hiding this comment.
Note
🤖 Claude Opus 5.5 responding on behalf of wSedlacek
I'm closing #30650 in favor of this PR. The two designs ended up the same, and this one has been run in packaged builds. Two small gaps are inline below. Neither one blocks merging.
Dismissed: unsolicited automated review from a blocked account.
3a03467 to
ac7ab63
Compare
The macOS app only registered web pages as documents, so Finder refused folder drops on the Dock icon and Open With. The open-file handler was also attached late in startup and accepted only HTML, so a drop that launched the app could be lost. Register public.folder, capture open-file as soon as the Clerk service is built, and route each path by its real type: directories go through the existing desktop app activation broker to the local environment, web page files still open in the built-in browser. A dropped folder gets a two-minute deadline to cover a cold launch, and a disabled local environment says so instead of waiting. Adapted from pingdotgg#30650. Co-authored-by: wSedlacek <william.sedlacek@icloud.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The index route and desktop activation can both open the first project's draft. The caller that lost the race returned null after awaiting defaults because the route had changed, so `t3 app` and Dock drops reported thread-open-failed while the matching composer was open. When the route changed (or the stored draft opened) during that await, a plain open now returns the draft the route shows if it is the live, unpromoted draft of the same environment and project, and the project still exists. Requests with a prompt or explicit workspace options, and navigation elsewhere or removal, still return null. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
TanStack Router moves its location to a destination before it commits the destination's matches. The concurrent-open check read the committed matches, so an activation that lost the race to the index route's draft navigation still saw the old route and reported thread-open-failed on the first project. Read the destination from the current location with the router's own matcher. The live session's project, environment, promotion and server-shell checks are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
cdb0a86 to
f682e00
Compare
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — Folders dropped on the macOS Dock icon now open through the existing project-opening flow, including during startup. The change preserves product defaults and limits concurrent-draft reuse to the same project and environment. You can add or adjust custom eligibility rules. Learn more. |
Dismissing prior approval to re-evaluate c1e0c1c
|
No actionable comments were generated in the recent review. Walkthrough
Merge Risk:
|
AI-assisted; verified with the tests and tools listed above.
Dismissing prior approval to re-evaluate 6542876
Julius has taken over with 6542876, after the main update. Stopping this automation's edits and pushes and removing its PR watch. The PR body retains native Finder-to-Dock before/after recordings, warm/cold first-project and remote-selected local-routing proof, and the attributed Linux/web evidence. Those runtime results precede Julius's composition and test changes; I have not requalified his head. Current GitHub notifications report required checks satisfied at |
|
The automated pipeline stopped on this pull request and will not merge it: the proof has no capture anyone can open:
It stays open for a person to finish or close. |
macOS ignores folders dropped onto the Dock icon because T3 Code registers only HTML documents and its file handler rejects directories. It also attaches the handler too late for cold launches.
Register folders, capture file-open events before startup completes, and route directories through the existing primary-local project flow. HTML files keep their browser behavior. Folder requests have a finite deadline and owned failure dialogs. A concurrent first-project navigation now acknowledges the matching live draft while its route loads, avoiding a false failure warning.
Closes #32640
Adapted from #30650, with its author credited in the commit.
Scope: submitted under the focused obvious-bug exception, not on a claim of prior maintainer approval. The existing desktop workspace activation already opens local directories as projects; this fix connects the native Dock file-open entry point to that same flow. It adds no project model, wire contract, provider behavior, or default setting. Early event capture, bounded requests, and the matching-draft race correction are needed for the demonstrated first-folder and cold-launch cases to finish without a false failure. The before/after recordings below show the defect and the resulting behavior.
Current head
c1e0c1c00b229576acf8aa82f03da78ebfc2a716, based on80e62619f5c01d84579bcf70ea6d566712007412. The latest commit changes only the dialog-owner regression test to stop asserting warning text; all six tests in that file pass. Production code is unchanged from native-tested heada072b9f72a83875183743428bc1f804bf3b30c72. That head has the same tree as source-reviewedf682e00299e4bdbbf371729e54f350f71543914b. Exact-head CI passes. Boat completed with a dependency-setup failure described below. Main's subsequent eleven commits through524a53183d81a8fe6417c20090cdb45cd6d133ccwere inspected. They do not change native folder activation or the tested plain-folder draft paths; the repository-identity cache change preserves known identities during refresh.check:changedjob4i5ezzmdhd3y7bxupassed at identical-treef682e00299e4bdbbf371729e54f350f71543914b; its VM was removed. New race regressions failed before the correction. Independent source, composition, and native acceptance reviews have no open findings.aswzmk25wlj24eolat c1e0c1c passed format, lint, knip, affected typecheck, React Compiler, and 84 tests.DesktopClerkcould not load because parallel imports raced while installing Electron. The VM was confirmed removed. This run is not claimed as a pass. Current-head CI explicitly runsensure:electronfirst and passes all 15 Clerk, six activation, four broker, and 50 packaging tests, plus the full web/server suites. The changed owner test also passes locally. No product-code change was needed for the runner setup failure.Native macOS Beta 0.1.8 arm64 on shiv, macOS 27.0.1. Fresh isolated state, no imports, mock keychain. Before is main
80e62619f5c01d84579bcf70ea6d566712007412; after is heada072b9f72a83875183743428bc1f804bf3b30c72. Videos mask only unrelated system-alert overlays, with timing preserved. Clean app captures separately show the result without those foreign windows.Before: actual Finder-to-Dock folder gesture leaves main with no project.
mac-before.mp4
After: the first fresh folder opens its matching composer, persists one project, and shows no false failure warning.
mac-after.mp4
Cold launch: an actual Finder drop onto the retained test Dock icon starts the app and opens exactly one matching project without a false warning. The video includes the actual drag, startup, and matching composer. Recorded CUA action data, the launcher PID, and empty-to-one database inspection corroborate it. The isolated bundle copy uses a native launcher and ad-hoc signing to set HOME/T3/XDG, mock keychain, and user-data-dir. Its app.asar and plist are unchanged; signing changes the Electron executable hash. This is not production notarization evidence.
mac-cold.mp4
With a corex remote draft selected, a Mac-local folder drop switches to the primary local composer. The Mac database contains that path; an independent read-only check confirms it was not inserted into the remote database.
mac-remote.mp4
Native regressions also passed: duplicate drops keep one project per path and a directory ending in
.htmlopens as a project.mac-regressions.mp4
A drop recreates the closed app window.
mac-closed-window.mp4
An HTML file still opens in the built-in browser.
mac-html-file.mp4
A disabled local environment shows its warning attached to the app window.
mac-disabled.mp4
Linux and web captures below remain attributed to
cdb0a863712d2a14062f3539b5b11f8442de2b82, base7171fdd7716b05dc1b4be40c26ac78e8bb35f80c. Independent composition review traced the intervening changes and accepted these narrow results for the final diff; they are not claimed as fresh executions at a072.Linux corex, packaged Beta 0.1.8 x64 with isolated HOME/XDG/T3 state and display: first bundled
t3 appactivation exits 0 and opens the matching composer without a warning. Duplicate and fresh.htmldirectory activations also exit 0, with one project per path.Real web client, isolated state: Add project > Local folder > Add opens the matching draft.
web-add-project.mp4
Not tested: the reporter's exact macOS 27.2 patch, production notarization/Gatekeeper, Finder Open With, provider turns, or every slow-start duration up to the timeout. No mobile change requires a phone.
Implemented by Claude Opus 5.5 through Claude Code. Investigation, verification, review, and follow-ups by GPT-6.1 Sol through Codex.