Commit Graph
20074 Commits
Author SHA1 Message Date
Chinesezjc 574bb7e7da test(web): refresh the recorded Web sessions for the preset clock
The clock row is preset-level, so a `standard`, `cordis`, or `ptc` session
appends one reading per eligible step; the recorded sessions carry that
message and the identifier shifts it causes. The plugin manager loses the
clock wording from the bundle description.
2026-09-26 10:28:58 +08:00
Chinesezjc 2edc6705b5 Merge origin/master into feat/preset-scoped-schedule-tools
Resolutions:
- `python/sdk-runtime/package.json` and `pnpm-lock.yaml` keep both sides'
  additions (`@deepseek-ai/dsh-otel` beside the schedule packages).
- The generated graph pages are re-emitted from the merged sources.
2026-09-26 10:14:10 +08:00
Chinesezjc f6bb7aa892 fix(tool-schedule): match the release train version
`pnpm run constraints` requires every workspace package to carry the root
version, which the release bump to 0.1.7-rc.2 changed.
2026-09-26 01:15:44 +08:00
Chinesezjc fd53e83125 Merge origin/master into feat/preset-scoped-schedule-tools
master now ships the reminder stack as the optional
`@deepseek-ai/dsh-experimental-schedule-bundle`; this branch keeps the
preset-level ownership beside it.

Resolutions:
- The Host rows keep master's `disabled: true`. The optional bundle switches
  `schedule` and `ui-schedule` on and no longer `time-context`: the clock row
  is preset-level, so flipping the Host row as well would mount the plugin in
  two scopes and write two readings per step.
- `standard`, `cordis`, and `ptc` declare `preset-time-context` and
  `tool-schedule`; `minimal` declares neither.
- `tool-schedule` injects `tools` and resolves `schedule` per scope through
  `ctx.inject`, so the row stays valid but produces no tools while the service
  is off, and produces them once the bundle mounts it.
- The assembled-Web Schedule spec keeps master's bundle overlay and restates
  the shipped `preset-standard` row instead of the deleted fixture, because a
  top-level patch cannot reach a plugin a preset declares.
- Documentation and Agent Notes describe both layers; the note master archived
  stays frozen with its manifest hashes.
