Commit Graph

8141 Commits

Author SHA1 Message Date
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
cb8756b838 Merge pull request #1371 from deepseek-harness/codex/fix-large-history-pagination
fix(web): avoid history pagination stack overflow
2026-08-17 12:07:32 +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
fz
66cd593bf3 Merge pull request #2559 from deepseek-harness/feat/rename-code-preset-english-to-ptc-mode
fix(ui-agent-preset): rename English code preset to PTC mode
2026-08-17 10:05:31 +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
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
imccyu
f2830fec6d Revert "fix(client): declare browser-only externals as devDependencies" 2026-08-15 02:19:09 +08:00
imccyu
93a95e838d fix(client): declare browser-only externals as devDependencies
react, react-dom, shiki, katex, clsx, the micromark and mdast families and nine
more reach only browser artifacts, which resolve nothing on a user's machine.
Moving 79 declarations out of dependencies and non-optional peerDependencies
drops 103 tarballs and 6.05 MB from an install of the published CLI.
2026-08-14 20:18:39 +08:00
imccyu
48d14b4a7c docs(client): state where a browser-only dependency is declared
Browser artifacts resolve nothing on a user's machine: tsdown inlines every
non-platform specifier, the shell dist answers the rest from its frozen module
table, and Vite inlines the shell's own imports into the published dist. Record
the resulting declaration rule, and the Agent Note behind it.
2026-08-14 20:17:50 +08:00
kingwl
5201b84863 fix(web): avoid history pagination stack overflow 2026-08-14 16:40:30 +08:00
pku-xht
21d2433d97 Merge pull request #2374 from deepseek-harness/codex/product-subagent-one-shot-background
feat(agent-presets): enable background Codex and Claude Code subagent tasks
2026-08-14 15:49:58 +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
fz
3a793a0f7b fix(ui-agent-preset): use sentence case for PTC mode 2026-08-14 14:36:17 +08:00
fz
fd24df156d fix(ui-agent-preset): rename code preset to PTC Mode 2026-08-14 14:09:35 +08:00
Yichen Jiang
226600147e feat(llm-deepseek): support low reasoning effort 2026-08-14 11:47:59 +08:00
Yifffan
f322d5cb0d Merge pull request #2527 from deepseek-harness/fix/cordis-tool-styles
fix(web): align the sidebar Cordis panel with menu and footer conventions
2026-08-14 10:36:55 +08:00
imccyu
15148dbd9a release(dsh): 0.1.0-rc.6 2026-08-13 19:52:05 +08:00
imccyu
c1d26018a4 fix: lint 2026-08-13 19:49:27 +08:00
imccyu
c91cfc3ec2 fix: SessionPersistenceCorruptionError 2026-08-13 19:44:14 +08:00
Yif
b5deda1f05 refactor(client): share the outside-pointer dismissal hook
The jobs list and the Cordis panel carried identical outside-pointerdown
close effects, which the duplication gate rejects; both now use
useDismissOnOutsidePointer from ui-primitives.

Refs #2526
2026-08-13 19:39:10 +08:00
pku-xht
f0a875e8e9 docs(subagent): clarify preset tool row references 2026-08-13 19:38:19 +08:00
Yif
c5187d38a5 fix(web): align the sidebar Cordis panel with menu and footer conventions
The Cordis popup now uses the standard menu surface (layer-3 fill,
inverted border, lv3 shadow) so it stays visible in dark mode, closes on
outside pointerdown, and anchors to its trigger through a measured fixed
position that escapes the sidebar overflow clip. The Cordis and Settings
footer triggers share the same 42px row, icon size, padding, and hover
fill, and the panel's header, heading, and card spacing is rebalanced.

