Commit Graph
22940 Commits
Author SHA1 Message Date
Chinesezjc 8d0540af50 fix(schedule): hand focus to the heading when a late readback lands 2026-10-20 19:47:46 +08:00
Chinesezjc ac4f99652e fix(schedule): keep confirmation focus while its detail closes 2026-10-20 19:27:38 +08:00
Chinesezjc 734812cdad fix(schedule): align the clear copy with the inactive status and harden focus 2026-10-20 19:11:42 +08:00
Chinesezjc facfab5ce8 fix(schedule): return focus when a cleanup removes its own trigger 2026-10-20 18:48:46 +08:00
Chinesezjc 422aa724e3 fix(schedule): qualify the clear-ended copy and pin its tests 2026-10-20 18:41:33 +08:00
Chinesezjc a2416dd357 feat(schedule): remove every ended task from the automation page 2026-10-20 18:24:49 +08:00
Chinesezjc 690f987d3d Merge pull request #6722 from deepseek-harness/revert/weighted-approval-check-run
revert: restore the weighted approval commit status gate
2026-10-20 17:48:59 +08:00
Chinesezjc 4c293671ea Revert "Merge pull request #5440 from deepseek-harness/fix/weighted-approval-check-run"
This reverts commit 17c5ac9bac7eae975dde6596287deeb77cba20a4, reversing
changes made to c830699b0a3d21f993de79b2089f227da913e428.
2026-10-20 17:46:59 +08:00
Chinesezjc 5ae85515c0 Merge pull request #6670 from deepseek-harness/fix/bundle-self-client-resolution
fix(test-runtime): resolve a bundle own browser entry
2026-10-20 17:44:36 +08:00
Chinesezjc c60fee918a Merge pull request #6380 from deepseek-harness/xtr/session-projection-skill
docs: add session projection design skill
2026-10-20 17:42:58 +08:00
Saafo 2e39b9c195 📝 docs(test-runtime): clarify bundle manifest lookup precedence 2026-10-20 17:12:52 +08:00
_Kerman 6a06b72cdc docs: clarify projection initialization ordering 2026-10-20 16:58:25 +08:00
_Kerman 3540f621b9 docs: clarify session projection migration guidance 2026-10-20 16:58:25 +08:00
_Kerman 97b0d84d69 docs: add session projection design skill 2026-10-20 16:58:25 +08:00
Chinesezjc 9e6692931c Merge pull request #5440 from deepseek-harness/fix/weighted-approval-check-run
Publish weighted approval as a completed check run
2026-10-20 16:34:06 +08:00
imccyu cc724905a2 Merge pull request #6658 from deepseek-harness/feat/pwa-install-assets
feat(web): ship PWA install icons and standalone metadata
2026-10-20 16:31:07 +08:00
imccyu 8f47dd7e16 Merge pull request #6697 from deepseek-harness/worktree/sync-dsh-0.2.1-entry-customization-to-master
release(dsh): sync 0.2.1 entry customization back to master
2026-10-20 16:18:44 +08:00
imccyu 14e5add505 Merge master into DSH 0.2.1 entry customization synchronization branch
Bring master 45d1196d3fe into the release/dsh-0.2.1 squash commit of #6247
so the release commit stays an ancestor of master.

Conflict resolutions:
- apps/web/tsconfig.json, tsconfig.host.json: keep the entry-customization
  e2e and master's Computer Use e2e entries.
- docs/subsystems/slots.{md,zh.md}: keep both added paragraphs; re-record the
  slots, ui-primitives, and ui-workspace README translation pairs.
- ui-sidebar SidebarRoot.tsx and locales.ts: keep the More menu imports and
  copy next to master's version-copy toast.
- apps/web/tests/agent-preset-selection.e2e.ts: keep the New Session
  blank-reuse assertions, read presets through master's
  sessionProjections.checkpoint() instead of the deprecated stateOf().

Follow-ups on master's side:
- ui-sidebar sidebar-root spec: give master's version-copy render the entry
  pin props that SidebarRootInjected now requires.