2026-09-26 01:12:54 +08:00
07akioni 719b86f870 Merge pull request #5224 from deepseek-harness/07akioni/remove-figma-links
chore: remove Figma links and harden Windows hook locking
2026-09-25 22:31:48 +08:00
07akioni 8d219c6a76 docs: link exact archive seal exceptions 2026-09-25 22:19:32 +08:00
07akioni dded54a6ee fix(hooks): wait for Windows installer lock access 2026-09-25 22:19:27 +08:00
07akioni 1104d10ef0 chore: remove repository Figma links 2026-09-25 21:59:34 +08:00
07akioni 779d268199 Merge pull request #5216 from deepseek-harness/07akioni/session-log-otel
feat(telemetry): share Cordis OTel reporting with byte-bounded session logs
2026-09-25 19:50:33 +08:00
07akioni 9d36f9c1fc refactor(telemetry): share reporting through a Cordis OTel service 2026-09-25 19:08:44 +08:00
07akioni b97ef29e79 fix(telemetry): await SDK export slot cleanup between requests 2026-09-25 18:47:23 +08:00
07akioni 3dd52bfd9b fix(telemetry): own byte-bounded session request scheduling 2026-09-25 18:39:21 +08:00
07akioni 7b8c7dfff2 feat(telemetry): upload session log events through byte-bounded OTLP 2026-09-25 17:29:15 +08:00
CreatixChu 783569bf73 Merge pull request #5214 from deepseek-harness/worktree/deepseek-stale-file-batch-invalidate
fix(llm): remove every stale DeepSeek file mapping in one index update
2026-09-25 16:56:54 +08:00
creatixchu 97d9115336 refactor(llm): invalidate stale file mappings with the index generation type 2026-09-25 16:31:25 +08:00
creatixchu f9b8548dc3 Merge remote-tracking branch 'origin/master' into worktree/deepseek-stale-file-batch-invalidate 2026-09-25 16:30:49 +08:00
creatixchu a236e0fe23 docs(llm): re-record the DeepSeek README translation pair 2026-09-25 16:26:46 +08:00
creatixchu 3b2f46232e test(llm): assert batch invalidation in the Files stale-id specs 2026-09-25 16:26:45 +08:00
Christina Lee a6f3d3b91d Merge pull request #5122 from deepseek-harness/fix/update-copy-review
fix(client): clarify update copy and unnamed session labels
2026-09-25 16:25:52 +08:00
creatixchu 25e235d2c9 fix(llm): remove every stale DeepSeek file mapping in one index update
A stale-file response naming many file ids made RequestFiles.retry invalidate
each mapping through its own writer-lock cycle on files-v3.json. The lock waits
two seconds with a fixed backoff cadence, so concurrent contenders advance one
per round and most of them time out once a response names more than about a
dozen ids; the timeout surfaced as TRANSPORT and the replacement request never
left. DeepSeekUploadIndex.remove and DeepSeekFileStore.invalidate now take every
rejected generation at once and rewrite the index under one lock acquisition.
2026-09-25 16:24:33 +08:00
07akioni a3dad48152 test(web): wait for saved model settings before reopening 2026-09-25 16:15:29 +08:00
Chinesezjc cfeb478e03 Merge pull request #5179 from deepseek-harness/feat/experimental-schedule-bundle
feat(schedule): ship the Schedule switch as an optional bundle
2026-09-25 15:57:37 +08:00
Chinesezjc 657b8dac06 docs(schedule-bundle): place the Automation tasks page on the sidebar entry
The bundle README said the right sidebar shows the Automation tasks page. The
ui-schedule client registers that page as a `main` panel with a sidebar entry and
keeps the right Sidebar for the single-task detail tab.
2026-09-25 15:48:37 +08:00
Chinesezjc acf3efeb03 build(schedule-bundle): match the workspace version after the master merge-forward
The 0.1.7-rc.2 release bumped the root and every dsh-family manifest; the new
experimental bundle carries the same version so check-workspace-constraints passes.
2026-09-25 15:32:29 +08:00
Chinesezjc 752e366a53 Merge remote-tracking branch 'origin/master' into feat/experimental-schedule-bundle 2026-09-25 15:31:58 +08:00
Chinesezjc e3a36cfe80 docs(schedule-bundle): keep the host-storage note current and trim the restated decision
The 2026-09-16 host-schedule-storage note now names the optional experimental
bundle as what mounts Schedule, since the Web composition carries the row disabled.
The opt-in note's Decision drops the sentence the Problem already owns, and the
assembled-remote mock states why its Schedule answers stay declared.
2026-09-25 15:29:39 +08:00
Chinesezjc 7b3bc172de docs(schedule-bundle): scope the overlay limitation and pin the overridden row name
The overlay alternative now says only its insert form fails to override a shipped
row, since an id-targeted --patch overlay does set one. The composed assertion
compares the overridden row's package name with the shipped layer's name instead of
asserting a string.
2026-09-25 15:18:31 +08:00
Chinesezjc 1065f0afd1 fix(schedule-bundle): correct review findings on row semantics and the archived note
Cross-link the archived decision the opt-in note supersedes, state the Loader's one
entry per id and last-declaration-wins behavior in the overlay and extraction
alternatives, scope the missing-row warning to profiles that mount no Plugins page,
and move the switch-on-but-ineffective case to the list-order paragraph. Assert one
top-level composed row per id and correct the stale assembled-remote comment.
2026-09-25 15:12:14 +08:00
Chinesezjc 1145adee07 docs(schedule-bundle): correct the notes, README limits, and composed patch spec
Archive the reversed 2026-09-24-web-default-schedule-composition triplet and name
the four bundles in the optional-bundles note. Rewrite the opt-in note's Problem to
the state at the branch base and state why the bundle switches time-context on with
schedule. Record the missing-row warnings, the bundle list order, and the bundle
detail page's empty state in the bundle README. Pin the composed Schedule rows in
scripts/optional-bundles.spec.ts and move the cli dependency entry into order.
2026-09-25 15:00:26 +08:00
Turtle 477b4f4205 Merge pull request #5180 from deepseek-harness/rel/dsh-0.1.7-rc.2
release(dsh): 0.1.7-rc.2
dsh-v0.1.7-rc.2
2026-09-24 21:39:59 +08:00
Chinesezjc a3a4c3b9ce test(web): take the reminder tools from the preset in the Schedule Web spec
The scenario boots the shipped composition, which disables the Schedule
service and the clock, and the two reminder rows live inside
`preset-standard`. A top-level patch cannot address a plugin a preset
declares, so the spec builds its overlay from the shipped preset and restates
that row with `preset-time-context` and `tool-schedule` enabled, beside the
Host row enables. Directly created Agents mount the default preset so their
tool set comes from the product composition, and the shipped-roster assertion
covers both planes.

