Commit Graph
15567 Commits
Author SHA1 Message Date
turtle1999 9c8522bb64 feat(plugin-detail): show Markdown plugin details on bundle and market entry pages
Plugins bundle pages and Discover entry pages show the plugin's long
description first, as Markdown with images, in a height-limited region
without its own heading. The document is the file locale meta.detail
names, otherwise the package README, otherwise (market entries only)
the declared repository's README.

The new dsh-plugin-detail library selects documents and reads local
package directories and npm file CDNs without state. plugin-manager
reads installed and offered bundles through readBundleDetail; plugin-market
reads market entries through readEntryDetail, single-file APIs, and a
size-limited partial clone cache serialized across processes. Raw HTML is
omitted, relative links stay text, and relative images load from Host
routes with a sandbox CSP.
2026-10-19 19:13:22 +08:00
Turtle 82a5ae1744 Merge pull request #6174 from deepseek-harness/feat/plugin-version-updates
feat(plugins): check and install newer registry versions of third-party bundles
2026-10-19 18:22:33 +08:00
imccyu a3debca9ab Revert "feat(gui): 支持图片拖动平移与原图拖放分享" 2026-10-19 18:04:17 +08:00
winewill f6a6a3407f Merge pull request #6560 from deepseek-harness/fix/macos-update-fullscreen-recovery
fix(desktop): leave macOS fullscreen before update confirmation
2026-10-19 18:04:00 +08:00
std4453 54219b6288 Merge pull request #6530 from deepseek-harness/feat/image-pan-and-share
feat(gui): 支持图片拖动平移与原图拖放分享
2026-10-19 18:01:42 +08:00
turtle1999 b8c7fa91d5 fix(plugins): keep the Refresh label on the refresh button 2026-10-19 18:00:21 +08:00
zhc 9485f9bf40 refactor: clarify image drag constant names 2026-10-19 17:46:59 +08:00
zhc f0ed41c8dd fix: address image drag lifecycle and coverage review 2026-10-19 17:43:38 +08:00
zhc 54eed06c6f feat(gui): support image panning and original-file drag sharing 2026-10-19 17:43:38 +08:00
ZiyaZhang 97551ceaaf style(plugins): place versions below included components 2026-10-19 02:33:13 -07:00
Yichen Jiang 81963e0665 Merge remote-tracking branch 'origin/master' into worktree/pi-ai-default-capacities 2026-10-19 17:31:04 +08:00
ZiyaZhang 24cbed2d92 fix(plugins): polish version updates UI and unify refresh 2026-10-19 02:29:54 -07:00
turtle1999 09d47d6a08 feat(plugins): check for updates from the refresh button and fix the merged version styles 2026-10-19 17:25:01 +08:00
winewill 22542d831e Merge remote-tracking branch 'origin/master' into fix/macos-update-fullscreen-recovery 2026-10-19 17:13:00 +08:00
Yichen Jiang f2e0d7db1b feat(llm): raise custom model defaults to 1M context and 128K output 2026-10-19 16:59:30 +08:00
winewill 7f5007bca4 fix(desktop): localize fullscreen timeout recovery guidance 2026-10-19 16:54:25 +08:00
Chinesezjc dbae54a7c9 Merge origin/master into refactor/unify-time-vocabulary
Resolutions:
- docs/config-catalog.md and .zh.md are regenerated from the merged package
  descriptions.
