Commit Graph
11797 Commits
Author SHA1 Message Date
Tianyi Cui ed1ea95176 fix(windows): normalize native coverage tests 2026-08-08 20:01:46 +08:00
Ziya 5f9456c24f Merge pull request #1807 from deepseek-harness/feat/web-inline-file-mentions
feat(web): a prose mention of a produced file opens it
2026-08-08 04:59:16 -07:00
Tianyi Cui 95c1577b5f Merge latest master into native Windows CI 2026-08-08 19:58:01 +08:00
Tianyi Cui bdbc6c3da4 fix(windows): preserve graceful CLI shutdown 2026-08-08 19:57:31 +08:00
Tianyi Cui 1bb17d3616 Merge pull request #1870 from deepseek-harness/fix/agent-loop-cancel-wake-latch
fix(agent-loop): latch wakes landing in the cancel-convergence window
2026-08-08 19:55:53 +08:00
Ziya df2018b3df Merge branch 'master' into agent/task-surface-rfc 2026-08-08 04:49:46 -07:00
ZiyaZhang 4db962ecbb Merge remote-tracking branch 'origin/master' into feat/web-inline-file-mentions 2026-08-08 04:46:48 -07:00
ZiyaZhang 3f3c8e31e9 Merge remote-tracking branch 'upstream/master' into fs-overwrite-diff-bound-v2 2026-08-08 04:44:12 -07:00
_Kerman 853f929704 refactor(agent-loop): tighten wake-latch comments 2026-08-08 19:42:42 +08:00
_Kerman df30c62e2b fix(agent-loop): latch wakes landing in the cancel-convergence window 2026-08-08 19:42:42 +08:00
Tianyi Cui 331ffd8381 Merge native Windows CI fixes into coverage follow-up
# Conflicts:
#	.agents/notes/implemented/process/2026-08-08-native-windows-pull-request-ci.i18n.yaml
#	.agents/notes/implemented/process/2026-08-08-native-windows-pull-request-ci.md
#	.agents/notes/implemented/process/2026-08-08-native-windows-pull-request-ci.zh.md
2026-08-08 19:35:29 +08:00
Yichen Jiang 78238a3248 Merge remote-tracking branch 'origin/master' into worktree/web-theme-settings-integration-fde706
# Conflicts:
#	packages/client/runtime/README.i18n.yaml
#	packages/client/runtime/src/client/index.ts
#	packages/client/ui-conversation/README.i18n.yaml
#	packages/client/ui-conversation/package.json
#	packages/client/ui-conversation/src/client/apply.ts
#	packages/client/ui-conversation/tests/coverage-tails.spec.tsx
#	vitest.config.ts
2026-08-08 19:34:10 +08:00
Tianyi Cui 702e2d024a fix(windows): canonicalize native watch paths 2026-08-08 19:29:43 +08:00
Yichen Jiang cacc8fbca7 Merge branch 'stack/agent-profiles-5-web-ui' into stack/agent-profiles-8-authoring
Authoring meets standing mounts: write() and remove() drop the standing
pointer so the NEXT session composes the edited roster, while every session
already joined keeps the generation it runs on — a superseded generation is
never disposed while the process lives. The settings-dialog golden re-records
with this layer's Agent Preset nav entry, which the incoming layer-3 record
had overwritten.
2026-08-08 19:09:32 +08:00
Tianyi Cui 07ac5e6d4c fix(labels): address taxonomy review findings 2026-08-08 19:06:41 +08:00
Tianyi Cui a9abb62195 chore: enforce unified GitHub labels 2026-08-08 19:06:41 +08:00
Tianyi Cui b0eb7f8f35 docs: define unified GitHub label taxonomy 2026-08-08 19:06:41 +08:00
Tianyi Cui aabae51c7d Merge native Windows CI base into coverage follow-up 2026-08-08 18:52:50 +08:00
Yichen Jiang 01bd8ecefe Merge branch 'stack/agent-profiles-3-wire' into stack/agent-profiles-5-web-ui
recompose becomes a parent re-link: the new preset's standing mount is
ensured BEFORE the link moves, so a failed switch leaves the agent exactly as
it was — the unmount-then-restore dance (and unmountPresetFor with it) is
gone, and the restore-failure test now asserts the agent KEEPS its tools with
the source directory deleted, because the standing mount is not the file.
2026-08-08 18:52:45 +08:00
Tianyi Cui ce073eeef7 test(windows): enforce native coverage 2026-08-08 18:52:41 +08:00
Tianyi Cui a6c129a3c6 Merge latest master into native Windows CI 2026-08-08 18:51:13 +08:00
imccyu 22609ea425 Merge pull request #2054 from deepseek-harness/worktree-code-dispatch-tree
refactor(client): localize nested Tool call trees
2026-08-08 18:47:17 +08:00
Yichen Jiang 46649858f6 Merge branch 'stack/agent-profiles-1-seam' into stack/agent-profiles-3-wire
Rewires this layer onto the standing-mount model:

