Commit Graph

2626 Commits

Author SHA1 Message Date
Turtle
45868b940f feat(tui): startup banner iterations — slogans, sweep reveal, then no banner
Squashes three linearized steps (feat/tui-startup, feat/banner-reveal,
feat/remove-banner): the banner experiment converged on removing the
startup banner entirely; later commits restore it borderless and add the
brand gradient.
2026-07-22 14:29:28 +08:00
Turtle
6baa030594 feat(cli): dsh CLI with personal config overlays from ~/.config/dsh 2026-07-22 14:29:28 +08:00
Turtle
a2f17d71ed fix(vendor/include): config hot-reload keeps the last good tree and its patches 2026-07-22 14:29:28 +08:00
Turtle
a409f8b4ba feat(tui): detect terminal color scheme and apply light-optimised palette
Squash of the linearized fix/tui-color-scheme-v2 merge and the follow-up
catalog regeneration. Renders error cause chains at every diagnostic seam
(origin/fetch-failed-diagnostics) and adds color scheme detection with a
light-terminal palette.
2026-07-22 14:29:27 +08:00
Turtle
0c9a4d7c28 Retire the readline front door and the repl-agent example
Delete packages/ui/stdio and examples/repl-agent; rename stdio-demo to
@deepseek-ai/dsh-tui-demo (TUI-only, refuses pipes before Loader boot).
tui-agent owns the coding composition inline; echo-agent and the CI demo
smoke move to the one-shot cli-demo bin, which gains -p/--prompt. The
UI-independent with-key e2es move verbatim to tui-agent. SDK wizard's
'stdio' interface becomes 'tui'. PTY testing stays confined to TUI
surfaces; all other subprocess tests ride pipes.

