Commit Graph
1746 Commits
Author SHA1 Message Date
Dudu-0223 e92ec69f32 refactor(lsp): drop redundant side-effect type import
The value import of LspProviderId already pulls in the cordis module
augmentation for ctx.lsp, so the separate `import type {}` is dead.
2026-07-16 17:57:18 +08:00
Dudu-0223 a63c55eb00 refactor(lsp): configure local servers together 2026-07-16 17:31:20 +08:00
Dudu-0223 0d8e7e98f7 fix(lsp): harden local provider lifecycle 2026-07-16 16:42:32 +08:00
Dudu-0223 3368f7924f docs(lsp): resolve ds-review-bot RFC warnings
Fix the executable-resolution lifecycle contradiction to match the
shipped implementation: the executable resolves eagerly at load
(failing before registration if unavailable), while the server process
launch stays lazy until the first query. Align both language versions.

Correct two zh counterpart divergences: drop the "only" condition the
Chinese text added to the English "behave best" source modality, and
apply binding terminology (包(package)/包, transcript(文本记录)).
2026-07-16 14:57:07 +08:00
Dudu-0223 43d419ac5c fix(lsp): address codex review round 3
Final review pass on the local provider:
- Tear the instance down when `initialize` REJECTS (utf-8 negotiation, malformed
  result), not only on abort, so a permanently-rejecting `ready` is never pooled.
- Use the group-aware SIGKILL on a framing failure so helpers are reached.
- Validate maxMessageBytes and maxDocumentBytes positive at load alongside the
  other byte caps.
- Fix the location renderer's outside-workspace check to match a `..` segment
  exactly, so an in-workspace path like `..generated/a.ts` stays relative.
- Document the accepted ancestor-directory symlink-swap TOCTOU under the
  trusted-host model (O_NOFOLLOW guards only the final component).
2026-07-16 14:17:21 +08:00
Dudu-0223 0f3f0efd9c fix(lsp): address codex review round 2
Further lifecycle/safety hardening of the local provider:
- Tear the instance down when the initialize handshake is aborted, so a
  poisoned pending `ready` can't make later queries for that workspace re-wait.
- Make the serialized-queue wait itself abortable, so a query blocked behind
  hung earlier work can still observe its own timeout.
- Spawn the server detached and signal the whole process group on teardown, so
  helper processes (e.g. tsserver) can't outlive dispose().
- Open the source with O_NOFOLLOW and cap the read at maxDocumentBytes+1, closing
  the symlink-swap and concurrent-grow windows the fd-based read left open.
- Honor an already-aborted signal before any host I/O or startup.
- Validate maxStderrBytes positive at load; surface the retained stderr tail in
  the "language server exited" error so a fatal startup diagnostic is visible.
2026-07-16 13:34:37 +08:00
Dudu-0223 8e8f90e235 fix(lsp): address codex review round 1
Lifecycle and safety fixes from the external review:
- Observe abort while awaiting the initialize handshake, so a server that never
  replies can't defeat the tool-timeout signal.
- On an aborted request the server won't cancel, tear the instance down after a
  bounded grace instead of releasing the serialized queue with work still live
  (prevents overlapping document lifecycles).
- Re-check provider disposal after the canonicalize/read awaits so a query can't
  spawn an unowned server after disposeAll().
- Read the source through one open handle (stat + read on the same fd) to close
  the realpath-vs-read TOCTOU; decode with a fatal UTF-8 decoder so a legitimate
  U+FFFD is not misclassified as invalid.
- Validate and read the source BEFORE spawning a server (pre-start rejection).
- Require an explicit openClose for option-form textDocumentSync.
- Reject nonpositive teardown budgets and non-executable absolute commands at
  load; surface unsupported operations as structured LSP_UNSUPPORTED_OPERATION.