- serviceForAgent roots its search at the agent's standing mount (parent
  scope key → live mount fiber) — the composition no longer lives under the
  agent's own fiber, and two agents on one preset now address ONE instance,
  which the sharing test asserts instead of distinctness.
- viewFor/historyPage take a registry view SCOPE. A live agent is that scope;
  a cold read uses the recorded preset's standing key via standingKeyFor —
  composing plugins but starting no agent, session, or turn. A header without
  a preset (a pre-roster log) renders through the DEFAULT preset's standing
  layer; an unusable preset degrades the read to generic cards, never fails
  it. This turns produced-files and chat-scroll green structurally, with the
  token counts untouched (no resume, so the projections fold stays detached).
- The detached projections baseline now includes every standing unit's key at
  its empty fold (todos: null): the standing mount registers units
  deterministically, which is what makes the client's "omitted key =
  capability absence → clear" rule safe again. seeded-history's contract test
  asserts the new shape.
- The standard preset's realm preamble no longer claims a shared label pools
  instances — provide() throws on the second registration under one realm
  symbol; labels join REALMS.
2026-08-08 18:41:07 +08:00
Tianyi Cui 9b169f7555 ci: run required checks on native Windows 2026-08-08 18:37:32 +08:00
Huanqi Cao 69fd67bfd8 fix(docs): restore the cli reference pairing record to the multi-line contract after the merge-forward 2026-08-08 18:25:48 +08:00
Huanqi Cao e9b1c64a38 fix(sandbox): update the missing-runner snapshot for the Windows-aware SANDBOX_UNAVAILABLE text 2026-08-08 18:16:19 +08:00
imccyu 4de2de98e4 fix(client): bound nested Tool call depth 2026-08-08 18:15:34 +08:00
Huanqi Cao f1af1831ef fix(docs): point the parity note at the implemented windows-pwsh-default note and re-record the pair 2026-08-08 18:10:21 +08:00
Yichen Jiang d770fb21cc docs(scope,agent-presets): standing-mount model, parent chain, and the Agent Note 2026-08-08 18:08:20 +08:00
Huanqi Cao 644162d4df fix(docs): re-record the parity note pair hashes after the EOF normalization 2026-08-08 18:03:15 +08:00
imccyu 091b993198 fix(client): harden nested Tool call projection 2026-08-08 17:59:50 +08:00
imccyu 9ed33dfe4f refactor(client): localize nested Tool call trees 2026-08-08 17:59:50 +08:00
Huanqi Cao c0991f2568 fix(docs): point the parity note at the implemented windows-pwsh-default note and refresh catalogs after the merge-forward 2026-08-08 17:58:35 +08:00
Yichen Jiang ec9a08bdde Merge remote-tracking branch 'origin/master' into worktree/web-multimodal-image-input
# Conflicts:
#	.agents/notes/implemented/architecture/2026-07-05-reconstructable-requests.i18n.yaml
#	docs/core-data-structures/core.i18n.yaml
#	docs/module-graph.md
#	packages/client/ui-conversation/src/client/chat/AssistantMarkdown.tsx
#	packages/client/ui-conversation/src/client/index.ts
#	packages/compact/compact-basic/README.i18n.yaml
2026-08-08 17:56:53 +08:00
Yichen Jiang e18aa2745c refactor(scope,agent-presets): per-preset standing mounts over a scope parent chain
A preset is now ONE composition per process, not one per session. The roster
mounts it once under a synthetic standing scope; each agent joins by having
its scope key parented to the mount's. Two mechanisms in dsh-scope carry the
whole change: registration views walk the parent chain (global → preset →
agent, nearest shadowing farthest — ScopedLayers.chainLayers), and scoped
event dispatch admits a listener tagged with an ancestor of the carrier key,
which is what lets a standing composition's plan/compaction/token listeners
observe each agent composed under it while a sibling preset's stay deaf.

