Commit Graph
267 Commits
Author SHA1 Message Date
Tianyi Cui 335c5cbe26 fix(cli): keep source profile imports in one module graph
The runtime profile default is correct for installed applications, but the
supported TypeScript CLI also runs tsx workspace aliases. In that launch,
profile resolution loaded both packages/core/tools/src/index.ts and
packages/core/tools/lib/index.js. The ToolRuntime instance and agent-loop
consumer therefore held different private TOOL_RUNTIME_SCHEDULER symbols;
the first tool call failed while reading scheduler.prepare.

The source bin now explicitly selects linked profile resolution using its
own .ts module identity. Built and packaged launches keep runtime resolution,
and explicit runProfile overrides remain unchanged. No service or symbol
identity is widened to conceal duplicate module instances.

Forward the existing sourceImport option through runLoaderSmoke and select
tsx/esm for headless source snapshots. This exercises the actual supported
source-launch vector while retaining the same recorded Session and expected
outputs. The loader-smoke subprocess test covers forwarding that hook.

Evidence: the official tsx/esm compaction replay failed before the fix while
loading both Tools module URLs. After the fix it loads only src/index.ts and
prints COMPACTION RECOVERED. The same focused replay passes under both
DSH_EXAMPLE_MODE=src and lib after rebuilding Host artifacts. The 43 CLI and
loader tests passed, including runtime defaults and explicit link/dual/runtime
overrides. Loader-smoke coverage passed 25 tests with 100% statements,
branches, functions, and lines. Host build, full lint, and all 41 doc-sync
gates passed. Recorded JSONL generations and snapshot normalization are
unchanged; temporary diagnostics were removed from built artifacts.
2026-09-18 00:06:26 +08:00
imccyu 0ea890044f test(cli): cover runtime profile defaults and sync docs 2026-09-17 20:23:14 +08:00
imccyu 9ddef327a4 feat: resolution mode link to runtime 2026-09-17 20:08:51 +08:00
turtle1999 053cad9442 fix(cli): complete startup diagnostics before exiting 2026-09-16 21:40:54 +08:00
turtle1999 18260e3b0c fix(cli): save full startup diagnostics under DSH_HOME logs 2026-09-16 20:11:15 +08:00
turtle1999 38fb1a11f9 fix(cli): group startup failures and pending services 2026-09-16 19:04:12 +08:00
turtle1999 8c5ae870c2 fix(creator): address plugin workflow review findings 2026-09-16 17:22:38 +08:00
Turtle 7d4188b450 fix(cli): address profile shorthand review feedback 2026-09-15 16:49:03 +08:00
Turtle 1d6534a810 feat(cli): support profile command shorthand 2026-09-15 16:49:02 +08:00
Turtle 311156b1c2 Merge master and preserve profile-managed HMR 2026-09-15 16:20:47 +08:00
Turtle 61665c3454 fix(plugin-manager): clean failed installs and address critical review findings 2026-09-15 15:15:49 +08:00
07akioni 830c82687b revert: restore original CLI profile boot exports 2026-09-15 14:56:19 +08:00
07akioni 255374afa1 fix(cli): expose only the shared profile runner API 2026-09-15 14:16:48 +08:00
Turtle 86497c479c Merge remote-tracking branch 'origin/master' into turtle/plugin-manager
# Conflicts:
#	packages/client/ui-settings-plugin-inventory/package.json
2026-09-15 13:09:38 +08:00
Turtle abd765a600 refactor(hmr): own profile reload lifecycle through YAML 2026-09-15 13:01:06 +08:00
07akioni bafe2b7d55 Merge master into thin Electron Web UI and reconcile runtime resolution 2026-09-15 01:17:42 +08:00
Turtle ca4db9c755 fix(hmr): match Node module paths and contain startup reload failures 2026-09-15 00:00:53 +08:00
Turtle 4d13d8ad9d Merge remote-tracking branch 'origin/master' into turtle/plugin-manager 2026-09-14 23:30:17 +08:00
Turtle 438c862fea refactor: keep profile launch context data-only and HMR backend-scoped 2026-09-14 23:09:06 +08:00
Turtle d06e6b5519 feat: coordinate profile management through dsh-hmr 2026-09-14 23:09:06 +08:00
Turtle 98b92b683c feat: add current-profile plugin manager service and Web controls 2026-09-14 23:09:05 +08:00
imccyu c917a4e0bd feat(cli): force runtime resolution in pkg builds 2026-09-14 22:52:44 +08:00
imccyu 662bdf3833 docs(profile-resolution): clarify review assumptions 2026-09-14 22:30:48 +08:00
imccyu 6aa2e4633c feat(boot): add profile resolution modes 2026-09-14 22:30:48 +08:00
07akioni 9187c3662e Merge master and fix desktop editing and Windows lock contention 2026-09-14 12:16:33 +08:00
Turtle 71d50b4a84 refactor: ban ambiguous origin label 2026-09-11 17:45:28 +08:00
07akioni 253873f340 Merge origin/master into thin Electron Web UI branch 2026-09-11 13:43:03 +08:00
07akioni ae84dd3381 fix(desktop): address shared runtime review and CI regressions 2026-09-11 11:24:17 +08:00
07akioni 8c2fa73ceb refactor(desktop): share profile initialization and plugin management 2026-09-10 22:44:52 +08:00
07akioni e84a4e857e refactor(desktop): run shared Web UI in a thin Electron shell 2026-09-10 22:08:33 +08:00
turtle1999 2abb542a22 Adapt current consumers to nontransactional Cordis Loader
Move exact user-patch watching into app boot and audit activation explicitly.
Wait for CLI fallback HMR and preset subtrees. Join the first fiber-disposal
result in the directory chooser and browser package runner. Keep async
update errors observable without restoring generic Loader rollback.

