Commit Graph

6634 Commits

Author SHA1 Message Date
Turtle
ff126751d8 refactor(cli): keep migrate out of scope 2026-07-29 21:41:51 +08:00
Turtle
d8e4fd3b75 fix(cli): align meta invocation contract 2026-07-29 21:39:38 +08:00
Turtle
7135703a5e fix(gates): scope CLI dependencies to shipped trees 2026-07-29 21:38:03 +08:00
Turtle
adacacaa4f docs(client): point registration at web overlay 2026-07-29 21:37:18 +08:00
Turtle
b7401d064a docs(ui): drop unrelated translation churn 2026-07-29 21:36:07 +08:00
Turtle
0a2ed84665 docs(tui): explain non-strict sibling service lookup 2026-07-29 21:33:58 +08:00
Turtle
a01c1bccd6 fix(docs): parse inserted composition rows 2026-07-29 21:30:51 +08:00
Turtle
b1697ffd29 fix(web): assemble and package the shipped overlay 2026-07-29 21:28:05 +08:00
Turtle
b6552fcf3e Merge remote-tracking branch 'origin/master' into feature/shared-cli-config-foundation
# Conflicts:
#	packages/context/README.i18n.yaml
#	packages/context/README.md
#	packages/context/README.zh.md
2026-07-29 21:24:46 +08:00
Turtle
bddf659111 chore: trigger CI after coverage fix 2026-07-29 21:23:33 +08:00
Turtle
b9fb7ef6d2 test(agent-loop): cover launcher-owned identities 2026-07-29 21:21:58 +08:00
Tianyi Cui
2c536ef1f2 Merge pull request #758 from deepseek-harness/feature/tmux-context
feat(context): add tmux-context plugin injecting the agent's tmux location
2026-07-29 21:20:20 +08:00
Turtle
d2c7aaddc7 fix(rebase): restore consolidated documentation state 2026-07-29 21:16:31 +08:00
Turtle
9970f60969 test: cover overlays and refresh translation snapshot 2026-07-29 21:15:48 +08:00
Turtle
291d6d2772 docs: refresh module graph after query dependency 2026-07-29 21:15:48 +08:00
Turtle
fa1ca61cfd fix(hygiene): remove stale session registry fragment 2026-07-29 21:15:48 +08:00
Turtle
9bbaea45fd docs(cli): explain config overlay modes 2026-07-29 21:15:48 +08:00
Turtle
984830c940 fix(tui): isolate each process query index 2026-07-29 21:15:48 +08:00
Turtle
fdd113ce5e fix(tui): read mounted session query during sibling activation 2026-07-29 21:15:48 +08:00
Turtle
d44fce8a39 fix(cli): keep meta as a fresh-session command 2026-07-29 21:15:48 +08:00
Turtle
857a4941be fix(cli): restore shipped surface capabilities 2026-07-29 21:15:48 +08:00
Turtle
bee0a77aad chore: refresh generated review records 2026-07-29 21:15:48 +08:00
Turtle
33286a0ff5 docs(cordis): remove registry API remnants 2026-07-29 21:15:48 +08:00
Turtle
030b044350 fix(cli): reject leaked config replacement flags 2026-07-29 21:15:48 +08:00
Turtle
ea9315841f refactor(session): exclude live-session registry foundation 2026-07-29 21:15:48 +08:00
Turtle
991c1f14b6 docs: remove retired TUI demo graph row 2026-07-29 21:15:48 +08:00
Turtle
9e3383f727 docs: regenerate catalogs after feature exclusions 2026-07-29 21:15:48 +08:00
Turtle
9e2c3d3093 refactor(cli): exclude tmux context and source guard 2026-07-29 21:15:48 +08:00
Turtle
c1324ee896 fix(cli): preserve overlays without session registration 2026-07-29 21:15:42 +08:00
Turtle
8f2f6ef0ac refactor(cli): exclude live-session registry surface 2026-07-29 21:15:42 +08:00
Turtle
a459a918e2 fix(cli): remove obsolete resolver dependencies 2026-07-29 21:15:42 +08:00
Turtle
98086a88d5 docs(host): update config-tree link pairing 2026-07-29 21:15:42 +08:00
Turtle
571562788d chore: reconcile extracted foundation with current master 2026-07-29 21:15:42 +08:00
Turtle
10ff76de9c fix(cli): declare every plugin the shipped config trees name
The Loader resolves each config row against the composing app, so moving the
TUI composition from examples/ into apps/cli left eleven rows unresolvable from
the built bin: `node apps/cli/lib/bin.js` died at boot with "plugin(s) failed to
load". Source-mode runs hid it, because tsconfig paths resolve the whole
workspace regardless of who declares what.

Also declares `dsh-llm-pi-ai` and `dsh-tmux-context`, which a personal
`~/.dsh/config.yaml` inserts to swap the model adapter. Those previously
resolved only because the config lived under examples/, whose package.json
declares the union of every leaf's plugins.

