Commit Graph
4793 Commits
Author SHA1 Message Date
_Kerman b72bd6f5be merge: bring master into feat/pwsh-persistent-pty 2026-08-18 13:36:46 +08:00
creatixchu abfd537588 Merge remote-tracking branch 'origin/master' into worktree/image-dimension-limit 2026-08-18 11:45:08 +08:00
creatixchu d559ba9b2b fix(attachment): address dimension-limit review 2026-08-18 11:30:07 +08:00
Dudu-0223 d91df8cbd5 Deliver subagent reports at next step 2026-08-18 11:14:10 +08:00
creatixchu 609ee2facf Merge remote-tracking branch 'origin/master' into worktree/image-dimension-limit 2026-08-18 11:12:56 +08:00
imccyu e0e529547b docs(client): refresh module catalog source link 2026-08-18 01:34:56 +08:00
imccyu 885df835a1 docs: refresh module dependency graph 2026-08-18 01:34:54 +08:00
imccyu cf603b847f fix(client): complete dynamic module bootstrap 2026-08-18 01:34:53 +08:00
imccyu 85fa5b6943 docs(client): synchronize UI boundary references 2026-08-18 01:34:23 +08:00
creatixchu 0e39055121 fix(attachment): refuse oversized image sides at admission
An image with a side above the deployed routes' 2000px many-image bound
could be durably committed by read_image, ride every later request, and
permanently fail the session with provider 400s. Admission now enforces a
configurable maxImageDimension (default 2000) during the full decode, so
read_image surfaces a recoverable tool error naming the limit instead of
poisoning durable history; the Web composer gets dedicated copy for the
new IMAGE_DIMENSION_TOO_LARGE reason.

Fixes #2626
2026-08-17 20:49:08 +08:00
Chinesezjc 177fbfad4f Merge remote-tracking branch 'origin/master' into feat/code-runtime-python-protocol 2026-08-17 18:52:50 +08:00
Tianyi Cui 8822d6744f Merge pull request #2252 from deepseek-harness/worktree/fix-1463-rich-content-bridge
fix: bridge durable image content across MCP and ACP
2026-08-17 18:38:01 +08:00
Chinesezjc b90b45158e Merge remote-tracking branch 'origin/master' into feat/code-runtime-python-protocol
Resolutions:

- docs/module-graph.md, docs/config-catalog.md: generated files. Regenerated
  with gen-module-graph and gen-config-catalog on the merged tree, then carried
  the new package's entries into the Chinese sides and re-recorded both
  pairings. Each side now differs from master by exactly the
  code-runtime-python rows.
- scripts/verify-package-readme-model-experience.ts, tsconfig.host.json: master
  renamed packages/bash -> packages/shell, packages/pty -> packages/terminal,
  code-runtime-worker -> code-runtime-worker-thread and agent-tool-mode ->
  agent-tool-presentation. Kept master's names and re-added this branch's
  code-runtime-python entry.

Adapted the package to conventions master introduced while the branch was open:
version 0.1.0-rc.6 with publishConfig.access "public" (the release-member rule
check-workspace-constraints now enforces), the invariants project reference
moved to packages/runtime-diagnostics/invariants, and the README companion link
retargeted to code-runtime-worker-thread.
2026-08-17 17:26:11 +08:00
Yichen Jiang 47d6760052 Merge branch 'master' into worktree/python-sdk-model-visible-assertions 2026-08-17 17:01:52 +08:00
Yichen Jiang 8692a1b76b test(python): pin the minimal composition's model-visible surface
The Python lane never compared what the minimal composition shows the
model: the mock model only asserted system-role messages, and the
advanced snapshot tokenizes the assembled system prompt and tool
schemas.