Restore the current workspace-link and Schemastery manifests and their gate.
Preserve unconditional patch-input cloning, awaited Include initialization,
and durable teardown writes. Update diagnostics, snapshots, bilingual docs,
and the exhaustive vendor divergence ledger.

Validation: focused Loader, watcher, preset, inventory, and cleanup tests;
100% watcher coverage; 32 Web preset cases; real CLI webhook model session;
SDK smokes; 13 headless expected cases; 3 recorded-session replays; build,
typecheck, lint contracts, and all 34 doc-sync gates.

A full Node 24/Python 3.12 Vitest run had 21806 passes and two failures:
a baseline-reproduced experimental CSS import failure and a Python probe
timeout that passed alone. The default Node 26/Python 3.9 run additionally
exposed unsupported Python and FileHandle-GC host failures.
2026-09-09 17:33:32 +08:00
Turtle 267d2f8eb9 Merge remote-tracking branch 'origin/master' into turtle/from-default-profile
# Conflicts:
#	apps/cli/README.i18n.yaml
#	apps/cli/README.md
#	apps/cli/README.zh.md
#	packages/boot/app-boot/README.i18n.yaml
#	packages/boot/app-boot/README.md
#	packages/boot/app-boot/README.zh.md
2026-09-07 20:53:53 +08:00
Turtle 2555474a7d refactor(cli): simplify profile option forwarding 2026-09-07 20:47:47 +08:00
Turtle 7a7b7d5a53 fix(cli): make profile template creation exclusive 2026-09-07 20:46:40 +08:00
Turtle dd25e1e6b3 feat(cli): create profiles from shipped templates 2026-09-07 19:58:41 +08:00
07akioni 8d0d729091 Merge master native containment updates into feat/electron 2026-09-07 19:45:55 +08:00
07akioni fe0b7f2814 fix(desktop): move host out of CLI package 2026-09-04 16:21:45 +08:00
pku-xht d79f5c04e8 Merge master into codex/subprocess-native-containment 2026-09-03 21:46:02 +08:00
pku-xht 423412b7bf fix(runtime): simplify executable entry dispatch 2026-09-03 21:18:27 +08:00
pku-xht e5dbccce8c fix(subprocess): move SEA bootstrap to runtime packaging 2026-09-03 19:59:26 +08:00
07akioni 3e526474a3 Merge remote-tracking branch 'origin/master' into feat/electron
# Conflicts:
#	pnpm-lock.yaml
#	scripts/gen-cordis-catalog.ts
2026-09-03 13:46:37 +08:00
Yichen Jiang 8470ddef1d refactor(http-proxy): converge the proxy API on four functions
The package exported six functions, four of them shaped by one SDK's
transport each: a dispatcher factory, a `node:http` agent factory, a
proxy-URL lookup, and a policy accessor. Review asked whether the call
sites could converge instead of the package growing an export per SDK.

