Commit Graph
22219 Commits
Author SHA1 Message Date
creatixchu 43391ef048 fix(cua): use the supported Zod issue type 2026-10-14 14:06:10 +08:00
creatixchu bde699d225 test(cua): refresh prompts after syncing master 2026-10-14 13:57:05 +08:00
creatixchu 220cd03bea Merge master into macOS CUA 2026-10-14 13:51:30 +08:00
creatixchu 12b3fa5304 test(cua): verify readable errors within PTC exception output 2026-10-14 13:35:45 +08:00
creatixchu 8ed497a02d test(cua): pin readable validation errors and coordinate guidance 2026-10-14 13:33:35 +08:00
creatixchu b01b889632 fix(cua): report readable argument errors and clarify coordinate targets 2026-10-14 13:32:36 +08:00
lsdsjy cb18185c9d Merge pull request #5532 from deepseek-harness/fix/bonus-notice-onboarding
fix(account): 延后赠金通知并隔离身份补齐通知
2026-10-14 13:27:37 +08:00
winewill 7ebaa991e9 Merge pull request #6172 from deepseek-harness/build/desktop-manual-publish
feat(desktop): publish retained packages independently of packaging
2026-10-14 13:21:44 +08:00
lsdsjy 5102f4f715 fix(account): 保留浏览器赠金通知并补齐身份订阅说明 2026-10-14 13:17:17 +08:00
Turtle 88d90d5883 Merge pull request #6122 from deepseek-harness/turtle/ask-question-exclusive-1fa495b41a5b
fix(ui-user-questions): show one selection when a single-select custom field is focused
2026-10-14 12:44:05 +08:00
Turtle bae0b78718 Merge pull request #5860 from deepseek-harness/turtle/stop-reason-visible-6a05d9dbbed1
fix(ui-chat): show a stopped notice for turns interrupted by a DSH stop
2026-10-14 12:41:24 +08:00
Turtle 6e765e5fed Merge pull request #6167 from deepseek-harness/turtle/workspace-cancel-adds-8a3aebe529b2
fix(directory-picker-native): ignore macOS panel selection on cancel
2026-10-14 12:36:54 +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
winewill ce64289dbd fix(desktop): validate publication dispatch and package job identity 2026-10-14 12:22:27 +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
winewill 60084a5b59 feat(desktop): publish retained packages through manual dispatch 2026-10-14 12:10:00 +08:00
Turtle 8843c37e37 Make --from-default-profile replace an existing custom profile
Repeated rescue runs such as `dsh rescue --from-default-profile web` failed
because the target profile already existed. The option now assembles a fresh
template copy in a staging directory, moves it over the target, and deletes the
previous profile; a failed move restores it.
2026-10-14 11:56:17 +08:00
TurtleandMagolor d3b465da91 Credit review by @Magolor
Co-authored-by: Magolor <[email protected]>
2026-10-14 11:54:57 +08:00
Turtle 570c52d202 fix(directory-picker-native): ignore macOS panel selection on cancel
NSOpenPanel keeps its current directory in URLs after Cancel, so a cancelled pick added a workspace. Read the selection only on an OK response.
2026-10-14 11:28:50 +08:00
lsdsjy 6514255930 Merge origin/master into fix/bonus-notice-onboarding 2026-10-14 11:20:42 +08:00
creatixchu 7bfefd3118 test(cua): record unread paste failure and observed recovery 2026-10-14 11:13:03 +08:00
creatixchu e587c71600 test(cua): exercise paste recovery before closing fixture transport 2026-10-14 11:11:36 +08:00
creatixchu 688137b0a2 refactor(cua): derive screenshot metadata from protocol schema 2026-10-14 11:09:42 +08:00
creatixchu 537a1f5047 docs(cua): explain unread paste recovery and foreground evidence 2026-10-14 11:09:20 +08:00
creatixchu 0f83b644c8 fix(cua): bound clipboard consumption waits with actionable failure 2026-10-14 11:08:00 +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 d1f4261356 Merge pull request #6158 from deepseek-harness/worktree-foldmidscroll
fix(ui-chat): fold next-message work details on one frame clock
2026-10-14 10:52:10 +08:00
ZiyaandZiyaZhang ecebe2a2b3 fix(plugin): clarify DSH badge skill descriptions in English and Chinese (#6156)
* fix(plugin): clarify DSH badge skill descriptions

* fix(plugin): remove redundant badge attribution explanation

---------

Co-authored-by: ZiyaZhang <[email protected]>
2026-10-13 19:51:03 -07: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 768473d755 perf(session-reference): resolve label services once per candidate listing
Every `@` candidate query labeled each listed Session through three
service lookups, and each lookup and method read through a Cordis service
proxy allocates wrappers, so the labeling step grew with the Session count.
The resolver now resolves sessions, projections, and the projection cache
once per call, indexes attached Sessions in one map, and binds
cachedSnapshot once for cold Sessions.
2026-10-14 01:32:15 +08:00
imccyu 6aa157a05a perf(session-persistence-jsonl): bound listing reads with a shared concurrency limit
list(), the root encoding check, and historical corpus fingerprints read
project directories, Session directories, headers, and stats one at a time.
On a network filesystem every listing paid the summed round trips. These
reads now run through one p-limit limiter per backend (listConcurrency,
default 3), shared by concurrent listings; results and the first reported
failure keep the sequential order.
2026-10-14 01:32:14 +08:00
imccyu 06829b67b6 test(web): bound the fold matrix's live-Turn waits
The queued and steer cases held the model call at a global call index and
waited without bounds, so any shifted or missing call stalled the case
until the 240 s test timeout. The hold now targets the first call in the
case's Session that streams the case's marker text, every wait has an
explicit timeout whose error lists the observed calls and the Session's
latest events, scroll settling is bounded, and the cases use the web
lane's default timeout.
2026-10-14 00:51:05 +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 0af3e0dbc3 Merge pull request #6090 from deepseek-harness/worktree-remoteaccess
feat(remote-access): carry caller principals on peers and gate remote methods
2026-10-14 00:27:05 +08:00
imccyu b632f50330 docs: regenerate cordis catalogs 2026-10-14 00:02:56 +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 7e335ee608 style(remote-access): wrap the request args JSDoc 2026-10-13 23:13:36 +08:00
imccyu 0c4a7e3e8c fix(api-gateway): resolve access resources from typert-validated arguments 2026-10-13 23:03:16 +08:00
imccyu a18488955d docs: sync subsystem docs and regenerate catalogs 2026-10-13 23:03:15 +08:00
imccyu b967475c66 feat(client-ui): add remote access hooks 2026-10-13 23:01:38 +08:00
imccyu 2640d3df82 feat(api): resolve endpoint resources and filter lists by access 2026-10-13 23:01:38 +08:00
imccyu d7bd68ee7a feat(remote-access): add rbac policies and gate non-owner calls and events 2026-10-13 23:01:37 +08:00
imccyu 9c6374909b feat(typert): declare remote method and event resources 2026-10-13 23:01:37 +08:00
imccyu d6e408d957 feat(session-controller): record non-owner principals on user message sources 2026-10-13 23:01:37 +08:00
imccyu f6316536ea feat(client-connection): carry caller principals on explicit peers 2026-10-13 23:01:37 +08:00