Commit graph

1857 commits

Author SHA1 Message Date
Tianyi Cui
27bf1039db refactor(session)!: distinguish event seqs from log offsets 2026-09-01 20:36:00 +08:00
Dudu-0223
4093ce465b Merge remote-tracking branch 'origin/master' into feat/3220-steer-service 2026-09-01 13:46:35 +08:00
Turtle
d7811225dc Merge remote-tracking branch 'origin/master' into turtle/omit-unneeded-invariants
# Conflicts:
#	docs/module-graph.i18n.yaml
#	docs/module-graph.md
#	docs/module-graph.zh.md
#	packages/code-runtime/code-runtime-python/README.md
#	packages/code-runtime/code-runtime-python/README.zh.md
#	packages/experimental/code-runtime-python/README.i18n.yaml
#	packages/experimental/code-runtime-python/package.json
#	packages/experimental/code-runtime-python/src/invariant.ts
#	packages/experimental/code-runtime-python/tsconfig.json
#	pnpm-lock.yaml
#	tsconfig.base.json
2026-09-01 11:54:10 +08:00
Turtle
d68ff7e66f Merge remote-tracking branch 'origin/master' into turtle/omit-unneeded-invariants
# Conflicts:
#	docs/module-graph.i18n.yaml
#	docs/module-graph.md
#	docs/module-graph.zh.md
#	packages/session/session-projection/src/invariant.ts
#	tsconfig.base.json
2026-09-01 11:18:11 +08:00
Chinesezjc
6ce131c4f4 Merge remote-tracking branch 'origin/master' into feat/code-runtime-python-backend 2026-08-31 21:41:18 +08:00
imccyu
94bbfb95e8 Merge pull request #3379 from deepseek-harness/schedule-catalog-left-alignment
fix(web): align Schedule catalog within viewport
2026-08-31 20:53:40 +08:00
Yichen Jiang
b3064cca77 feat(ui-chat): full-session turn rail with load-and-jump
The rail now merges the turnOutline projection with loaded-window items
(view-layer only; loaded wins, outline fills mid-turn prompt previews),
renders unloaded turns as dimmer marks, and clicking one holds the
reader's place, pages history through the turn's seq, and lands on its
row after the commit — no height estimation. Settlement repages once
per head movement, then falls back to the nearest rendered turn.
2026-08-31 19:46:53 +08:00
Yichen Jiang
7e2eacb1fe feat(session-turn-outline): whole-log turn outline projection
New turnOutline projection unit serving every started turn's number,
turn/start seq, and bounded first-prompt preview through the
session-projection seam, mounted in the web-app bundle for the chat
turn rail. Entries stay strictly increasing; previews mirror the rail's
loaded-turn preview budget.
2026-08-31 19:46:53 +08:00
pku-xht
faa977fb29 fix(web): align Schedule catalog within viewport 2026-08-31 18:59:28 +08:00
Turtle
01a8882601 fix: complete invariant omission cleanup 2026-08-31 17:10:53 +08:00
Tianyi Cui
ba0609571f Merge #1148 validation corrections into #3289
# Conflicts:
#	packages/experimental/code-runtime-python/tests/runtime.spec.ts
2026-08-31 16:29:52 +08:00
Tianyi Cui
f14189cf8c chore(deps): refresh Python runtime lock importer 2026-08-31 16:27:40 +08:00
Tianyi Cui
7f84a825c9 fix(code-runtime): settle Python provider contracts 2026-08-31 15:50:45 +08:00
Chinesezjc
053d17f6a1 refactor(code-runtime-python): move the package into packages/experimental
The CPython code runtime's complete public contract is experimental, so it
moves to packages/experimental per the experimental-packages rules: npm name
@deepseek-ai/dsh-experimental-code-runtime-python, private: true, no
publishConfig. All references updated (code-runtime READMEs, config-catalog
and module-graph regenerated with zh alignment, tsconfig paths, doc-standard
and workspace-constraints scripts, the fd-3 and settlement Agent Notes, and
the package README links); md-links and translation pairing pass, and the
suite still runs green.
2026-08-31 15:13:55 +08:00
Chinesezjc
981ade7611 fix(code-runtime-python): restore the runtime's cross-package dependency declarations
The earlier merge had adopted master's protocol-only package.json (peer/dev
limited to invariants and cordis, no dependencies), but src/index.ts imports
@deepseek-ai/dsh-code-runtime, dsh-session, dsh-timeout, and schemastery at
runtime — a published lib/index.js could not resolve those bare specifiers.
The manifest now mirrors code-runtime-worker-thread (the five peers, the
schemastery dependency, and the matching dev set); the lockfile, module graph,
and third-party notices are regenerated, and the module-graph zh pair is
re-synced.
2026-08-31 14:59:01 +08:00
Chinesezjc
5b90f4e2ac chore: adopt master's lockfile and third-party notices after the merge
The merge conflict on pnpm-lock.yaml had kept the branch's older dependency
resolutions; the coverage gate's notices check then failed because CI's frozen
install resolved the master lockfile's versions while the committed notices
still named the branch's older ones. The branch adds no dependencies, so it
adopts master's lockfile and notices verbatim.
2026-08-31 14:56:11 +08:00
Turtle
b8e3b32fcf Merge master into codex/omit-unneeded-invariants 2026-08-31 14:38:55 +08:00
Chinesezjc
27901c547f fix(code-runtime-python): declare the dsh-code-runtime dependency
The manifest omitted @deepseek-ai/dsh-code-runtime although src/index.ts
imports CodeRuntime and the portable-identifier constants from it and the
tsconfig references ../code-runtime. A three-way package.json merge over
the protocol-layer stub dropped the entry; restore it in peer and dev
dependencies so the declaration matches the import.
2026-08-31 14:16:02 +08:00
Chinesezjc
c388169cff feat(code-runtime-python): add the CPython subprocess backend
Land the PythonCodeRuntime implementation on top of the fd-3 protocol
seam: python3 -I per run, binding namespace over fd 3, RLIMIT_CPU/AS,
wall-clock timer, and SIGTERM->grace->SIGKILL process-group teardown,
with the real-subprocess integration suite.

