Commit Graph
1361 Commits
Author SHA1 Message Date
Magolor 5249d9a4ce fix: prefer saved credentials and use environment keys in headless (#5483)
* ui: show locked API key environment reference

* fix(ui-settings-models): skip unused pi-ai credential reference

* fix(ui-settings-models): show active provider auth source

* test(llm): cover provider auth check failures

* docs(ui-settings-models): clarify active provider authentication

* test(web): update model key copy snapshots

* fix(ui-settings-models): clarify native authentication source hint

* fix: address PR 5483 review feedback

* docs(llm): state empty auth lookup behavior

* fix: refresh auth hints with credential snapshots

* fix: require credential refresh revision

* test: cover auth status projection

* fix: refresh catalog and browser expectations after rebase

* fix: keep auth status projection internal and explicit

* fix: preserve credential source checks with signed-in account rows

* test: pin Models authentication instead of inheriting host keys

* fix: prioritize stored credentials across providers

* fix: use one environment fallback hint

* docs: refresh credential contract

* docs: refresh config catalog

* test: align provider hint verification

* fix: use provider-native auth hints and endpoints

* fix: cover oauth-capable provider auth hints

* fix: show canonical endpoint defaults

* fix: avoid misleading endpoint fallback

* fix: label catalog endpoint defaults

* fix: shorten auth hints with hover details

* fix: clarify native auth resolution

* test: align DeepSeek endpoint hint

* fix: pair help button corner shape

* fix: address credential precedence review

Record the stored-credential precedence in a superseding Agent Note and
an upgrade guide, and align the credentials subsystem page, package
READMEs, and JSDoc with the order file > launch env > $cwd/.env >
$DSH_HOME/.env.

Report each pi-ai route's catalog endpoint and native-auth environment
names through the provider directory, check the names against the
installed pi-ai resolvers, and remove the llm/checkAuth and credential
describe operations that no Models page code calls.

Restore the route-derived key reference and the home expansion that
reads the home directory only for a leading ~.

* fix: clarify model authentication guidance

* fix: explain native provider OAuth requirements

* fix: keep authentication guidance method neutral

* fix: show credential reference source in model editor

* fix: use environment authentication in headless profile

* fix: validate headless authentication and current provider metadata

* test: retain authentication guidance coverage with account catalog updates

* test: retain writable Models credentials with the pinned environment
2026-10-13 10:10:06 +08:00
imccyu 902df58ded refactor: scope this branch to generated Remote artifacts
The caller-connection work — forwarded-event opt-in, physical socket
ownership, and the Node/MCP artifact-only consumer fixture — moves to a
stacked PR on top of this one. This branch now changes only how Remote
definitions are generated (Typert artifacts, lazy method info,
consumer-selected input strictness, tool-schema projection) and how the
existing Registry consumes them.
2026-10-13 00:52:59 +08:00
imccyu efdaa86fb8 feat(typert): unify Remote definitions with lazy method info 2026-10-13 00:52:58 +08:00
Yichen Jiang 3d6e1b811b Merge remote-tracking branch 'origin/master' into worktree/web-terminal-duplex 2026-10-12 16:06:21 +08:00
Yichen Jiang c319824f2b Merge origin/master into worktree/web-terminal-duplex 2026-10-12 14:07:25 +08:00
Yichen Jiang 5538b790c6 fix(web): bound terminal uplink and preserve final output 2026-10-12 13:54:11 +08:00
fz 88a0be8486 Merge master after separating plugin-manager fix 2026-10-12 13:04:25 +08:00
Yichen Jiang 5379996fcb feat(web): carry terminal input over duplex streams 2026-10-12 11:18:43 +08:00
Yichen Jiang 2a3d143eaa Merge remote-tracking branch 'origin/master' into worktree/sleepy-grothendieck-64df7b
# Conflicts:
#	docs/event-producer-consumer.md
#	docs/event-producer-consumer.zh.md
2026-10-12 11:07:34 +08:00
imccyu 743560522b Merge pull request #6013 from deepseek-harness/worktree-fixsystemprompt
fix(web): keep process-specific values out of the system prompt
2026-10-12 02:23:32 +08:00
imccyu a93958c7d0 feat(ui-secret-mask): mask credentials in sent user text 2026-10-12 00:46:21 +08:00
imccyu ba1a9356db fix(web): advertise one Web GUI URL through the webApp service
The web-runtime row provides webApp.getAdvertisedUrl(): the row's
configured publicUrl, otherwise the listener origin. harness-dev-context
reads it instead of webStartup.publicUrl, so a profile override of
publicUrl reaches the model as it already reaches DSH_WEB_URL and the
startup URL. The new package no longer injects webServer or webStartup,
and the startup flag provider returns to its master behavior.
2026-10-12 00:34:29 +08:00
imccyu adfa92bca1 fix(web): address review on harness dev context
- WebServer exposes getOrigin() instead of an origin getter, and it fails
  loud before listen binds a port.
- The earlier Web-surface paragraph is a frozen literal, so later guidance
  edits cannot stop earlier Sessions from matching; the projection reads a
  prompt version with the loop's single-text-block rule.
- web-app drops its unused dsh-system-prompt dependency and stale
  prompt-section wording in its description, README, patch comment,
  --public-url help, and the round-trip test title.
2026-10-11 23:25:24 +08:00
imccyu 36779dcf09 fix(web): keep process-specific values out of the system prompt
The harness checkout path and Web GUI URL now reach the model as runtime
context from the new dsh-harness-dev-context plugin, so a process started
on another port, checkout, or installation no longer rewrites a Session's
logged system prompt. A Session whose prompt already embeds the earlier
value-bearing paragraphs keeps them verbatim through a host-only session
projection.

dsh-host-webserver gains WebServer.origin and bindUrlHost(); web-app keeps
only DSH_WEB_URL, the startup URL, and the browser handoff, and its root
declares the webStartup service type. app-boot drops
addHarnessSourceSection and HARNESS_SOURCE_SECTION.
2026-10-11 23:25:19 +08:00
imccyu e4410b2764 perf(client): read each tsdown preset's own package manifest
The client tsdown presets found a package's own manifest by name: a glob of
every packages/*/*/package.json, parsed until the name matched. tsdown's
native config loader imports each package config without module cache, so
the module-level cache never hit and all 82 configs repeated the glob
(40-125 ms each) synchronously on tsdown's main thread, where it delayed
every other package build. It was 34.5% of the client pass's main thread.

- clientBundle, staticLinked and clientLibrary take the package directory
  (import.meta.dirname at every call site) and read <dir>/package.json
  once; the package name, loader id and externals come from that manifest.
- A missing, unreadable or nameless manifest throws an actionable error.
- The glob, the name search and the module-level caches are removed.

tsdown client pass 12.78 s -> 8.73 s (median of 3 interleaved runs each,
-31.7%); all 11,566 lib outputs byte-identical; all 82 configs resolve the
same externals and banners.

Refs #5852
2026-10-11 18:19:23 +08:00
imccyu 1c6078dca6 perf(build): declare React type packages only at the workspace root
TypeScript builds a synthetic signature for every JSX intrinsic element and
computes a module specifier for @types/react (index and jsx-runtime) per
importing file. computeModuleSpecifiers visits every symlinked location of
that file and scans all 491 tsconfig paths for each; pnpm gave 65 packages
their own node_modules/@types/react link. Client test-aggregate Check
followed 26.9 + 0.494 * N seconds for N locations.

- Remove @types/react and @types/react-dom from all 67 workspace manifests
  and declare them once in the root devDependencies; packages keep declaring
  the react and react-dom they import (ui-slots gains react).
- verify-package-dependencies rejects either package in any workspace
  manifest and requires the root declaration, so a new package cannot add
  the link back.
- packages/client/AGENTS.md states the rule.

Client aggregate Check 59.1 s -> 26.5 s; the 76 client-only package
projects 54-57 s -> ~44 s wall. File set (2,613) and diagnostics unchanged.

Refs #5852
2026-10-11 18:19:21 +08:00
imccyu 9cb2041b29 Merge pull request #5979 from deepseek-harness/messageslot
refactor(web): compose message and text-transform content
2026-10-11 15:23:08 +08:00
imccyu ed629da5da fix(web): trim unused user text features and cover rendering 2026-10-11 02:03:27 +08:00
imccyu a46d5b143f refactor(web): separate image slots by domain 2026-10-11 01:04:23 +08:00
imccyu d6a5aa5cab fix(web): address user text CI checks and coverage 2026-10-10 22:43:55 +08:00
imccyu b52864330d refactor(web): extract reusable user content factory 2026-10-10 22:43:54 +08:00
imccyu 2c684c51c9 refactor(web): compose native message image factories 2026-10-10 22:43:53 +08:00
Tianyi Cui 9d385cd0d9 Merge master into persistent PTC
Preserve the persistent runtime package description with master's alpha.2 version and locale exports. Refresh the two PTC prompt snapshots for the current plan-tool result type.

Validation: full build, 434 focused tests (one skipped), two built-runtime tests, two selected snapshots, package metadata, and all 43 doc-sync checks passed.
2026-10-10 21:55:44 +08:00
imccyu d6be036d67 Merge pull request #5982 from deepseek-harness/worktree-spacebrowser
feat(ui-workspace): expose session ids and unify toast presentation
2026-10-10 15:25:23 +08:00
imccyu 0dcebe4419 fix(ui-workspace): declare toast registrations explicitly 2026-10-10 14:59:26 +08:00
imccyu b2dd2bf75b fix(ui-workspace): copy session id directly from menu 2026-10-10 13:13:47 +08:00
imccyu 76d086754a fix(ui-workspace): update toast coverage and generated expectations 2026-10-10 03:11:57 +08:00
ZiyaandZiyaZhang c7d61ecc11 fix(i18n): 补充内置插件中文文案并精简清单展示 (#5506)
* fix(i18n): add Chinese names and descriptions for built-in plugins

* fix(i18n): keep built-in plugin localization metadata-only

---------

Co-authored-by: ZiyaZhang <[email protected]>
2026-10-09 17:18:26 +00:00
07akioni deb90c38e6 Merge pull request #5576 from deepseek-harness/fix/desktop-dependency-alignment
perf(deps): align desktop dependencies and share client libraries
2026-10-09 17:52:53 +08:00
kingwl 226ae8d2fd Merge master and resolve integration conflicts for #5576 2026-10-09 16:14:10 +08:00
07akioni e2c410ef84 release(dsh): 0.2.1-alpha.2 2026-10-09 15:13:40 +08:00
creatixchu 42cf8c5ee0 Merge remote-tracking branch 'origin/master' into codex/ptc-review-policy
# Conflicts:
#	apps/desktop/tests/ptc-runtime.spec.ts
#	docs/config-catalog.md
#	docs/config-catalog.zh.md
#	packages/ptc-runtime/ptc-runtime-node/README.i18n.yaml
#	packages/ptc-runtime/ptc-runtime-node/README.md
#	packages/ptc-runtime/ptc-runtime-node/README.zh.md
#	packages/ptc-runtime/ptc-runtime-node/src/index.ts
#	packages/ptc-runtime/ptc-runtime-node/src/launch.ts
#	packages/ptc-runtime/ptc-runtime-node/tests/launch.spec.ts
2026-10-09 15:10:13 +08:00
creatixchu 244ca73755 fix(ptc): keep policy cleanup waits inside PTC 2026-10-09 15:02:01 +08:00
imccyu 7a504ac3e0 fix(ui-chat): settle fold following and apply review cleanups 2026-10-09 13:35:18 +08:00
imccyu a0a9aef5ec feat(ui-chat): add independent collapse timing and viewport-scoped flow 2026-10-09 13:35:16 +08:00
Yichen Jiang d6a699591b Merge remote-tracking branch 'origin/master' into worktree/sleepy-grothendieck-64df7b
# Conflicts:
#	docs/event-producer-consumer.md
#	docs/event-producer-consumer.zh.md
#	packages/api/session-controller/README.i18n.yaml
#	packages/extensions/cordis-client-runner/tests/api-catalog.client.spec.ts
2026-10-09 11:38:51 +08:00
Yichen Jiang 5087220bea fix(preset): keep a blank Session that already runs the selected preset
The Creator entry names cordis in its session.create request, and its chip may
still select cordis when the Session list updates before the new projection
arrives. select recomposed and logged unconditionally, so that race appended a
second agent-preset/selected record and announced tools/change again. select
now leaves a blank Session that records the preset and runs its current
revision unchanged; a replaced definition still recomposes and logs. The
Creator Web scenario pins a single selection record.
2026-10-09 11:29:26 +08:00
Yichen Jiang 3c1e357132 fix(web): join only the latest Workspace connection and restore logged presets
Keep one Workspace navigation options type: StartSessionOptions now carries
agentPreset, and openWorkspace and connectWorkspace take its preset field.
A connection joins the latest in-flight connection to its Workspace only when
both name the same preset, so a superseding request always reaches the Host,
and the map is keyed by the branded WorkspaceId instead of a composite
string. The fresh New Session path no longer accepts a preset it would drop.
Restoring a saved blank reloads that Session's projections first, because
listed values are cached hints that can lag the log after an unclean exit.
The New Session upgrade guide points to the session.create reuse guide.
2026-10-09 11:29:17 +08:00
imccyu a561924313 test(web): migrate reasoning fixtures and refresh slot catalogs 2026-10-09 01:56:26 +08:00
Tianyi Cui 0454b67568 Merge pull request #5902 from deepseek-harness/fix/stable-conversation-titles
fix(session-title): keep adequate conversation titles unchanged
2026-10-09 00:24:22 +08:00
Ziya 76a60e0f0c Merge pull request #5891 from deepseek-harness/ux/reasoning-translation-toggle
fix(web): 简化思考原文与译文切换入口
2026-10-08 09:10:35 -07:00
Tianyi Cui 353fe00d63 refactor(session-title): separate provider model strategies 2026-10-08 23:37:11 +08:00
ZiyaZhang cbd64a0abf fix(web): address reasoning toggle review feedback 2026-10-08 07:31:13 -07:00
fz e493fd40dc fix(jobs): use short UUIDs for visible job ids 2026-10-08 21:04:58 +08:00
creatixchu b7dbd7bb03 Merge master into feat/persistent-ptc 2026-10-08 20:58:22 +08:00
Turtle fd78c948a5 Merge pull request #5551 from deepseek-harness/turtle/request-extension-fail-bc456a3d035d
fix(llm): keep request-extension failures from blocking model requests
2026-10-08 20:23:32 +08:00
fz 7af8741513 Merge origin/master into fix/5520-job-session-timestamps 2026-10-08 20:02:49 +08:00
Yichen Yan ac080346f0 Support native HTTPS Web listeners 2026-10-08 19:49:01 +08:00
imccyu b492219bd2 Merge pull request #5508 from deepseek-harness/worktree-waitmigration
feat(session): guard migration in sidebar fork and subagent catalogs
2026-10-08 19:47:55 +08:00
Yichen Jiang 64c47c6306 test(client): update the inspect catalog's uiWorkspace signatures
openWorkspace and connectWorkspace accept NewSessionOptions, so the Client
Cordis inspect catalog spec pinned outdated signatures and failed both
coverage lanes. Declare openWorkspace on one line so the generated catalog
signature carries no collapsed line breaks, regenerate the catalog, and pin
the new signatures.
2026-10-08 18:52:32 +08:00