Commit Graph
8749 Commits
Author SHA1 Message Date
Yichen Jiang 034f2cf8bd Merge pull request #5935 from deepseek-harness/worktree/command-delete-as-whole-21017f
feat(web): claim slash commands as atomic composer chips
2026-10-15 13:42:27 +08:00
Yichen Jiang 6f8b55f3eb fix(web): restore a claimed command chip after reload
The persisted draft now records the leading command chip's claim token
(DraftSnapshot.command). Restoring the draft asks the trigger pipeline's
new resolveClaim, which polls the optional InputTriggerSource.matchClaim
hook: the command source awaits its catalog and answers only a
leadingInput claim, never opening a popup, running an action, or
executing the command. The input rebuilds the chip once the claim
resolves, only at the revision the restore produced and merged into the
seed's history entry; otherwise the literal token stays and Enter still
adjudicates it.
2026-10-15 13:18:01 +08:00
imccyu 5026df8fd1 Merge pull request #6250 from deepseek-harness/worktree-optbundles
feat(webworker): offer optional bundles in the preview and fetch lazy chunks on demand
2026-10-15 12:17:34 +08:00
imccyu 18a22f73b2 Merge pull request #6228 from deepseek-harness/worktree-versionmismatch
feat(client-modules): prompt to reload when the host release changes
2026-10-15 11:31:54 +08:00
imccyu 93d2ad2d25 feat(webworker): boot the preview from the shipped profile and fetch lazy chunks on demand
The packer images the web template bundles, every optional bundle, and an installation manifest instead of a dumped composition, and the Worker boots that profile through app-boot like dsh web. Package-local lazy client chunks move into content-addressed archives that the VFS fetches on first asynchronous read; client-modules reads chunks asynchronously.

The Worker replaces node-addon-require-builtin with Node v24.18.0 internal-module interfaces and reports Node 24, so plugin metadata, the Cordis Loader, and HMR reach one cascaded loader backed by the Worker loader. Resolution failures carry Node error codes, the empty load cache lets HMR apply profile changes, and every optional bundle switches on and off live. Platform stubs throw ERR_FEATURE_UNAVAILABLE_ON_PLATFORM.
2026-10-15 11:30:45 +08:00
turtle1999 b227127d62 fix(plugin-market): keep the Installed tab panel and list the markets bundle under More
The Installed tab panel now wraps its loading, unavailable, and empty states.
Custom plugin markets joins the bundles the More page holds back until the
profile enables them, and the repository field and its directory rule are
documented.
2026-10-15 05:37:44 +08:00
turtle1999 ab3bb74550 feat(plugin-market): carry a plugin's source repository
Indexes may give each plugin an optional repository: the web URL of its
source repository and the package directory inside it. The Discover entry
page links it as Source code, and the plugin_market tool returns it.
2026-10-15 05:37:44 +08:00
turtle1999 3de3a977e0 feat(plugin-market): add the Custom plugin markets bundle and Discover tab
Read configured plugin market indexes on the Host, search them with fuzzy
multilingual matching, and install a chosen version from the Plugins page.

- dsh-plugin-market-index validates format-1 indexes and builds install
  arguments; inline icons are capped at 32 KiB.
- The pluginMarket service fetches configured http(s) URLs, parses bodies in
  a Worker Thread, caches documents, and pages filtered, ordered results with
  installation status and engines.dsh compatibility.
- Discover is an opt-in experimental bundle; the Plugins page gains a
  plugins.tab slot and confirmed installs.