- snapshots/web/steering/trajectory.expected.md: add the More conversation
  views trigger to master's new Trajectory golden.
2026-10-20 15:47:29 +08:00
Chinesezjc ad0a0a9e5a fix(ci): revoke every passing conclusion and record it from main
A required check accepts success, neutral, and skipped, and any workflow in the
pushed branch can name a job after the required check, so revoke every passing
conclusion instead of only the success this publisher writes. Take the
conclusion writer from main() so tests no longer append to the runner's
GITHUB_OUTPUT file.

Record the measured naming risk, the edit and re-run migration paths, and the
boundary of each cancellation measurement in the decision note and README.
2026-10-20 15:42:03 +08:00
5ff29190ed feat(ui): add navigation entry customization (#6247)
* fix(ui): avoid tooltip trigger overlap when a side fits

* feat(ui): add navigation entry customization

* fix(test): keep tooltip geometry independent of JSX types

* fix(ui): align customization catalogs and integration fixtures

* test(ui): complete customization lifecycle and release integration coverage

* fix(ui): return entry discovery to the installed plugin list

* docs: refresh module graph for entry customization

* build: refresh workspace links for the moved entry customization package

* docs: regenerate catalogs and pairing hashes for the moved entry customization package

* test(web): cover default-loaded entry customization in the Web e2e

* test(ui): describe entry customization as a browser plugin in the host entry spec

* build: order entry customization publication files as workspace constraints require

* test(release): drop the moved entry customization package from the experimental family list

* style(ui): use the shared focus ring color on entry customization triggers

* test(web): re-record goldens for the default-loaded More navigation menus

* test(web): add the More conversation views trigger to the remaining CI-reported goldens

* docs: record region-owned pins for plugin entry customization

* refactor(ui): rebuild entry customization on region-owned pins and More menus

- Each navigation region (left sidebar, Conversation header, right sidebar
  guide) persists its own unpinned list under
  dsh.slot.manual-order.<list slot key>.v1, filters its own launchers, and
  draws its own More button and Menu around its actions slot.
- ui-entry-customization only registers the shared menu rows (entries with
  pin buttons, Browse other plugins, Create your plugin) into the three
  actions slots and keeps no state.
- Remove ctx.layout.entryVisibility, the plugin store, left-sidebar drag
  reordering, and agentPresetNavigation; ui-layout and ui-agent-preset match
  release/dsh-0.2.1 again.
- Keep the release <nav> and Conversation tab-bar visibility conditions.
- Move the More glyph into ui-primitives as IconAppsAddOutline{Regular,Medium}.

* docs: compile the entry customization owner props example

* docs(ui): describe the wrapping Conversation tab row in the header comment

* fix(ui): return New Session to the Workspace blank and its unsent draft

- New Session (startSession without options) takes the blank-reuse path
  again instead of creating a fresh Session on every call, which hid the
  previous blank and its unsent draft since a5c9c2aaeef (#5775).
- A request that names an Agent preset skips blanks listing a different
  preset, so Creator entries no longer take over an ordinary draft.
- Record the change in a v0.2.1-rc.2 upgrade guide; the Host refresh of a
  stale loaded blank stays deferred (see the Agent Note).

* docs: regenerate the Cordis inspect catalog for New Session blank reuse

* fix(ui): keep the selected entry visible while unpinned

- Left-sidebar rows and View tabs keep the selected entry, with aria-current or aria-selected, until another entry is selected.
- Entry menu Creator action takes no region argument; the registration's region selects the prompt.
- Document the 2px panel-row and 32px View-tab gaps; drop commit hashes from the New Session Agent Note.

* fix(ui): leave a blank of another preset unstaged when starting Creator

startCreatorDraft stages cordis only when the main blank lists no preset or already lists cordis; navigation opens a separate Creator blank otherwise, so a Standard draft blank keeps its preset.

* feat(ui): choose whether a draft prompt replaces, appends to, or keeps an existing draft

- DraftInitializationOptions gains whenDraftExists ('replace' | 'append' | 'keep', default 'keep'); clearPreviousDraft stays and maps to 'replace' only when whenDraftExists is omitted.
- Append adds the prompt as new paragraphs after the existing text and references; attachments stay in every mode.
- The three Create your plugin entries append their regional prompt.

* test(web): align e2e with New Session blank reuse and the visible selected entry

* refactor(ui): share the draft paragraph writer between setDraft and appendDraft

---------

Co-authored-by: Yif <[email protected]>
Co-authored-by: imccyu <[email protected]>
2026-10-20 15:17:13 +08:00
Yichen Jiang 27c1b4c56f Merge pull request #6649 from deepseek-harness/xtr/fix-trajectory-input-order
fix(web): 修复停止补发后轨迹中的输入顺序
2026-10-20 15:14:49 +08:00
EricMoin 7bc928c449 fix(web): strengthen install icon validation 2026-10-20 15:06:37 +08:00
Chinesezjc d98ff5d9fa fix(ci): gate the setup failure step on the recorded conclusion
The evaluation failure title was preserved by matching details_url, a field
GitHub may rewrite for check runs created with the workflow token, so the
setup-failure step could replace the specific title after all. Record the
conclusion the publish step wrote in a step output and run the setup-failure
step only when no conclusion was recorded; a published decision now survives
a later failure or cancellation without relying on an API field.

Record the measured timeout cancellation path and the re-run migration limit in
the decision note, and scope the pre-push guidance to ACTION_REQUIRED so a
failure conclusion is not read as an approval wait.
2026-10-20 15:01:34 +08:00
_Kerman b3c1586897 chore(trajectory): prune retired unknown cast allowances 2026-10-20 14:38:29 +08:00
EricMoin b9e4a29210 fix(web): preserve detail in install icon exports 2026-10-20 14:35:00 +08:00
Chinesezjc 025723a7c7 fix(ci): keep the evaluation failure title the setup step would overwrite
The setup-failure step runs after an evaluation failure has already concluded the
check run as failure with a title that names the failure, so its generic title
replaced the specific one. Keep a failure that already points at the current run
and update every other conclusion.

Record the transition gaps and the filtered list count in the decision note: the
combined status resolves a context to its latest status, so the rollout retires
the earlier pending status instead of leaving it for CI watchers.
2026-10-20 14:34:22 +08:00
Chinesezjc 70b11f5f5f Merge remote-tracking branch 'origin/master' into fix/weighted-approval-check-run
# Conflicts:
#	.agents/notes/archived/process/2026-09-09-blocked-weighted-approvals-remain-pending.md
#	.agents/notes/archived/process/2026-09-09-blocked-weighted-approvals-remain-pending.zh.md
#	.agents/notes/implemented/process/2026-09-10-approval-review-workflow-identity.i18n.yaml
#	.agents/notes/implemented/process/2026-09-11-production-blame-approval-weight.i18n.yaml
#	.agents/notes/implemented/process/2026-09-15-pr-approval-delegation.i18n.yaml
2026-10-20 14:29:46 +08:00
Turtle 37dfd82736 Merge pull request #6287 from deepseek-harness/turtle/reconnect-timer-1f7094496bf8
fix(ui-chat): pause the running clock while reconnecting
2026-10-20 14:20:50 +08:00
Turtle 62e5926995 Merge pull request #6583 from deepseek-harness/turtle/copy-version-click-5d1aa11ad7b6
feat(web): copy the local-build version from the sidebar brand
2026-10-20 14:15:39 +08:00
Turtle c3e9b28845 Merge pull request #6354 from deepseek-harness/agent/web-fetch-fakeip-469be4db70d0
fix(web)!: let web_fetch reach non-public destinations
2026-10-20 14:13:24 +08:00
Turtle 8114a96ae4 Merge pull request #6623 from deepseek-harness/turtle/experimental-plugin-details-all
docs(experimental): add illustrated detail documents to the remaining experimental plugins
2026-10-20 14:11:59 +08:00
EricMoin 2138243df1 Merge branch 'master' into feat/pwa-install-assets 2026-10-20 14:10:47 +08:00
Turtle f8eafdc554 Merge pull request #6644 from deepseek-harness/turtle/discover-back-and-upgrade-0e7147938262
fix(plugin-manager): return to Discover from a bundle page opened there
2026-10-20 14:09:05 +08:00
imccyu 89b9e5b1e8 Merge pull request #6662 from deepseek-harness/fix/iphone-button-outline
fix(client): stabilize shared button outlines in Safari
2026-10-20 14:07:02 +08:00
Stevring 16f1b7828f fix(client): preserve theme styles for detached documents 2026-10-20 13:45:24 +08:00
Stevring dc1bd1c28e fix(client): unify shared button inset outlines 2026-10-20 13:41:45 +08:00
Turtle 29959ed1ab Merge pull request #6537 from deepseek-harness/turtle/gemini-thought-signature-945bf702b56d
fix(llm-pi-ai): replay Gemini tool-call thought signatures over Chat Completions
2026-10-20 13:29:16 +08:00
Turtleandimccyu fc02fe9624 Credit review by @imccyu
Co-authored-by: imccyu <[email protected]>
2026-10-20 13:26:42 +08:00
Turtle 3937d433c1 Merge pull request #6213 from deepseek-harness/turtle/tilde-strikethrough-124c113089f2
fix(ui-primitives): keep single tildes literal in Markdown
2026-10-20 13:24:19 +08:00
Turtleandimccyu 0705cd69b5 Credit review by @imccyu
Co-authored-by: imccyu <[email protected]>
2026-10-20 13:22:51 +08:00
Yudong Han 5ef6d14b9b Merge pull request #6381 from deepseek-harness/feat/web-search-summary
feat(web): web_search 向模型提供 Search API 长摘要
2026-10-20 13:11:00 +08:00
Turtle a0ad6c5345 docs: regenerate module graph after dropping web-fetch-http's proxy dependency 2026-10-20 13:00:18 +08:00
yudshj 995eb90f85 test(web): refresh desktop PTC search output snapshot 2026-10-20 12:58:03 +08:00
CreatixChu 082e4c3c3e Merge pull request #6653 from deepseek-harness/worktree/experimental-cua
fix(web): 将 CUA 移到实验性插件二级页并添加标签
2026-10-20 12:50:09 +08:00
Stevring 70500d38b1 docs(test-runtime): keep bundle resolution details in usage 2026-10-20 12:49:45 +08:00
Turtle 915792545f Name the version in the copied toast 2026-10-20 12:49:17 +08:00
Stevring e5132e269d fix(test-runtime): resolve a bundle own browser entry 2026-10-20 12:47:24 +08:00
yudshj ce79846fe6 refactor(web): keep search summary default internal 2026-10-20 12:46:14 +08:00
Yichen Jiang c4064a857a test(web): refresh system-prompt pins for the web_search summary field
Three Web snapshots pinned on master after this branch's original base still
listed the web_search source type without the optional summary member.
2026-10-20 12:46:14 +08:00
yudshj e715991ab9 feat(web): give the model Search API summaries
The DeepSeek Search API returns a short `snippet` for display and a longer
`summary` written for model reading. Carry `summary` on `WebSearchSource`,
map it from the Search API, and render it in place of the snippet in
`web_search` output while the search card keeps the snippet.

`tool-web` collapses summary whitespace and caps each summary at the new
`searchSummaryMaxChars` setting (800 characters by default, the upper end of
the guide's typical range; live summaries measured 1,000-2,300). The cut keeps
surrogate pairs intact and ends in an ellipsis. The PTC tool output type gains
the optional field, so the affected system-prompt sidecars are refreshed, and
the web search round now exercises a multi-line summary.
2026-10-20 12:46:14 +08:00