2026-10-19 16:22:37 +08:00
_Kerman ac71b42560 Merge pull request #5966 from deepseek-harness/xtr/session-projection-registration-handles
refactor(session-projection): return retained handles from async registration
2026-10-19 15:47:04 +08:00
turtle1999 b10bd84dfe feat(plugins): check and install newer registry versions of third-party bundles 2026-10-19 15:40:51 +08:00
_Kerman d3f486e98e fix(plan-mode): reject requests before guidance is ready 2026-10-19 15:26:30 +08:00
_Kerman cc79cf553b fix(llm-retry): retain recovery requests during activation 2026-10-19 15:26:30 +08:00
_Kerman 10ec80ce48 fix(tmux-context): await projection readiness before querying 2026-10-19 15:26:30 +08:00
_Kerman 2f30c684ac fix(time-context): await projection readiness for initial requests 2026-10-19 15:26:30 +08:00
_Kerman 05f1066f8c fix(permission-presets): reject publication before initialization 2026-10-19 15:26:29 +08:00
_Kerman ab7bd24b60 fix(session-title): retain fallback requests during activation 2026-10-19 15:26:29 +08:00
_Kerman feff25e8f7 fix(subagent): initialize model selection before agent publication 2026-10-19 15:26:29 +08:00
LogosVeritas 7d656c0511 Merge pull request #6369 from deepseek-harness/fix/sdk-minimal-checkpoints
为 sdk-minimal 默认启用已有的 session-checkpoint-policy,在模型请求、顶层工具执行和 step 前等待会话记录持久化,并在刷盘失败时阻止后续操作,将首次日志写入与原生写锁初始化提前到首个模型请求之前,降低短会话关闭时历史无法恢复的风险。同步补齐依赖、配置断言、回归测试及双语升级指南,并依据启用 checkpoint 后的 4 轮、20 个 CI 样本,将 profile-continuation 预算从 4,250 ms 重新校准为 7,000 ms,保留工作负载、完成数量及超预算检查。Fixes #6512。
2026-10-19 15:17:07 +08:00
Chinesezjc adc27809f7 fix: map every zone rejection exhaustively and document the signed span
- timeZoneError and browserTimeZone switch over TimeZoneRejection instead of
  a ternary: each reason that shares a diagnostic is its own case, and the
  default arm assigns the reason to never so adding a reason fails the build
  (assertNever where the package already imports it). The unsupported cause
  is still forwarded.
- the request-zone suite now exercises the blank refusal, so every case the
  switch lists is covered rather than sharing one ternary branch.
- Duration documents that a span is signed: a negative count builds and
  decompose() refuses it, so the caller states its own sign policy.
2026-10-19 15:12:50 +08:00
Chinesezjc 19605806cb Merge origin/master into refactor/unify-time-vocabulary
Resolutions:
- packages/util/time/package.json keeps this branch's description and takes
  master's 0.2.1-rc.2 version.
