Commit Graph
2068 Commits
Author SHA1 Message Date
gengruilin d9d3b80fe3 Merge remote-tracking branch 'origin/master' into feat/mcp-manager-core 2026-11-03 13:37:58 +08:00
gengruilin df078ddc82 Merge remote-tracking branch 'origin/master' into feat/mcp-manager-core 2026-11-03 13:31:23 +08:00
yudshj 3859913c68 feat(web): 网页搜索与获取设置页分开选择 Search 与 Fetch,Search 默认改为 DeepSeek Search API 2026-11-03 13:04:26 +08:00
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 aa4774e685 Merge master into worktree-sync-dsh-0.2.2-to-master 2026-11-03 12:05:47 +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
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
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
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
gengruilin 30bf5733d6 refactor(mcp-manager): publish the manager as ctx.mcpManager
The `ctx.mcpServers` key reads as a collection of servers, but the
service manages that collection, and ACP already uses `mcpServers` for
a plain server list. Publish the service as `ctx.mcpManager`, matching
the package name, the `mcp-manager/` event prefix, and
`ctx.pluginManager`. Remote endpoints become `mcpManager/*`; the class
keeps its name, McpServerManager.
2026-11-02 21:01:42 +08:00
gengruilin 62c6a2658d Merge remote-tracking branch 'origin/master' into feat/mcp-manager-core 2026-11-02 17:11:12 +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
Magolor 8d0c3b4633 fix(settings): show saved API keys and preserve environment detection (#7695)
* fix(settings): show saved API keys in provider editors

* test(settings): retain DeepSeek environment detection states

* fix(settings): classify saved-key reads and align browser expectations

* test(settings): cover saved keys under derived references

* test(settings): verify saved endpoints and keys on provider requests

* fix(settings): preserve credential drafts without changing authentication
2026-11-02 15:00:19 +08:00
gengruilin be167ec989 Merge remote-tracking branch 'origin/master' into feat/mcp-manager-core 2026-11-02 11:43:57 +08:00
imccyu e428c74d51 Merge pull request #7207 from deepseek-harness/feat/sidebar-plugin-pin-preview
feat(ui): 优化侧栏插件固定与 More 交互
2026-11-01 01:05:56 +08:00
Dudu-0223andimccyu 0487699ae4 feat(subagent): share ID-based identity and collaboration guidance (#7519)
* feat(subagent): share identity and collaboration guidance

* fix(subagent): complete shared guidance snapshot expectations

* fix(subagent): match task descriptions to the user language

* refactor(subagent): retain shared guidance with Session ids

* test(subagent): recognize parent ids in shared identity

* Checkpoint ID collaboration guidance generated expectations

* Preserve historical Web schema sidecars

* fix(test-support): preserve job references during snapshot refresh

* test(subagent): refresh ID-only collaboration guidance outputs

* fix(subagent): rely on list_agents tool description

* fix(subagent): keep collaboration guidance consistent with live identity

* test(team): parse parent identity from shared guidance

* test(subagent): address parent from shared identity context

* test(subagent): refresh compiled Web guidance snapshots

* test(subagent): refresh browser collaboration context fixtures

* docs(subagent): attribute required identity to standard controls

* fix(subagent): clarify collaboration identity prompts

* test(subagent): remove duplicate PowerShell collaboration context

* refactor(subagent): match unavailable-root errors by name and code

---------

Co-authored-by: imccyu <[email protected]>
2026-10-31 22:38:07 +08:00
Yif 5b559def7c feat(ui): customize sidebar plugin pins and More menu 2026-10-31 22:19:44 +08:00
Yifffan a1c3458e12 Merge pull request #7504 from deepseek-harness/feat-agent-teamwork-ui-polish
feat(web): improve agent collaboration panels and tool receipts
2026-10-31 11:10:03 +08:00
Magolor 516ca64acb feat(settings): 支持插件自定义设置页面导航图标 (#7624)
* feat(settings): allow custom section navigation icons

* fix(settings): render section icons inline
2026-10-30 18:23:03 +08:00
CreatixChu 490c6fdd92 Merge pull request #7557 from deepseek-harness/feat/cua-permission-guide
feat(cua): 补齐 macOS 系统权限申请与应用拖入引导
2026-10-30 15:48:02 +08:00
Dudu-0223 454374be98 Merge current master through ID-only Team UI into polish 2026-10-30 15:16:28 +08:00
Dudu-0223 43c4919f86 merge: refresh ID-only Team UI from core master updates 2026-10-30 15:13:05 +08:00
Dudu-0223 71676cbc21 Merge master into the ID-only subagent and Team core 2026-10-30 14:57:57 +08:00
Dudu-0223 6766a694fc Merge refreshed ID-only Team base into UI polish 2026-10-30 14:40:43 +08:00
Jiawei Song 847c738e1f Merge pull request #7559 from deepseek-harness/feat/apply-patch-default-on
feat(fs): ship apply_patch on and the observation policy off
2026-10-30 14:40:35 +08:00
Dudu-0223 b5fed8ca06 test(team): refresh ID-only UI and session snapshots 2026-10-30 14:37:04 +08:00
Dudu-0223 5a052d6767 Merge ID-only Team base into agent teamwork UI polish 2026-10-30 14:32:55 +08:00
Dudu-0223 0eb1bb52e2 refactor(team): keep session UI and task tools keyed by IDs 2026-10-30 14:25:27 +08:00
imccyu 945006c984 perf(session): send one projection frame per committed event (#7587)
* perf(session): send one projection frame per committed event

* fix(session): deliver keys changed before a drive failure; address review

* perf(session): carry projection frame changes as key and val entries
2026-10-30 14:14:03 +08:00
creatixchu 44fc4192e0 refactor(cua): keep native permission guidance in macOS provider 2026-10-30 14:11:06 +08:00
creatixchu cbbf9d86a1 fix(cua): preserve settings recovery and validate current application metadata 2026-10-30 12:26:20 +08:00
creatixchu a3d098d310 refactor(cua): refresh page permissions on user activity instead of polling 2026-10-30 10:50:41 +08:00
sjw1231 cc2718bede fix(fs): address review of the shipped mutation defaults
A new Agent Note owns the shipped defaults and the original apply_patch note
keeps its opt-in decision with a supersession link; the policy README, the
tool-catalog note, the filesystem page, and the fs group README state the
current defaults without evaluation figures. The PTC overlay sets
`applyPatch: false` so the SDK and Desktop PTC tool sets match without a
parity exception; the fixed-budget compaction scenarios pin the tool set in
their live patches too; the apply-patch composition drops its no-op override.
The upgrade guide scopes the change to base-backed profiles, the README
refusal example is one every composition can produce, the integration suite
names its deployments by guard, and the keyless SDK smoke edits a file the
model never read through the shipped profile.
2026-10-29 21:19:14 +08:00
creatixchu 0588356f62 feat(cua): present a native permission guide beside System Settings 2026-10-29 20:48:53 +08:00
sjw1231 c9970438d3 Merge branch 'feat/apply-patch' into feat/apply-patch-default-on
Takes master's re-recorded plan-review, creation-recommendations, and
plugin-recommendations scenarios from the base and refreshes their headers
and schema sidecar for the enabled apply_patch tool.
2026-10-29 18:57:53 +08:00
sjw1231 5e1f146eba Merge branch 'master' into feat/apply-patch
Regenerates the client slot, Cordis API, tool, and config catalogs on the
merged tree and re-records the tool-catalog pairing.
2026-10-29 18:49:24 +08:00
sjw1231 14d3e53c19 feat(fs): ship apply_patch on and the observation policy off
Evaluation on the shipped compositions decided the defaults: the `dsh-base`
`tool-fs` row and the Web `standard` preset enable apply_patch, keeping the
SDK and Desktop `standard` tool sets equal (the SDK PTC overlay keeps the
base row while the Desktop PTC preset lists its own, which the parity
exceptions record); the `fs-observation-policy` row ships `disabled: true`,
so write, edit, and apply_patch mutate unconditionally in every profile, and
the package is classified as an optional product package.

The write and edit guidance stops citing the policy as the default and the
apply_patch guidance asks for enough hunk context instead of a prior read.
The two recordings that capture a policy refusal re-enable the row through a
per-scenario runtime.cordis.yml; the fixed-budget compaction scenarios pin
`applyPatch: false` so their recorded thresholds hold; every other sidecar
and recorded header follows. An upgrade guide records the default change.
2026-10-29 18:36:52 +08:00
sjw1231 ea4837abb1 feat(fs): keep apply_patch opt-in and the observation policy mounted
This pull request lands the tool; switching the shipped defaults is a
separate pull request stacked on it. Every shipped `tool-fs` row states
`applyPatch: false`, the `fs-observation-policy` row stays mounted, the
write, edit, and apply_patch guidance names the policy, and every recorded
expectation outside the apply-patch scenarios returns to the master
baseline. The upgrade guide, the parity exception, and the optional
classification of the policy package move to the stacked change.
2026-10-29 18:36:31 +08:00
Dudu-0223 422cb047a9 Sync Team UI polish with current stack parent 2026-10-29 18:32:48 +08:00
Dudu-0223 997fc4b05e Sync current schedule integration into Team UI layer 2026-10-29 18:22:55 +08:00
creatixchu a027dcaeb2 fix(cua): wire application drag types and refresh generated references 2026-10-29 18:22:08 +08:00
Dudu-0223 1287db6c8d Sync latest master schedule changes into naming layer 2026-10-29 18:20:02 +08:00
Dudu-0223 a0a5a24556 Merge current master schedule APIs into stack base 2026-10-29 18:18:04 +08:00
ZiyaandMagolor 341ea6eea4 feat(schedule): integrate standalone tasks with the existing WebUI (#6189)
* feat(schedule): manage Host tasks with typed timing and delivery targets

* fix(schedule): align task creation button halves

* refactor(schedule): remove obsolete Session reminder runtime

* refactor(schedule): simplify task UI and preserve keyboard navigation

* fix(schedule): address task delivery and interface review findings

* test(schedule): normalize bundle module paths on Windows

* fix(schedule): cover reserved targets and trim unrelated changes

* refactor(schedule): minimize task management changes after rebase

* test(schedule): align rebased fixtures and documentation records

* test(schedule): refresh SDK scenarios added on master

---------

Co-authored-by: Magolor <[email protected]>
2026-10-29 18:11:48 +08:00
Dudu-0223 3306de499e Sync Team session UI layer with updated naming parent 2026-10-29 18:09:18 +08:00
Dudu-0223 11c02855e1 Merge master into subagent runtime stack base 2026-10-29 17:55:40 +08:00
Dudu-0223 be7ce3b64b Merge current parent into feat/subagent-names 2026-10-29 17:48:53 +08:00
Dudu-0223 80b7985a24 refactor(team): resolve tools and prompts from saved mode 2026-10-29 17:48:52 +08:00