The sdk-minimal scenario now records model-visible.json — every model
request's advertised tool schemas verbatim and its message list, with
system and user text kept and assistant/tool payloads reduced to call
identity so the expected output replays on macOS and Linux. It excludes
the dynamic runtime-context snapshot, which the same composition emits
on macOS and not on Linux (#2488).

AGENTS.md and the testing policy name both SDKs as independent
projections of the agent loop, session lifecycle, and SessionEventMap.
2026-08-17 16:49:14 +08:00
Tianyi Cui 5139329d29 Merge remote-tracking branch 'origin/master' into worktree/fix-1463-rich-content-bridge 2026-08-17 13:56:17 +08:00
Yichen Jiang 8f998186a9 Merge pull request #2404 from deepseek-harness/feat/plugin-owned-settings-surface
feat(settings): serve every registered namespace and key plugin cards on it
2026-08-17 13:51:31 +08:00
Yichen Jiang 84257ea5de Merge pull request #2596 from deepseek-harness/worktree/deepseek-maxtoken-consistency-3a7c15
fix(llm): align replay state with assembled content and degrade unusable state
2026-08-17 13:47:08 +08:00
Tianyi Cui c15f2f4d25 Merge remote-tracking branch 'origin/master' into HEAD 2026-08-17 11:39:33 +08:00
Tianyi Cui 7841e0a93e Merge pull request #2586 from deepseek-harness/worktree/minimal-mode-bash-issues-0c3ac2
fix(pty): keep the controlled prompt so persistent bash settles fast
2026-08-17 11:34:34 +08:00
Tianyi Cui b2f23f88ad Merge commit '70396085b141370ce32de1be4e225b4384eaf46d' into HEAD
# Conflicts:
#	.agents/notes/implemented/feature/2026-07-07-mcp-client-plugin.i18n.yaml
#	.agents/notes/implemented/feature/2026-07-20-code-mode-typed-tool-returns.i18n.yaml
#	.agents/notes/implemented/feature/2026-07-22-web-multimodal-image-input-and-durable-attachments.i18n.yaml
#	.agents/notes/implemented/feature/2026-07-22-web-multimodal-image-input-and-durable-attachments.md
#	.agents/notes/implemented/feature/2026-07-22-web-multimodal-image-input-and-durable-attachments.zh.md
#	.agents/notes/implemented/simplification/2026-07-23-acp-automation-only-protocol.i18n.yaml
#	docs/config-catalog.i18n.yaml
#	docs/module-graph.i18n.yaml
#	docs/module-graph.md
#	docs/module-graph.zh.md
#	docs/tool-catalog.i18n.yaml
#	docs/tool-catalog.md
#	docs/tool-catalog.zh.md
#	examples/acp-agent/tests/snapshots/advanced-toolchain/tool-schemas.expected.json
#	examples/acp-agent/tests/snapshots/both-mode-turn/tool-schemas.expected.json
#	examples/acp-agent/tests/snapshots/code-mode-turn/tool-schemas.expected.json
#	packages/core/tools/README.i18n.yaml
#	packages/core/tools/README.zh.md
#	packages/core/tools/src/code-mode.ts
#	packages/host/apiproxy/tests/api-proxy-models.spec.ts
#	packages/host/plugin-inventory/tests/inventory.spec.ts
#	packages/mcp/mcp-client/tests/mcp-client.e2e.ts
#	packages/mcp/mcp-client/tests/mcp-client.spec.ts
#	packages/self-modification/tool-cordis/src/api-catalog.ts
#	packages/test-support/acp-snapshot/README.i18n.yaml
#	pnpm-lock.yaml
2026-08-17 11:31:59 +08:00
Yichen Jiang 7e95a00c8a fix(llm): align replay state with assembled content and degrade unusable state
A max-tokens response that included a tool call persisted assembler-transformed
content next to replay metadata projected from the untransformed native message,
so the next request died in history reconstruction with INVALID_REPLAY_STATE and
the session stayed permanently stuck.

Write side: the finish chunk's replayState becomes a typed ReplayEnvelope —
opaque response-level metadata plus optional per-block entries aligned with the
emitted block sequence. BlockAssembler computes one keep/drop decision for
blocks and entries together, so stored metadata always describes stored content
and retained blocks keep their signatures. pi-ai splits its state into a
version-2 response half and per-block signature entries.

Read side: durable content is authoritative. toPiAssistant degrades any
unusable state — foreign kind, other versions (including the flat v1 form
already on disk), malformed metadata, or content/block mismatches — to the
existing provider-neutral conversion with an onReplayDegrade diagnostic instead
of failing the request, which un-bricks sessions poisoned before this change.

Covered by assembler and replay unit tests, an agent-loop continuation
regression, keyless real-composition continuation tests (native pruned-envelope
replay and legacy flat-state degrade), and the authored keyless snapshot
scenario max-tokens-continue through the assembled ACP app.
2026-08-15 16:07:30 +08:00
Huanqi Cao bc6a775a31 merge: bring master into feat/pwsh-persistent-pty 2026-08-15 11:14:45 +08:00
Yichen Jiang a8dc6f9776 fix(pty): keep the controlled prompt so persistent bash settles fast
tool-bash-persistent overwrote the backend's PS1, so terminal-bash prompt
readiness never matched and every send degraded to the 3.5s silence tier
(idleSilenceMs + handoffGraceMs) under production defaults.

The controlled PROMPT_COMMAND now re-asserts PS1 before every prompt, so an
in-shell override never survives to the next prompt. The tool initializes
with stty -echo alone and detects the no-end-marker fallback through the
seam's stdin_read wait reason instead of matching its own prompt text.

Tool calls drop from 7180/3560/3566 ms to 355/88/91 ms (spawn+init+echo,
echo, pwd; darwin, production defaults). The loader composition suite now
pins the fast path by pushing idleSilenceMs beyond the send bound, and a
real-PTY case proves PS1 self-healing.

Fixes #2585
2026-08-15 11:06:57 +08:00
Yichen Jiang 468c62518d Merge remote-tracking branch 'origin/master' into feat/plugin-owned-settings-surface
# Conflicts:
#	packages/client/ui-input-trigger/README.i18n.yaml
#	packages/client/ui-settings-plugins/src/client/ConfigurablePluginsTab.tsx
#	packages/client/ui-settings-plugins/src/client/index.ts
#	packages/client/ui-settings-plugins/src/client/tab-store.ts
#	packages/client/ui-settings-plugins/tests/apply.client.spec.ts
#	packages/client/ui-settings-plugins/tests/section.client.spec.tsx
#	packages/client/ui-settings-plugins/tests/stores.client.spec.ts
#	packages/host/apiproxy/src/api-proxy.ts
#	packages/host/apiproxy/tests/api-proxy-config.spec.ts
2026-08-14 15:46:01 +08:00
j-xiang 631d68713f docs(i18n): clarify root README reference 2026-08-14 14:43:05 +08:00
j-xiang 09432d644b docs(i18n): sharpen workspace contrast 2026-08-14 13:43:38 +08:00
j-xiang e87c8d094b docs(i18n): align Web UI guide wording 2026-08-14 13:37:53 +08:00
j-xiang e437afecce docs(i18n): clarify initial workspace state 2026-08-14 13:26:02 +08:00
j-xiang 692ca590d3 docs(i18n): polish the Web UI guide 2026-08-14 12:47:37 +08:00
Yichen Jiang 226600147e feat(llm-deepseek): support low reasoning effort 2026-08-14 11:47:59 +08:00
Shigma 0ae8f27b93 docs: add link to preview paper 2026-08-13 18:37:45 +08:00
Turtle 7c94659ec4 docs: add source build prerequisite to plugin tutorial 2026-08-13 18:02:12 +08:00
_Kerman 598645f119 Merge pull request #2458 from deepseek-harness/xtr/fix-cold-session-list-metadata
fix(web): keep cold blank sessions out of recent lists
2026-08-13 15:34:14 +08:00
Chinesezjc fc4405723f Merge pull request #2299 from deepseek-harness/fix/windows-native-ci-local-validation
fix: Windows-native CI findings on latest master (local gate reproduction)
2026-08-13 15:30:47 +08:00
Huanqi Cao a62884a565 docs: add junction-safe unlink rule to defensive patterns 2026-08-13 15:16:12 +08:00
_Kerman 378a662082 Merge remote-tracking branch 'origin/master' into dshw/pr-2458 2026-08-13 15:15:39 +08:00
_Kerman 2be3e12965 fix(apiproxy): harden cold session metadata probing 2026-08-13 15:09:21 +08:00
Turtle 4201bbceca docs: use installed dsh command in publish tutorial 2026-08-13 14:20:09 +08:00
Turtle 62080d49c2 docs: fix release smoke test failures 2026-08-13 14:20:09 +08:00
_Kerman 3c06c66ac4 fix(web): hide verified cold blank sessions 2026-08-13 14:04:16 +08:00
Turtle 1540e76598 docs: capitalize Service Provider across repository 2026-08-13 13:31:30 +08:00
Huanqi Cao f5c0d7e522 merge: bring master's rc.5 release and cordis tool renames into feat/pwsh-persistent-pty 2026-08-13 11:54:16 +08:00
Hypatia May b6b6a72df7 feat(session-query): ship full-text session search opt-in via openAt never
The shipped bundles keep ctx.sessionQuery mounted but set the new
session-query-sqlite `openAt: never` phase: searchSessions/searchEvents
fail with the typed SESSION_QUERY_SEARCH_DISABLED code before any request
normalization, node:sqlite is never imported or opened, and no source
observation or reconciliation runs. Every inherited exact read, filter,
and trace — session export descendants, subagent-fork Workspace
inheritance, title reads — keeps working, and the Web sidebar search
degrades to its designed local title/workspace matching. Enabling content
search is a one-line openAt override in a later patch layer; the web e2e
scaffold keeps it enabled as the assembled opt-in coverage.
2026-08-13 11:46:37 +08:00
Huanqi Cao 68ba98c29e docs: mirror the pwsh-persistent graph nodes and source lines into the Chinese counterparts 2026-08-13 11:24:43 +08:00
Tianyi Cui 137c3c9254 Merge pull request #2428 from deepseek-harness/fix/run-code-description-contract
让 run_code 的模型面说明点名必填的 description 参数
2026-08-13 11:17:48 +08:00
Huanqi Cao b89808cc2d fix(gates): align package version, module graph, and jscpd ignores for the mirrored pwsh stack 2026-08-13 11:10:59 +08:00
Yichen Jiang 3bcc1a0bf7 Merge remote-tracking branch 'origin/master' into worktree/minimal-no-runtime-context
# Conflicts:
#	packages/core/system-prompt/README.i18n.yaml
#	packages/core/system-prompt/README.md
#	packages/core/system-prompt/README.zh.md
#	packages/examples/agent-spine-demo/README.i18n.yaml
#	packages/examples/agent-spine-demo/README.md
#	packages/examples/agent-spine-demo/README.zh.md
#	packages/self-modification/tool-cordis/src/api-catalog.ts
2026-08-13 10:24:29 +08:00
Huanqi Cao 7da062f61b docs: refresh catalogs, links, and pairs for the renamed persistent pwsh stack 2026-08-13 10:15:35 +08:00
Yichen Jiang a135df8be6 Merge remote-tracking branch 'origin/master' into fix/run-code-description-contract
# Conflicts:
#	examples/headless-agent/tests/snapshots/advanced-toolchain/session.1.jsonl
#	examples/headless-agent/tests/snapshots/advanced-toolchain/session.2.jsonl
#	examples/headless-agent/tests/snapshots/advanced-toolchain/session.jsonl
2026-08-13 10:13:53 +08:00