- The plugin_market tool lists indexes, plugins, and versions for Creator mode.
- Plugin compatibility reads engines.dsh before DSH peer dependencies.
2026-10-15 05:37:44 +08:00
imccyu 22c51728ed fix(dependencies): check experimental packages under the published dependency policy
verify-package-dependencies now covers every packages/*/* manifest, experimental included, and reads each package's tsdown build entries so Worker and child-process entries count as Host runtime sources. Experimental Client packages no longer declare browser and type relationships as peers.
2026-10-15 03:56:26 +08:00
imccyu b77cc1c0f2 feat(gates): reject module-scope await in package sources
Package modules that other code imports must not suspend evaluation at module scope. A syntax-aware gate scans packages/*/*/src and excludes only executables (a shebang or a package bin target). The SenseVoice worker, the SSH helper entry, and the Inspector worker entry now run an explicit main().
2026-10-15 03:56:25 +08:00
imccyu ba090a4b59 fix(ui-settings-general): focus Not now when the release prompt opens 2026-10-15 02:26:28 +08:00
imccyu a7a40f93d9 fix(client-modules): compare host releases before parsing the graph 2026-10-15 01:35:28 +08:00
imccyu f52abc04fa feat(client-modules): apply no plugin update from another host release 2026-10-15 00:51:20 +08:00
imccyu f12bf31c4a docs(notes): record the host release change refresh prompt 2026-10-14 19:10:48 +08:00
Dudu-0223 4e4ac0eae8 Merge pull request #6208 from deepseek-harness/topic/agent-team-prompt
feat(agent-team): simplify team availability prompt
2026-10-14 17:55:36 +08:00
Turtle 4b3cb7629e Merge pull request #6206 from deepseek-harness/feat/builtin-plugin-preview-hardcoded
feat(plugin-manager): show a built-in feature preview for the badge skill
2026-10-14 17:07:10 +08:00
imccyu a941635df3 Merge pull request #5945 from deepseek-harness/worktree/client-control/operator-connect
feat(connection): scope the connect handshake to one operator
2026-10-14 16:56:53 +08:00
turtle1999andZiyaZhang aac50c7923 docs(notes): record the built-in plugin feature preview decision
Co-authored-by: ZiyaZhang <[email protected]>
2026-10-14 16:41:59 +08:00
Dudu-0223 a04b8ef7e2 feat(agent-team): simplify team availability prompt 2026-10-14 16:36:16 +08:00
Tianyi Cui d0286d55d5 Merge pull request #5934 from deepseek-harness/docs/cordis-cleanup-audit
docs(cordis): audit cleanup dependency lifetimes as P0
2026-10-14 15:14:19 +08:00
imccyu 10672c4c24 Integrate Peer interaction scope with Remote access 2026-10-14 14:44:01 +08:00
imccyu 0f7ac58213 feat(connection): isolate API operators without changing browser identity 2026-10-14 14:44:00 +08:00
creatixchu 220cd03bea Merge master into macOS CUA 2026-10-14 13:51:30 +08:00
Turtle 56c5cf84a1 Merge pull request #6170 from deepseek-harness/turtle/rescue-profile-overwrite-2aaffdd2f31b
Make --from-default-profile replace an existing custom profile
2026-10-14 12:35:08 +08:00
Magolor 7110b615eb fix(llm): 生成提供方元数据并显示凭据检测状态 (#6106)
* fix(llm): generate provider metadata and clarify credential hints

* fix(settings): shorten credential hints and mark detected sources in green

* fix(llm): verify staged provider metadata and document regeneration

* fix(provider-metadata): reconcile authentication hints and key controls

* test(user-text): calibrate ratio headroom across unmatched workloads

* test(gates): include provider metadata in hygiene expectations

* fix(models): hide authentication hints for entered keys
2026-10-14 12:29:31 +08:00
Turtle 6bf5668e79 Harden profile replacement against case aliases and Windows rename errors
Reject case variants of shipped profile names, detect a concurrent winner by
the target's state instead of errno, warn instead of failing when staging
cleanup fails after a successful replacement, and cover the restore paths with
deterministic tests. Update the profile Agent Note, reference recovery path,
and upgrade-guide migration steps.
2026-10-14 12:12:52 +08:00
creatixchu 537a1f5047 docs(cua): explain unread paste recovery and foreground evidence 2026-10-14 11:09:20 +08:00
Yichen Jiang 2182e3ad09 Merge remote-tracking branch 'origin/master' into worktree/command-delete-as-whole-21017f
# Conflicts:
#	packages/client/ui-conversation/README.i18n.yaml
2026-10-14 10:58:07 +08:00
imccyu a2486e8243 Merge pull request #6160 from deepseek-harness/worktree-listperf
perf(session): speed up @ session candidates and session listing
2026-10-14 10:52:25 +08:00
imccyu a6e9071b82 fix(ui-chat): continue batch members from their current size
A revealing row that ran on its own CSS transition and was then taken
over by a batch entered the landing twice: the measured starting layout
held the height it had already reached, and the growth amount added its
full height again while the batch restarted it from zero. The extra
height raised the tail target above the real floor and stayed as bottom
room. Rows revealed while a batch ran kept their own transitions and were
taken over this way by the next batch.

- A row that starts revealing while a batch runs waits at zero size like
  a held closing row; the next flush drives it in a batch or starts its
  own transition when nothing closes.
- A batch continues every member from its current size: closing rows
  shrink from the height they have now, and revealing rows grow from the
  height they reached, so only the remaining growth enters the landing.
2026-10-14 03:38:35 +08:00
imccyu 57fa64db18 fix(ui-chat): fold rows that close mid-batch in the next batch
A row that started closing while a fold batch ran kept its own CSS
transition and outlived the batch. During that window following moved to
the floor while reclaimBelow held still, so the bottom room was followed
in full instead of being consumed by the content that arrived, and it
stayed under the reader afterwards.

- A row that closes while a batch runs keeps its size without a
  transition until the batch settles; the next batch starts at once and
  drives it. Without a driver at that flush the held row finishes at once.
- A batch takes over a closing row at its current size and finishes a
  row that has no size left.
- The tail landing reads the committed layout when it finishes: it lands
  at the larger of the target and the real floor and keeps only the room
  that target needs.
2026-10-14 03:13:00 +08:00
imccyu 7f7940f0e2 fix(ui-chat): address second review on single fold motion
- A tail request counts only for closing rows that can start a batch,
  using the same membership rule as the batch, and detaching clears it.
- A batch keeps the reader landing while reading movement awaits
  sampling, so an unsampled scroll away from the tail is not undone.
- Reader scrolling during a reader landing moves the reference row's
  recorded position, so the final correction keeps only layout changes.
- The blank-area matrix releases a partly opened world, fails a case on
  cleanup errors, mounts only the provider catalog for the Turn that fails
  before its model call, names its gap as a layout gap, and labels the
  steering case as a no-fold control.
- The note records the pending-sampling rule and the opacity of a row
  that joins the travelling set after fading.
2026-10-14 01:53:16 +08:00
imccyu 33c37200f8 perf(token-meter): keep only system prompts in the context breakdown state
contextBreakdown kept one entry per retained surface node, so its
checkpoint grew with the message count (7.13 MB across 836 local Sessions,
up to 103 KB for one) and every cached Session listing validated it. The
state now holds the surviving system prompts, one surface total, and at
most one shadow-price claim. Appends add their price; a replacement
subtracts the adjacent compaction/summary or compaction/prune price and
drops the system prompts its shadowedSeqs name; a system-prompt rewrite
subtracts the retained prompt price. Other unmetered replacements fold at
zero delta, as in contextPressure. State version 6 discards positional
rows. Folding all 836 local logs with both versions gives identical
figures after every event; retained state drops to 110 KB.
2026-10-14 01:32:16 +08:00
imccyu 25a69605ad fix(ui-chat): address review on single fold motion
- A tail request counts only while a fold batch runs or is scheduled,
  so rows still closing on CSS transitions cannot strand own input.
- A reader-content-still landing adds the reader's own scrolling between
  frames to the position it keeps still.
- A newer tail request that takes over a running batch recomputes which
  closing rows travel with the content.
- Symmetric cancel and resume guards; Set-based travelling bookkeeping.
- The blank-area matrix holds the subagent continuation route for child
  sends, writes per-frame evidence only on failure, and labels the parent
  message case as a no-fold control.
- The group-tree note now links the single fold motion for input without
  an echo on this page.
2026-10-14 00:32:00 +08:00
imccyu a4426261ab fix(ui-chat): fold next-message work details on one frame clock
Folding on the next message reserved the whole closing height as bottom
room and kept scrollTop whenever the input had no transcript echo on this
page: a message from another tab, a queued message delivered after the
previous Turn, or a send from a subagent child in the right Sidebar. A
reader below the fold was left on an empty viewport.

Every batch of closing rows now runs on the viewport's frame-clock driver.
It lands at the tail for this client's own input or a following reader and
otherwise keeps the reader's content still, installing only the room the
landing lacks. Subagent child sends register a local echo and pass its
request id to subagents.prompt, so the child's recorded message retires it.
2026-10-14 00:31:59 +08:00
imccyu 529706d163 fix(remote-access): drop buffered events on revoke, filter search, declare workspace file resources 2026-10-13 23:55:05 +08:00
imccyu 0c4a7e3e8c fix(api-gateway): resolve access resources from typert-validated arguments 2026-10-13 23:03:16 +08:00
imccyu f6e4b5026c docs(notes): record peer principals and rbac remote access 2026-10-13 23:01:37 +08:00
turtle1999 879ad372ac feat(hmr): replace plugins whose package files changed during profile recomposition
With HMR, installing, enabling, disabling and removing bundles take effect live. Each profile recomposition compares
the loaded modules below the profile directory and its linked targets with disk, stops the plugins whose files
changed, and recomposes the profile through app-boot's recomposeProfile(): the rows the next generation drops are
removed first, the latest runtime resolution is published once, and the generation is applied and judged. Afterwards
HMR evicts the modules below the mappings the recomposition dropped.

- app-boot: recomposeProfile(); PluginPackages.resolution; ResolutionRestartRequired; the resolver accepts in-place
  version changes and relinks, and relocates Node's cached link real paths.
- plugin-manager: with HMR, installBundle refuses an installed package (already-installed), so an upgrade is a
  removal and an installation; every restart-required result carries a restartReason; removal uses the registry the
  package was installed from.
- ui-plugin-manager: the Official Update removes and then installs; restart prompts name their reason.
2026-10-13 22:15:57 +08:00
creatixchu e5b0b492d8 fix(cua): preserve screenshot format and dimensions in object API 2026-10-13 21:30:47 +08:00
creatixchu 57bd5e5438 test(cua): cover pointer-transparent overlays and record input decisions 2026-10-13 19:18:42 +08:00
Wenlu Wang 18be29bfbe Merge pull request #6055 from deepseek-harness/fix/user-text-benchmark-sampling
test(benchmarks): stabilize user-text timing samples
2026-10-13 17:42:27 +08:00
lsdsjy 2009b90d7e Merge remote-tracking branch 'origin/master' into feat/web-account-login
# Conflicts:
#	apps/web/tests/sidebar-terminal.e2e.ts
2026-10-13 15:48:48 +08:00
Dudu-0223 b9958b901b Merge master into subagent-agent-presets and resolve integration conflicts 2026-10-13 14:10:56 +08:00
Dudu-0223 ea5ae3a7ef Merge pull request #6098 from deepseek-harness/fsy/team-runtime-context
fix(agent-team): inject identity through required runtime context
2026-10-13 13:56:54 +08:00
Dudu-0223 85259d7cfd docs(agent-team): clean up identity review feedback 2026-10-13 12:51:29 +08:00
creatixchu 4203741099 refactor(cua): use native Harness tool results and attachment admission 2026-10-13 11:59:14 +08:00
kingwl 49c92c889d test(benchmarks): await sample cleanup and clarify timing reports 2026-10-13 11:29:00 +08:00
creatixchu 8a7f941112 fix(cua): make hover use persistent system-pointer movement 2026-10-13 11:25:19 +08:00
LogosVeritas b560423995 fix(minimal): configure tools and complete image offload recovery 2026-10-13 11:25:18 +08:00