Commit Graph
9203 Commits
Author SHA1 Message Date
imccyu c9997311cf Merge remote-tracking branch 'origin/master' into mergebot/pr998
# Conflicts:
#	packages/client/ui-command/src/client/PopupSelectView.tsx
#	packages/client/ui-conversation/README.i18n.yaml
#	packages/client/ui-conversation/src/client/apply.ts
#	packages/client/ui-conversation/src/client/contract/slots.ts
#	packages/client/ui-conversation/src/client/skeleton/InputBar.tsx
#	packages/client/ui-conversation/src/client/skeleton/PermissionSelect.tsx
#	packages/client/ui-conversation/tests/input-bar.spec.tsx
#	packages/client/ui-conversation/tests/input-matrix.spec.tsx
#	packages/client/ui-conversation/tests/input-scenarios.spec.tsx
#	packages/client/ui-conversation/tests/skeleton.spec.tsx
#	packages/client/ui-primitives/src/Modal.tsx
#	packages/client/ui-primitives/tests/atoms.spec.tsx
2026-07-31 03:14:44 +08:00
imccyu 4957c01264 test(web): refresh goldens for the unified tool-row expand after the locale merge 2026-07-31 03:03:34 +08:00
imccyu 77567b22a1 test: complete telemetry loader composition 2026-07-31 03:02:45 +08:00
imccyu 975cc88e45 docs: refresh client module service catalog 2026-07-31 03:02:45 +08:00
imccyu 890e6daa22 test: normalize client module fixture paths 2026-07-31 03:02:45 +08:00
imccyu 296cb1c35f fix: app-boot report plugin error detail 2026-07-31 03:02:45 +08:00
imccyu 4517aa349c fix: client module loader report package resolve info 2026-07-31 03:02:45 +08:00
imccyu 1351565681 Merge pull request #1023 from deepseek-harness/worktree-optgate
ci: run coverage-exempt heavy suites uninstrumented in parallel
2026-07-31 03:01:16 +08:00
imccyu 810b45a377 Merge remote-tracking branch 'origin/master' into mergebot/pr1008
# Conflicts:
#	apps/web/tests/snapshots/cordis-tool-round/ui.expected.md
#	apps/web/tests/snapshots/fresh-round-trip/ui.expected.md
#	apps/web/tests/snapshots/steering/settled.expected.md
#	packages/client/ui-conversation/src/client/chat/ChatView.tsx
#	packages/client/ui-conversation/src/client/chat/GenericToolCard.tsx
#	packages/client/ui-conversation/src/client/chat/ToolRow.tsx
#	packages/client/ui-conversation/src/client/contract/terminal-card-model.ts
#	packages/client/ui-conversation/src/client/skeleton/DetailsPanel.tsx
#	packages/client/ui-conversation/src/client/toolviews/ask-question-row.tsx
#	packages/client/ui-conversation/src/client/toolviews/bash-sample.tsx
#	packages/client/ui-conversation/src/client/toolviews/todo-row.tsx
#	packages/client/ui-conversation/tests/chat-tool-row.spec.tsx
#	packages/client/ui-conversation/tests/terminal-card.spec.tsx
#	packages/client/ui-trajectory/tests/client-bundle.spec.ts
2026-07-31 03:00:08 +08:00
imccyu ea6eb85162 fix(ci): review follow-ups for the coverage lane split
- Split DSH_COVERAGE_MAX_WORKERS between the two parallel gates
  (instrumented gets ~2/3, exempt gets ~1/3, both at least 1) so the
  lane never exceeds the budget the failover pool's 8 x 6-instance
  bound assumes; a budget of 1 pairs with DSH_GATE_CONCURRENCY=1 on
  the serial reference lanes, which already prevents gate overlap.
- Fail loud on a set-but-not-'1' DSH_COVERAGE_EXEMPT_HEAVY value in
  vitest.config.ts instead of silently ignoring it.
- Add coverage-exempt.spec.ts: each roster entry's filter and exclude
  must select the same non-empty spec set and entries must not
  overlap, so a renamed suite breaks the gate instead of silently
  returning to the instrumented run with a stale roster.