Caught by running the built bin from a scratch directory, which is how a user
actually starts it.
2026-07-29 21:15:42 +08:00
Turtle
f290a8b851 refactor(cli)!: one shared base config with per-surface overlays
`dsh` shipped two config trees that were 43 rows the same: apps/cli/cordis.yml
composed web as 74 flat rows, while the TUI booted examples/tui-agent/cordis.yml
whose single `@deepseek-ai/dsh-tui-demo` row mounted twelve plugins behind a
twenty-key pass-through Config. Neither file was what its location claimed —
apps/cli hardcoded the "example" as the product default and the "demo" bundle
was the application — and every capability change had to be made twice.

- apps/cli/base.cordis.yml holds the 43 shared rows; tui.cordis.yml and
  web.cordis.yml are patch lists stating only what differs per surface
- overlays apply as SIBLING patch lists at one include level, because include
  patches never cross an include boundary. Precedence: base < surface <
  (--config | personal ~/.dsh/config.yaml) < launcher flag/profile patches
- `--config` now applies an overlay INSTEAD OF the personal one, so a demo or
  test tree never inherits the user's route; new `--config-replace` boots a file
  as the entire tree (the old `--config` behaviour). Both survive /resume
- vendor/include: index each `insert`ed row as it is added so a later patch can
  configure or disable it. Upstream built the id index once before the patch
  loop, leaving every surface-only row — the whole TUI front door — silently
  unpatchable from user config. Logged as local modification 8
- session identity moves to dsh-agent-loop's CONFIGURED_AGENT_IDENTITIES_KEY;
  dsh-tui's MAIN_SESSION_ID_KEY is deleted (only the bundle read it)
- delete examples/tui-agent, examples/cordis-agent, packages/examples/tui-demo;
  TUI tests → apps/cli/tests, cordis e2e → packages/cordis/tool-cordis/tests,
  examples/code-mode survives as an overlay leaf
- `dsh web` gains --config, threaded into AppCLIEntry as an extra overlay

Three latent defects surfaced and are fixed here: the TUI captured the optional
sessionQuery service once at construction and could permanently disable /resume
when it won the mount race; the session-store root silently reverted to a
project-local ./.sessions; --config-replace was dropped by the resume handoff.

Verified by booting each tree through the real Loader (TUI 55 entries, web 75,
zero unsettled) rather than reading YAML. All eight terminal snapshots replay
byte-identically; 14/14 PTY smoke, 112/112 snapshots, 25/25 doc-sync, hygiene
and lint clean.
2026-07-29 21:15:42 +08:00
Turtle
e7c0a5b794 Merge origin/master: web permission sandbox, default pi-ai providers 2026-07-29 21:15:34 +08:00
Turtle
42e3cceb64 feat(paths): add resolveSessionsRoot as the one shared session-store root
Every surface that persists or lists sessions resolves one directory under
the Harness home, so history is shared across working directories instead
of scattered per project.
2026-07-29 21:14:49 +08:00
Tianyi Cui
b7deaf7ee7 Merge commit 'refs/codex/pr758/live-master' into HEAD 2026-07-29 21:11:34 +08:00
imccyu
e10bf246fb Merge pull request #909 from deepseek-harness/fix/tsconfig-paths
fix: add missing client tsconfig path mappings
2026-07-29 21:05:02 +08:00
Tianyi Cui
4926fa18ec Merge commit 'refs/codex/pr758/live-master' into HEAD 2026-07-29 21:01:55 +08:00
imccyu
a93c46c43a Merge branch 'master' into fix/tsconfig-paths 2026-07-29 20:58:57 +08:00
Ziya
6e1c4e4583 Merge pull request #834 from deepseek-harness/fix/translation-brief-uncommitted-pair
fix(i18n): persist uncommitted translation snapshots
2026-07-29 08:58:41 -04:00
Tianyi Cui
b060b6f5f6 Merge commit 'refs/codex/pr758/master' into HEAD
# Conflicts:
#	packages/context/README.i18n.yaml
#	packages/context/README.zh.md
2026-07-29 20:55:09 +08:00
Tianyi Cui
4368c2d40c Merge branch 'master' into fix/translation-brief-uncommitted-pair 2026-07-29 20:54:30 +08:00
imccyu
fe42df2426 Merge branch 'master' into fix/tsconfig-paths 2026-07-29 20:50:08 +08:00
imccyu
14b4689e02 fix: tsconfig.base 2026-07-29 20:42:40 +08:00
Tianyi Cui
77a536855b Merge pull request #894 from deepseek-harness/xjt/readme-proofreading-batch-1
docs(i18n): proofread README translations
2026-07-29 20:30:00 +08:00
xjt
795bdda223 Merge remote-tracking branch 'origin/master' into xjt/readme-proofreading-batch-1
# Conflicts:
#	packages/client/ui-primitives/README.i18n.yaml
#	packages/client/ui-primitives/README.zh.md
2026-07-29 20:21:48 +08:00
xjt
de0348bd9e docs(i18n): standardize reviewed README headings 2026-07-29 20:16:45 +08:00
Chinesezjc
a0534b7b8a Merge pull request #813 from deepseek-harness/feat/web-terminal-card
feat(web): render bash tool output as a terminal card
2026-07-29 19:53:42 +08:00