- packages/util/README.i18n.yaml is re-recorded after the merge.
2026-10-19 15:05:12 +08:00
imccyu d5b432ac2c Merge pull request #6519 from deepseek-harness/worktree-thinkfold
fix(chat): close a reader-opened process group from its height cap
2026-10-19 14:31:28 +08:00
Shigma 23356d9c9c Merge pull request #6193 from deepseek-harness/chore/cordis-timer-1.1.4
chore(cordis): sync Timer 1.1.4 and reuse it in Client
2026-10-19 13:51:40 +08:00
Shigma 675e5de5f8 refactor(cordis): remove obsolete ClientTimerService export 2026-10-19 13:14:59 +08:00
_Kerman 679ec80a14 test(web): mount projections for search initiator fixtures 2026-10-19 12:24:35 +08:00
imccyu 1260d96ef3 fix(chat): close a reader-opened process group from its height cap 2026-10-19 12:23:46 +08:00
luogesi f62182e577 fix(sdk-minimal): checkpoint sessions before dispatch 2026-10-19 12:13:57 +08:00
_Kerman 8d23747fc0 Merge remote-tracking branch 'origin/master' into xtr/session-projection-registration-handles 2026-10-19 11:28:19 +08:00
_Kerman 955e600031 Merge master into session projection registration handles 2026-10-19 11:21:16 +08:00
CreatixChu 571ad5fda0 Merge pull request #6425 from deepseek-harness/feat/cua-click-hold
feat(cua): 支持可选的鼠标长按时长
2026-10-19 11:16:43 +08:00
imccyu d9ae93d0c4 Merge pull request #6485 from deepseek-harness/projection-summary
perf(session-projection): serve session-list rows from a summary key set
2026-10-19 11:10:40 +08:00
imccyu 99eacb881f fix(session-controller): drop a redundant projection cast and refresh doc graphs 2026-10-19 10:43:21 +08:00
creatixchu bf4d54aa67 test(cua): await cooperative helper shutdown before termination 2026-10-19 10:33:10 +08:00
creatixchu dc508374bd feat(cua): configure click hold limits and allow immediate release 2026-10-19 10:29:21 +08:00
creatixchu faa6e20705 Merge remote-tracking branch 'origin/master' into feat/cua-click-hold 2026-10-19 10:23:21 +08:00
imccyu 6292808bf9 fix(session-controller): keep the list summary contract honest 2026-10-19 10:20:10 +08:00
imccyu af2fa50f8a docs(session-projection): stop describing a removed interlock 2026-10-19 03:00:08 +08:00
imccyu f230fc2fc2 refactor(session-projection): review fixes for the summary key set
- Export `ProjectionKeySelection` (the read faces' key selection) and reuse it
  from the projection cache instead of restating the union twice. The Cordis
  catalog can now resolve the type its generated signatures reference.
- Make `wire.summary` a plain boolean: omitted means `true`, and a key whose
  map entry carries the summary mark declares `false` so the runtime key set
  and the client view type agree. The type no longer forbids a declaration.
- Describe the mark accurately: it has no runtime representation; `wire.view`
  and `viewSchema` are typed with `SessionProjectionViewValue`, which strips it,
  so the registration erase only widens the state type.
- Say plainly in the package README, the subsystem page, the client field
  comments, and the Agent Note that a list row carries the summary projection
  and never the full projection: a connected Session's store may hold more
  values, but those are outside the list contract.
- Document the summary vocabulary on the subsystem page with `ts type-equiv`
  blocks for the mark, its stripping, the excluded-key test, the summary value
  type, and the key selection; split the prose paragraph.
- Revert the behavior-neutral cache-double refactors in three specs, and record
  in the Agent Note why no upgrade guide accompanies the wire change and how a
  consumer migrates.
2026-10-19 01:13:24 +08:00
imccyu b5f0c91f3f docs(chat): describe reply visibility per Replies After Collapse choice
The group-tree JSDoc and the ui-chat README stated that every reply stays outside whole-Turn folding and named only the collapse-timing setting. They now distinguish All replies from Final answer only and link the new setting.
2026-10-18 23:18:59 +08:00
imccyu 8e2dd67de8 perf(session-controller): exclude the shared image limits from session summaries
`imageLimits` is a boot constant every Session shares: the unit stores no
per-Session state (`stateSchema: z.null()`, `apply: state => state`) and its
view returns `ctx.attachments.imageLimits`. A list row therefore repeated one
host-wide capability fact on every row. It now carries the summary mark like
the three log-derived units, so a summary read skips it while an opened Session
still receives it through `session/follow`, the control baseline, and
`session.projections`.

No other logic changes: the registration, its schema, its constant view, and
the host-side prompt validation keep reading `ctx.attachments` directly.
2026-10-18 23:04:29 +08:00
imccyu c458eab0a0 fix(chat): keep the reply gap on a folded final answer
A folded Turn gave its final answer the control's 16px clearance through
compactAnswer and data-turn-process-answer, because hidden process rows
keep the answer from matching the control's adjacent-row rule. With every
reply kept, the final answer no longer follows the control, so that 16px
only widened the gap above it. In both choices the margin also switched
from 12px to 16px when the closing rows became hidden at the end of a
next-message fold, moving the answer down about 4px.

A reply separated from the control by folded rows now keeps the 12px reply
gap in both choices; only a row directly following the control receives
16px, and no reply changes its spacing when a fold finishes.
2026-10-18 23:01:23 +08:00
imccyu 94ebbf124e fix(chat): keep every assistant reply visible when a turn folds
Whole-Turn folding chose the final answer by position, so a Turn that
continued after answering (a notice reply, record keeping, or a tool call)
hid the real answer with the process. A folded Turn now hides only its
process; every assistant-step reply row stays visible.

Settings -> General -> Replies After Collapse (ui-chat.foldedReplies,
default "all") switches back to the previous final-answer-only rule; the
choice applies immediately and is hidden in Verbose.
2026-10-18 23:01:23 +08:00