- Retain the stderr tail (fatal diagnostics land at exit), not the prefix.
- Catalog the seam vocabulary in docs/core-data-structures/lsp.md.
2026-07-16 13:11:07 +08:00
Dudu-0223 575feaddfa docs(lsp): regenerate config catalog for optional lsp-local config fields 2026-07-16 12:08:06 +08:00
Dudu-0223 d0029d8d60 feat(lsp): LSP capability seam, generic stdio provider, and lsp tool
Implements the LSP capability seam RFC as three packages: dsh-lsp (the
ctx.lsp interface — provider registry by branded id + exclusive extension
mapping, per-query order-independent selection, closed request/result
vocabulary, LspError taxonomy), dsh-lsp-local (a generic stdio language-server
provider — Content-Length JSON-RPC framing, per-(provider, workspace) process
single-flight, transient didOpen/query/didClose, an abortable per-instance
queue, UTF-16 negotiation, host-namespace source reads outside ctx.fs, and
bounded shutdown/kill teardown), and dsh-tool-lsp (the model-facing lsp tool —
four operations, one-based UTF-16 cursor conversion, workspace-grouped location
rendering, hover capping, a required session workspace, and a timeout budget).

Why: an agent had text search and file reads but no way to identify a program
symbol — follow an alias, connect an interface to implementations, or read an
inferred type — before changing code. Splitting model contract, seam, and local
subprocess behavior keeps the four semantic queries stable across future remote
or sandbox-native providers without leaking a JSON-RPC escape hatch.
2026-07-16 12:05:35 +08:00
Dudu-0223 66b2cfc609 docs(rfc): propose LSP capability seam 2026-07-15 17:34:24 +08:00
TianleLin b4ec4060a7 Merge pull request #202 from deepseek-harness/feat/mcp-client
feat: add MCP client plugin (dsh-mcp-client)
2026-07-15 15:53:27 +08:00
Tianyi Cui e7bae3aa3b Merge branch 'master' into feat/mcp-client 2026-07-15 15:50:59 +08:00
lintianle b9eeb2162c Fix lockfile broken by hand-resolved merge conflict
The web-editor conflict resolution renamed the cordis snapshot keys to
rc.7 but left the mcp-client importer pointing at the deleted
cordis@4.0.0-rc.6(...rc.4) key, so every CI lane failed at
'pnpm install --frozen-lockfile' with ERR_PNPM_LOCKFILE_MISSING_DEPENDENCY.