Refs #2526
2026-08-13 19:13:29 +08:00
pku-xht
0fbb5c7b81 Merge commit '2f717c0467d7174d7fe0011c4a787450f7328a78' into codex/product-subagent-one-shot-background 2026-08-13 18:54:56 +08:00
imccyu
abe560f81e release(dsh): 0.1.0-rc.5 2026-08-13 18:49:33 +08:00
imccyu
8c1e8d9890 build(release): publish the dsh family publicly
Every release member now declares publishConfig.access: public, so the scope no
longer mixes levels: the 221 packages/*/* and apps/* manifests join the vendored
framework and the native packages.

check-workspace-constraints drops the per-sequence expectation and holds every
release member to public, which is what stops a member from drifting back.

Access is a property of the package, not of a version: the dsh packages already
published as restricted become world-readable at their next publication.
2026-08-13 18:49:32 +08:00
imccyu
8a954b2eca release(dsh): 0.1.0-rc.3 2026-08-13 18:39:06 +08:00
imccyu
a41085dfd4 ci: skip 2026-08-13 18:25:49 +08:00
imccyu
42c359e57b fix: ci 2026-08-13 18:14:13 +08:00
creatixchu
0f1c29c751 test(web): cover onboarding branches 2026-08-13 18:03:15 +08:00
creatixchu
fc90114ad9 fix(web): add English onboarding copy 2026-08-13 17:35:21 +08:00
imccyu
60b04b6ef7 release(dsh): 0.1.0-rc.2 2026-08-13 17:19:37 +08:00
j-xiang
55ef21e1a3 Merge branch 'master' into docs/readme-human-polish-3 2026-08-13 17:16:51 +08:00
j-xiang
f34eda53e3 Merge branch 'master' into docs/readme-human-polish-3 2026-08-13 16:59:11 +08:00
Tianyi Cui
5c2244cc9c Merge origin/master into agent/onboarding-modal-flow 2026-08-13 16:57:01 +08:00
j-xiang
952c6c3c9c docs(i18n): finish README fidelity review 2026-08-13 16:56:10 +08:00
pku-xht
5c085e3511 docs(subagent): align provider opt-in examples 2026-08-13 16:55:59 +08:00
imccyu
d8f5b0507d Merge pull request #2495 from deepseek-harness/release/dsh-0.1.0-rc.1
release(dsh): 0.1.0-rc.1
2026-08-13 16:51:36 +08:00
pku-xht
339c30ed14 docs(bundle): correct product provider opt-in guidance 2026-08-13 16:50:05 +08:00
Ziya
f8c0bf9186 Merge branch 'master' into agent/onboarding-modal-flow 2026-08-13 16:40:58 +08:00
Tianyi Cui
7cbb40bc8a Merge remote-tracking branch 'origin/master' into worktree/fail-web-wildcard-host 2026-08-13 16:39:00 +08:00
Tianyi Cui
0a42836fbb fix(web): address wildcard host review 2026-08-13 16:37:49 +08:00
pku-xht
93c0032216 docs(subagent): document explicit product provider opt-in 2026-08-13 16:27:48 +08:00
Tianyi Cui
f75d785e79 fix(web): show newest sessions first by default 2026-08-13 16:24:30 +08:00
j-xiang
9afdf79782 docs(i18n): resolve remaining README review 2026-08-13 16:23:03 +08:00
imccyu
22ab3beac1 release(dsh): 0.1.0-rc.1 2026-08-13 16:22:33 +08:00
Tianyi Cui
2466a1d59c Merge branch 'master' into worktree/fail-web-wildcard-host 2026-08-13 16:22:21 +08:00
ZiyaZhang
9ee5aef98c feat(web): unify onboarding dialogs 2026-08-13 01:19:52 -07:00
pku-xht
dff9462bea fix(subagent): use Job wording in background ack 2026-08-13 16:09:53 +08:00
pku-xht
e51a8117d9 Merge commit '4ebc88329d1da067edad6032d40688e52e401bf5' into codex/product-subagent-one-shot-background 2026-08-13 16:05:35 +08:00