Commit Graph
4493 Commits
Author SHA1 Message Date
imccyu d8d942c82a Merge pull request #6020 from deepseek-harness/worktree-chatflow2
fix(ui-chat): keep notice-woken Turns in the human exchange
2026-10-12 11:00:20 +08:00
winewill b35ef84914 Merge pull request #5952 from deepseek-harness/build/windows-ci-presets-signing
build(windows): add machine presets and EV-signed Actions packaging
2026-10-12 10:48:21 +08:00
imccyu 7526c914c4 test(scripts): refresh the translation prompt snapshot for the exchange term
The assembled translation prompt embeds docs/i18n/terminology.md, so the
new exchange row changes the recorded request.
2026-10-12 10:35:06 +08:00
fz 77dca95039 Merge pull request #5988 from deepseek-harness/feat/sdk-resume-session
feat(sdk): add explicit persisted session resume
2026-10-12 10:34:04 +08:00
imccyu 743560522b Merge pull request #6013 from deepseek-harness/worktree-fixsystemprompt
fix(web): keep process-specific values out of the system prompt
2026-10-12 02:23:32 +08:00
imccyu a93958c7d0 feat(ui-secret-mask): mask credentials in sent user text 2026-10-12 00:46:21 +08:00
imccyu ba1a9356db fix(web): advertise one Web GUI URL through the webApp service
The web-runtime row provides webApp.getAdvertisedUrl(): the row's
configured publicUrl, otherwise the listener origin. harness-dev-context
reads it instead of webStartup.publicUrl, so a profile override of
publicUrl reaches the model as it already reaches DSH_WEB_URL and the
startup URL. The new package no longer injects webServer or webStartup,
and the startup flag provider returns to its master behavior.
2026-10-12 00:34:29 +08:00
imccyu d5b48ad0ba docs(graphs): classify the webStartup service 2026-10-11 23:25:20 +08:00
imccyu 36779dcf09 fix(web): keep process-specific values out of the system prompt
The harness checkout path and Web GUI URL now reach the model as runtime
context from the new dsh-harness-dev-context plugin, so a process started
on another port, checkout, or installation no longer rewrites a Session's
logged system prompt. A Session whose prompt already embeds the earlier
value-bearing paragraphs keeps them verbatim through a host-only session
projection.

dsh-host-webserver gains WebServer.origin and bindUrlHost(); web-app keeps
only DSH_WEB_URL, the startup URL, and the browser handoff, and its root
declares the webStartup service type. app-boot drops
addHarnessSourceSection and HARNESS_SOURCE_SECTION.
2026-10-11 23:25:19 +08:00
imccyu f6b0c5af59 build: rename build:src and build:test to build:artifacts and build:check
build:artifacts produces every artifact, including the tsdown bundles,
the Desktop bundle, and Web, so naming it after sources undersold it;
build:check checks scripts, benchmarks, and website code besides tests.
The build.ts scopes, aggregate step ids, the Python builder flag
(--build-artifacts), workflows, callers, docs, and the build-split Agent
Note follow the new names. The note also records the naming
alternatives.

Refs #5852
2026-10-11 22:16:47 +08:00
imccyu 129c915498 build: split build:src and build:test, and schedule build in parallel
pnpm run build ran every step in one serial chain, including the two
noEmit aggregate programs (tests, scripts, benchmarks, website) that no
artifact step consumes, so the Host aggregate check alone delayed tsdown by
about 66 s.

- build:src (scripts/build.ts --scope src) builds every artifact in the
  existing order and writes the client build record; it replaces the
  removed --artifacts-only flag and the libraries CLI mode.
- build:test (--scope test) type-checks only the Host and Client aggregate
  programs with tsc -p, concurrently, without compiling references or
  checking prerequisites.
- build runs both as one dependency graph through run-gates' new
  runAggregate: each aggregate check starts once its face's packages are
  compiled, and Client compilation stays after the Host bundle that writes
  the Typert /remote declarations. DSH_GATE_CONCURRENCY=1 serializes it;
  DSH_GATE_FAIL_FAST=1 stops the remaining steps at the first failure.
  Passing steps print one PASS line (DSH_GATE_VERBOSE=1 shows their output).
- PR artifact builds (e2e, release, preview, Node 22 compatibility) and the
  Python builder (--build-src) use build:src; dev:web and dev:desktop use
  build:src. test:*, bench, typecheck and the required consumer/Windows
  lanes keep the complete build.
- lint, lint:fix, doc-typecheck and the Typert contracts gate prepare with
  host-libraries (Host package compilation + Host bundle) instead of
  build:lib:host; their own checks never read the aggregate root or the
  Desktop bundle.

Parallel and serial build produce byte-identical lib/, Web dist and client
build record; a test-only type error fails build and build:test while
build:src passes.

