Commit Graph
26 Commits
Author SHA1 Message Date
mektpoy 2b9923fede fix(native-command): escape both Explorer field separators and keep non-ASCII literal
On Windows 11 ARM64 build 26200 Explorer splits its own command line at
commas and equals signs and rejects percent-encoded non-ASCII in a file
URI, falling back to the Documents folder in both cases without reporting
it. `explorerTarget()` now escapes `=` next to `,` and decodes Node's
non-ASCII escapes back to the literal characters the shell resolves, so
the two rules stay in one place. The Agent Note and the target-encoding
table record the measured behavior.
2026-09-23 12:33:31 +08:00
mektpoy b73031be9b test(native-command): pin the Explorer target for verbatim and device paths
A verbatim `\\?\` prefix and a `\\.\` device namespace take Node's UNC
resolution, and the comma encoding has to survive them. The drive-root case is
pinned separately because Node restores a trailing separator against the host's
`path.sep`, which differs on the Windows host this opener runs on.
2026-09-22 20:27:45 +08:00
mektpoy 03294cb653 test(native-command): pin every Explorer open target through one table 2026-09-22 17:31:12 +08:00
mektpoy 95611fbc63 fix(native-command): encode the Explorer target so a comma stays in the path 2026-09-22 12:24:53 +08:00
Huanqi Cao 68e43b173e fix(native-command): open Windows paths through the shell's resolution
The settings sheet's Open configuration file action opened nothing on Windows when the user's default lived only in the Explorer per-user record (FileExts\\<ext>\\UserChoiceLatest), which Explorer honors and the association resolver inside the host process does not. Invoke-Item also exits 0 when it finds no application, so the Remote answered { opened: true } and the sheet rendered no error.

Windows opens now hand the path to explorer.exe as one argv element - the resolution a double-click performs - and revealNativePath shares that invocation rule. The shared helper accepts Explorer's delegate exit 1 for an open and a reveal alike; every other failure and every cancellation still rejects. The PowerShell command string and powershellLiteral are gone: the path crosses the process boundary as argv, with no escaping step.

Fixes #4428
2026-09-22 01:57:21 +08:00
Yif 1a14166d2b fix(native-command): validate the full handler list and dedupe only for display 2026-09-21 15:46:03 +08:00
Yif 6cb1cd921f fix(native-command): collapse duplicate macOS handler copies to one menu entry 2026-09-21 13:58:18 +08:00
creatixchu 7d002f7eff test: compare Windows file identity and refresh delivery controls 2026-09-20 17:17:40 +08:00
creatixchu 6e260998c9 fix: refine shared file controls and native query errors 2026-09-20 13:39:11 +08:00
creatixchu 6493cdac9c fix: retain the Windows Shell host until asynchronous handoff settles 2026-09-20 13:14:49 +08:00
creatixchu 39af517961 test: evaluate the Windows fixture output path as a PowerShell expression 2026-09-20 12:58:58 +08:00
creatixchu cbc51b5446 test: isolate native application identity and cold-history associations 2026-09-20 12:51:18 +08:00
creatixchu 5218958366 test: keep native association expectations strictly typed 2026-09-20 12:35:53 +08:00
creatixchu 4fb9d34275 fix: use the native test task timeout for fixture readiness 2026-09-20 12:32:05 +08:00
creatixchu b4b0c4e4c8 test: exercise native Linux file handoff and document shared adapters 2026-09-20 12:24:09 +08:00
creatixchu aac990d2d4 test: cover desktop lookup fallbacks and cancel native fixture work 2026-09-20 12:20:04 +08:00
creatixchu a8c5ca85a1 test: cover Linux associations and native Windows Shell handoff 2026-09-20 12:15:15 +08:00
creatixchu a1545a9bf5 feat: share file associations across macOS Windows and Linux 2026-09-20 12:10:54 +08:00
creatixchu 5325babc7b test: cover default native command adapter selection 2026-09-20 10:43:06 +08:00
creatixchu e435340eff test: exercise application selection through the recorded Web session 2026-09-20 10:41:48 +08:00
creatixchu 39bde1a5c9 feat: query file applications for sidebar opening (#4562) 2026-09-20 10:31:32 +08:00
creatixchu 04d0235673 Verify local file opening and address sidebar review findings 2026-09-18 15:31:50 +08:00
creatixchu 74bf7aaa2f fix(web): preserve artifact actions across reconnects and keyboard use 2026-09-09 16:18:24 +08:00
yudshj 4158a96e14 feat(web): add native file actions to artifact cards 2026-09-09 15:26:28 +08:00
imccyu 160706be60 test(api): refresh Remote migration artifacts 2026-08-27 21:57:56 +08:00
creatixchu 51402ac7af refactor(util): extract the shared no-shell native-command runner to dsh-native-command
master's toolcall-open extracted runNativeCommand inside apiproxy for the
openPath opener while the picker seam had moved the native chooser (its other
consumer) into directory-picker-native; after the merge the two packages each
carried a verbatim copy. The runner now lives in packages/util/native-command
(zero-dependency library, per the util-group contract) and both native
integrations depend on it.
2026-07-28 21:25:19 +08:00