Commit Graph
2353 Commits
Author SHA1 Message Date
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 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 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 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
Tianyi Cui 25f9035ecd ci: split remaining one-minute lanes 2026-07-21 21:05:39 +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
Tianyi Cui e0775de689 Merge origin/master into worktree/ci-under-minute 2026-07-21 20:15:19 +08:00
Tianyi Cui f1202d0dd8 ci: enforce bounded build lanes 2026-07-21 20:15:09 +08:00
Tianyi Cui 73ccb67469 Merge remote-tracking branch 'origin/master' into codex/enforce-tool-cancellation 2026-07-21 20:03:47 +08:00
Tianyi Cui 0004b8675f Merge remote-tracking branch 'origin/master' into codex/enforce-tool-cancellation
# 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:03:00 +08:00
Tianyi Cui 21721bf3b1 Merge branch 'master' into fix/compaction-kv-cache-reuse
# Conflicts:
#	packages/compact/compact-basic/src/index.ts
#	packages/compact/compact-basic/src/summarizer.ts
#	packages/compact/compact-basic/tests/compact-basic.spec.ts
2026-07-21 19:45:43 +08:00
Tianyi Cui 72c6696e4f Merge branch 'master' into worktree/routed-model-compaction-policy
# Conflicts:
#	docs/event-producer-consumer.md
2026-07-21 19:23:54 +08:00
Tianyi Cui 39c9bf3ef2 fix(llm-replay): publish recorded model capacity 2026-07-21 18:57:25 +08:00
Tianyi Cui 1cee25fdea fix(tui): resolve context capacity for active model 2026-07-21 18:45:27 +08:00
Tianyi Cui 39eb6e21cd Merge current master into invariant service seam 2026-07-21 18:35:24 +08:00
Tianyi Cui 78f8a3f5d9 Merge branch 'master' into worktree/routed-model-compaction-policy 2026-07-21 18:30:57 +08:00
Tianyi Cui 071fe76755 Merge latest master into invariant service seam 2026-07-21 18:27:46 +08:00
Tianyi Cui 8a93072537 Merge origin/master into worktree/tui-session-controls 2026-07-21 18:12:11 +08:00
Tianyi Cui c9a8c58467 Merge origin/master into lsp 2026-07-21 17:58:46 +08:00
Tianyi Cui 5606a05e91 Merge origin/master into worktree/tui-session-controls 2026-07-21 17:46:47 +08:00
Tianyi Cui 504fbf59f3 fix(invariants): replay histories and pack companions 2026-07-21 17:46:43 +08:00
Yichen Jiang c0d7ef22ec fix(subagent-acp): repair the composition fixture for the merged depth budget
Master landed the tool-subagent depth budget while this branch was in
flight: the numeric default maxDepth now fails the mount against the
ACP provider's depthLimit: false, so the composition fixture must state
maxDepth: 'provider-managed' — the documented opt-out for a provider
whose recursion budget lives in the child harness. The fixture also
moves off the retired stdio-demo REPL onto the current app-boot driver
pattern (runLoaderSmoke + one-shot cli), and the split isDirectory
statements gain the file-not-a-directory case the single-expression
form used to cover implicitly.
2026-07-21 17:14:10 +08:00
Tianyi Cui 744eb99268 Merge branch 'master' into fix/compaction-kv-cache-reuse 2026-07-21 17:03:00 +08:00
Tianyi Cui 35bb623cf4 Merge origin/master into worktree/routed-model-compaction-policy 2026-07-21 16:54:48 +08:00
Yichen Jiang 6fe8cfb5d1 Merge branch 'fix/acp-subagent-cwd' of github.com:deepseek-harness/deepseek-harness into fix/acp-subagent-cwd 2026-07-21 16:53:46 +08:00
Yichen Jiang 822651a2c7 test(subagent-acp): cover inherited cwd through a Loader composition
The inheritance branch ran only under hand-mounted plugin tests, and
the with-key e2e always configures an explicit cwd. Add a test-only
cordis.yml (scripted delegating model + the scripted mock ACP child)
booting the stdio app through the real Loader with cwd omitted: the
child proves it ran in — and was announced — the parent session's
workspace, keylessly.
2026-07-21 16:53:26 +08:00
Yichen Jiang 04117b58bd docs(subagent): align the parent contract with ACP cwd inheritance
SubagentStartRequest.parent, its core-data type-equiv mirror, and the
ACP backend Agent Note still said the out-of-process backend ignores
request.parent — no longer true: with cwd unconfigured it reads exactly
the session header's cwd, and a parent session without one now rejects
at start. State the one-field read at each owning contract, record the
workspace-resolution decision in the Agent Note, and align the README's
accessibility wording with the search-permission guard.
2026-07-21 16:51:49 +08:00
Yichen Jiang fcbbd22af7 fix(subagent-acp): require search permission on the child cwd
statSync().isDirectory() is true for a mode-600 directory, but a
subprocess cwd needs X_OK — spawn would fail EACCES, deferring a
self-contained configuration error past the load/start boundary the
resolution owns. Probe accessSync(X_OK) alongside the type check so
"not an accessible directory" is literally what the guard verifies.
2026-07-21 16:51:32 +08:00
Tianyi Cui 29ef3b5a7e Merge origin/master into fix/acp-subagent-cwd 2026-07-21 16:51:28 +08:00
Tianyi Cui 2477ef415a Merge origin/master into lsp 2026-07-21 16:47:35 +08:00
Tianyi Cui 5261ebab38 fix(compact-basic): fence surface changes only 2026-07-21 16:34:28 +08:00
Tianyi Cui 6475e51825 fix(goal-session): discriminate plugin turn triggers 2026-07-21 16:08:53 +08:00
Turtle e97290ba9e docs(telemetry): state anonymous id as per-harness-home, not per-machine
The consolidated resolver scopes the anonymous id to $DSH_HOME rather
than the machine. Update the module contract, README, and Agent Note to
say per-harness-home explicitly instead of over-claiming a machine-global
identity, and record why DSH_HOME scoping is the intended single-root
meaning rather than a regression.
2026-07-21 15:57:17 +08:00
Tianyi Cui 5d411f9c4e fix(session-title): preserve agent turn outcomes 2026-07-21 15:49:37 +08:00
Tianyi Cui c622a2881d fix(session-title): deduplicate fallback creation 2026-07-21 15:23:27 +08:00
Tianyi Cui 9b048354b8 fix(session-title): enforce framed input and deadline 2026-07-21 15:00:15 +08:00
Yichen Jiang 49a9bca9f6 fix: validate compaction config pairs 2026-07-21 14:49:57 +08:00
Turtle fac3fc090f fix(paths): treat empty DSH_HOME as unset; isolate telemetry env test
Review fixes for #462:
- resolveDshHome now treats an empty or whitespace-only $DSH_HOME as
  unset, so a blank override never resolves the home to cwd via
  resolve(''). Restores the guard telemetry's old resolver carried.