Refs #5852
2026-10-11 18:19:23 +08:00
imccyu e4410b2764 perf(client): read each tsdown preset's own package manifest
The client tsdown presets found a package's own manifest by name: a glob of
every packages/*/*/package.json, parsed until the name matched. tsdown's
native config loader imports each package config without module cache, so
the module-level cache never hit and all 82 configs repeated the glob
(40-125 ms each) synchronously on tsdown's main thread, where it delayed
every other package build. It was 34.5% of the client pass's main thread.

- clientBundle, staticLinked and clientLibrary take the package directory
  (import.meta.dirname at every call site) and read <dir>/package.json
  once; the package name, loader id and externals come from that manifest.
- A missing, unreadable or nameless manifest throws an actionable error.
- The glob, the name search and the module-level caches are removed.

tsdown client pass 12.78 s -> 8.73 s (median of 3 interleaved runs each,
-31.7%); all 11,566 lib outputs byte-identical; all 82 configs resolve the
same externals and banners.

Refs #5852
2026-10-11 18:19:23 +08:00
imccyu 1c6078dca6 perf(build): declare React type packages only at the workspace root
TypeScript builds a synthetic signature for every JSX intrinsic element and
computes a module specifier for @types/react (index and jsx-runtime) per
importing file. computeModuleSpecifiers visits every symlinked location of
that file and scans all 491 tsconfig paths for each; pnpm gave 65 packages
their own node_modules/@types/react link. Client test-aggregate Check
followed 26.9 + 0.494 * N seconds for N locations.

- Remove @types/react and @types/react-dom from all 67 workspace manifests
  and declare them once in the root devDependencies; packages keep declaring
  the react and react-dom they import (ui-slots gains react).
- verify-package-dependencies rejects either package in any workspace
  manifest and requires the root declaration, so a new package cannot add
  the link back.
- packages/client/AGENTS.md states the rule.

Client aggregate Check 59.1 s -> 26.5 s; the 76 client-only package
projects 54-57 s -> ~44 s wall. File set (2,613) and diagnostics unchanged.

Refs #5852
2026-10-11 18:19:21 +08:00
imccyu 9cb2041b29 Merge pull request #5979 from deepseek-harness/messageslot
refactor(web): compose message and text-transform content
2026-10-11 15:23:08 +08:00
Yichen Jiang 1d0ede8c3a ci: trial larger GitHub macOS runners for Python releases 2026-10-11 14:00:17 +08:00
imccyu 40c6a37ad0 test(web): adapt user content fixtures to text node factories 2026-10-10 22:43:55 +08:00
imccyu 2c684c51c9 refactor(web): compose native message image factories 2026-10-10 22:43:53 +08:00
Tianyi Cui 9d385cd0d9 Merge master into persistent PTC
Preserve the persistent runtime package description with master's alpha.2 version and locale exports. Refresh the two PTC prompt snapshots for the current plan-tool result type.