Align the mcp-client cordis range with the repo-wide ^4.0.0-rc.7 sweep
from master and re-resolve the lockfile with pnpm.
2026-07-15 15:40:02 +08:00
Tianyi Cui 9cd31c7259 Merge pull request #300 from deepseek-harness/codex/simp-drop-assembled-section-order
refactor: drop assembled section order echo
2026-07-15 15:36:57 +08:00
Tianyi Cui dbae83d573 Merge remote-tracking branch 'origin/master' into codex/simp-drop-assembled-section-order 2026-07-15 15:31:29 +08:00
Tianyi Cui 6c8e856552 Merge pull request #290 from deepseek-harness/codex/simp-prune-code-runtime-surface
refactor: prune code runtime surface
2026-07-15 15:31:09 +08:00
TianleLin 905b8ead9f Merge branch 'master' into feat/mcp-client 2026-07-15 15:22:32 +08:00
Tianyi Cui 0239ac3752 Merge remote-tracking branch 'origin/master' into codex/simp-drop-assembled-section-order 2026-07-15 14:05:54 +08:00
Tianyi Cui 627738c4ed Merge remote-tracking branch 'origin/master' into codex/simp-prune-code-runtime-surface 2026-07-15 13:58:44 +08:00
Tianyi Cui 457e3b827f Merge pull request #297 from deepseek-harness/codex/simp-prune-web-seam-fields
refactor: prune unused web seam fields
2026-07-15 13:32:12 +08:00
Tianyi Cui 96851da571 Merge remote-tracking branch 'origin/master' into codex/simp-prune-web-seam-fields
# Conflicts:
#	docs/rfc/INDEX.md
2026-07-15 13:28:40 +08:00
Tianyi Cui fc3b6255e7 Merge pull request #292 from deepseek-harness/codex/simp-prune-bash-surface
refactor: prune bash implementation surface
2026-07-15 13:26:57 +08:00
Tianyi Cui fe2d61198f Merge remote-tracking branch 'origin/master' into codex/simp-prune-bash-surface 2026-07-15 13:23:16 +08:00
Tianyi Cui e6edee1d54 Merge remote-tracking branch 'origin/master' into codex/simp-drop-assembled-section-order 2026-07-15 13:21:06 +08:00
Tianyi Cui 38ea10eee0 Merge remote-tracking branch 'origin/master' into codex/simp-prune-code-runtime-surface 2026-07-15 13:20:08 +08:00
Tianyi Cui 7e03ecc937 Merge pull request #289 from deepseek-harness/codex/simp-prune-tools-prompt-surface
refactor: prune core tool and prompt surface
2026-07-15 13:19:25 +08:00
Tianyi Cui 3eb8c15b36 Merge remote-tracking branch 'origin/master' into codex/simp-prune-tools-prompt-surface 2026-07-15 13:14:56 +08:00
Tianyi Cui 7938c4201e Merge pull request #304 from deepseek-harness/refactor/agent-leaf-dependencies
refactor: add independent stdio interface - not std-agent allinone
2026-07-15 13:12:44 +08:00
Tianyi Cui eccaf2e2f7 Merge remote-tracking branch 'origin/master' into codex/simp-prune-tools-prompt-surface 2026-07-15 13:10:16 +08:00
imccyu 8aa4c8f660 Merge branch 'master' into refactor/agent-leaf-dependencies 2026-07-15 13:10:14 +08:00
Tianyi Cui 13caeaeeda Merge pull request #302 from deepseek-harness/codex/simp-share-loader-smoke-harness
refactor: share loader smoke harness
2026-07-15 13:09:41 +08:00
imccyu 517964fe84 Merge branch 'master' into refactor/agent-leaf-dependencies 2026-07-15 13:09:33 +08:00
Tianyi Cui 600af3ca79 chore: reconcile loader smoke lockfile 2026-07-15 13:06:08 +08:00
Tianyi Cui 4d29e8b5d7 Merge remote-tracking branch 'origin/master' into codex/simp-share-loader-smoke-harness 2026-07-15 13:03:53 +08:00
Tianyi Cui b75c9909e5 Merge pull request #299 from deepseek-harness/codex/simp-drop-skill-provider-events
refactor: drop unconsumed skill provider events
2026-07-15 13:03:30 +08:00
Tianyi Cui e16ce4d04e Merge remote-tracking branch 'origin/master' into codex/simp-drop-skill-provider-events 2026-07-15 12:59:17 +08:00
Tianyi Cui 6a0bb33eab Merge pull request #294 from deepseek-harness/codex/simp-prune-workflow-worker-surface
refactor: narrow workflow worker surface
2026-07-15 12:58:58 +08:00
imccyu 4593bf6ed4 Merge remote-tracking branch 'origin/master' into refactor/agent-leaf-dependencies 2026-07-15 12:54:06 +08:00
Tianyi Cui cb682af117 Merge remote-tracking branch 'origin/master' into codex/simp-prune-workflow-worker-surface 2026-07-15 12:53:29 +08:00
Tianyi Cui 60a3137fc2 Merge pull request #291 from deepseek-harness/codex/simp-hide-fs-internals
refactor: hide filesystem implementation helpers
2026-07-15 12:53:06 +08:00
imccyu e8c31e054d fix: pnpm dep after merge 2026-07-15 12:53:01 +08:00
Tianyi Cui 1c6034fa25 Merge remote-tracking branch 'origin/master' into codex/simp-hide-fs-internals 2026-07-15 12:42:58 +08:00
Tianyi Cui e6d762062f Merge branch 'master' into refactor/agent-leaf-dependencies 2026-07-15 12:36:53 +08:00
Tianyi Cui 07b2257339 Merge pull request #319 from deepseek-harness/worktree-update-cordis-vendor
feat(vendor): update cordis vendor
2026-07-15 12:34:48 +08:00
imccyu 7fc11d685a fix: boot use internal loader and fix path resolve 2026-07-15 12:04:31 +08:00
Tianyi Cui ac820b68a6 Merge branch 'master' into feat/mcp-client 2026-07-15 11:35:45 +08:00
imccyu 33474159e9 docs: add node-addon-internal-loader README 2026-07-15 11:33:23 +08:00
imccyu 52264d87ee fix: test 2026-07-15 11:31:55 +08:00
imccyu 31f4441fd4 pkg: update vendor dep 2026-07-15 11:28:45 +08:00
imccyu 8e892095a1 fix: readme and dep 2026-07-15 11:20:48 +08:00