Commit Graph
135 Commits
Author SHA1 Message Date
Yichen Jiang 5ee10b3ebd Merge remote-tracking branch 'origin/master' into worktree/process-plugin-streaming-72f9b3
# Conflicts:
#	packages/client/ui-chat/src/client/chat/ContextInjectionRow.tsx
2026-08-25 16:50:24 +08:00
imccyu a1781cc4a8 Merge pull request #3054 from deepseek-harness/worktree-revert2698
revert(session): remove streaming format migration pipeline
2026-08-25 15:47:19 +08:00
Yichen Jiang 69d8b6e7ea fix(activity): bind observation cleanup to its generation and settle before mapping the outcome
Both ds-review-bot criticals verified and fixed:

- ClientActivityFeed release closures resolved the entries map at release
  time, not the entry they were minted for. A late release of a superseded
  observation decremented (and could tear down) the successor's stream, and
  the post-dispose model clear could land after a re-observation inside the
  dispose round-trip re-anchored the view — blanking the panel until the
  popover reopened (React StrictMode's double effect hits the same window).
  Releasers now capture their entry, reconcile the map only when it still
  holds that entry, and skip the view clear whenever a successor owns the
  key. Both regressions fail on the previous code.

- The background observation tap mapped the process outcome as soon as the
  pump settled — including its failure path, where the process is usually
  still running: processOutcome requires a settled handle, so an early
  mapping froze 'exit code: 0' onto a live task and first-wins end discarded
  the real terminal state. The tap now awaits proc.done before mapping (the
  promise never rejects) and swallows mapping failures per the module's
  contract, in bash and its pwsh mirror.

Also applied from the same review: the Remote tier's cross-session
visibility is now stated in the controller README, ActivityRead.next
documents its chunk-boundary nature that client concatenation relies on,
mergeRows records the one-activity-per-job assumption, and the 08-24 Agent
Note now reflects the shipped unified task list.
2026-08-25 15:46:15 +08:00
imccyu 211e6939e3 Revert "Merge pull request #2698 from deepseek-harness/xtr/session-format-migration"
This reverts commit 4b592eb90df20dc53dd12215921d5a9137214777, reversing
changes made to d15d3275d905e4d21229cd70a074388a428189d1.
2026-08-25 15:30:10 +08:00
07akioni 61b65d3147 fix(web): show system prompts in chat
Render reconstructable system prompts at each request-series boundary, preserve series declarations through pre-step wrappers, and keep the presentation and replay snapshots aligned across clients.
2026-08-25 14:44:08 +08:00
Yichen Jiang 5cd435e917 Merge remote-tracking branch 'origin/master' into worktree/process-plugin-streaming-72f9b3
# Conflicts:
#	docs/config-catalog.i18n.yaml
#	docs/config-catalog.md
#	docs/module-graph.i18n.yaml
#	docs/module-graph.md
#	docs/module-graph.zh.md
#	packages/client/ui-chat/src/client/contract/slots.ts
#	packages/shell/tool-pwsh/package.json
#	packages/workflow/tool-workflow/src/index.ts
#	python/sdk-runtime/package.json
2026-08-25 14:36:33 +08:00
Tianyi Cui b43d0934f7 test(web): keep credential fixtures package-local 2026-08-25 14:23:47 +08:00
Tianyi Cui 9c964848cd fix(web): keep browser authentication synchronous 2026-08-25 14:23:47 +08:00
Tianyi Cui ce031ddd16 fix(web): cover authenticated host runtimes 2026-08-25 14:23:46 +08:00
Tianyi Cui 3e24087bfa fix(web): authenticate the browser Host API 2026-08-25 14:23:45 +08:00
_Kerman d385dfb3e3 Merge remote-tracking branch 'github/master' into xtr/session-format-migration
# Conflicts:
#	docs/config-catalog.i18n.yaml
#	docs/config-catalog.md
#	docs/config-catalog.zh.md
#	packages/session/session-persistence-jsonl/src/index.ts
#	packages/session/session-persistence/src/coordinator.ts
#	packages/session/session-persistence/src/index.ts
2026-08-25 12:41:23 +08:00
imccyu 059598de59 fix: c i 2026-08-25 06:19:23 +08:00
imccyu d2904a6c06 fixup! refactor(session): open journal streams from snapshots 2026-08-25 06:09:25 +08:00
imccyu 822d735356 feat(session): persist model selection and share its catalog 2026-08-25 06:07:42 +08:00
imccyu 69fad4b8db perf(session-controller): serve cache-first session state 2026-08-25 06:07:26 +08:00
imccyu e7952d82ed refactor(session): open journal streams from snapshots 2026-08-25 06:07:11 +08:00
Yichen Jiang ddd8baa93a fix(activity): mark evicted heads on fresh observation and fit the popover to the viewport
Browser acceptance against a live scaffold surfaced two defects:

- A fresh observation anchors at the registry's earliest retained byte, so
  the client's gap predicate (anchor behind earliest) never fired for it: a
  viewer who watched eviction live saw the gap notice, while a reload of the
  same activity silently hid that the head was discarded. A fresh view (no
  accumulated text) anchored past offset zero now carries the gap mark;
  resumes keep their recorded state.

- The trigger-anchored popover (left: 0, width 440px) overflowed the right
  viewport edge on narrow windows — max-width alone cannot see the anchor
  offset. The open popover now measures its anchor and shifts left to keep
  the Menu primitive's 12px viewport margin, re-fitting on window resize and
  falling back to the pure CSS anchor when layout reports no width (jsdom).

JobListAction shares the latent overflow; tracked separately.
2026-08-24 23:07:17 +08:00
Yichen Jiang 4a79310339 feat(activity): optional live-output observation seam with a web viewer
Add the activity capability seam: ctx.activities is a pure observation
plane where long-running work (background bash/pwsh, workflow runs) opens a
handle, appends transient output into a byte-offset ring buffer, and settles
exactly once. Nothing model-visible changes: reads are non-consuming and
lossy-by-design (absolute UTF-8 offsets survive eviction and report gaps),
correlation carries {callId, jobId}, and visibility is owner-fenced like jobs.

The seam is strictly optional. Producers tap it through ctx.get('activities')
and contain every observation failure, so an unregistered or broken registry
never affects the underlying job (proven by broken-registry tests).

Ship the full path in one change:
- @deepseek-ai/dsh-activity: Service Definition, pumpActivityOutput pull
  substrate, invariant companion; dsh-activity-local: ring-buffer provider
  with retention config and owner cleanup.
- shell: ShellProcess.observed exposes non-consuming stdout/stderr readers;
  tool-bash/tool-pwsh mirror background jobs into activities.
- tool-workflow: phase/log/agent lines mirrored as a workflow activity.
- api-activity-controller: Typert Remote control (roster baseline+buckets)
  and observe (opened/output/status frames, coalesced and byte-capped)
  streams plus the client feed service with reference-counted observation.
- ui-activity: session-header action rendering live output through
  TerminalBlock, which now shows output while a command is still running.

Docs: activity subsystem page, architecture row, regenerated catalogs, and
the Agent Note (2026-08-24-activity-observation-seam), all bilingual. A
keyless web e2e replays a real run_in_background stream to ARIA goldens.
2026-08-24 22:40:14 +08:00
Dudu-0223 f76a225a7d Merge pull request #2663 from deepseek-harness/feat/subagent-provider
让 subagent 按需发现并选择子 Agent 模型
2026-08-24 18:23:42 +08:00
_Kerman 04abeddd3e Merge origin/master into xtr/session-format-migration 2026-08-24 10:31:05 +08:00
imccyu a42c0b523a refactor(session): stream raw tool events 2026-08-24 10:24:17 +08:00
imccyu 64c9e4a22c docs: define client-derived tool presentation 2026-08-24 10:24:16 +08:00
imccyu 81c922c7be chore(client): remove feature module externals 2026-08-23 23:06:38 +08:00
imccyu 997ad27a60 refactor(client): remove compatibility imports 2026-08-23 23:06:38 +08:00
imccyu 3d1c0af60b refactor(client): keep feature helpers with consumers 2026-08-23 23:06:38 +08:00
imccyu 85427aea9e refactor(client): move shared primitives to static packages 2026-08-23 23:02:33 +08:00
imccyu 689644463d fix(client): keep conversation updates incremental 2026-08-23 16:28:20 +08:00
imccyu dc92793f10 fix(client): align domain split with repository gates 2026-08-23 16:28:19 +08:00
imccyu f13fb4daeb docs(client): document split ownership 2026-08-23 16:28:18 +08:00
imccyu be531688f3 refactor(client): migrate consumers and remove Runtime 2026-08-23 16:28:18 +08:00
imccyu 0ea9a456c0 refactor(workspace): move Client ownership into Workspace Controller 2026-08-23 16:28:16 +08:00
imccyu 956730a5fb refactor(session): move Client ownership into Session Controller 2026-08-23 16:28:16 +08:00
imccyu 8f919cb9ac test: ignore defensive Remote branches 2026-08-23 16:16:06 +08:00
imccyu 2d974b187e perf(api-gateway): skip Remote output decoding 2026-08-23 16:16:06 +08:00
imccyu 4326dd4bca fix(api-session): preserve presenter fast path 2026-08-23 16:16:06 +08:00
imccyu d34be03f7b fix: skip get proxy 2026-08-23 16:16:05 +08:00
imccyu 08d6a215c9 perf(api-session): reuse live tool call arguments 2026-08-23 16:16:05 +08:00
imccyu 24a610db74 fix(api): preserve migrated transport semantics 2026-08-23 16:16:05 +08:00
imccyu ddcab34c0e test(api): close stream transport coverage gaps 2026-08-23 16:16:05 +08:00
imccyu 7d21611391 test(api-gateway): cover clientless Remote event replay 2026-08-23 16:16:04 +08:00
imccyu a49b265f88 docs: synchronize controller transport documentation 2026-08-23 16:16:04 +08:00
imccyu e38982adc8 fix(client): satisfy stream lifecycle contracts 2026-08-23 16:16:04 +08:00
imccyu 5d17b6798d fix(api-gateway): retry journal pages after reconnect 2026-08-23 16:16:03 +08:00
imccyu 1e0e827425 refactor(client-runtime): remove Session interaction consumers 2026-08-23 16:16:03 +08:00
imccyu 639dcef5d8 refactor(api-session): remove interaction transport 2026-08-23 16:16:03 +08:00
imccyu e8ede58603 fix(api-session): bind history pages to follow cursor 2026-08-23 16:16:03 +08:00
imccyu 9b1069c234 docs: document controller Remote transport 2026-08-23 16:16:03 +08:00
imccyu 54d739cf53 chore(api): align controller assembly and package graph 2026-08-23 16:16:02 +08:00
imccyu dcddaa1a6e refactor(client): replace legacy Host event carriers 2026-08-23 16:16:02 +08:00
imccyu ae25df3ac6 refactor(workspace): move APIs into Workspace Controller 2026-08-23 16:16:02 +08:00