Commit Graph
20084 Commits
Author SHA1 Message Date
ZiyaZhang 9626323fc4 Merge remote-tracking branch 'upstream/master' into ux/automation-tasks-plugin-row 2026-09-26 06:10:21 -07:00
Tianyi Cui 389539642f Merge pull request #5232 from deepseek-harness/fix/lefthook-lock-path-spelling-flake
fix(ci): canonicalize the Lefthook fixture common directory
2026-09-26 20:08:25 +08:00
Tianyi Cui bb5615558d Merge branch 'master' into fix/lefthook-lock-path-spelling-flake 2026-09-26 19:46:09 +08:00
imccyu cf7c3d9ea5 Merge pull request #5206 from deepseek-harness/worktree-fixbuild
fix(build): 将 Desktop 键盘测试并入 Client typecheck
2026-09-26 15:36:46 +08:00
ZiyaZhang b90695ee7a Merge remote-tracking branch 'upstream/master' into ux/automation-tasks-plugin-row 2026-09-25 22:31:25 -07:00
Ziya 7fd5311508 Merge pull request #5212 from deepseek-harness/feat/schedule-bundle-owns-rows
feat(schedule-bundle): insert the Schedule rows from the bundle and list them on its page
2026-09-25 22:17:34 -07:00
Tianyi Cui b73a702587 test(ci): canonicalize the Lefthook fixture common directory
Reading Git's path text verbatim to keep trailing whitespace duplicated the
line-terminator helper that scripts/change-scope.ts already owns, which the
duplication gate rejects. Canonicalizing the fixture-side common directory
with realpathSync.native removes the text parsing entirely: short names,
junctions, and directory symlinks all collapse onto the physical directory
the installer resolves, and the injected path stays exact.

Drops the trailing-space case: with no text trimming left in the
derivation, that path already matched the installer before this change, so
the case could not fail and proved nothing.
2026-09-26 01:46:03 +08:00
Tianyi Cui 1829cdfec9 test(ci): read the Lefthook fixture lock path without trimming
git() trims its output, which also drops a worktree directory's own
trailing whitespace; the installer removes only the line terminator. Derive
the expected lock path through gitPath()/stripGitLineTerminator(), which
applies the installer's exact rule, so the same-string claim holds for
every path.

Adds the trailing-space injection case (skipped on Windows, which cannot
create such a directory); it fails with the same probe ENOENT under the
trimming derivation.
2026-09-26 01:10:43 +08:00
Tianyi Cui acb66b4c23 test(ci): force the Lefthook lock-path alias on every host
The five lock-access cases only diverged on a host whose temp directory
already carried a short name or directory alias. Route one case through an
aliased worktree root (a junction on Windows, a directory symlink
elsewhere) so the installer's resolved common directory necessarily differs
from the path this spec composes; the case fails with the same probe ENOENT
under the previous derivation on every platform.

The alias case shares the injection body through
expectInjectedLockAccessFailure, so the five existing case names and their
assertions are unchanged.
2026-09-26 00:50:02 +08:00
Tianyi Cui 6e28f315e7 fix(ci): derive the Lefthook fixture lock path from Git's top level
The lock-access cases injected a filesystem failure on a path this spec
predicted from the mkdtemp fixture directory. The installer resolves its
common directory against Git's own top-level path instead, and the host
spells that path differently: Git canonicalizes Windows 8.3 short names
and the macOS /var symlink. When the spellings diverged the injection
never fired, so the probe file was never written and all five cases
failed with ENOENT at the probe read - the signature seen in the Windows
coverage lane.