See .agents/notes/implemented/simplification/2026-07-20-retire-readline-front-door.md
2026-07-22 14:29:27 +08:00
Tianyi Cui
5da343126c fix(windows): restore LSP and TUI coverage 2026-07-22 14:23:44 +08:00
kingwl
b0008546be Merge remote-tracking branch 'origin/master' into feat/plan-mode 2026-07-22 13:57:03 +08:00
Tianyi Cui
6f16715299 test(windows): skip process-group disposal race 2026-07-22 13:37:44 +08:00
Tianyi Cui
cfdc6fcdfb test(windows): skip remaining unstable coverage cases 2026-07-22 13:28:52 +08:00
kingwl
0f96a41096 Merge remote-tracking branch 'origin/master' into feat/plan-mode
Master PR #263 (scoped-layers-store): one conflict in the regenerated
docs/architecture.i18n.yaml pairing record — took master's and re-recorded
the pair over both sides' merged architecture.md/zh.md (the ctx.modes rows
merged cleanly on both).
2026-07-22 13:28:06 +08:00
Tianyi Cui
1ac85eefee Merge remote-tracking branch 'origin/master' into worktree/disable-deepseek-web-search-e2e 2026-07-22 13:11:00 +08:00
Tianyi Cui
4643e0de10 test(windows): make coverage fixtures portable 2026-07-22 13:10:48 +08:00
Tianyi Cui
48395a937c test(web): disable unreliable DeepSeek search smoke 2026-07-22 12:37:42 +08:00
Tianyi Cui
8d6a677a07 Merge remote-tracking branch 'origin/master' into scoped-layers-store
# Conflicts:
#	docs/architecture.md
2026-07-22 12:34:27 +08:00
Tianyi Cui
0180cdecd0 fix(scope): detach drained entry generations 2026-07-22 12:06:42 +08:00
Tianyi Cui
c1f259bd0d Merge branch 'master' into feat/plan-mode 2026-07-22 11:29:58 +08:00
Yichen Jiang
a5302d4d64 Merge remote-tracking branch 'origin/master' into worktree/semantic-session-checkpoints
# Conflicts:
#	packages/session-persistence/session-persistence-jsonl/README.md
2026-07-22 10:54:08 +08:00
Yichen Jiang
742072e15d Merge remote-tracking branch 'origin/master' into worktree/session-reference 2026-07-22 10:40:47 +08:00
Tianyi Cui
6646ef04ac Merge pull request #335 from deepseek-harness/worktree-windows-runtime
feat(windows): extend runtime and test portability
2026-07-22 10:30:32 +08:00
Tianyi Cui
c92c24667d Merge pull request #431 from deepseek-harness/fix/tui-color-scheme-v2
fix(tui): detect terminal color scheme; harden the flaky sandbox probe-timeout test
2026-07-22 10:29:35 +08:00
Yichen Jiang
28b358650b Merge remote-tracking branch 'origin/master' into worktree/semantic-session-checkpoints
# Conflicts:
#	docs/architecture.md
#	docs/event-producer-consumer.md
#	examples/acp-agent/tests/snapshots/cancel-tool-calls/session.jsonl
#	packages/core/agent-loop/README.md
#	packages/core/agent-loop/src/loop.ts
#	packages/core/agent-loop/tests/cancel.spec.ts
2026-07-22 10:29:09 +08:00
Yichen Jiang
951967217a Merge remote-tracking branch 'origin/master' into worktree/session-reference
# Conflicts:
#	docs/capability-seams.md
#	docs/config-catalog.md
#	docs/cordis-catalog/services.md
#	docs/module-graph.md
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
#	packages/cordis/tool-cordis/src/api-catalog.ts
#	packages/ui/acp/README.md
#	packages/ui/acp/package.json
#	packages/ui/acp/tsconfig.json
#	packages/ui/tui/package.json
#	packages/ui/tui/src/index.ts
#	packages/ui/tui/tests/tui.spec.ts
#	packages/ui/tui/tsconfig.json
#	pnpm-lock.yaml
#	python/sdk-runtime/package.json
#	scripts/gen-doc-graphs.ts
#	scripts/type-equiv.manifest.json
2026-07-22 10:21:17 +08:00
kingwl
ac21ae0794 fix(mode): dedupe the boundary flush wrapper and cover its disposed branch
CI caught two gaps in the review-fix commit: the two post-next() flush
listeners were literal clones (jscpd), and the disposed-skip branch inside
them had no covering test. Extract one shared flushAfter wrapper and pin the
skip with a captured-continuation disposal test (a downstream listener
disposes the fiber mid-waterfall; the resumed wrapper appends nothing).
2026-07-22 10:12:09 +08:00
kingwl
7a2dff8b11 fix(mode): address PR #239 review — boundary flush ordering, disposal fence, config validation, TUI plan config
Four ds-review-bot findings:
- examples/tui-agent composed dsh-mode without the now-required
  modes.plan.section, so the TUI leaf failed at Loader startup (the keyless
  smoke only asserts the banner and missed it); graft the same deployment
  plan instructions the ACP leaf carries.