- The default-env telemetry test asserts only that globalConfigDir()
  returns an absolute path, so a machine DSH_HOME without a .dsh suffix
  cannot break it.
2026-07-21 14:43:38 +08:00
Tianyi Cui d9557fa5e0 fix(session-title): serialize provider request writes 2026-07-21 14:39:09 +08:00
Tianyi Cui b3ba4345f5 fix(session-title): respect request and config boundaries 2026-07-21 14:09:17 +08:00
Turtle a0268d2509 fix(compact-basic): replay conversation prefix so summarization reuses KV cache
Automatic compaction fires mid-conversation, right after the loop warmed
the provider's KV cache with the last routed request. The default
summarizer then issued a separate request whose prefix shared nothing
with that warm request — a bespoke summarizer system prompt followed by
the older history flattened to one rendered transcript string — so a
differing first token invalidated the entire cached prefix and every
compaction re-processed the whole replayed history twice.

Move the compaction directive from the FRONT (a fresh system prompt) to
the END (a trailing user message), and replay the last routed request's
own system prompt, tools, message prefix, and shadowed-region messages
verbatim via session.requestHeader() + deriveEventMessage. The auxiliary
call is now a genuine prefix-extension of the warm request, so the
provider reuses the cached tokens up to the trailing instruction.

SummarizationInput carries the replayed prefix instead of a flat string;
the now-unused renderTranscript/renderContentBlocks path is removed with
its spec. Cache reuse is best-effort (head compaction guarantees a hit;
a mid-range compaction or a differently-routed summarizer forgoes it),
correctness is not.
2026-07-21 13:55:22 +08:00
Tianyi Cui bc60b9ffe8 fix(lsp): cancel blocked document opens 2026-07-21 13:52:15 +08:00
Turtle 92e0d0e04f refactor(paths): collapse harness home resolution into one resolver
Delete @deepseek-ai/dsh-home and make dsh-paths the sole owner of the
single-root harness home ($DSH_HOME || ~/.dsh). Migrate tool-bash,
skill-local, and agent-spine-demo off dsh-home, and fold telemetry's
divergent globalConfigDir onto the shared resolver, dropping its second
XDG/APPDATA policy and the deepseek-harness namespace so the anonymous
id lives under the harness home. Add dshHomeDisplay() for symbolic
user-facing paths, replacing workspace-context's bespoke check.
2026-07-21 13:52:00 +08:00
Tianyi Cui 63cb16a540 fix(session-title): honor request lifecycle 2026-07-21 13:37:28 +08:00