The static fixture is deleted: it restated only the Host rows.
2026-09-24 21:32:42 +08:00
Chinesezjc 3ce7b11425 fix(schedule-bundle): satisfy the omitted-companion README rule and refresh the plugin goldens 2026-09-24 21:32:28 +08:00
turtle1999 787b746b80 release(dsh): 0.1.7-rc.2 2026-09-24 21:24:26 +08:00
Chinesezjc c75bd5a514 fix(web): keep the preset reminder rows disabled with the Host stopgap
A preset row that waits for a disabled service fails the boot audit:
`tool-schedule` cannot resolve `schedule` while the shipped bundle keeps it
off, and the Web preset suite boots exactly that composition. The three
presets now declare `preset-time-context` and `tool-schedule` with the same
`disabled: true`, so the arrangement is recorded while nothing
reminder-related activates; the preset rows are enabled together with the
Host rows when the stopgap is lifted.
2026-09-24 21:19:41 +08:00
Chinesezjc 5e9b942f8c Merge origin/master into feat/preset-scoped-schedule-tools
`#5175` disabled the three Host rows (`time-context`, `schedule`,
`ui-schedule`) as a temporary stopgap and refreshed the Web fixtures for that
composition. Those rows and fixtures stay as master has them; this branch
keeps its preset ownership of the reminder stack, which takes effect when the
stopgap is lifted.

Resolutions:
- `packages/bundle/web-app/cordis.patch.yml` keeps master's `disabled: true`
  on all three rows.
- The three presets declare the clock under `preset-time-context`: a row id
  belongs to exactly one plane, and the Host row retains `time-context`.
- `apps/web/tests/schedule-after.e2e.ts`, `apps/web/tests/fixtures/
  time-context-every-step.patch.yml`, `web-default-isolation.expected.e2e.ts`,
  and the `minimal-preset` session fixture keep master's stopgap-era state.
2026-09-24 21:09:32 +08:00
Chinesezjc d0f62c36fa build(schedule-bundle): add the bundle to the host program references 2026-09-24 21:05:54 +08:00
Chinesezjc 41c29fa832 feat(schedule): ship the Schedule switch as an optional bundle
The shipped Web composition carries `time-context`, `schedule`, and
`ui-schedule` disabled. This adds
`@deepseek-ai/dsh-experimental-schedule-bundle`, whose patch sets
`disabled: false` on those three rows and inserts none, and names it in
`OPTIONAL_BUNDLES` with a runtime dependency of `apps/cli`, so every
installation ships it switched off and the Web Plugins page offers it in
the Official group.

