NI0317
ee404357a4
Merge origin/master into codex/sandbox-policy-context
2026-07-31 15:46:42 +08:00
Tianyi Cui
b2146d6298
Merge branch 'master' into pr/adapter-registration-race
2026-07-31 15:24:43 +08:00
Tianyi Cui
81e5ee7e3e
Merge branch 'master' into pr/adapter-registration-race
2026-07-31 15:22:35 +08:00
Turtle
732c9e6d95
fix(tui): release the adapter-registration listener on channel detach
...
Review follow-up: the llm/adapters-updated listener's disposer was
discarded, leaving it firing (harmlessly, behind isDisposed()) between
TUI shutdown and fiber disposal, asymmetric with the sibling channel
listeners. The controller now exposes detach(), and the channel's
detachListeners() calls it on both the dispose() and startup-failure
paths.
2026-07-31 15:11:24 +08:00
NI0317
3da219461c
Merge origin/master into codex/sandbox-policy-context
2026-07-31 15:03:11 +08:00
Chinesezjc
62275b6cd6
Merge remote-tracking branch 'origin/master' into feat/search-presenter
...
# Conflicts:
# docs/config-catalog.md
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/core-data-structures/tools.i18n.yaml
# docs/core-data-structures/tools.md
# docs/core-data-structures/tools.zh.md
# docs/event-producer-consumer.md
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
# packages/cordis/tool-cordis/src/api-catalog.ts
# packages/core/tools/README.i18n.yaml
# packages/core/tools/README.md
# packages/core/tools/README.zh.md
# packages/core/tools/src/index.ts
# packages/core/tools/src/presentation.ts
# packages/ui/tui/src/components/transcript.ts
2026-07-31 14:40:29 +08:00
Chinesezjc
538488506f
Merge pull request #973 from deepseek-harness/feat/read-presenter
...
feat(fs): add a read render-intent card for the read tool result
2026-07-31 14:30:31 +08:00
Chinesezjc
fe7ae124b7
Merge remote-tracking branch 'origin/master' into feat/read-presenter
2026-07-31 13:55:00 +08:00
Tianyi Cui
4535782742
Merge master into codex/sandbox-policy-context
2026-07-31 13:31:13 +08:00
Yichen Jiang
cb60e1759a
Merge remote-tracking branch 'origin/master' into worktree/permission-default-settings
...
# Conflicts:
# packages/host/apiproxy/README.i18n.yaml
2026-07-31 13:27:43 +08:00
Yichen Jiang
48152a7a1d
merge master and address permission settings review
2026-07-31 13:24:30 +08:00
Yichen Jiang
ee74b5b07a
feat(permission): add new-session default setting
2026-07-31 12:48:19 +08:00
Chinesezjc
df5b09cd6e
Merge remote-tracking branch 'origin/master' into feat/search-presenter
...
# Conflicts:
# docs/config-catalog.md
# docs/cookbook/adding-a-tool.i18n.yaml
# docs/cookbook/adding-a-tool.md
# docs/cookbook/adding-a-tool.zh.md
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/core-data-structures/tools.i18n.yaml
# docs/core-data-structures/tools.md
# docs/core-data-structures/tools.zh.md
# docs/event-producer-consumer.md
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
# packages/cordis/tool-cordis/src/api-catalog.ts
# packages/core/tools/README.i18n.yaml
# packages/core/tools/README.md
# packages/core/tools/README.zh.md
# packages/core/tools/src/index.ts
# packages/core/tools/src/presentation.ts
# packages/fs/tool-fs-search/src/glob.ts
# packages/fs/tool-fs-search/src/index.ts
# packages/ui/tui/src/components/transcript.ts
# packages/ui/tui/tests/tui.spec.ts
2026-07-31 11:31:32 +08:00
Chinesezjc
38bd01af52
Merge remote-tracking branch 'origin/master' into feat/read-presenter
2026-07-31 11:25:44 +08:00
Turtle
899d25dfb3
fix(tui): defer model-context resolution on the adapter-registration race
...
Loader activation is service-driven, so the TUI can mount before a
configured adapter plugin registers its provider routes; every fresh
session then printed 'Could not resolve model context: no adapter
registered for provider …' for a working configuration.
The model controller now treats a NO_ADAPTER rejection of the
context-window resolution as transient: it parks the resolution
silently and re-resolves on the next llm/adapters-updated commit. A
commit that still lacks the route parks the wait again; any target
change clears it; all other resolution errors still surface. A wrong
provider name keeps failing loudly at dispatch, where it is actionable.
2026-07-31 11:10:05 +08:00
Chinesezjc
40b9ccff20
Merge remote-tracking branch 'origin/master' into feat/web-diff-card
...
# Conflicts:
# packages/client/ui-conversation/src/client/chat/GenericToolCard.tsx
# packages/client/ui-conversation/src/client/chat/ToolRow.module.css
# packages/client/ui-conversation/src/client/chat/ToolRow.tsx
2026-07-31 11:07:52 +08:00
NI0317
05c4b916cb
Merge remote-tracking branch 'origin/master' into codex/sandbox-policy-context
2026-07-31 11:05:02 +08:00
NI0317
4e1ccebfff
Merge remote-tracking branch 'origin/master' into codex/sandbox-policy-context
...
# Conflicts:
# 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-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/snapshots/pty-tools/session.jsonl
# examples/headless-agent/tests/snapshots/pty-tools/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/persistent-tools/notifications.expected.jsonl
# examples/jsonrpc-agent/tests/snapshots/persistent-tools/session.jsonl
# packages/core/agent-loop/src/agent.ts
2026-07-31 11:02:45 +08:00
Chinesezjc
32ab26a30b
fix(tui): route read card content through renderBody's stripped-content path
...
The master merge added a web card whose renderBody content narrow checked
only card === 'generic', so a read card fell through to the raw result
content and rendered the full <path>/<type>/<content> envelope instead of
the envelope-stripped text. Include card === 'read' in that narrow, mirroring
the markdownContent selection in render(); the parallel-file-reads terminal
golden is byte-for-byte unchanged.
2026-07-31 10:58:19 +08:00
Chinesezjc
83fff705da
Merge remote-tracking branch 'origin/master' into feat/read-presenter
...
# Conflicts:
# docs/config-catalog.md
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/core-data-structures/tools.i18n.yaml
# docs/core-data-structures/tools.md
# docs/core-data-structures/tools.zh.md
# docs/event-producer-consumer.md
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
# examples/acp-agent/tests/snapshots/workspace-context/session.jsonl
# packages/cordis/tool-cordis/src/api-catalog.ts
# packages/core/tools/README.i18n.yaml
# packages/core/tools/README.md
# packages/core/tools/README.zh.md
# packages/core/tools/src/index.ts
# packages/core/tools/src/presentation.ts
# packages/ui/tui/src/components/transcript.ts
2026-07-31 10:42:07 +08:00
Chinesezjc
22d8fa788b
Merge remote-tracking branch 'origin/master' into feat/web-diff-card
...
# Conflicts:
# packages/client/ui-conversation/README.i18n.yaml
# packages/client/ui-conversation/src/client/chat/GenericToolCard.tsx
# packages/client/ui-conversation/src/client/chat/ToolRow.tsx
# packages/client/ui-conversation/src/client/skeleton/DetailsPanel.tsx
# packages/client/ui-primitives/README.i18n.yaml
# packages/client/ui-primitives/src/index.ts
2026-07-31 04:22:57 +08:00
imccyu
05d73d6571
fix(app-boot): await only failed activation fibers
2026-07-31 03:20:20 +08:00
imccyu
c92a6c3b76
fix(app-boot): preserve published loader composition
2026-07-31 03:20:20 +08:00
imccyu
a691e2ab16
fix: preserve plugin activation errors
2026-07-31 03:20:20 +08:00
imccyu
296cb1c35f
fix: app-boot report plugin error detail
2026-07-31 03:02:45 +08:00
Tianyi Cui
464a57d3ca
Merge commit 'refs/codex/pr1006/master' into worktree/pr1006-merge-20260731
...
# Conflicts:
# docs/architecture.i18n.yaml
# docs/config-catalog.md
# docs/cordis-catalog/services.md
# docs/core-data-structures/core.i18n.yaml
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
# examples/headless-agent/cordis.yml
# packages/cordis/tool-cordis/src/api-catalog.ts
# packages/llm/llm-deepseek/README.i18n.yaml
# packages/llm/llm-deepseek/README.md
# packages/llm/llm-deepseek/README.zh.md
# packages/llm/llm-deepseek/src/adapter.ts
# packages/llm/llm-deepseek/src/index.ts
# packages/llm/llm-deepseek/tests/adapter.spec.ts
# packages/llm/llm/README.i18n.yaml
# packages/llm/llm/README.md
# packages/llm/llm/README.zh.md
# packages/subagent/subagent-dsh-sdk/README.i18n.yaml
# packages/ui/jsonrpc/README.i18n.yaml
2026-07-31 01:55:19 +08:00
Yichen Jiang
c71af0f3bb
Merge latest master into worktree-llm-web-config
2026-07-31 01:09:50 +08:00
imccyu
a3ddc90df6
Merge branch 'master' into worktree/command-row-copy
2026-07-31 00:50:47 +08:00
imccyu
5099f72ea0
Merge branch 'master' into worktree/command-row-copy
2026-07-31 00:41:04 +08:00
NI0317
99aff882dc
Merge remote-tracking branch 'origin/master' into codex/sandbox-policy-context
...
# Conflicts:
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
# examples/acp-agent/tests/snapshots/web-fetch/session.jsonl
2026-07-31 00:33:13 +08:00
Yichen Jiang
e8c550d0e5
Merge worktree-llm-dynamic-config (884, with latest master) into worktree-llm-web-config
2026-07-31 00:31:42 +08:00
Yichen Jiang
f64026d7e3
Merge latest master into worktree-llm-dynamic-config
2026-07-31 00:31:06 +08:00
NI0317
db24140dad
Merge remote-tracking branch 'origin/master' into codex/sandbox-policy-context
2026-07-31 00:10:48 +08:00
Yichen Jiang
307fea8ae9
Merge worktree-llm-dynamic-config (884, with latest master) into worktree-llm-web-config
2026-07-31 00:06:29 +08:00
imccyu
95242698e0
Merge branch 'master' into worktree/command-row-copy
2026-07-31 00:06:04 +08:00
Yichen Jiang
1ff8bb3422
Merge latest master into worktree-llm-dynamic-config
2026-07-31 00:05:13 +08:00
Tianyi Cui
7353fc2593
Merge remote-tracking branch 'origin/master' into worktree/pr975-retarget-20260730
2026-07-31 00:05:08 +08:00
imccyu
5c4398c96c
Merge branch 'master' into worktree/command-row-copy
2026-07-30 23:45:49 +08:00
Chinesezjc
bfde98d223
test: cover the TUI search-card fallback and refresh the cordis-inspect golden
...
- Add a search result-view scenario to the TUI tool-card test so the
card:'search' fallback branch (no view content -> raw result content) is
covered; restores transcript.ts branch coverage to 100%.
- Refresh the cordis-inspect-jsdoc golden for the kind -> shape rename in the
ToolResultView JSDoc that cordis_inspect echoes.
2026-07-30 22:32:06 +08:00
Chinesezjc
1ea5f0b124
test(tui): cover diffContentLines empty-side arm
...
The coverage lane flagged transcript.ts line 63 (diffContentLines' empty-text
return) uncovered: the same-file diff test only fed newline-terminated sides.
Add a third hunk removing a line with an empty added side (a full deletion), so
the empty arm runs and the footer proves the empty side draws no `+ ` row
(+2 -1 · 1 file). Raise the test's line budget so every hunk row stays visible.
2026-07-30 22:24:29 +08:00
NI0317
cef62c007d
Merge remote-tracking branch 'origin/master' into codex/sandbox-policy-context
2026-07-30 22:16:50 +08:00
creatixchu
1102cfc1f3
Merge remote-tracking branch 'origin/master' into worktree/plan-review-layout
2026-07-30 22:10:56 +08:00
NI0317
8b4cbe4293
feat(system-prompt): cache dynamic policy context
2026-07-30 22:09:15 +08:00
Yichen Jiang
5251a13a25
fix(app-boot): survive a surface that exits before the tree settles
...
boot() asserts over ctx.loader after awaiting the Loader, but the TUI renders
as soon as its own fiber starts: an /exit typed before the last entry settles
runs disposeRootAndExit, which takes the Loader service with the tree. The
assertions then read undefined and crashed the process with a TypeError over
an app that exited exactly as asked. The keyless personal-overlay PTY smoke
lost this race in roughly two of three runs.
2026-07-30 22:09:03 +08:00
Chinesezjc
8e6a035d04
Merge remote-tracking branch 'origin/master' into feat/read-presenter
2026-07-30 22:00:43 +08:00
Chinesezjc
8752e1f9e9
Merge remote-tracking branch 'origin/master' into feat/search-presenter
2026-07-30 21:57:57 +08:00
Chinesezjc
7b6f33f872
refactor(fs): minimize and cap search card meta; keep TUI byte-identical
...
Address the review of the search render card:
- The search result view carries no `content`: it was a no-op for every
consumer and serialized the whole search text twice. A UI without a search
card falls back to the raw tool/result content; the TUI stays byte-identical
to the pre-search-card generic fallback.
- Bound the serialized presentationMeta with a configurable searchMetaMaxBytes
(default 64 KiB): the inline item cap does not bound bytes, and spill-policy
only shrinks content, never meta. capMetaBytes drops trailing groups/paths.
- Share one retention pass (retainGrepMatches/retainGlobPaths in search-core)
between the model-facing render and the meta projection; remove the second
cap/preview implementation and the presentation<->grep module cycle by
moving GrepMatch/previewLine to search-core.
- Rename the result-view discriminant kind -> shape so it no longer collides
with GenericCallView.kind (ToolCallKind, whose values include 'search').
- Narrow the entry export surface to consumed symbols.
- Sync the three bilingual ToolResultView doc pairs and the Agent Note pair;
document the deliberate empty-card acceptance vs diffsFromMeta.
- Regenerate config/tool/cordis catalogs for the new config field.
2026-07-30 21:57:49 +08:00
Yichen Jiang
02b8529405
Merge origin/master into worktree/deepseek-max-tokens-defaults
...
# Conflicts:
# docs/cordis-catalog/services.md
# docs/core-data-structures/core.i18n.yaml
# docs/core-data-structures/session.i18n.yaml
# packages/core/session/README.i18n.yaml
2026-07-30 21:55:07 +08:00
Yichen Jiang
cd6027125c
Merge latest master into worktree-llm-dynamic-config
2026-07-30 21:49:30 +08:00
Yichen Jiang
a5e0c5e7e7
Merge latest master into worktree-llm-web-config
...
# Conflicts:
# packages/host/apiproxy/README.i18n.yaml
2026-07-30 21:45:55 +08:00