2026-07-31 02:55:37 +08:00
imccyu c368a89dc1 doc: record the coverage-exempt heavy suites decision
Agent Note (both languages, pairing recorded): what is exempted, the
per-entry reconciliation showing no threshold input changes, the
membership contract, and why the per-file 100% thresholds police the
roster automatically.
2026-07-31 02:55:37 +08:00
imccyu e9ed7193d8 ci: run coverage-exempt heavy suites uninstrumented in parallel
The coverage lane's wall clock was pinned by a few compiler- and
subprocess-bound suites whose v8 instrumentation tax is a multiple of
their runtime while contributing nothing the per-file thresholds need:
typert generator fixtures (whole-workspace compiler analysis; its src is
threshold-excluded) and three scripts/ child-process fixture suites
(scripts/ sources are never coverage-measured; in-process imports are
covered by their owning package tests).

Split ci-coverage into two parallel gates: the instrumented run sets
DSH_COVERAGE_EXEMPT_HEAVY=1 and vitest.config.ts drops the exempt suites
from both projects (CLI --exclude cannot reach per-project include
resolution); a second uninstrumented gate runs exactly those suites, so
the aggregate still executes every test. Membership contract and the
filter/exclude pairs live in scripts/coverage-exempt.ts.

Local 6-worker A/B: instrumented gate 900s -> 260s wall; exempt gate
262s wall runs beside it, so the lane converges near the slower of the
two (~4.4min vs ~7min single-gate). DSH_GATE_CONCURRENCY now has two
schedulable gates in this lane.
2026-07-31 02:55:37 +08:00
imccyu 7730ffad4e test(web): refresh plan-review and seeded-history goldens after master merge 2026-07-31 02:45:22 +08:00
imccyu 72a7307826 chore: regenerate module graph and refresh composer goldens after master merge 2026-07-31 02:28:43 +08:00
imccyu 8a3b47ae5e Merge pull request #988 from deepseek-harness/worktree-locale
feat(client): localize the remaining client surfaces on the typed locale seat
2026-07-31 02:23:33 +08:00
imccyu 8933d63143 test(web): align e2e anchors and goldens with the unified tool-row expand 2026-07-31 02:16:28 +08:00
imccyu 119cc05577 fix: docs/static 2026-07-31 02:13:53 +08:00
imccyu d752405ad1 feat: locale update all 2026-07-31 02:13:53 +08:00
imccyu 1e10966ef6 wip
fix: docs
2026-07-31 02:13:53 +08:00
Tianyi Cui 085383b145 Merge pull request #1006 from deepseek-harness/worktree/deepseek-max-tokens-defaults
feat(llm-deepseek): configure max tokens and 1M context defaults
2026-07-31 02:05:58 +08:00
imccyu 2e034bbbd3 Merge remote-tracking branch 'origin/master' into mergebot/pr711
# Conflicts:
#	apps/cli/README.i18n.yaml
#	docs/module-graph.md
#	packages/client/connection/README.i18n.yaml
#	packages/client/runtime/README.i18n.yaml
#	packages/host/apiproxy/README.i18n.yaml
#	packages/host/apiproxy/src/api-proxy.ts
2026-07-31 02:02:47 +08:00
imccyu 4e7e99d748 Merge remote-tracking branch 'origin/master' into mergebot/pr1005
# Conflicts:
#	packages/client/ui-conversation/README.i18n.yaml
2026-07-31 01:58:09 +08:00
Tianyi Cui 023a9aee9d Merge origin/master into worktree/pr1006-merge-20260731 2026-07-31 01:56:19 +08:00
Tianyi Cui 464a57d3ca Merge commit 'refs/codex/pr1006/master' into worktree/pr1006-merge-20260731
# Conflicts:
#	docs/architecture.i18n.yaml
#	docs/config-catalog.md
#	docs/cordis-catalog/services.md
#	docs/core-data-structures/core.i18n.yaml
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
#	examples/headless-agent/cordis.yml
#	packages/cordis/tool-cordis/src/api-catalog.ts
#	packages/llm/llm-deepseek/README.i18n.yaml
#	packages/llm/llm-deepseek/README.md
#	packages/llm/llm-deepseek/README.zh.md
#	packages/llm/llm-deepseek/src/adapter.ts
#	packages/llm/llm-deepseek/src/index.ts
#	packages/llm/llm-deepseek/tests/adapter.spec.ts
#	packages/llm/llm/README.i18n.yaml
#	packages/llm/llm/README.md
#	packages/llm/llm/README.zh.md
#	packages/subagent/subagent-dsh-sdk/README.i18n.yaml
#	packages/ui/jsonrpc/README.i18n.yaml
2026-07-31 01:55:19 +08:00
imccyu 47dafc28bc Merge pull request #957 from deepseek-harness/worktree-guiopentelemetry
Wire session telemetry (OTel) into the dsh web composition
2026-07-31 01:49:38 +08:00
07akioni c61a05ca5f Merge pull request #994 from deepseek-harness/fix/turn-actions
feat(web): add favicon and update IconActions behavior
2026-07-31 01:40:20 +08:00
imccyu 9adee1eeb1 fix: lint 2026-07-31 01:38:34 +08:00
fz ed49f1d985 fix(compact): use English checkpoints 2026-07-31 01:36:20 +08:00
imccyu d802364651 feat(cli): move the telemetry row into the shared base — every surface reports
The row moves from web.cordis.yml to base.cordis.yml, so the TUI reports
too (its exit paths already drain: disposeRootAndExit on normal exit, root
dispose before the /resume execve). The TUI launcher applies the same
resolveTelemetryPatch opt-out, judged against the tree actually booting via
configHasTelemetryRow so a --config-replace tree without the row is not
failed by a switch with nothing to disable. The TUI keyless smoke disables
telemetry in its child env; README (en/zh) and the Agent Note pair updated
to the every-surface stance.
2026-07-31 01:34:43 +08:00
imccyu faaed56719 fix: node-addon bump version 2026-07-31 01:34:43 +08:00
imccyu 06d3bdfd20 docs: align bilingual link targets for the telemetry note pair
The pairing gate requires both sides of a bilingual pair to link the same
target; point the zh side's cross-references at the English canonical files
and re-record both i18n pairings.
2026-07-31 01:34:42 +08:00
imccyu bd1c69149d fix(web): review round 1 — loud opt-out, headless drain, scaffold isolation, docs
- resolveTelemetryPatch: extracted pure switch resolution (unit-tested);
  fails loud when DSH_TELEMETRY_DISABLED is set but the row is absent, and
  documents that ANY non-empty value (including '0'/'false') disables.
