Tianyi Cui
39c1c3df4f
Merge remote-tracking branch 'origin/master' into codex/pr335-merge-master-20260719
...
# Conflicts:
# packages/support/acp-snapshot/README.md
# packages/support/acp-snapshot/src/harness.ts
# packages/support/acp-snapshot/src/suite.ts
# packages/support/acp-snapshot/tests/harness.spec.ts
# packages/support/acp-snapshot/tests/suite.spec.ts
2026-07-19 11:41:10 +08:00
Tianyi Cui
c06e6bea0b
Merge origin/master into feat/tui-package
...
Master unifies every live agent with its exact SessionId and moves declarative startup failures to agent-loop/config-start-failed. Keeping the branch’s AgentId label binding would let the TUI target the wrong lifecycle after reload and would miss asynchronous resume failures.
Resolve that contract migration by giving the selected terminal front door the same generated or resumed SessionId as agent-core, mounting the front door first, and entering fullscreen only after the matching root appears. Refresh the source-derived catalogs and keyless terminal goldens so Code Mode, workflow, Cordis-tool, and transient UI scenarios all exercise the merged identity model.
2026-07-19 11:37:14 +08:00
Tianyi Cui
e8ea0c3b7e
test(tui): make cwd coverage location-independent
...
formatCwd has distinct branches for the home directory itself, a descendant of home, an unset cwd, and a path outside home. The descendant branch was exercised only indirectly because the test harness defaulted to process.cwd(), so the per-file coverage gate changed with the checkout location and failed in detached worktrees under /private/tmp even though every behavior assertion passed.
Derive the home-root case from homedir() and add an explicit synthetic child with platform-aware path joins. Keep the unset and outside-home cases unchanged. The suite now drives every formatting branch regardless of where the repository is checked out, and the expected child form follows the host path separator on macOS, Linux, and Windows.
2026-07-19 10:51:20 +08:00
Tianyi Cui
b5e8e4e9c1
fix(tui): neutralize terminal controls at display boundary
...
Model responses, replayed session data, tool presenter output, question metadata, configuration, and diagnostics all cross into ANSI-aware pi-tui renderers. Passing their C0 or C1 controls through unchanged lets an otherwise ordinary transcript emit OSC, CSI, cursor, or title operations in the user terminal.
Introduce one displayText boundary that preserves line-feed layout but renders every other C0/C1 control as visible \\xNN text before application styling is applied. Route transcript blocks, streaming output, tool cards, diffs, plans, dialogs, headers, cwd/title data, notices, errors, and pre-mount startup failures through that boundary while leaving pi-tui and the theme responsible for legitimate terminal control sequences.
Pin the contract at three levels: a settled headless-terminal golden spans the main untrusted display sources, unit coverage checks the pre-fullscreen failure path, and the real Loader/PTY conversation streams hostile OSC, cursor, and C1 probes and proves only their inert textual forms reach the terminal stream.
2026-07-19 10:50:19 +08:00
Tianyi Cui
9f1a69366b
docs: tighten identity bridge prose
2026-07-19 02:18:59 +08:00
Tianyi Cui
e68cef1be1
test(tui): replay recorded sessions through real tools
2026-07-19 01:31:55 +08:00
Tianyi Cui
8e366c3071
test(tui): snapshot semantic terminal state
2026-07-18 22:31:04 +08:00
Yichen Jiang
cddb79e844
Merge branch 'worktree/agent-execution-context-rfc' into worktree/explicit-turn-signal
2026-07-18 21:33:17 +08:00
Tianyi Cui
864b7bfd65
Merge remote-tracking branch 'origin/master' into feat/tui-package
...
# Conflicts:
# docs/architecture.md
# docs/config-catalog.md
# docs/cordis-catalog/events.md
# docs/event-producer-consumer.md
# docs/module-graph.md
# examples/coding-agent/cordis.yml
# examples/echo-agent/cordis.yml
# knip.json
# packages/core/agent-loop/README.md
# packages/core/agent-loop/tests/config-session-id.spec.ts
# packages/examples/README.md
# packages/examples/stdio-demo/README.md
# packages/examples/stdio-demo/tests/stdio-agent.spec.ts
2026-07-18 21:20:47 +08:00
Tianyi Cui
1febeb8428
test(jsonrpc): configure built scope probe
2026-07-18 14:26:48 +08:00
Tianyi Cui
0f85ae0a9d
fix(subagent): identify lifecycle runs explicitly
2026-07-18 14:26:14 +08:00
Huanqi Cao
1a4af034c0
Accept native ACP path separators in tests
2026-07-18 12:40:12 +08:00
Tianyi Cui
35473c2701
Merge branch 'codex/simp-unify-agent-session-id' into codex/simp-ui-identity-residue
...
# Conflicts:
# AGENTS.md
# docs/config-catalog.md
# docs/event-producer-consumer.md
# examples/acp-agent/tests/snapshots/advanced-toolchain/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/both-mode-turn/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/cancel/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/code-mode-turn/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/config-options/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/error-finish/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/escalation-approved/session.jsonl
# examples/acp-agent/tests/snapshots/escalation-approved/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/escalation-rejected/session.jsonl
# examples/acp-agent/tests/snapshots/escalation-rejected/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/fs-edit/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/fs-policy-reject/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/fs-read-window/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/fs-read/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/fs-terminal-card/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/fs-write-overwrite/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/fs-write/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/handshake/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-posttool-block/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-posttool-context/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-pretool-ask/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-pretool-ask/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-pretool-deny/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-promptsubmit-block/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-promptsubmit-context/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-stop-continue/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-posttool-block/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-posttool-context/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-pretool-block/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-promptsubmit-block/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-promptsubmit-context/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-stop-continue/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/multi-turn/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/permission-switching/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/repeat-tool-guard/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/skill-load/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/subagent-fork/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/subagent-mixed/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/subagent-multi/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/subagent-spawn/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/text-turn/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/todo-plan/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/tool-call-turn/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/workflow-run/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/workspace-edit/stdout.golden.jsonl
# packages/ui/acp/README.md
# packages/ui/acp/src/index.ts
# packages/ui/jsonrpc/README.md
# packages/ui/jsonrpc/src/server.ts
2026-07-18 12:25:33 +08:00
Tianyi Cui
59dc310bb5
Merge branch 'codex/simp-agent-entry-state' into codex/simp-unify-agent-session-id
...
# Conflicts:
# docs/architecture.md
# docs/config-catalog.md
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/core-data-structures/core.md
# docs/event-producer-consumer.md
# docs/module-graph.md
# examples/coding-agent/tests/code-mode.e2e.ts
# examples/coding-agent/tests/coding-task.e2e.ts
# examples/coding-agent/tests/compaction.e2e.ts
# examples/coding-agent/tests/full-loop.e2e.ts
# examples/coding-agent/tests/todo-write.e2e.ts
# examples/cordis-agent/tests/cordis-tools.e2e.ts
# packages/bash/tool-bash/tests/integration.spec.ts
# packages/bash/tool-bash/tests/tools.spec.ts
# packages/compact/compact-basic/tests/compact-loop-repro.spec.ts
# packages/context/time-context/tests/time-context.spec.ts
# packages/cordis/tool-cordis/src/api-catalog.ts
# packages/cordis/tool-cordis/tests/integration.spec.ts
# packages/core/agent-loop/README.md
# packages/core/agent-loop/src/agent.ts
# packages/core/agent-loop/src/index.ts
# packages/core/agent-loop/tests/agent.spec.ts
# packages/core/agent-loop/tests/cancel.spec.ts
# packages/core/agent-loop/tests/config-session-id.spec.ts
# packages/core/agent-loop/tests/contract-regressions.spec.ts
# packages/core/agent-loop/tests/coverage-edges.spec.ts
# packages/core/agent-loop/tests/interception.spec.ts
# packages/core/agent-loop/tests/loop.spec.ts
# packages/core/agent-loop/tests/properties.spec.ts
# packages/core/agent-loop/tests/request-cache.e2e.ts
# packages/core/agent-loop/tests/request-reconstruction.spec.ts
# packages/core/agent-loop/tests/resume.spec.ts
# packages/core/agent-loop/tests/scope-lifecycle.spec.ts
# packages/core/agent-loop/tests/tool-order.spec.ts
# packages/core/agent-loop/tests/turn-stop.spec.ts
# packages/core/agent/src/types.ts
# packages/examples/agent-spine-demo/README.md
# packages/examples/agent-spine-demo/tests/agent-core.spec.ts
# packages/examples/stdio-demo/README.md
# packages/examples/stdio-demo/src/index.ts
# packages/examples/stdio-demo/tests/stdio-agent.spec.ts
# packages/fs/tool-fs/tests/fs-tools.e2e.ts
# packages/guard/repeat-tool-guard/tests/repeat-tool-guard.spec.ts
# packages/hooks/hooks-claude/tests/bridge.spec.ts
# packages/hooks/hooks-claude/tests/coverage.spec.ts
# packages/hooks/hooks-codex/tests/bridge.spec.ts
# packages/hooks/hooks-codex/tests/coverage.spec.ts
# packages/subagent/subagent-fork/tests/multi-subagent.spec.ts
# packages/subagent/subagent-fork/tests/subagent-fork.spec.ts
# packages/subagent/subagent-inprocess/tests/structured.spec.ts
# packages/subagent/subagent-inprocess/tests/subagent-inprocess.spec.ts
# packages/subagent/subagent-spawn/tests/spawn.e2e.ts
# packages/subagent/subagent-spawn/tests/subagent-spawn.spec.ts
# packages/todo/tool-todo/tests/integration.spec.ts
# packages/ui/acp/tests/dispose.spec.ts
# packages/ui/acp/tests/edges.spec.ts
# packages/workflow/workflow-workerthread/tests/integration.spec.ts
2026-07-18 12:21:15 +08:00
Tianyi Cui
7a2d5cd28d
Merge master into codex/simp-session-log-representation
2026-07-17 22:33:42 +08:00
Tianyi Cui
53680ee6bc
Merge remote-tracking branch 'origin/master' into worktree/provider-routed-llm-adapters
...
# Conflicts:
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/event-producer-consumer.md
# docs/module-graph.md
# packages/context/time-context/tests/time-context.spec.ts
# packages/cordis/tool-cordis/src/api-catalog.ts
# packages/core/session/README.md
# packages/core/session/src/types.ts
# packages/core/session/tests/surface.spec.ts
# packages/examples/acp-demo/tests/acp-agent.spec.ts
# packages/examples/stdio-demo/tests/stdio-agent.spec.ts
# packages/hooks/hooks-claude/tests/coverage.spec.ts
# packages/hooks/hooks-codex/tests/coverage.spec.ts
# packages/session-query/session-query/tests/session-query.spec.ts
# packages/support/invariants/tests/invariants.spec.ts
# packages/ui/acp/tests/harness.ts
2026-07-17 21:56:10 +08:00
Tianyi Cui
ce393ccb93
Merge master into codex/simp-session-log-representation
2026-07-17 21:51:36 +08:00
Tianyi Cui
4ee880a189
Merge remote-tracking branch 'origin/master' into feat/plan-mode
...
# Conflicts:
# docs/config-catalog.md
# docs/cordis-catalog/services.md
# docs/event-producer-consumer.md
# docs/module-graph.md
# packages/README.md
# packages/bash/tool-bash/src/index.ts
# packages/core/tools/tests/gen-tool-catalog.spec.ts
# pnpm-lock.yaml
# scripts/doc-budgets.manifest.json
2026-07-17 21:22:16 +08:00
Yichen Jiang
46a6c77beb
Merge remote-tracking branch 'origin/master' into worktree/agent-loop-testkit
...
# Conflicts:
# packages/README.md
2026-07-17 19:13:37 +08:00
Yichen Jiang
a38ff125a7
feat(dsbench): add SDK evaluation composition
2026-07-17 17:29:38 +08:00
pku-xht
55f61189b1
Merge remote-tracking branch 'origin/master' into codex/send-one-turn
...
# Conflicts:
# docs/architecture.md
# docs/core-data-structures/core.md
# docs/rfc/implemented/feature/2026-06-30-interception-seams.md
# packages/core/agent-loop/src/loop.ts
# packages/core/agent/src/types.ts
2026-07-17 17:25:06 +08:00
pku-xht
aa4e629874
feat(agent-loop): give each send its own turn
2026-07-17 17:14:52 +08:00
Turtle
87e25ef1fe
fix(tui): make the color palette theme-agnostic
...
The palette used absolute 256-color indices (`38;5;252`, `48;5;236`, …)
that terminals never remap to the active scheme: near-white body text
vanished on light backgrounds and fixed dark bubble fills put default
foreground text on dark blocks. Rebuild it from the standard 16-color
ANSI foregrounds plus SGR attributes, keep body text on the terminal
default foreground, replace filled background bubbles with foreground-only
left-gutter bars, and use reverse video for the active selection so every
grouping reads on any color scheme.
2026-07-17 16:50:53 +08:00
Turtle
12b7ac67ba
fix(ui): surface declarative startup failures
2026-07-17 16:44:25 +08:00
Turtle
1119c537d0
feat(ui): add dedicated TUI package
...
Move the interactive pi-tui front door into @deepseek-ai/dsh-tui while keeping @deepseek-ai/dsh-stdio line-oriented for pipes. Select the terminal package in the demo app, preserve logger ownership, and cover the production Loader composition with a PTY smoke test.
2026-07-17 12:01:37 +08:00
kingwl
9a2ef4e229
Merge remote-tracking branch 'origin/master' into cross-family-fs-sandbox
...
# Conflicts:
# docs/config-catalog.md
# docs/cordis-catalog/services.md
# docs/module-graph.md
# docs/rfc/implemented/feature/2026-07-06-sandbox.md
# examples/acp-agent/tests/snapshots/advanced-toolchain/system-prompt.golden.md
# examples/acp-agent/tests/snapshots/advanced-toolchain/tool-schemas.golden.json
# examples/acp-agent/tests/snapshots/both-mode-turn/system-prompt.golden.md
# examples/acp-agent/tests/snapshots/both-mode-turn/tool-schemas.golden.json
# examples/acp-agent/tests/snapshots/code-mode-turn/system-prompt.golden.md
# examples/acp-agent/tests/snapshots/escalation-approved/session.jsonl
# examples/acp-agent/tests/snapshots/escalation-rejected/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-pretool-ask/session.jsonl
# examples/acp-agent/tests/snapshots/permission-switching/session.jsonl
# examples/acp-agent/tests/snapshots/permission-switching/system-prompt.golden.md
# examples/acp-agent/tests/snapshots/permission-switching/tool-schemas.golden.json
# examples/acp-agent/tests/snapshots/skill-load/tool-schemas.golden.json
# examples/acp-agent/tests/snapshots/text-turn/tool-schemas.golden.json
# examples/acp-agent/tests/snapshots/workspace-edit/system-prompt.golden.md
# examples/acp-agent/tests/snapshots/workspace-edit/tool-schemas.golden.json
# packages/bash/bash-sandbox/src/index.ts
# packages/bash/bash-sandbox/tests/bwrap.e2e.ts
# packages/bash/bash-sandbox/tests/sandbox.spec.ts
# packages/bash/bash-sandbox/tests/seatbelt.e2e.ts
# packages/bash/bash/src/index.ts
# packages/bash/tool-bash/package.json
# packages/bash/tool-bash/src/index.ts
# packages/bash/tool-bash/src/render.ts
# packages/bash/tool-bash/tests/tools.spec.ts
# packages/bash/tool-bash/tsconfig.json
# pnpm-lock.yaml
# scripts/verify-package-readme-model-experience.ts
2026-07-16 23:32:17 +08:00
kingwl
d32a73a39d
Merge remote-tracking branch 'origin/master' into feat/plan-mode
2026-07-16 23:11:55 +08:00
Hypatia May
171bae5c20
fix(compact): harden pruning integration (round 2)
2026-07-16 18:28:31 +08:00
Yichen Jiang
c238992fbb
feat(core): make turn cancellation explicit
2026-07-16 18:14:13 +08:00
Yichen Jiang
d3b959389a
test(support): add shared AgentLoop testkit
2026-07-16 17:39:53 +08:00
Yichen Jiang
97190c81ba
Merge remote-tracking branch 'origin/master' into worktree/provider-routed-llm-adapters
...
# Conflicts:
# docs/event-producer-consumer.md
# examples/acp-agent/tests/snapshots/escalation-approved/session.jsonl
# examples/acp-agent/tests/snapshots/escalation-rejected/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-pretool-ask/session.jsonl
2026-07-16 16:39:13 +08:00
Yichen Jiang
7bcae0cd64
feat(core): add agent execution context
2026-07-16 16:29:46 +08:00
Tianyi Cui
6a516693a3
Merge branch 'codex/simp-unify-agent-session-id' into codex/simp-ui-identity-residue
2026-07-16 11:21:57 +08:00
Tianyi Cui
c0c0f8b3a4
Merge branch 'codex/simp-agent-entry-state' into codex/simp-unify-agent-session-id
2026-07-16 11:21:57 +08:00
Tianyi Cui
6825918ead
docs: finish session simplification prose cleanup
2026-07-16 11:15:58 +08:00
Hypatia May
da48435e8c
Merge remote-tracking branch 'origin/token-meter-service' into compact-post-step-overflow-recovery
...
# Conflicts:
# docs/architecture.md
2026-07-16 10:14:33 +08:00
Yichen Jiang
a621d2f9a6
Merge branch 'master' into codex/project-instruction-files
2026-07-16 09:52:52 +08:00
Tianyi Cui
f7af6a87dc
docs(acp): describe terminal capability lifetime
2026-07-16 03:25:21 +08:00
Tianyi Cui
4c08629b58
docs(acp): describe concurrent update routing
2026-07-16 02:56:12 +08:00
Tianyi Cui
9366baf39f
docs(acp): describe session terminal rendering
2026-07-16 02:31:26 +08:00
Tianyi Cui
217cf3bd58
Merge branch 'codex/simp-unify-agent-session-id' into codex/simp-ui-identity-residue
2026-07-16 02:04:59 +08:00
Tianyi Cui
d56cc8d424
fix(stdio): close startup failure gaps
2026-07-16 02:00:56 +08:00
Tianyi Cui
336f4e51ba
docs(acp): align identity routing contract
2026-07-16 00:51:52 +08:00
Tianyi Cui
a83847f987
Merge branch 'codex/simp-unify-agent-session-id' into codex/simp-ui-identity-residue
2026-07-16 00:02:55 +08:00
Tianyi Cui
3765abf731
Merge branch 'codex/simp-agent-entry-state' into codex/simp-unify-agent-session-id
2026-07-16 00:02:54 +08:00
Tianyi Cui
70be6c7944
Merge remote-tracking branch 'origin/master' into codex/simp-session-log-representation
2026-07-16 00:02:44 +08:00
Tianyi Cui
694e323403
Merge branch 'codex/simp-unify-agent-session-id' into codex/simp-ui-identity-residue
...
# Conflicts:
# docs/event-producer-consumer.md
# docs/module-graph.md
# examples/acp-agent/tests/snapshots/escalation-approved/session.jsonl
# examples/acp-agent/tests/snapshots/escalation-rejected/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-pretool-ask/session.jsonl
# packages/ui/acp/README.md
2026-07-15 23:32:16 +08:00
Tianyi Cui
6143537d4e
Merge branch 'codex/simp-agent-entry-state' into codex/simp-unify-agent-session-id
...
# Conflicts:
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/core-data-structures/bash.md
# docs/core-data-structures/core.md
# docs/event-producer-consumer.md
# docs/module-graph.md
# packages/bash/bash/src/types.ts
# packages/bash/tool-bash/README.md
# packages/bash/tool-bash/src/index.ts
# packages/bash/tool-bash/tests/tools.spec.ts
# packages/examples/agent-spine-demo/README.md
# packages/examples/agent-spine-demo/tests/agent-core.spec.ts
# packages/subagent/tool-subagent/tests/tool-subagent.spec.ts
# packages/util/brand/README.md
# packages/util/brand/src/index.ts
2026-07-15 23:29:47 +08:00
Tianyi Cui
08dbb74ce1
Merge remote-tracking branch 'origin/master' into codex/simp-session-log-representation
...
# Conflicts:
# docs/tool-catalog.md
# examples/acp-agent/tests/snapshots/escalation-approved/session.jsonl
# examples/acp-agent/tests/snapshots/escalation-rejected/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-pretool-ask/session.jsonl
# examples/acp-agent/tests/snapshots/permission-switching/session.jsonl
# examples/acp-agent/tests/snapshots/permission-switching/system-prompt.golden.md
2026-07-15 23:18:26 +08:00
imccyu
42b07a7022
feat(sdk): add developer project tooling
...
docs(rfc): propose SDK developer project tooling
feat: rename / docs
ci: fix windows gates
docs: revert
2026-07-15 23:17:29 +08:00