The two Web suites and the built-Web Schedule Remote scenario enable the
rows through that bundle instead of a scenario-local fixture.
2026-09-24 21:03:26 +08:00
Turtle f9564a0d48 Merge pull request #5175 from deepseek-harness/turtle/disable-shipped-schedule
feat(web): disable shipped schedule and time context plugins
2026-09-24 20:55:39 +08:00
Chinesezjc 656adfc986 feat(web): mount time-context from the presets that use it
`packages/bundle/web-app/cordis.patch.yml` inserted `time-context` as a Host
row, so every session in the shipped Web profile — `minimal` included —
received a per-step clock reading its composition never declared. The row
moves into the `standard`, `cordis`, and `ptc` presets; `minimal` mounts
neither the reading nor the reminder tools. The Schedule service row and the
`ui-schedule` client row stay Host-wide. 139a7eb379 carried the bundle,
preset, and runtime-closure half of this move; this commit carries the
fixtures, documentation, and Agent Notes that follow it.

The `minimal` session fixture is refreshed keylessly, the assembled-Web spec
builds its every-step overlay from the shipped preset because a preset plugin
cannot be addressed by id from a top-level patch, and the composition Agent
Note points at the new note that owns the preset-scoped reading.
2026-09-24 20:50:12 +08:00
Turtle f84891eaff Merge pull request #5150 from deepseek-harness/fix/auto-review-user-approval
fix(auto-review): ask the user after a denial and report reviewer failures
2026-09-24 20:48:39 +08:00
turtle1999 374b9cc1fb test(web): align shipped composition fixtures with disabled scheduling 2026-09-24 20:41:51 +08:00
Chinesezjc 9706f3e5f3 test(web): cover the subagent-session mapping in the schedule editor
The new code joins the update-result union, so the exhaustive switch gained a
branch no test reached; the table-driven mapping test now names it.
2026-09-24 20:36:52 +08:00
liyao 5b4cfa5141 Merge remote-tracking branch 'origin/master' into fix/update-copy-review
# Conflicts:
#	packages/client/ui-workspace/src/client/locales.ts
2026-09-24 20:35:12 +08:00
Yichen Jiang 24f28dfdb6 Merge pull request #5173 from deepseek-harness/worktree/model-selection-background-save
fix(session): save default model settings in the background
2026-09-24 20:31:25 +08:00
Chinesezjc b7a6568c29 chore(docs): regenerate the graphs and persistence catalog after the merge
`SubagentSessionError` shifts line numbers in the Schedule types these
generated pages cite; both generators re-emit them, and the
persistence-catalog pair is re-recorded.
2026-09-24 20:27:28 +08:00
turtle1999 cad6fef2fd feat(web): disable shipped schedule and time context plugins 2026-09-24 20:27:14 +08:00
Chinesezjc d02a959870 Merge origin/master into feat/preset-scoped-schedule-tools
Resolutions:
- `snapshots/web/minimal-preset/tool-schemas.expected.json` keeps this
  branch's side: the four reminder tools are absent from a `minimal` session
  under the new composition, so master's description refresh of those entries
  does not apply.
- `packages/schedule/tool-schedule/src/index.ts` keeps this branch's plugin
  shape and ports master's trimmed tool descriptions (20bea14129) onto the
  moved definitions; `docs/tool-catalog.md` is regenerated from them.
- `docs/tool-catalog.zh.md` has its schema code block realigned with the
  regenerated English side, and the pairing record is re-recorded.
2026-09-24 20:20:33 +08:00
Xu Hanxiang 4ef97b92a9 Merge pull request #4827 from deepseek-harness/fix/truncate-without-splitting-surrogates
fix(tools): keep surrogate pairs intact when capping tool output
2026-09-24 20:16:49 +08:00
Turtle c92c72eb46 Merge pull request #5165 from deepseek-harness/turtle/atomic-write-exited-lock-takeover
fix: take over a writer lock whose holder exited, and wait for its pnpm run
2026-09-24 20:11:31 +08:00
Yichen Jiang e786c3f74a test(web): await background model preference saves 2026-09-24 20:08:56 +08:00