- runHeadless: SIGINT/SIGTERM now dispose the tree before exit so the
  telemetry tail and shutdown marker drain (Node's default signal exit
  skips disposal).
- web.cordis.yml: explicit maxQueueSize beside maxExportBatchSize (the
  single-batch drain invariant no longer leans on an SDK default), comment
  covers exportTimeoutMillis's role and links the Agent Note.
- apps/web scaffold: disable telemetry-otel — fixture sessions must never
  leave the process.
- apps/cli README (en/zh + pairing): document the default endpoint, both
  env seams, and the no-redaction disclosure.
2026-07-31 01:34:42 +08:00
imccyu b38e1aa062 docs: Agent Note for the default web telemetry mount
Pins the deployment rulings: default-on with the production endpoint,
DSH_TELEMETRY_OTLP_URL / DSH_TELEMETRY_DISABLED env seams, 10s cadence,
the ~1s exit-drain parameter set, CI isolation, and the explicit
follow-ups (redaction, identity resource, TUI adoption, metrics).
2026-07-31 01:34:41 +08:00
imccyu ff55fe6997 fix: ci 2026-07-31 01:34:41 +08:00
imccyu 7f420ef6b6 ci: disable session telemetry in all GitHub workflows
apps/cli/cordis.yml now bakes in the production OTLP endpoint; CI boots of
the web composition (e2e, snapshots, built smokes) must not stream test
sessions there. DSH_TELEMETRY_DISABLED=1 at the workflow level disables
the telemetry row before its load-time url validation; the telemetry e2e
still runs — it overrides the variable to empty for its child process and
points DSH_TELEMETRY_OTLP_URL at its in-test collector.
2026-07-31 01:34:41 +08:00
imccyu f0b96359cc test(web): keyless e2e — OTLP collector receives the session ledger
Boot the real dsh web tree against an in-test OTLP/HTTP collector and a
mock LLM server, drive one turn over /api, then SIGINT. Asserts the wire:
OTLP JSON structure and resource identity, both instrumentation scopes,
ledger event coverage in seq order, prompt fidelity in the exported body,
the first-of-step chunk projection, and the ops shutdown marker arriving
through the exit drain.
2026-07-31 01:34:41 +08:00
imccyu 91478443c2 feat(web): wire session-telemetry-otel into the dsh web composition
Mount the existing telemetry seam + OTel logs backend in the web/headless
config tree so every session-log event streams to an OTLP/HTTP collector:

- telemetry-otel row: url defaults to the standard local OTLP endpoint,
  DSH_TELEMETRY_OTLP_URL overrides; 10s batch cadence; exporter/processor
  values bound the shutdown drain to ~1s against an unreachable collector
  (timeoutMillis doubles as the retry deadline, single-batch drain).
