Commit Graph

9240 Commits

Author SHA1 Message Date
Huanqi Cao fed3149ac4 fix(picker): ship the dialog worker as the constrained ./worker artifact
The workspace files constraint keys worker bundles on the ./worker export
(lib/worker.cjs, the workflow-workerthread shape); the descriptive source
entry stays win32-dialog-worker.ts and tsdown renames the bundle.
2026-08-05 00:31:43 +08:00
Huanqi Cao 8e0880e303 test(picker): attach abort expectations before driving the close-budget race
On a fast host the 1ms close budget can exhaust and reject between waitFor
ticks; a rejection with no listener yet counted as an unhandled error in the
Linux run.
2026-08-05 00:31:43 +08:00
Huanqi Cao 089f4dfad8 feat(picker): open the Win32 folder dialog in-process over koffi
The modern IFileOpenDialog becomes the primary win32 tier: a koffi-driven
COM conversation on a worker_threads worker (the modal Show never blocks
the host event loop), per-monitor-v2 DPI via SetThreadDpiAwarenessContext,
and abort service by re-posting WM_CLOSE to the dialog thread's windows,
with terminate+unref as the last resort (Node cannot interrupt a thread
blocked in native code, and such a worker must never hold the process open).

The PowerShell chain stays as the fallback tier with its trigger widened
from ENOENT to any pwsh failure, closing the review-flagged PowerShell 6
regression (no WinForms: exit 1, not ENOENT, so 5.1 never ran).

