_Kerman
b6cf9298e3
refactor(workspace-context): project updates through inbox
2026-07-31 22:43:50 +08:00
kingwl
5e1c4b2b7b
Merge remote-tracking branch 'origin/master' into codex/remove-scoped-bash
...
# Conflicts:
# packages/client/ui-conversation/README.i18n.yaml
2026-07-31 22:41:07 +08:00
Chinesezjc
6cec0ccfc6
Merge remote-tracking branch 'origin/master' into feat/py-types-code-mode
2026-07-31 22:18:13 +08:00
_Kerman
e0988abc74
Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-06-21-bounded-llm-request-recovery.i18n.yaml
# .agents/notes/implemented/feature/2026-06-18-compaction-capability-seam.i18n.yaml
# .agents/notes/implemented/feature/2026-06-18-compaction-capability-seam.md
# .agents/notes/implemented/feature/2026-06-18-compaction-capability-seam.zh.md
# .agents/notes/implemented/feature/2026-07-06-sandbox.i18n.yaml
# .agents/notes/implemented/feature/2026-07-06-sandbox.md
# .agents/notes/implemented/feature/2026-07-06-sandbox.zh.md
# .agents/notes/implemented/feature/2026-07-27-tmux-location-context.i18n.yaml
# .agents/notes/implemented/simplification/2026-06-20-public-agent-stop-surface.i18n.yaml
# .agents/notes/implemented/simplification/2026-07-28-remove-synthetic-log-only-turns.i18n.yaml
# .agents/notes/implemented/simplification/2026-07-30-private-agent-send.i18n.yaml
# docs/architecture.i18n.yaml
# docs/architecture.md
# docs/architecture.zh.md
# docs/config-catalog.md
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/core-data-structures/compaction.i18n.yaml
# docs/core-data-structures/core.i18n.yaml
# docs/core-data-structures/core.md
# docs/core-data-structures/core.zh.md
# docs/core-data-structures/llm-streaming.i18n.yaml
# docs/core-data-structures/llm-streaming.md
# docs/core-data-structures/llm-streaming.zh.md
# docs/core-data-structures/session.i18n.yaml
# docs/event-producer-consumer.md
# docs/module-graph.md
# docs/persistence-catalog.md
# examples/acp-agent/tests/goal-snapshots/goal-session/session.expected.jsonl
# examples/acp-agent/tests/snapshots/advanced-toolchain/session.1.jsonl
# examples/acp-agent/tests/snapshots/advanced-toolchain/session.2.jsonl
# examples/acp-agent/tests/snapshots/advanced-toolchain/session.jsonl
# examples/acp-agent/tests/snapshots/bash-spill/session.jsonl
# examples/acp-agent/tests/snapshots/bash-tool-turn/session.jsonl
# examples/acp-agent/tests/snapshots/both-mode-turn/session.jsonl
# examples/acp-agent/tests/snapshots/cancel-tool-calls/session.jsonl
# examples/acp-agent/tests/snapshots/cancel/session.jsonl
# examples/acp-agent/tests/snapshots/code-mode-turn/session.jsonl
# examples/acp-agent/tests/snapshots/code-mode-workspace-context/session.jsonl
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
# examples/acp-agent/tests/snapshots/empty-response-retry/session.jsonl
# examples/acp-agent/tests/snapshots/error-finish/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-edit/session.jsonl
# examples/acp-agent/tests/snapshots/fs-escalation-approved/session.jsonl
# examples/acp-agent/tests/snapshots/fs-glob-sampling/session.jsonl
# examples/acp-agent/tests/snapshots/fs-policy-reject/session.jsonl
# examples/acp-agent/tests/snapshots/fs-read-window/session.jsonl
# examples/acp-agent/tests/snapshots/fs-read/session.jsonl
# examples/acp-agent/tests/snapshots/fs-write-overwrite/session.jsonl
# examples/acp-agent/tests/snapshots/fs-write/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-invalid-matcher/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-posttool-block/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-posttool-context/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-pretool-ask/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-pretool-deny/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-promptsubmit-context/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-stop-continue/session.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-invalid-matcher/session.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-posttool-block/session.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-posttool-context/session.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-pretool-block/session.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-promptsubmit-context/session.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-stop-continue/session.jsonl
# examples/acp-agent/tests/snapshots/lsp-definition/session.jsonl
# examples/acp-agent/tests/snapshots/multi-turn/session.jsonl
# examples/acp-agent/tests/snapshots/packed-chunks/session.jsonl
# examples/acp-agent/tests/snapshots/parallel-tool-calls/session.jsonl
# examples/acp-agent/tests/snapshots/pty-tools/session.jsonl
# examples/acp-agent/tests/snapshots/repeat-tool-guard/session.jsonl
# examples/acp-agent/tests/snapshots/session-query-spill/session.jsonl
# examples/acp-agent/tests/snapshots/session-sandbox-root/session.jsonl
# examples/acp-agent/tests/snapshots/session-title-after-turn/session.jsonl
# examples/acp-agent/tests/snapshots/skill-load/session.jsonl
# examples/acp-agent/tests/snapshots/subagent-depth-two-rejection/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-depth-two-rejection/session.2.jsonl
# examples/acp-agent/tests/snapshots/subagent-depth-two-rejection/session.jsonl
# examples/acp-agent/tests/snapshots/subagent-fork/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-fork/session.jsonl
# examples/acp-agent/tests/snapshots/subagent-mixed/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-mixed/session.2.jsonl
# examples/acp-agent/tests/snapshots/subagent-mixed/session.jsonl
# examples/acp-agent/tests/snapshots/subagent-multi/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-multi/session.2.jsonl
# examples/acp-agent/tests/snapshots/subagent-multi/session.jsonl
# examples/acp-agent/tests/snapshots/subagent-spawn/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-spawn/session.jsonl
# examples/acp-agent/tests/snapshots/text-turn/session.jsonl
# examples/acp-agent/tests/snapshots/todo-write/session.jsonl
# examples/acp-agent/tests/snapshots/tool-call-turn/session.jsonl
# examples/acp-agent/tests/snapshots/web-fetch/session.jsonl
# examples/acp-agent/tests/snapshots/workflow-run/session.1.jsonl
# examples/acp-agent/tests/snapshots/workflow-run/session.jsonl
# examples/acp-agent/tests/snapshots/workspace-context/session.jsonl
# examples/acp-agent/tests/snapshots/workspace-edit/session.jsonl
# examples/headless-agent/tests/semantic-checkpoint-snapshots/tool-outcome-unknown/session.expected.jsonl
# examples/headless-agent/tests/snapshots/advanced-toolchain/session.1.jsonl
# examples/headless-agent/tests/snapshots/advanced-toolchain/session.2.jsonl
# examples/headless-agent/tests/snapshots/advanced-toolchain/session.jsonl
# examples/headless-agent/tests/snapshots/advanced-toolchain/stream-json.expected.jsonl
# examples/headless-agent/tests/snapshots/goal-tools/stream-json.expected.jsonl
# examples/headless-agent/tests/snapshots/missing-credential/stream-json.expected.jsonl
# examples/headless-agent/tests/snapshots/provider-retry/stream-json.expected.jsonl
# examples/headless-agent/tests/snapshots/pty-tools/session.jsonl
# examples/headless-agent/tests/snapshots/pty-tools/stream-json.expected.jsonl
# examples/headless-agent/tests/snapshots/ralph-loop/stream-json.expected.jsonl
# examples/headless-agent/tests/subagent-inheritance-snapshots/parent-override/child.expected.jsonl
# examples/headless-agent/tests/subagent-inheritance-snapshots/parent-override/parent.expected.jsonl
# examples/jsonrpc-agent/tests/snapshots/bash-tool/notifications.expected.jsonl
# examples/jsonrpc-agent/tests/snapshots/bash-tool/session.jsonl
# examples/jsonrpc-agent/tests/snapshots/persistent-tools/notifications.expected.jsonl
# examples/jsonrpc-agent/tests/snapshots/persistent-tools/session.jsonl
# examples/jsonrpc-agent/tests/snapshots/subagent-spawn/notifications.expected.jsonl
# examples/jsonrpc-agent/tests/snapshots/subagent-spawn/session.1.jsonl
# examples/jsonrpc-agent/tests/snapshots/subagent-spawn/session.jsonl
# examples/jsonrpc-agent/tests/snapshots/text-turn/notifications.expected.jsonl
# examples/jsonrpc-agent/tests/snapshots/text-turn/session.jsonl
# packages/client/runtime/README.i18n.yaml
# packages/client/runtime/src/client/sessions/request-inspection.ts
# packages/compact/compact-basic/README.i18n.yaml
# packages/compact/compact-basic/README.md
# packages/compact/compact-basic/README.zh.md
# packages/compact/compact-basic/src/index.ts
# packages/context/time-context/tests/time-context.spec.ts
# packages/context/tmux-context/README.i18n.yaml
# packages/context/tmux-context/tests/tmux-context.spec.ts
# packages/context/workspace-context/tests/workspace-context.spec.ts
# packages/cordis/tool-cordis/src/api-catalog.ts
# packages/core/agent-loop/README.i18n.yaml
# packages/core/agent-loop/README.md
# packages/core/agent-loop/README.zh.md
# packages/core/agent-loop/src/agent.ts
# packages/core/agent/README.i18n.yaml
# packages/core/agent/README.md
# packages/core/agent/README.zh.md
# packages/core/agent/src/types.ts
# packages/core/session/README.i18n.yaml
# packages/core/session/README.md
# packages/core/session/README.zh.md
# packages/fs/tool-str-replace-editor/tests/tools.spec.ts
# packages/goal/command-goal/tests/command-goal.spec.ts
# packages/goal/goal/tests/goal.spec.ts
# packages/host/apiproxy/README.i18n.yaml
# packages/host/apiproxy/README.md
# packages/host/apiproxy/README.zh.md
# packages/host/apiproxy/src/api/index.ts
# packages/host/apiproxy/tests/api-proxy-workspace.spec.ts
# packages/llm/llm/README.i18n.yaml
# packages/llm/llm/README.md
# packages/llm/llm/README.zh.md
# packages/llm/llm/src/index.ts
# packages/pty/pty-local/tests/index.spec.ts
# packages/pty/pty-local/tests/local.spec.ts
# packages/pty/pty/tests/service.spec.ts
# packages/pty/tool-bash-persistent/tests/loader-composition.spec.ts
# packages/pty/tool-bash-persistent/tests/tools.spec.ts
# packages/pty/tool-pty/tests/loader-composition.spec.ts
# packages/pty/tool-pty/tests/tools.spec.ts
# packages/session-persistence/session-checkpoint-policy/tests/crash-recovery.e2e.ts
# packages/skill/tool-skill/tests/tool-skill.spec.ts
# packages/tasks/tasks-local/tests/tasks.spec.ts
# packages/ui/tui/README.i18n.yaml
# packages/ui/tui/tests/tui.spec.ts
# packages/ui/user-approval/src/index.ts
# packages/ui/user-approval/tests/approval.spec.ts
2026-07-31 22:16:40 +08:00
Turtle
54e541d33f
fix(app-boot): drop the unreachable timer guard on the fail-loud release path
...
The timeout promise's executor runs synchronously while the race is
constructed, so the timer is always assigned; the undefined check was a
dead branch the per-file coverage gate rejected.
2026-07-31 22:14:43 +08:00
Turtle
998f9c931d
Merge remote-tracking branch 'origin/master' into fix/tui-terminal-restore-on-boot-failure
2026-07-31 22:11:50 +08:00
_Kerman
afedf18ccf
fix inbox lifecycle downstream contracts
2026-07-31 22:00:39 +08:00
Wenlu Wang
e3e6621e48
Merge branch 'master' into codex/goal-clear-single-flight
2026-07-31 21:54:14 +08:00
Wenlu Wang
9a3bdd599c
Merge pull request #1099 from deepseek-harness/codex/hide-session-lineage-header
...
fix(web): hide session lineage in header
2026-07-31 21:51:56 +08:00
kingwl
7b826bf16c
Merge remote-tracking branch 'origin/master' into codex/remove-scoped-bash
...
# Conflicts:
# packages/client/ui-conversation/README.i18n.yaml
2026-07-31 21:32:02 +08:00
kingwl
6879c0c9ca
Merge remote-tracking branch 'origin/master' into codex/hide-session-lineage-header
...
# Conflicts:
# packages/client/ui-conversation/README.i18n.yaml
2026-07-31 21:31:04 +08:00
kingwl
aa85e0c6cd
Merge remote-tracking branch 'origin/master' into codex/goal-clear-single-flight
2026-07-31 21:30:22 +08:00
kingwl
32972f1675
Merge remote-tracking branch 'origin/master' into codex/web-stop-preserve-queue
2026-07-31 21:30:19 +08:00
Ziya
3a01dc814e
Merge pull request #1088 from deepseek-harness/agent/web-context-injection-auto-height
...
fix(web): let context injection cards fit content
2026-07-31 09:28:45 -04:00
kingwl
07b0efc49e
fix(web): hide session lineage in header
2026-07-31 21:08:57 +08:00
kingwl
e73cdd6b7d
fix(web): single-flight goal clear
2026-07-31 20:54:23 +08:00
kingwl
32a0e871b7
fix(web): preserve queue on stop
2026-07-31 20:51:05 +08:00
kingwl
ddda8be736
docs: record scoped bash translation pairs
2026-07-31 20:48:52 +08:00
07akioni
575e1217bb
fix: remove scoped bash
2026-07-31 20:47:55 +08:00
Tianyi Cui
1f6f1cc32f
Merge origin/master into workspace-write default
...
# Conflicts:
# apps/cli/README.i18n.yaml
2026-07-31 20:44:15 +08:00
ZiyaZhang
344ad0d6fb
fix(client): floor the fork anchor to a real event seq
...
The fork button on a stopped assistant message was inert. Frozen
interrupted nodes carry a flow-ordering seq of turnEnd.seq - 0.9, and
session.fork takes a non-negative integer on the wire, so every such
request was rejected as invalid-params before reaching the host — where
an aborted turn's logged turn/end has always made it forkable.
SessionsService.fork floors atSeq at the wire boundary. Flooring stays
inside the anchor's own turn (every turn opens with turn/start), so the
host's first-turn/end-at-or-after cut still closes on that turn.
2026-07-31 05:41:45 -07:00
Tianyi Cui
b694c33d18
Default shipped UI sessions to workspace-write
2026-07-31 20:39:53 +08:00
Turtle
b4f1675360
docs(app-boot): correct the pre-fix capture claim and pin the exit seam contract
...
The PTY capture does continue past the terminal-takeover bytes with the
fatal diagnostic; only the reset never follows. State that precisely in
both notes.
Document on FailLoudProcess.exit that callers treat it as the end of the
run, matching how the release path already relies on it.
2026-07-31 20:37:16 +08:00
Turtle
b35b06396d
fix(app-boot): keep the fail-loud exit fatal while the terminal is released
...
Review of the previous commit found two defects in the release path, both
reproduced against the implementation:
- The timeout guarding a never-settling release was unref'ed. An
unhandledRejection listener suppresses Node's default fatal exit, so with
nothing else referenced the process reached an empty event loop and exited
0 on the very failure it was reporting. Keep the timer referenced and clear
it once the race settles.
- The handler uninstalled itself before awaiting the release. A second
concurrent rejection then became uncaught and killed the process
mid-teardown, stranding exactly the terminal state this restores. Replace
the uninstall with a latch: the first rejection is the reported one, and
later rejections (teardown's own included) fall through to the pending exit.
Add the PTY regression the fake-process tests cannot express: boot the shipped
tree over a fixture whose llm-pi-ai providers value is list-shaped, expect exit
1, and assert the captured bytes carry both the diagnostic and ESC[?2004l.
Against the pre-fix source the stream ends at ESC[?2004h ESC[>7u ESC[?u ESC[c
with no reset and the case fails, so it pins the actual bug.
Split the two-shape formatting test into one install per case; a latched
handler reports once by design.
2026-07-31 20:37:16 +08:00
Turtle
70f37206d2
fix(app-boot): release the terminal before a fatal load exit
...
A dsh launch whose config failed validation returned the user to a broken
shell: typing was invisible and the next command was mangled by a stray
Device Attributes reply (1;2;4cecho ...).
The Loader mounts entries concurrently, so ui-tui can already hold the
terminal (raw mode, bracketed paste, keyboard protocol, plus an in-flight
DA query) when a sibling entry rejects on its own config. installFailLoud
wrote its diagnostic and exited immediately, so nothing disposed the tree
and ProcessTerminal.stop() never ran.
Give installFailLoud an optional release teardown, awaited between the
diagnostic and the exit and bounded by FAIL_LOUD_RELEASE_TIMEOUT_MS. The
TUI launcher passes one that disposes the root context, reaching the same
shutdown() the /exit path already uses (drainInput() + ui.stop()). The
context is captured in boot()'s prepare hook because the rejection arrives
while boot() is still in flight.
Bins that pass no release keep the previous behavior exactly.
2026-07-31 20:37:16 +08:00
Tianyi Cui
e1c6fc3db4
Merge pull request #1032 from deepseek-harness/xtr/trajectory-timeline-polish
...
fix(trajectory): polish timeline timing and layering
2026-07-31 20:25:08 +08:00
ZiyaZhang
5e68d812d1
fix(web): let context injection cards fit content
2026-07-31 05:20:54 -07:00
Turtle
dc88440dad
Merge remote-tracking branch 'origin/master' into codex/experimental-cli-command-names
...
# Conflicts:
# apps/cli/README.i18n.yaml
# packages/ui/tui/README.i18n.yaml
2026-07-31 20:18:15 +08:00
Chinesezjc
3d9c096cac
Merge remote-tracking branch 'origin/master' into feat/py-types-code-mode
2026-07-31 20:17:40 +08:00
Turtle
60a0bcd358
feat(cli): mark meta and upgrade commands experimental
2026-07-31 20:16:19 +08:00
creatixchu
78d956a65d
Merge latest master into PR 555
...
# Conflicts:
# packages/ui/tui/README.i18n.yaml
2026-07-31 20:14:36 +08:00
_Kerman
e921fae362
Merge remote-tracking branch 'github/master' into xtr/trajectory-timeline-polish
2026-07-31 20:12:20 +08:00
creatixchu
7557fda62b
Merge latest master into PR 555
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-07-25-web-input-machine-and-slash-pipeline.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-25-web-input-machine-and-slash-pipeline.md
# .agents/notes/implemented/architecture/2026-07-25-web-input-machine-and-slash-pipeline.zh.md
# packages/client/ui-conversation/README.i18n.yaml
# packages/client/ui-conversation/src/client/chat/MessageItem.tsx
# packages/client/ui-conversation/src/client/input/facade.ts
# packages/client/ui-conversation/src/client/input/hub.ts
# packages/client/ui-conversation/src/client/service.ts
# packages/client/ui-conversation/tests/apply-inject.spec.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
2026-07-31 20:11:28 +08:00
Tianyi Cui
e1eb581f2b
Merge pull request #1018 from deepseek-harness/feature/tui-first-run-welcome
...
feat(tui): add versioned first-run welcome
2026-07-31 20:08:56 +08:00
_Kerman
966add3305
Merge remote-tracking branch 'github/master' into xtr/trajectory-timeline-polish
2026-07-31 20:01:50 +08:00
_Kerman
dd98d15b1d
Merge remote-tracking branch 'github/master' into xtr/trajectory-timeline-polish
...
# Conflicts:
# packages/client/ui-trajectory/src/client/timeline.ts
# packages/client/ui-trajectory/tests/views.spec.tsx
2026-07-31 20:01:16 +08:00
creatixchu
38c21c1428
Merge latest master into PR 555
...
# Conflicts:
# packages/host/apiproxy/README.i18n.yaml
2026-07-31 19:55:58 +08:00
_Kerman
094f1976c4
fix(trajectory): lighten summary section headings
2026-07-31 19:53:55 +08:00
Tianyi Cui
76f3b402e1
Merge remote-tracking branch 'origin/master' into worktree/pr1018-todo-retarget-20260731
2026-07-31 19:48:14 +08:00
imccyu
23ee31efc0
Merge branch 'master' into fix/remove-badge
2026-07-31 19:47:55 +08:00
_Kerman
8e88b17c9f
fix pre-step lifecycle regressions
2026-07-31 19:40:59 +08:00
creatixchu
09b7fcfd4f
Merge latest master into PR 555
...
# Conflicts:
# docs/architecture.i18n.yaml
# docs/core-data-structures/core.i18n.yaml
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
# packages/client/runtime/README.i18n.yaml
# packages/client/ui-conversation/README.i18n.yaml
# packages/client/ui-conversation/src/client/chat/MessageItem.tsx
# packages/compact/compact-basic/README.i18n.yaml
# packages/ui/tui/README.i18n.yaml
2026-07-31 19:39:22 +08:00
Tianyi Cui
d64b032311
Merge pull request #1082 from deepseek-harness/worktree/fix-web-duplicate-folder-names-20260731
...
fix(workspace): allow same-basename folders in Web
2026-07-31 19:37:38 +08:00
07akioni
410a837e02
Merge remote-tracking branch 'origin/master' into fix/remove-badge
2026-07-31 19:33:01 +08:00
Tianyi Cui
e0cedd16b8
Merge remote-tracking branch 'origin/master' into worktree/pr1018-todo-retarget-20260731
2026-07-31 19:25:27 +08:00
Tianyi Cui
7d04e4654a
Merge remote-tracking branch 'origin/master' into worktree/pr1018-todo-retarget-20260731
...
# Conflicts:
# apps/cli/README.i18n.yaml
# packages/ui/tui/README.i18n.yaml
2026-07-31 19:23:34 +08:00
Ziya
9b1486f90f
Merge pull request #1078 from deepseek-harness/fix/web-turn-error-surface
...
fix(web): surface terminal turn failures
2026-07-31 07:23:09 -04:00
Tianyi Cui
2abf643326
Merge pull request #1040 from deepseek-harness/feat/recommended-deployment-presets
...
feat(cli): even out the shipped tool rosters across both surfaces
2026-07-31 19:21:18 +08:00
_Kerman
fcc2b5e282
refactor agent pre-step inbox lifecycle
2026-07-31 19:21:16 +08:00
07akioni
57d6d9ee1c
fix: ci
2026-07-31 19:20:23 +08:00