Fixes three defects surfaced on the source PR's review before they ship:
- boot-write failure resolved a worker-exit through finish()/settle()
  that read wallTimer/onAbort/live in their TDZ, rejecting run() instead;
  the boot write now runs after those bindings and the v8-ignore that hid
  the branch is removed.
- log capture serialized against settlement with no lock while model
  daemon threads keep writing; LogBuffer now owns one shared re-entrant
  lock taken by write/flush_line/push.
- the fd-3 line residual was a subarray view pinning the whole joined
  frame; it is copied into a right-sized Buffer via detachResidual so
  pendingBytes measures what is retained.
2026-08-31 14:14:32 +08:00
Tianyi Cui
4553c9d957 refactor(session)!: remove SQLite persistence backend 2026-08-31 13:23:07 +08:00
Turtle
8528e4039d chore(cli): trim test-only profile dependencies 2026-08-31 11:23:46 +08:00
Turtle
244de7c18a refactor(bundle): remove the agent spine demo 2026-08-31 11:23:30 +08:00
Dudu-0223
575dc58a07 Merge remote-tracking branch 'origin/master' into feat/3220-steer-service 2026-08-30 14:16:37 +08:00
Dudu-0223
b91e7ce366 Unify adjacent Agent messaging 2026-08-30 14:14:46 +08:00
Yichen Jiang
6ff02e8a96 Merge remote-tracking branch 'origin/master' into worktree/plugin-list-display-cbe885
# Conflicts:
#	packages/client/tsdown.client.ts
2026-08-30 12:00:06 +08:00
Yichen Jiang
c37a402dfb Merge remote-tracking branch 'origin/master' into worktree/plugin-list-display-cbe885
# Conflicts:
#	packages/client/tsdown.client.ts
2026-08-30 11:32:22 +08:00
imccyu
b27c8fbc02 chore(deps): refresh package manifests 2026-08-30 02:29:53 +08:00
Yichen Jiang
8349cc6c73 fix(agent-presets): live-mount-first inventory, per-runtime mounts, localized shipped preset names
Review round on #3316: the composition inventory answers from a standing
mount before the broken verdict (a file corrupted after mounting no longer
hides the running composition), livePresetMounts filters by the caller's
root fiber so a second Cordis runtime in one process never answers for it,
compositions carry trust and the plugin list resolves shipped preset names
through the shared dsh-agent-presets/display fold over ui-agent-preset's
dictionaries (INLINE_SAFE inline import; no cross-plugin runtime import),
the condition detail label reads Disabled when/禁用条件, and the stale
four-surfaces comment says three.
2026-08-29 20:41:01 +08:00
Dudu-0223
112daedd54 Merge origin/master into perf/3270-linear-stream-queues 2026-08-29 18:59:23 +08:00
Yichen Jiang
3b73a415c2 Merge origin/master: RemoteError wire vocabulary and ctx-based preset stores
Reconciled with the scope-grouped plugin list: compositionInventory keeps
its additive block over master's RemoteError refactor; the slimmed
settings-store keeps ctx-based signatures while staying a display-only
roster store (no describeFace, no select); dead transport-rejection tests
dropped with the wire that no longer rejects; module graph, catalogs, and
harnesses regenerated against the merged tree.
2026-08-29 17:13:45 +08:00
Yichen Jiang
e5f36cc70f feat(plugin-inventory): carry every agent preset's composition and group the settings plugin list by scope
The settings plugin list projected ctx.loader.entries() alone, hiding the
plugins sessions actually run and rendering the web overlay's deliberate
disabled tombstones (tool-bash, tool-fs, ...) as two dozen plainly disabled
rows while the same modules ran in every standard-preset session.