The preset plugins already key their state by Session/Agent — they predate
presets and were written for the shared world — so sharing one instance is a
return to their design, not a rewrite. Preset ymls are unchanged: one mount
per preset means one Entry per preset, whose entry-local realms keep two
presets' services apart exactly as they kept two sessions' apart before.

The standing scope hangs off the service's UNTRACED context (selfCtx): a
method invoked through the traceable proxy sees this.ctx rebound to the
caller and carrying its shadow, and a subtree minted from that resolves every
service through the shadow's fiber instead of each entry's own inject store —
preset rows then fail on the very services they declare.

A standing mount survives its agents deliberately. The composition a running
session joined must outlive the file changing or disappearing underneath it;
reclamation happens at whole-tree teardown, and file edits reach only future
generations (the authoring layer swaps the pointer, never disposes a joined
generation).
2026-08-08 17:51:49 +08:00
Huanqi Cao cc64c729db Merge remote-tracking branch 'origin/feat/windows-pwsh-default' into feat/windows-acl-sandbox
# Conflicts:
#	apps/cli/reference/README.i18n.yaml
#	knip.json
#	packages/sandbox/sandbox-local/package.json
#	pnpm-lock.yaml
#	scripts/check-workspace-constraints.ts
2026-08-08 17:50:39 +08:00
Tianyi Cui 5e0b7571e6 Merge pull request #2059 from deepseek-harness/worktree/browser-gif-evidence-chain-20260808
docs(skills): preserve browser GIF evidence chains
2026-08-08 17:45:48 +08:00
Huanqi Cao d1b080a68d Merge remote-tracking branch 'origin/master' into HEAD
# Conflicts:
#	.agents/notes/implemented/feature/2026-08-05-pwsh-ui-bash-parity.i18n.yaml
#	.agents/notes/implemented/feature/2026-08-05-pwsh-ui-bash-parity.md
#	.agents/notes/implemented/feature/2026-08-05-pwsh-ui-bash-parity.zh.md
#	apps/cli/reference/README.i18n.yaml
2026-08-08 17:42:47 +08:00
Huanqi Cao 07c7e2f0bd fix(sandbox): revoke post-apply grant failures, free init SID allocations, and name the Windows runner in SANDBOX_UNAVAILABLE 2026-08-08 17:39:25 +08:00
Tianyi Cui 40ea07a33b docs(skills): tighten GIF evidence boundaries 2026-08-08 17:35:21 +08:00
Huanqi Cao 43d53d339d fix(pwsh): stamp the calling session's sandbox policy onto pwsh tool calls 2026-08-08 17:30:04 +08:00
Huanqi Cao abfb933620 feat(sandbox): per-session windows-acl write grant with dual-mode restricting lists and a private temp subdirectory 2026-08-08 17:29:43 +08:00
Tianyi Cui c21b8f1068 Merge remote-tracking branch 'origin/master' into worktree/browser-gif-evidence-chain-20260808 2026-08-08 17:28:24 +08:00
imccyu b217fcc5bf Merge pull request #2042 from deepseek-harness/worktree-uitool
cleanup(client): extract Tool presentation ownership
2026-08-08 17:23:25 +08:00
Tianyi Cui 5934bbc32e docs(skills): preserve browser GIF evidence chains 2026-08-08 17:17:14 +08:00
imccyu 871c59c3bc fix(client): address tool tree review 2026-08-08 17:12:54 +08:00
Yichen Jiang 21c3bb1713 Merge remote-tracking branch 'origin/master' into worktree/web-theme-settings-integration-fde706
# Conflicts:
#	docs/module-graph.md
#	packages/client/runtime/README.i18n.yaml
#	packages/client/runtime/tsconfig.json
#	packages/client/ui-conversation/README.i18n.yaml
#	packages/host/apiproxy/README.i18n.yaml
2026-08-08 16:56:49 +08:00
imccyu 3b31b2eba1 fix: ci 2026-08-08 16:53:25 +08:00
imccyu c5b37f6845 fix(client): keep compact row in conversation package 2026-08-08 16:53:25 +08:00
imccyu 810bfc4b5e fix: ci 2026-08-08 16:53:25 +08:00