Validation: full build, 434 focused tests (one skipped), two built-runtime tests, two selected snapshots, package metadata, and all 43 doc-sync checks passed.
2026-10-10 21:55:44 +08:00
fz b1d5671038 refactor(sdk): simplify resume acknowledgement and verify Python restoration 2026-10-10 15:21:40 +08:00
kingwl 2da2a27163 Merge master and resolve integration conflicts for #5528 2026-10-10 13:12:10 +08:00
imccyu 1a83d013f5 docs: raise the root AGENTS.md ceiling for the standing orders
The root file passes the 1,960-word ceiling on the branch alone but exceeds it
once master's newest standing order is merged in, which is what `node 24 /
static` reports. Raise the ceiling to 2,080 and update the documented target in
the same change, per the "a too-low ceiling is a budget bug" rule.
2026-10-09 23:04:58 +08:00
imccyu 73dbbb751c docs: give architecture review rules a per-artifact home
Move `docs/defensive-patterns.md` into `docs/defensive-patterns/`, one page per
artifact plus a README router, and state each rule as its requirement, the
condition a reviewer judges it by, its boundary and approver, and a correct and
a wrong example.

- `general.md` (the moved page): the existing bug-class rules plus timing,
  value representation, shared-state ownership, decentralization, performance
  evidence, and migrations.
- `package-surface.md`, `remote-and-api.md`, `client-components.md`,
  `conversation-and-session.md`: the review requirements for those artifacts,
  linking type definitions and semantics to `docs/subsystems/` instead of
  restating them.
- `README.md`: the habits behind the rules and the route from artifact to page.
- `dsh-code-review` reads the owning pages before judging a diff; the
  `dsh-architecture-discipline` routing skill is retired in favour of the
  directory, and every inbound reference is repaired.
- Chinese counterparts, pairing records, and the documentation tier table are
  updated together.
2026-10-09 23:03:56 +08:00
Yichen Yan 23c29d067a fix(web): persist authenticated browser preferences on the Host (#4201)
* Persist authenticated browser preferences through the Host
* test(settings): cover recovery and remote preference refresh
* test(settings): read Host preferences from a fresh browser context
* test(settings): verify remote ConfigForm refresh at plugin entry
2026-10-09 19:27:00 +08:00
Yifffan fddd704c7f Merge pull request #5969 from deepseek-harness/design/official-plugin-icons-safe-area
style(web): unify official plugin artwork and add drawing skill
2026-10-09 18:10:26 +08:00
Yif 71947ec3fa fix: address artwork review and separate UX reference coverage 2026-10-09 17:58:18 +08:00
07akioni deb90c38e6 Merge pull request #5576 from deepseek-harness/fix/desktop-dependency-alignment
perf(deps): align desktop dependencies and share client libraries
2026-10-09 17:52:53 +08:00
07akioni 50cec2dcbf Merge pull request #5559 from deepseek-harness/fix/prune-non-windows-conpty
Trim Windows ConPTY sources from non-Windows Desktop packages
2026-10-09 17:50:31 +08:00
07akioni 78be1e5e46 Merge master into fix/prune-python-runtime-tests 2026-10-09 16:37:22 +08:00
Yudong Han 18643292ae Merge pull request #5369 from deepseek-harness/fix/python-wheel-size-5250
fix: download optional Python runtime resources explicitly
2026-10-09 16:32:27 +08:00
kingwl 226ae8d2fd Merge master and resolve integration conflicts for #5576 2026-10-09 16:14:10 +08:00
winewill 5801fae7dc fix(windows): recreate empty runner checkout before actions start 2026-10-09 16:01:20 +08:00
winewill 370a272bb1 fix(windows): reset runner checkout without traversing dependency junctions 2026-10-09 15:57:20 +08:00
yudshj 4fd85be130 fix: validate optional Python resources and isolate downloads 2026-10-09 15:52:59 +08:00
winewill 373aec3d30 build(windows): add machine presets and signed CI packaging 2026-10-09 15:18:56 +08:00
creatixchu b02eff33f2 chore(types): remove retired sandbox test assertion baseline 2026-10-09 15:14:56 +08:00
creatixchu 42cf8c5ee0 Merge remote-tracking branch 'origin/master' into codex/ptc-review-policy
# Conflicts:
#	apps/desktop/tests/ptc-runtime.spec.ts
#	docs/config-catalog.md
#	docs/config-catalog.zh.md
#	packages/ptc-runtime/ptc-runtime-node/README.i18n.yaml
#	packages/ptc-runtime/ptc-runtime-node/README.md
#	packages/ptc-runtime/ptc-runtime-node/README.zh.md
#	packages/ptc-runtime/ptc-runtime-node/src/index.ts
#	packages/ptc-runtime/ptc-runtime-node/src/launch.ts
#	packages/ptc-runtime/ptc-runtime-node/tests/launch.spec.ts
2026-10-09 15:10:13 +08:00
creatixchu 244ca73755 fix(ptc): keep policy cleanup waits inside PTC 2026-10-09 15:02:01 +08:00
winewill d16abc2745 Merge pull request #5898 from deepseek-harness/build/windows-ci
build(windows): add manual installer CI and harden Desktop runtime patches
2026-10-09 14:06:31 +08:00
yudshj 305021fcd6 fix: preserve Linux SEA layout and stable snapshot references 2026-10-09 13:46:00 +08:00
imccyu 00d9dd1b81 fix(ui-chat): preserve flow layout through slot anchors 2026-10-09 13:35:16 +08:00
yudshj 1b8532b7c2 fix: keep Python executable packaging inside the deployed closure 2026-10-09 13:34:56 +08:00
yudshj 89f35fe2e9 fix: download optional Python runtime resources explicitly 2026-10-09 12:06:50 +08:00
winewill 9ae9df9976 build(windows): route manual packaging to dedicated self-hosted runner 2026-10-09 11:47:29 +08:00
Yichen Jiang 15c10e0e87 Merge pull request #5064 from deepseek-harness/worktree/ssh-helper-binaries
feat(ssh): ship standalone helper runtimes for Linux and macOS
2026-10-09 11:46:00 +08:00
creatixchu b7dbd7bb03 Merge master into feat/persistent-ptc 2026-10-08 20:58:22 +08:00
Yixiang Tu fad2076073 Clarify recorded compatibility decisions and review output 2026-10-08 20:26:57 +08:00
Yixiang Tu de4a771c72 Simplify same-version acknowledgements to explicit decisions 2026-10-08 20:26:57 +08:00
Yixiang Tu b2a93b6307 Accept todo identifiers in persistence review evidence 2026-10-08 20:26:57 +08:00
Yixiang Tu 5c5b51257a Allow reviewed same-version Session schema changes 2026-10-08 20:26:57 +08:00
Turtle bd097552fd Merge pull request #5868 from deepseek-harness/fix/snapshot-title-event-wait-diagnostics
test(ci): retain snapshot wait and coverage worker-exit diagnostics
2026-10-08 20:19:09 +08:00