- dsh-agent-presets: compositionInventory() answers flattened rows per
  preset — newest live standing generation when mounted, composition file
  otherwise with !!js disabled gates evaluated against the Loader context;
  reading never mounts (regression-tested), refusal stays 'conditional',
  raced files report broken with the reason.
- dsh-host-plugin-inventory: list() gains an optional agentPresets block,
  resolving the roster as an optional peer and mapping fiber states to the
  public phase vocabulary.
- ui-settings-plugin-inventory: preset group first behind a display-only
  switcher opening on the default preset; global group collapsed with
  failures floated; host-disabled modules enabled by >=1 preset fold into a
  session-plugins drawer naming providers; search spans scopes and points
  at matches in unselected presets.
- ui-agent-preset: the General-settings default-preset row is deleted — the
  roster section's make-default and the new-session chip keep the field —
  and the settings store slims to the display roster the header label reads.

Docs, catalogs, module graph, settings-chrome goldens, and the bilingual
Agent Note ride along.
2026-08-29 17:13:45 +08:00
imccyu
a3207a758b chore: package.json update 2026-08-29 14:26:43 +08:00
imccyu
18480ff902 test(connection): verify and document recovery behavior 2026-08-29 11:18:58 +08:00
imccyu
d40d678b93 fix(api): repair runtime closure, gateway client bundle, and $host coverage
- python/sdk-runtime: add @deepseek-ai/dsh-util-time so the runtime
  dependency closure stays closed (dsh-subagent now depends on it).
- api/gateway: drop the dsh.client.external request for
  dsh-typert-protocol and admit the protocol package into INLINE_SAFE
  instead. The loader module table has no supplier for the protocol
  package, so the built client factory threw at require time; the
  protocol layer is duplication-safe by design (string marker,
  code-based discrimination), which is the inline-safe admission
  criterion.
