Commit Graph
25458 Commits
Author SHA1 Message Date
imccyu 06bf7ce024 Revert "fix(settings): show saved API keys and preserve environment detection…"
This reverts commit 9bb49604b63bb5d50e879bcf63c9f5cb2afbd737.
2026-11-03 12:33:44 +08:00
imccyu e4ac64c9c7 Merge pull request #7734 from deepseek-harness/worktree-sync-dsh-0.2.2-to-master
release(dsh): sync release/dsh-0.2.2 back to master
2026-11-03 12:28:59 +08:00
imccyu a3f6f94c1e test(snapshot): refresh fixtures for the 10-query web_search default 2026-11-03 12:13:05 +08:00
imccyu aa4774e685 Merge master into worktree-sync-dsh-0.2.2-to-master 2026-11-03 12:05:47 +08:00
涂轶翔 012a7a2e4a Merge pull request #6958 from deepseek-harness/fix/6953-deepseek-deferred-tools
fix(llm): rebuild tool baselines after removals
2026-11-03 11:59:07 +08:00
imccyu ef5f28d0fb Merge master into worktree-sync-dsh-0.2.2-to-master 2026-11-03 11:47:40 +08:00
Turtle 582c334472 Merge pull request #7022 from deepseek-harness/turtle/websearch-query-limit-96c308027005
feat(web): raise web_search defaults to 10 queries and 10 sources
2026-11-03 11:41:39 +08:00
Ziya 27fb833732 Merge pull request #7712 from deepseek-harness/fix/page-card-remove-keep
fix(creation-recommendations): 个性化页面卡片去掉“保留”,装好后只提供撤销和恢复
2026-11-02 19:18:45 -08:00
imccyu eb1713f856 fix(session-projection): keep released units in checkpoints (#7754)
* fix(session-projection): keep released units in checkpoints

Since the Cordis rc.11 teardown order unloads the Web layer before the
base layer, Session Controller and harness-dev-context release their
projection units before their live Sessions detach. The projection
cache is still alive at that point and wrote a checkpoint holding only
the units that were still registered, replacing the complete record.
A blank Session then lost sessionListMetadata and listed as an untitled
conversation after every graceful restart.

A released unit now stays in the registry as a predecessor: it leaves
event drives, snapshots, restores, and change notifications, while
checkpoint() keeps each Session's last cell of it without advancing it.
Registering the same key again replaces the predecessor and refolds
the log. The projection cache keeps replacing whole records.

* test(session-projection): assert frozen released units across unload tests

Update the remaining unload tests that still expected a released unit
to vanish from checkpoint(): user-approval, agent-loop inbox and scope
lifecycle, time-context, and the agent registry now assert that the
same Session keeps its pre-unload row, that a later event does not
advance it, and that a Session created after the unload has no row.
The token-meter and goal unload tests also append an event after the
unload.

Document that a retained handle read still advances a released cell
that checkpoint() serves, and that restore() folds only live units, so
its refreshed rows omit released units.

* docs(session-projection): sync the ProjectionHandle type-equiv block

* docs(session-projection): record frozen released units and their upgrade

Add the upgrade guide for checkpoint() keeping a released unit's last
row, update the registration-handles Agent Note with the frozen-cell
decision and the retained predecessor, list both consequences under the
registry README's known limitations, note in the projection cache README
that a stored row can be frozen at its unit's release, and say that
restoreFloor() ignores released predecessors.

Update the agent-loop resource-lifecycle unload test, which read
checkpoints through an alias, to the frozen-row semantics.

* docs(upgrade-guide): mark the released-checkpoint snippet ignore-check

* docs(session-projection): state the retained-handle path and narrow a rejected alternative

* docs(upgrade-guide): re-record the released-checkpoint guide pairing
2026-11-03 11:07:09 +08:00
ZiyaZhang 87f2531360 Merge remote-tracking branch 'origin/master' into fix/page-card-remove-keep 2026-11-02 19:00:32 -08:00
imccyu 6e77ea0131 feat(web): boot past failed optional client plugins (#7733)
* feat(web): boot past failed optional client plugins

The Web client boot audit now follows Host startup strictness. An
inactive entry on the global required list (module system, Session
transport, renderer, application frame, Session view, and sidebar)
still rejects startup and the report marks the required entries.
Other inactive entries produce one console warning and the
application mounts without them. The boot page no longer draws a
failed entry before the audit decides.

* fix(web): audit boot entries whose creation rejects and name activation errors

ClientEntries.start() now logs a row whose Loader creation rejects, such
as a module that exports no plugin, and leaves it inactive for the boot
audit, as the Host Loader group does. The audit awaits only failed
fibers to report their recorded activation error. Notes, READMEs, and
the Web client subsystem page describe the browser boot audit; tests
cover invalid exports, carrier presentation of optional failures, and
required names absent from the boot graph.

* test(web): fail test carriers and e2e on inactive client entries

The product boot only warns about inactive entries outside its required
list, but tests must still surface every plugin that fails. TestClient
and createClientTest now require every roster entry to activate unless
a case passes allowInactiveEntries. The watchConsole tripwire, the
real-host smoke, and the assembled jsdom boot treat a web boot warning
as a failure with no opt-out.

Docs: the Web README names Session control, notes that an entry without
a fiber is reported as an import failure like the Host audit's "failed
to import", and the startup strictness note lists the browser tests.
2026-11-02 16:20:50 +00:00
Yichen Jiangandimccyu d721353f86 feat(forge): unify plugin entry for reviews and worktrees (#7721)
* feat(forge): unify the worktree plugin entry and add user previews

* docs(forge): show session-linked GitHub pull requests in preview

* refactor(forge): keep plugin unification out of profile loading

* docs(forge): document manual upgrade to the unified plugin entry

* fix(forge): localize preview descriptions and address review feedback

* test(web): refresh creation recommendation catalog for the forge description

---------

Co-authored-by: imccyu <[email protected]>
2026-11-02 22:34:01 +08:00
63026c7a5c feat(client): 左侧栏纵向空间优化,工作区滚动吸顶优化 (#7337)
* feat(client): share sidebar scrolling and dock workspace header

* fix(client): keep shared sidebar scrolling vertical

* fix(client): match sticky workspace header to sidebar fill

* fix(client): stabilize transparent sticky sidebar and compact row layout

* refactor(ui-primitives): keep sticky section observer internal

* fix(ui-primitives): limit row animations to visible scrollports

* feat(ui-workspace): drive sticky clipping with scroll timelines

* refactor(ui-primitives): bound row animations by the window

* feat(client): hand off sidebar wheel scrolling to the workspace list

The workspace list scrolls inside its own one-viewport section below the toolbar instead of sliding under a clipped sticky toolbar. The sidebar viewport scrolls the navigation away first; ui-sidebar's scroll hand-off splits each wheel event between the viewport and the section scroller, which the occupant binds through the slot-level useSectionScroller hook supplied by hookContext.

* test(client): cover the sidebar scroll hand-off and align the list scrollbar

Test-owned sidebar roles declare the slot-level scroller inject and pass its hookContext. Unit tests cover the hand-off split, wheel filtering, and listener rebinding; the e2e scenario checks one wheel event crossing from the navigation into the list and back. The list area reaches 2px from the sidebar edge for its scrollbar while rows keep the 8px inset. The unused clip module, its tests, and the sticky clearance variable are removed; READMEs and the slot catalog describe the nested scrolling.

* refactor(ui-primitives): restore MenuGroup sticky observation

The section observer was extracted for a sticky workspace toolbar that nested scrolling no longer has, so MenuGroup is its only consumer again. MenuGroup and its tests return to the master implementation.

* fix(client): keep native sidebar scrolling away from the hand-off boundary

The hand-off splits a wheel gesture in JavaScript only when its first event must move the sidebar viewport or starts outside the section scroller, and then keeps that gesture, including momentum, until wheel events pause for 100ms. Gestures the section scroller can take alone stay native, an uncancelable native gesture that reaches the section top passes the rest to the viewport, and events another listener canceled are left alone. The section is at most one viewport tall, and exactly that tall while search is expanded, so a short list leaves the navigation in place. Stale absence assertions and unused viewport declarations are removed; the READMEs document portals and the data-sidebar markers.

---------

Co-authored-by: Yif <[email protected]>
Co-authored-by: imccyu <[email protected]>
2026-11-02 22:27:26 +08:00
Yixiang Tu 624c3e91a9 fix(llm-deepseek): expose all-deferred request failures 2026-11-02 22:04:53 +08:00
Xu Hanxiang f54967a90d Merge pull request #7543 from deepseek-harness/feat/sandbox-policy-caps
feat(liveshare): run PTC programs on the shared surface
2026-11-02 13:20:18 +00:00
Xu Hanxiang 4658cba7e0 Merge pull request #7564 from deepseek-harness/fix/http-proxy-http1
fix(liveshare): 客户端优化
2026-11-02 12:59:03 +00:00
imccyuandimccyu bedcb559ac test(snapshot): refresh the ptc-script-imports system prompt (#7738)
* test(snapshot): refresh the ptc-script-imports system prompt

The pinned prompt kept the fs-observation wording from before the apply_patch guidance
landed, so the scenario failed on the prompt after the session records matched.

* test(snapshot): carry the current tool declarations into the ptc-script-imports prompt

The pinned prompt still listed the tools from before `apply_patch` and `wait_agent`
landed and before the subagent tool docs changed; the tool block now matches the
current declarations, the same 51 added and 12 removed lines CI reported.

---------

Co-authored-by: imccyu <[email protected]>
2026-11-02 20:55:02 +08:00
Yixiang Tu a5c44b9384 test(llm-deepseek): refresh snapshots for root agent identity 2026-11-02 20:34:08 +08:00
Yixiang Tu 1f3bc8b22b fix(llm): rebuild tool history for additions to an empty set 2026-11-02 20:30:57 +08:00
Yixiang Tu 523e741a31 test(llm-deepseek): cover all-deferred requests and separate tool updates 2026-11-02 20:30:57 +08:00
Yixiang Tu 9d53909bcf docs(llm): clarify deferred tool activation and placeholder effects 2026-11-02 20:30:57 +08:00
Yixiang Tu be93b94e6e docs(notes): state that every tool removal rebuilds the baseline 2026-11-02 20:30:57 +08:00
Yixiang Tu be6ed7f0aa fix(llm): rebuild addition-only history on every removal 2026-11-02 20:30:57 +08:00
Yixiang Tu f8217a4fe1 fix(llm): rebuild addition-only baselines after tool removals 2026-11-02 20:30:56 +08:00
Yixiang Tu 156dad153d fix(llm-deepseek): anchor all-deferred tools with a placeholder
Preserve deferred activation when every initial tool has been removed. Add serializer, provider, live-API, and recorded-session regression coverage.

Fixes #6953
2026-11-02 20:30:56 +08:00
imccyuandimccyu 07f2b259e7 ci: run the merge checks on release branches, and fix the ptc-script-imports fixture (#7732)
* ci: run the merge checks on release branches too

All three `Policy` workflows filtered on `master`, so a pull request into `release/dsh-*`
got no `Master Change` and no `Pre-Merge Check`, and its review check only refreshed when
somebody submitted a review. The checks already take their base branch from the event, so
the filters now name the release branches as well.

* ci: limit the release branch filter to x.y.z

`release/dsh-*` also matched prerelease branches such as `release/dsh-0.1.2-alpha.4`;
the filter now spells the version digits, so only `release/dsh-x.y.z` counts.

* test(snapshot): carry the subagent identity section into the ptc-script-imports scenario

The runtime context gained a `subagent:identity` section and every session fixture but
this one was regenerated, so replay failed with a mismatch on the added section.

(cherry picked from commit c7a4119965cb26c69fd8fccbfd703c7d73351742)

---------

Co-authored-by: imccyu <[email protected]>
2026-11-02 20:12:14 +08:00
ZiyaZhang ec7a4e9df5 fix(creation-recommendations): show Cancel beside the location while creating
Creating cards now put Cancel on the location row, where Undo and Restore
sit, instead of a separate row below.
2026-11-02 02:35:59 -08:00
Magolor 86e2cc8277 feat(schedule): prefill task creation on release 0.2.2 (#7702)
* feat(schedule): prefill task creation on release 0.2.2

* fix(schedule): remove blank line from creation prompt

* docs(schedule): clarify creation flow and review checks

* fix(schedule): append task creation prompt to drafts
2026-11-02 17:59:03 +08:00
_Kerman 5c9029b57e Merge pull request #6978 from deepseek-harness/xtr/ptc-runner-imports
feat(ptc-runtime-node): support runner-local import handlers
2026-11-02 17:24:05 +08:00
imccyu d3f7b8abe7 Merge pull request #7701 from deepseek-harness/fix/empty-session-sidebar-0.2.2
[0.2.2] fix(session-projection): compute exactly the requested projections for hot session summaries
2026-11-02 17:05:09 +08:00
Chinesezjc fdff707b82 Merge pull request #7303 from deepseek-harness/fix/read-guidance-line-ranges
fix(prompt): name line ranges and shell readers in the read guidance
2026-11-02 16:57:54 +08:00
ZiyaZhang e0129468c3 fix(creation-recommendations): offer only Undo on installed page cards
Keep only recorded a `kept` phase: the page was already installed when the
card offered it. Installed cards now show Undo beside the location, and
removed cards show Restore there; the "You can remove it at any time" line
is gone. Decisions that earlier builds recorded as `kept` still read as
installed and keep Undo.
2026-11-02 00:56:49 -08:00
imccyu a25eebc146 Merge pull request #7698 from deepseek-harness/fix/temporarily-disable-apply-patch
fix(fs): set apply_patch to false
2026-11-02 16:53:15 +08:00
Shigma ce18012a52 Merge pull request #6220 from deepseek-harness/chore/cordis-loader-rc11
chore(cordis): complete Loader rc.8 and share upstream Include patches
2026-11-02 16:50:28 +08:00
Chinesezjc ec587a015d test(snapshot): carry the read guidance into the apply-patch scenarios
The apply-patch scenarios were recorded before this restore; their shared
system prompt sidecar still shows the old read sentence.
2026-11-02 16:42:47 +08:00
creatixchu 3841ba6aad test(acp): pin the recorded optional patch tool 2026-11-02 16:38:56 +08:00
creatixchu c87fd429e0 test(web): align optional tools for recording and replay 2026-11-02 16:38:56 +08:00
creatixchu 3def5c9e24 test(fs): pin recorded patch tool and cover configurable defaults 2026-11-02 16:38:56 +08:00
creatixchu e1609fe164 fix(fs): temporarily disable apply_patch in shipped defaults 2026-11-02 16:38:56 +08:00
imccyu cd5f5c80ba Merge pull request #7707 from deepseek-harness/fix/7688-locked-runtime-deploy-0.2.2
[0.2.2] fix(python): deploy the runtime from the workspace lockfile
2026-11-02 16:35:17 +08:00
Dudu-0223 36a0cab333 Merge pull request #7533 from deepseek-harness/fix/subagent-model-selection-guidance
fix(subagent): 推理强度要求完整路由,显式选路使用模型默认强度
2026-11-02 16:30:49 +08:00
Chinesezjc 401bfa8b3c Merge branch 'master' into fix/read-guidance-line-ranges 2026-11-02 16:22:24 +08:00
CreatixChu 4eb2118dba Merge pull request #7515 from deepseek-harness/feat/cua-optional-bundle
feat(cua): 随 DSH 分发 Computer Use,并在实验性插件列表中显示
2026-11-02 16:21:57 +08:00
CreatixChu d203f5c418 Merge pull request #7516 from deepseek-harness/feat/cua-desktop-helper
fix(desktop): 随附并独立启动 macOS Computer Use helper
2026-11-02 16:19:16 +08:00
Turtle 58a3febaf2 Merge pull request #7663 from deepseek-harness/agent/stale-auth-cookie-431-6faa8d4c5eb6
fix(desktop): stop accumulating Host auth cookies across launches
2026-11-02 16:15:56 +08:00
Chinesezjc 1d2e1c6be5 Merge remote-tracking branch 'origin/master' into fix/read-guidance-line-ranges
# Conflicts:
#	packages/fs/tool-fs/tests/tools.spec.ts
2026-11-02 16:14:57 +08:00
Dudu-0223 05225052f9 docs(subagent): clarify discovery covers explicit model selection 2026-11-02 16:13:04 +08:00
fz 67e2d1e506 fix(python): preserve deployed dependency validation
(cherry picked from commit e18abca88589347975a5866925c590a16f1b2aed)
2026-11-02 16:07:29 +08:00
fz 125fabd8d0 fix(python): deploy the runtime from the workspace lockfile
(cherry picked from commit c2e5f4828ecf698ba17c6b2eab67ff7b3a914d49)
2026-11-02 16:07:28 +08:00
Dudu-0223 65a87a5860 fix(subagent): clarify selection guidance and stabilize Web smoke capture 2026-11-02 15:52:24 +08:00