Resolving the relative common directory against Git's top-level, as the
installer does, makes the expected path identical to the one the
installer touches on every platform. The five cases fail deterministically
on macOS before this change and pass after it.
2026-09-26 00:43:46 +08:00
ZiyaZhang 912e5bafa1 refactor(schedule-bundle): give the Schedule rows the usual per-row switches
The bundle no longer declares `dsh.bundle.rowSwitches`, so its page offers a
switch per row while it is on, as every other bundle does. The README records
that the three rows work only together, and the Agent Note records the
rejected lock.
2026-09-25 07:50:15 -07: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
ZiyaZhang 738178f136 Revert "feat(plugin-manager): let a bundle list its rows without row switches"
This reverts commit 089291591cbf9a9e08dbe99d96aa378a5f1ccac8.
2026-09-25 06:57:37 -07:00
ZiyaZhang 6085a56eb6 Revert "feat(plugin-manager): refuse to switch a row alone when its bundle switches its rows as a whole"
This reverts commit 5bc789e8617bc7b7fe8b56ad3629ed385692c54d.
2026-09-25 06:57:32 -07: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
ZiyaZhang dbd98c2b7e docs(schedule): name the Official group 官方 in the Chinese Schedule pages 2026-09-25 01:53:25 -07:00
ZiyaZhang 5511abfa14 Merge remote-tracking branch 'origin/ux/automation-tasks-plugin-row' into feat/schedule-bundle-owns-rows
# Conflicts:
#	docs/user/guide/schedule.i18n.yaml
#	docs/user/guide/schedule.md
2026-09-25 01:52:10 -07:00
ZiyaZhang b9ace787e4 feat(plugin-manager): refuse to switch a row alone when its bundle switches its rows as a whole
With `dsh.bundle.rowSwitches: false`, `listPlugins` reports each row the
bundle inserts with the `bundle-switch` read-only reason, so
`setPluginEnabled`, the `plugin_manager` tool, and the Plugins page agree,
and the page draws no switch for such a row. `bundleRowSwitches` validates
the manifest field; `listBundles` reports a non-boolean value on the bundle.
`BundleInfo.rowSwitches` is removed.
2026-09-25 01:51:00 -07:00
ZiyaZhang 0650bdeb30 test(schedule-bundle): expect the optional bundle to insert the Schedule rows 2026-09-25 01:50:58 -07:00
ZiyaZhang ce6d6a8582 Merge remote-tracking branch 'origin/ux/automation-tasks-plugin-row' into feat/schedule-bundle-owns-rows
# Conflicts:
#	.agents/notes/implemented/architecture/2026-09-24-schedule-opt-in-optional-bundle.i18n.yaml
#	.agents/notes/implemented/architecture/2026-09-24-schedule-opt-in-optional-bundle.md
#	.agents/notes/implemented/architecture/2026-09-24-schedule-opt-in-optional-bundle.zh.md
#	packages/experimental/schedule-bundle/README.i18n.yaml
#	packages/experimental/schedule-bundle/README.md
#	packages/experimental/schedule-bundle/README.zh.md
#	packages/experimental/schedule-bundle/package.json
2026-09-25 01:31:56 -07: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
ZiyaZhang d6ffaa0198 test(plugin-manager): pin the English Automation tasks row and write its label as text
The language-switch case now reads the Automation tasks row's English title
and description, and the English guide writes the UI label as plain text like
the rest of the guide.
2026-09-25 01:19:47 -07:00
07akioni a3dad48152 test(web): wait for saved model settings before reopening 2026-09-25 16:15:29 +08:00
ZiyaZhang 9bbcd6cc7b Merge remote-tracking branch 'upstream/master' into ux/automation-tasks-plugin-row
# Conflicts:
#	packages/experimental/schedule-bundle/README.i18n.yaml
#	packages/experimental/schedule-bundle/README.md
#	packages/experimental/schedule-bundle/README.zh.md
2026-09-25 01:02:22 -07: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
ZiyaZhang 64a361ee44 feat(schedule-bundle): insert the Schedule rows from the bundle and list them on its page
The Web composition no longer carries `time-context`, `schedule`, and
`ui-schedule`. The optional bundle inserts the three rows and depends on their
packages, as the other optional bundles insert theirs, so the Plugins page lists
them under the bundle; `dsh.bundle.rowSwitches: false` keeps the bundle's own
switch as their only control. The three packages gain localized titles and
descriptions for that list.
2026-09-25 00:42:21 -07:00
ZiyaZhang e42f262bc5 feat(plugin-manager): let a bundle list its rows without row switches
A bundle whose rows work only together sets `dsh.bundle.rowSwitches: false`.
`listBundles` reports it as `rowSwitches`, and the Plugins page then lists the
bundle's rows with their state and offers only the bundle's own switch. A
bundle that omits the field keeps a switch per row.
2026-09-25 00:41:49 -07: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
ZiyaZhang 197355bb12 fix(schedule-bundle): name the Plugins row Automation tasks with an alarm clock icon
The row now carries the name of the sidebar entry it adds and a
plain-language description, and its icon is an alarm clock drawn in the
Official group's 36px style. The README and the user guide quote the new
title; the README names the sidebar entry instead of a right-sidebar page.
2026-09-24 23:08:48 -07:00
imccyu a08472e982 fix(build): fold desktop keyboard tests into client typecheck 2026-09-25 14:01:08 +08:00
imccyu 638842895a docs(desktop): describe keyboard typecheck ownership 2026-09-25 14:00:53 +08:00