- api/gateway tests: cover the $host getter (live service read,
  pre-ready home, and the construction-time fallback after the
  Connection service is withdrawn).
2026-08-28 22:37:36 +08:00
imccyu
804b1ffbfc refactor(api): converge the Remote failure vocabulary and client surface
Single RemoteError with a merge-extensible, domain-prefixed code map;
owners throw at the failure point; streams surface marked failures;
clients consume ctx.remote directly with isRemoteFailure as the only
discrimination point and construct no failure instances.
2026-08-28 22:37:36 +08:00
Yifffan
12d7b4ed0c Merge pull request #3262 from deepseek-harness/feat/session-turn-stats-display
feat(web): turn-tail usage and time stat pills with anchored dialogs
2026-08-28 13:52:02 +02:00
Dudu-0223
51a6eabb27 perf(api): replace shift-backed stream queues 2026-08-28 17:37:03 +08:00
Yif
a666f86129 Merge remote-tracking branch 'origin/master' into hero-fish-hover-swim 2026-08-28 16:07:28 +08:00
Yif
3a0dd5d38b Merge remote-tracking branch 'origin/master' into feat/session-turn-stats-display
# Conflicts:
#	packages/client/ui-primitives/tests/icons.client.spec.tsx
2026-08-28 16:04:13 +08:00
pku-xht
6c5bb90b48 Merge remote-tracking branch 'origin/master' into schedule-web-catalog 2026-08-28 14:45:30 +08:00
Yif
08f770275c Merge remote-tracking branch 'origin/master' into hero-fish-hover-swim
# Conflicts:
#	packages/client/ui-brand-official/package.json
2026-08-28 14:08:24 +08:00
Turtle
15f2997bcb cleanup: omit unneeded invariant companions 2026-08-28 13:12:52 +08:00
Turtle
626f21dabd Merge pull request #2735 from deepseek-harness/codex/remove-knip
Remove Knip from repository tooling
2026-08-28 12:38:41 +08:00
Turtle
7e92ed8213 Merge origin/master into codex/remove-knip 2026-08-28 12:07:36 +08:00
Yif
d6b30db252 Merge remote-tracking branch 'origin/master' into feat/session-turn-stats-display 2026-08-28 11:19:23 +08:00
pku-xht
1a5d004524 Merge commit 'bc954280ae67e349291e51e5787c6987e767fa40' into schedule-web-catalog
# Conflicts:
#	packages/client/ui-workspace/src/client/rows/Rows.tsx
#	tsconfig.base.json
2026-08-28 07:24:24 +08:00
Dudu-0223
ec493c2db8 feat(subagent): unify adjacent agent delivery on steer 2026-08-28 01:04:46 +08:00
Yif
5ba375fd88 feat(client): hover swim morph for the hero fish 2026-08-28 00:37:46 +08:00
_Kerman
13c1541c63 Merge remote-tracking branch 'github/master' into xtr/session-projection-migrations
# Conflicts:
#	docs/module-graph.i18n.yaml
#	docs/module-graph.md
#	docs/module-graph.zh.md
#	pnpm-lock.yaml
2026-08-27 23:18:55 +08:00
Yif
f15078532f feat(ui-chat): reshape the usage trigger as an icon-row pill
The whole-line meta trigger read as plain text and hid what was clickable.
The Turn-usage trigger is now a data-icon pill (Usage {total} · Cache hit
{percent}%) seated right of the branch action with the action buttons'
hover chrome, so the one interactive element in the tail is visibly a
button; the timing facts (clock, run time, speed, TTFT) return to plain
non-clickable text behind a dot separator. The details dialog keeps the
Turn-usage title and full token buckets, gains a permanent cache-hit row,
and breathes with wider vertical padding. Narrow columns trim the pill
label to an ellipsis instead of widening the chat column. User rows and
turn tails share the recency gate: only the latest row of each kind keeps
its actions visible without hover.
2026-08-27 23:14:08 +08:00