They could, and each removal took a whole shape with it:

- The OTLP exporter moves to the SDK's `fetch` delegate, retiring
  `createNodeHttpAgent`. Its Node-version floor goes too: `proxyEnv` on
  an `http.Agent` needs 22.21 or 24.5, inside the engines range, so
  telemetry was direct on 22.19, 22.20, and 24.0-24.4. The cost is
  `compression`, a Node-transport option; the plugin now refuses it,
  `keepAlive`, and `httpAgentOptions` at load instead of ignoring them.
- `web-fetch-http` builds its own address-pinning agent under an
  annotated `proxy-exempt:` exemption, retiring `createDispatcher`.
  Pinning is per-request state a process-wide dispatcher cannot hold.
- E2B reads `route.proxy`, retiring `proxyUrlFor`.

What remains is `installProxyFromEnvironment`, `proxyRouteFor`,
`proxyEnvironmentForChild`, and `clearedProxyEnv` — one per way a caller
can need the policy. Installation absorbs resolution and diagnostic
reporting, which no caller needed apart.

`proxyRouteFor` also closes a defect the old accessor made expressible:
`web-fetch-http` read the policy to decide whether to pin, then read it
again to build a transport, so an unmount between the two returned a
direct, unpinned agent for a URL the first read had cleared as proxied.
A route carries the answer and the transport that answer assumed.

Every egress spec now installs through `installProxyFromEnvironment`, so
no test asserts a policy object a real launch could not produce.
2026-09-01 21:15:04 +08:00
07akioni f90d57f389 fix(desktop): address lifecycle review findings 2026-09-01 20:22:05 +08:00
07akioni 903a926897 feat: optimize ipc perf 2026-08-31 11:54:28 +08:00
07akioni 2ef85b1e17 fix: windows build 2026-08-31 11:54:28 +08:00
07akioni 19444907f0 feat: electron 打包 2026-08-31 11:54:28 +08:00
Yichen Jiang 545e2ad914 feat(net): route every outbound request through the configured proxy
Node's built-in fetch ignores HTTP_PROXY, so every harness request connected
directly regardless of what the user exported. Resolve one policy from the
launch environment and install it as undici's global dispatcher, then wire the
four surfaces a global dispatcher cannot reach: web_fetch's pinned transport,
the OTLP exporter's node:http agent, the E2B SDK's own proxy option, and the
environment a child process or worker thread is given.

Each outbound call site carries an egress test that drives its real code path
through a fake proxy; that measurement is what found the OTLP and E2B gaps.
2026-08-29 13:17:11 +08:00
pku-xht a95f0b368f fix(subprocess): contain escaped descendants with native owners 2026-08-28 18:15:49 +08:00
pku-xht 20f04373c8 Merge commit 'bd88d2ee9f08b3c3aba8c06df527a91d8b76b51d' into codex/subprocess-native-containment
# Conflicts:
#	packages/e2b/subprocess-e2b/README.i18n.yaml
#	packages/e2b/subprocess-e2b/README.md
#	packages/e2b/subprocess-e2b/README.zh.md
#	packages/subprocess/README.i18n.yaml
#	packages/subprocess/README.md
#	packages/subprocess/README.zh.md
#	packages/subprocess/subprocess-local/README.i18n.yaml
#	packages/subprocess/subprocess-local/README.md
#	packages/subprocess/subprocess-local/README.zh.md
#	packages/subprocess/subprocess/README.i18n.yaml
#	packages/subprocess/subprocess/README.md
#	packages/subprocess/subprocess/README.zh.md
#	packages/subprocess/win32-process/README.i18n.yaml
#	packages/subprocess/win32-process/README.md
#	packages/subprocess/win32-process/README.zh.md
2026-08-26 15:25:12 +08:00
pku-xht cf6f25d283 fix(subprocess): keep native runner private 2026-08-26 14:10:08 +08:00