- The prompt-submit and turn-continuation flushes ran before next(), so a
  session/set_mode arriving while a downstream async listener (the shipped
  hooks listeners' shape) awaited applied one request late; both listeners
  now prepend and flush after next(), matching the request-error wrapper,
  with a regression test pinning the ordering.
- An HMR unload during the exit_plan_mode review let a later approval write
  into the disposed service and claim an exit whose flush could never land;
  the execute path now checks the fiber lifetime after the await and fails
  the call (the mode stays plan; the model re-presents).
- resolveConfig accepted empty/untrimmed mode names that list()/ACP then
  advertised while the package invariant rejected their selection,
  desynchronizing the picker; names are validated non-empty and trimmed at
  load, the same shape the invariant enforces.
2026-07-22 09:58:57 +08:00
kingwl
5d04213445 Merge remote-tracking branch 'origin/master' into feat/plan-mode
# Conflicts:
#	docs/architecture.md
#	docs/config-catalog.md
#	docs/module-graph.md
#	examples/acp-agent/tests/goal-snapshots/goal-session/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/advanced-toolchain/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/bash-spill/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/both-mode-turn/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/cancel-tool-calls/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/cancel/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/code-mode-turn/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/code-mode-workspace-context/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/error-finish/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/fs-edit/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/fs-policy-reject/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/fs-read-window/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/fs-read/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/fs-terminal-card/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/fs-write-overwrite/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/fs-write/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/hook-cc-posttool-block/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/hook-cc-posttool-context/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/hook-cc-pretool-ask/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/hook-cc-pretool-deny/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/hook-cc-promptsubmit-context/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/hook-cc-stop-continue/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/hook-codex-posttool-block/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/hook-codex-posttool-context/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/hook-codex-pretool-block/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/hook-codex-promptsubmit-context/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/hook-codex-stop-continue/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/lsp-definition/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/model-switching/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/multi-turn/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/parallel-tool-calls/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/repeat-tool-guard/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/skill-load/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/subagent-depth-two-rejection/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/subagent-fork/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/subagent-mixed/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/subagent-multi/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/subagent-spawn/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/text-turn/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/todo-plan/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/tool-call-turn/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/workflow-run/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/workspace-context/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/workspace-edit/stdout.expected.jsonl
2026-07-22 02:28:47 +08:00
kingwl
f7c289ab1d Merge remote-tracking branch 'origin/master' into feat/plan-mode
Master arrivals re-grafted onto the plan-mode surfaces:
- Package invariant runtime contracts: every package owns ./invariant —
  added the dsh-mode companion (mode/set payload validation: non-empty
  trimmed name), its unit spec, exports/peer wiring, and the mode group in
  the tsconfig invariant paths glob.
- Interception waterfalls gained an AbortSignal parameter
  (agent/prompt-submit, agent/turn-continuation) and ToolExecutionInput.signal
  became required: listeners and test dispatch updated; the exit tool now
  forwards exec.signal unconditionally.
- TUI question dialog: master's position/unanswered header layout kept,
  the plan-review detail block re-grafted between question and answers.
- LSP capability family arrived: lsp tool joins the catalog pin, dsh-lsp
  examples deps beside dsh-mode; lsp-definition snapshot refreshed with
  the mode command and modes advertisement.
- docs/architecture.md and packages/README.md regenerated tables re-grafted
  (ctx.modes row, mode package row) and condensed within word ceilings.
- examples/acp-agent cordis.yml: kept the deployment-owned plan instructions
  (incl. the conversational-agreement sentence) beside master's routed-model
  compaction comment; snapshot expected outputs refreshed keyless and noise
  fixtures restored.
2026-07-22 02:13:39 +08:00
Tianyi Cui
f8008b571d fix(tui): preserve footer truncation after merge 2026-07-21 23:47:14 +08:00
Tianyi Cui
53615c91e7 Merge master into worktree-windows-runtime 2026-07-21 23:39:14 +08:00
Tianyi Cui
1050711e6d Merge origin/master into worktree/ci-under-minute
# Conflicts:
#	packages/support/acp-snapshot/README.md
2026-07-21 23:34:29 +08:00
Tianyi Cui
d710259263 Merge master into fix/tui-color-scheme-v2 2026-07-21 23:21:44 +08:00
Tianyi Cui
3176d232b8 Merge master into codex/session-title 2026-07-21 22:59:41 +08:00
Tianyi Cui
821e9b6bef Merge origin/master into worktree/ci-under-minute 2026-07-21 22:51:07 +08:00
Tianyi Cui
04d7b435d2 docs(scope): record shared scoped-layer decision 2026-07-21 22:24:45 +08:00
Tianyi Cui
e56bcb4d5c refactor(commands): use shared scoped layers 2026-07-21 22:16:06 +08:00
Tianyi Cui
1d209932d6 refactor(scope): migrate tool and prompt layers 2026-07-21 22:14:49 +08:00
Tianyi Cui
57cd9ce2bf Merge master into feat/xdg-single-root-home 2026-07-21 22:14:45 +08:00
Tianyi Cui
3fa5795bf4 test(lsp): synchronize idle server eviction 2026-07-21 22:09:50 +08:00
Tianyi Cui
8351cdbe65 feat(scope): add scoped-layer storage 2026-07-21 22:09:19 +08:00
Yichen Jiang
b964e81c11 Merge remote-tracking branch 'origin/master' into worktree/session-reference
# Conflicts:
#	docs/cordis-catalog/events.md
#	docs/event-producer-consumer.md
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/stdout.expected.jsonl
#	packages/cordis/tool-cordis/src/api-catalog.ts
#	packages/core/agent-loop/src/loop.ts
#	packages/core/agent-loop/tests/contract-regressions.spec.ts
#	packages/core/agent/src/types.ts
#	packages/ui/tui/tests/harness.ts
#	scripts/type-equiv.manifest.json
2026-07-21 21:57:21 +08:00
Tianyi Cui
ba1e34f8fb test(lsp): synchronize closed-stdin fixture 2026-07-21 21:47:38 +08:00
Tianyi Cui
30789a45ee Merge origin/master into worktree/ci-under-minute 2026-07-21 21:29:04 +08:00
Tianyi Cui
af1e40e7c6 Merge master into feat/xdg-single-root-home 2026-07-21 21:20:43 +08:00
Tianyi Cui
3a895ce815 Merge master into codex/session-title 2026-07-21 21:11:32 +08:00
Yichen Jiang
8bc62e1013 Merge remote-tracking branch 'origin/master' into worktree/session-reference
# Conflicts:
#	.agents/notes/implemented/feature/2026-06-18-compaction-capability-seam.md
#	docs/config-catalog.md
#	docs/cordis-catalog/services.md
#	docs/event-producer-consumer.md
#	docs/module-graph.md
#	packages/compact/compact-basic/src/region.ts
#	packages/compact/compact/README.md
#	packages/compact/compact/tests/compact.spec.ts
#	packages/examples/acp-demo/package.json
#	packages/ui/tui/README.md
#	packages/ui/tui/package.json
#	packages/ui/tui/src/index.ts
#	packages/ui/tui/tests/harness.ts
#	packages/ui/tui/tests/tui.spec.ts
2026-07-21 21:10:42 +08:00
Tianyi Cui
25f9035ecd ci: split remaining one-minute lanes 2026-07-21 21:05:39 +08:00
Tianyi Cui
d9eef06051 fix(fs): align symlinked parent traversal 2026-07-21 20:49:14 +08:00
Tianyi Cui
5d2f6da843 Merge remote-tracking branch 'origin/codex/enforce-tool-cancellation' into codex/enforce-tool-cancellation
# Conflicts:
#	packages/core/scope/tests/invariant.spec.ts
#	packages/ui/tui/tests/harness.ts
2026-07-21 20:27:58 +08:00
Tianyi Cui
70e50cd9be Merge commit 'refs/codex/unblock/master-current' into HEAD
# Conflicts:
#	docs/event-producer-consumer.md
#	examples/acp-agent/tests/snapshots/bash-spill/session.jsonl
#	examples/acp-agent/tests/snapshots/escalation-approved/session.jsonl
#	examples/acp-agent/tests/snapshots/escalation-rejected/session.jsonl
#	examples/acp-agent/tests/snapshots/fs-escalation-approved/session.jsonl
#	examples/acp-agent/tests/snapshots/hook-cc-pretool-ask/session.jsonl
#	packages/context/workspace-context/tests/workspace-context.spec.ts
#	packages/core/agent/src/index.ts
#	packages/support/invariants/tests/invariants.spec.ts
#	packages/ui/acp/src/index.ts
#	packages/ui/tui/tests/harness.ts
#	packages/ui/tui/tests/tui.spec.ts
2026-07-21 20:20:53 +08:00
Yichen Jiang
8c6e28cef8 fix(session): simplify reference byte limits 2026-07-21 20:16:18 +08:00
Tianyi Cui
e0775de689 Merge origin/master into worktree/ci-under-minute 2026-07-21 20:15:19 +08:00