Layering keeps per-file coverage honest on every host: pure sequencing and
the driver test against fakes anywhere; the bindings run against a mocked
koffi COM world (the session-persistence-jsonl technique); POSIX hosts
drive the real spawn plumbing to its koffi-load rejection; win32 hosts run
a real open-and-abort-close smoke. The smoke joins processBoundTests: a
worker blocked in a native modal wedges the threads pool's teardown, while
a fork contains it. The worker bundles as its own CJS tsdown entry
(workflow-workerthread's pattern; no TLA), and the host module is imported
statically so the node-half bundle stays chunk-free.

Built-plane and real-COM behavior verified on native Windows: standalone
probes for the source worker, the built CJS worker, and the driver's abort
path all open and close the real dialog.

Agent Notes: new implemented/feature/2026-08-02-win32-in-process-folder-dialog
(bilingual) owns the decision; the DPI note is re-scoped to the fallback tier
it now describes and its AutoUpgradeEnabled attribution corrected (.NET Core
3.0 rewrote FolderBrowserDialog; the opt-out arrived in .NET 6).
2026-08-05 00:31:43 +08:00
Huanqi Cao da1b1ff87d fix(host): drop the folder-dialog Description both picker modes render badly
.NET 10's modern FolderBrowserDialog renders Description as a bottom
strip above the folder input, and the 5.1 classic dialog as an unthemed
white box; the property is dropped entirely and a regression assertion
pins its absence.
2026-08-05 00:31:43 +08:00
Huanqi Cao 5c51589665 docs(picker): record the pwsh-first DPI-aware Windows picker fix
README pairs document the pwsh-preferred adapter and the PowerShell 7
requirement for the modern dialog; the 2026-07-27 picker note's Windows
adapter fact is updated in place, and a new bug-fix note records the
defect, the fallback decision, and the DPI awareness rationale.
2026-08-05 00:31:43 +08:00
Huanqi Cao a92ffff10a fix(host): prefer pwsh for the Windows directory picker and force DPI awareness
The win32 branch now spawns pwsh.exe (PowerShell 7) first and falls back
to powershell.exe (Windows PowerShell 5.1) only when pwsh is missing
(ENOENT), mirroring the Zenity-KDialog fallback. PowerShell 7 renders the
modern IFileDialog folder picker; the 5.1 fallback keeps the legacy tree
functional. Both runtimes execute the identical script, which opts the
process into system DPI awareness (SetProcessDPIAware) before any window
exists, fixing the blurry bitmap-stretched dialog on scaled displays.
2026-08-05 00:31:43 +08:00
Huanqi Cao 60ba5ef3f6 Merge pull request #1120 from deepseek-harness/feat/pwsh-tool
feat(pwsh): add the pwsh-local executor and the pwsh tool
2026-08-05 00:31:39 +08:00
fz c0433d71ee test(workspace-context): record baseline identity 2026-08-04 23:20:51 +08:00
fz f8ceeed610 test(workspace-context): narrow instruction events 2026-08-04 23:12:56 +08:00
fz 119c55e35e fix(workspace-context): reconcile resumed baselines 2026-08-04 23:11:15 +08:00
Huanqi Cao c5acd4ce96 Merge remote-tracking branch 'origin/master' into feat/pwsh-tool 2026-08-04 22:05:31 +08:00
_Kerman c357f94ddc test(agent-loop): align consumers with direct wakeup 2026-08-04 21:14:34 +08:00
_Kerman 694f9009ec Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification
# Conflicts:
#	.agents/notes/implemented/feature/2026-07-23-web-permission-and-approval.i18n.yaml
#	packages/client/runtime/README.i18n.yaml
#	packages/client/ui-conversation/README.i18n.yaml
2026-08-04 21:04:43 +08:00
xjt 8320c3666d Merge origin/master into xjt/proofreading-active-docs-2-apply 2026-08-04 21:03:39 +08:00
_Kerman e50c4aca03 refactor(agent-loop): start waking work directly 2026-08-04 21:02:28 +08:00
xjt 782d84116a docs(i18n): restore first-occurrence terminology 2026-08-04 20:54:42 +08:00
imccyu 55e0dc3565 Merge pull request #1548 from deepseek-harness/codex/session-pending-interactions
feat(client): show pending interactions in the session sidebar
2026-08-04 20:50:55 +08:00
Huanqi Cao acda0e39bc Merge remote-tracking branch 'origin/master' into feat/pwsh-tool 2026-08-04 20:39:17 +08:00
_Kerman 92de5bb6d4 fix(trajectory): bound work during long streams 2026-08-04 20:37:33 +08:00
_Kerman 5372f56280 fix(client): avoid false initial prompts in tail windows 2026-08-04 20:37:25 +08:00
Turtle e2049910d5 refactor(client): keep pending interaction change UI-scoped 2026-08-04 20:28:23 +08:00
fz 01fa4ceb6e test(workspace-context): cover pre-resume tool reconciliation 2026-08-04 20:12:32 +08:00
fz 3da48d1741 fix(ci): register workspace resume fixture 2026-08-04 20:01:04 +08:00
fz 207c45d15f fix(workspace-context): deduplicate baseline on resume 2026-08-04 19:55:27 +08:00
xjt c522053cef Merge origin/master into xjt/proofreading-active-docs-2-apply 2026-08-04 19:51:18 +08:00
_Kerman 674278cb17 Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification
# Conflicts:
#	packages/client/ui-conversation/src/client/queue/QueueDock.tsx
2026-08-04 19:37:51 +08:00
Hypatia May cc89c529c6 Merge remote-tracking branch 'origin/master' into fix/landlock-runner-failure-classification 2026-08-04 19:05:33 +08:00
Turtle 76d43d616d Merge remote-tracking branch 'origin/master' into codex/session-pending-interactions
# Conflicts:
#	packages/client/connection/README.i18n.yaml
#	packages/client/connection/README.md
#	packages/client/connection/README.zh.md
2026-08-04 19:03:01 +08:00
Turtle 3a54694d28 fix(client): preserve pending waits across reconnect 2026-08-04 18:52:11 +08:00
xjt edb3e82c35 docs(i18n): address proofreading review findings 2026-08-04 18:42:13 +08:00
imccyu 6f10f9c01c Merge pull request #1527 from deepseek-harness/worktree-websocket
feat(web): move connection downlinks to WebSocket
2026-08-04 18:18:32 +08:00
Huanqi Cao 39b0695d48 Merge remote-tracking branch 'origin/master' into feat/pwsh-tool
# Conflicts:
#	apps/cli/composition.md
#	docs/testing.i18n.yaml
#	docs/testing.md
#	docs/testing.zh.md
2026-08-04 17:54:45 +08:00
Hypatia May 8c72cd3a8f docs(sandbox): align final runner evidence 2026-08-04 17:45:12 +08:00
xjt 2db712eec7 docs(i18n): proofread active Chinese documentation 2026-08-04 17:36:14 +08:00
Yichen Jiang 4f717f2da7 fix(web): address settings document review 2026-08-04 17:31:36 +08:00
imccyu 7f3ea406e1 Merge pull request #1389 from deepseek-harness/fix/UI-polish-pack
Fix/UI polish pack
2026-08-04 17:31:06 +08:00
Hypatia May ea762e3962 test(sandbox): pin runner argv forms 2026-08-04 17:19:19 +08:00
imccyu 69d5a83b87 test(web): align snapshots with responsive chrome 2026-08-04 17:16:53 +08:00
Turtle 00d4349eb4 feat(client): surface pending session interactions 2026-08-04 17:15:10 +08:00
Hypatia May c4e9893a87 test(sandbox): cover POSIX no-shebang fallback 2026-08-04 17:10:42 +08:00
Yichen Jiang e31b7221e7 feat(web): open the local settings file 2026-08-04 16:59:37 +08:00
imccyu b0b50be64f style(connection): satisfy callback lint 2026-08-04 16:58:40 +08:00
_Kerman 09e909b96b Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification
# Conflicts:
#	apps/web/tests/snapshots/queue-actions/preserved.expected.md
#	packages/client/runtime/src/client/sessions/session.ts
2026-08-04 16:56:44 +08:00
Hypatia May 666690afe9 fix(sandbox): round 7 align spawn evidence 2026-08-04 16:55:11 +08:00
_Kerman 13fed3721f fix(trajectory): preserve state across history prepends 2026-08-04 16:53:52 +08:00
imccyu 3caa175286 test(connection): use valid mux frames 2026-08-04 16:49:06 +08:00
imccyu 7f3a2dae91 fix(web): quiesce websocket teardown 2026-08-04 16:42:50 +08:00
creatixchu 70ec51b1ba Merge remote-tracking branch 'origin/master' into worktree/composer-scrollbar-gutter 2026-08-04 16:42:45 +08:00
imccyu c6d0cbd8de test(web): cover WebSocket downlink races 2026-08-04 16:34:56 +08:00
imccyu 72f82f65c9 Merge remote-tracking branch 'origin/master' into mergebot/pr1389
# Conflicts:
#	apps/web/tests/snapshots/sidebar-scrollbar/geometry.expected.md
#	packages/client/ui-conversation/src/client/chat/MessageIconActions.tsx
#	packages/client/ui-conversation/src/client/chat/message-chrome.ts
2026-08-04 16:33:55 +08:00