- DSH_TELEMETRY_DISABLED opt-out: AppCLIEntry patches the row disabled
  before boot (config alone cannot disable a row, and exporter.url
  validation is load-time fail-loud).
2026-07-31 01:34:40 +08:00
Hypatia May 0da7f17b7a Merge invariant readiness fix from Web transcript 2026-07-31 01:33:25 +08:00
Tianyi Cui a9e2489db8 fix(llm): keep request generations coherent 2026-07-31 01:30:29 +08:00
Tianyi Cui cc119e39a6 Merge master into fix/turn-actions 2026-07-31 01:29:03 +08:00
Hypatia May a4747f43bd Probe invariant readiness on raw fibers 2026-07-31 01:28:34 +08:00
ZiyaZhang 44bd19056c docs: close the remaining silent-omission paths in the notices generator
Derive the manifest set from each pnpm-workspace.yaml members list, so a
new member area is read when declared. Locate Python requirement arrays
by TOML table and scan them quote-aware, so author-named dependency
groups and extras-bearing requirements are no longer dropped. Search the
nested Landlock store for metadata, reject a non-permissive runtime
license outright, and omit the dev-tooling sentence when it has no
subject.
2026-07-30 10:28:16 -07:00
imccyu ecbd8babc1 Merge remote-tracking branch 'origin/master' into mergebot/pr711
# Conflicts:
#	apps/cli/README.i18n.yaml
#	apps/cli/README.md
#	apps/cli/README.zh.md
#	apps/cli/cordis.yml
#	apps/cli/package.json
#	docs/config-catalog.md
#	packages/client/runtime/README.i18n.yaml
#	packages/client/runtime/src/client/contract/sessions.ts
#	packages/client/test-runtime/src/sessions.ts
#	packages/client/ui-workspace/README.i18n.yaml
#	packages/client/ui-workspace/README.md
#	packages/client/ui-workspace/README.zh.md
#	packages/client/ui-workspace/src/client/WorkspaceBrowser.tsx
#	packages/client/ui-workspace/src/client/tree.ts
#	packages/client/ui-workspace/tests/apply.spec.ts
#	packages/client/ui-workspace/tests/tree.spec.ts
#	packages/host/apiproxy/README.i18n.yaml
#	packages/host/apiproxy/src/api-proxy.ts
#	packages/host/apiproxy/src/api/index.ts
#	packages/host/apiproxy/tests/client-handler.spec.ts
#	packages/host/apiproxy/tests/rpc-schemas.spec.ts
#	pnpm-lock.yaml
2026-07-31 01:28:15 +08:00
Tianyi Cui 145a5eb9da Merge master into fix/turn-actions 2026-07-31 01:27:56 +08:00
Tianyi Cui afb05b4049 fix(settings-local): never steal writer locks 2026-07-31 01:27:46 +08:00
Tianyi Cui f9f8148e79 refactor(credentials,llm): remove speculative mutation and route lifecycle 2026-07-31 01:27:46 +08:00
Hypatia May 9853e74d0e Close invariant readiness validation race 2026-07-31 01:18:10 +08:00
Yichen Jiang a36721fa55 Merge pull request #950 from deepseek-harness/worktree/onboarding-deepseek-config
feat(GUI): guide DeepSeek setup during onboarding
2026-07-31 01:18:04 +08:00
Yichen Jiang cb90e36791 Merge pull request #939 from deepseek-harness/worktree-llm-web-config
feat: web configuration plane — settings/credentials/llm wire domains and the Models provider page
2026-07-31 01:17:54 +08:00
imccyu 5d29a8aff3 Merge remote-tracking branch 'origin/master' into mergebot/pr1008
# Conflicts:
#	examples/web-cordis/cordis.yml
#	packages/client/ui-conversation/src/client/apply.ts
#	packages/client/ui-conversation/src/client/chat/ChatView.tsx
#	packages/client/ui-conversation/src/client/chat/MessageItem.tsx
#	packages/client/ui-conversation/src/client/chat/ToolRow.module.css
#	packages/client/ui-conversation/src/client/chat/ToolRow.tsx
#	packages/client/ui-conversation/src/client/contract/slots.ts
#	packages/client/ui-conversation/tests/chat-branch-tails.spec.tsx
#	packages/client/ui-conversation/tests/chat-view.spec.tsx
2026-07-31 01:16:34 +08:00