Commit Graph
314 Commits
Author SHA1 Message Date
Dudu-0223 e1f7eeeb95 fix(subagent): confirm steering request admission 2026-08-02 04:34:16 +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
Tianyi Cui 3aa98ba609 Merge remote-tracking branch 'origin/master' into worktree/pr1018-todo-retarget-20260731
# Conflicts:
#	apps/cli/README.i18n.yaml
#	apps/cli/README.md
#	apps/cli/README.zh.md
2026-07-31 19:17:50 +08:00
NI0317 c4d88bc25e Merge latest origin/master into feature/tui-first-run-welcome
# Conflicts:
#	apps/cli/README.i18n.yaml
2026-07-31 17:49:03 +08:00
NI0317 346d1e4c74 fix(tui): address onboarding review feedback 2026-07-31 17:47:07 +08:00
imccyu abc77e707e Merge remote-tracking branch 'origin/feat/manual-compact-single-lock' into feat/compaction-progress-visibility 2026-07-31 15:51:17 +08:00
imccyu b2cd3d26da Merge remote-tracking branch 'origin/fix/web-transcript-projection' into feat/manual-compact-single-lock 2026-07-31 15:50:54 +08:00
Hypatia May b14c9daed2 Merge branch 'feat/manual-compact-single-lock' into feat/compaction-progress-visibility 2026-07-31 15:37:06 +08:00
Hypatia May 1114a80a45 Merge branch 'fix/web-transcript-projection' into feat/manual-compact-single-lock
# Conflicts:
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
2026-07-31 15:36:49 +08:00
Hypatia May 85cef9de6f fix(tui): unify compaction progress presentation 2026-07-31 15:27:10 +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
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
Tianyi Cui 7a92f23ad4 Merge finalized manual compaction parent 2026-07-31 13:44:34 +08:00
Tianyi Cui 98f48fd83a Merge finalized Web transcript parent
# Conflicts:
#	apps/cli/README.i18n.yaml
#	packages/client/runtime/README.i18n.yaml
#	packages/client/ui-trajectory/README.i18n.yaml
#	packages/client/ui-trajectory/README.zh.md
2026-07-31 13:42:47 +08:00
NI0317 0ed9b20d8f Merge latest origin/master into feature/tui-first-run-welcome 2026-07-31 13:28:21 +08:00
NI0317 f30579dbaa refactor(tui): own overlay terminal primitives 2026-07-31 12:36:24 +08:00
Hypatia May 949b9fba8d feat(tui): add transcript compaction progress marker 2026-07-31 11:46:43 +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
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
NI0317 436e557275 Merge origin/master into feature/tui-first-run-welcome
# Conflicts:
#	apps/cli/README.i18n.yaml
#	apps/cli/README.md
#	apps/cli/README.zh.md
#	apps/cli/src/tui.ts
#	apps/cli/tests/tui-keyless-smoke.e2e.ts
2026-07-31 10:58:00 +08:00
Hypatia May afe8d49691 Merge finalized manual compaction parent 2026-07-31 10:11:54 +08:00
Hypatia May 01e64c6350 Merge finalized Web transcript parent 2026-07-31 09:46:32 +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
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
NI0317 d7d567b7c6 Merge origin/master into feature/tui-first-run-welcome 2026-07-31 00:29:05 +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
NI0317 890343751a feat(tui): add versioned first-run welcome 2026-07-30 22:29:35 +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
Hypatia May 859d60fff5 fix(tui): preserve compaction indicator ownership 2026-07-30 22:09:42 +08:00
Hypatia May bbff2c58de feat(tui): show live compaction progress 2026-07-30 21:59:33 +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
Chinesezjc 46e18cf0d3 Merge remote-tracking branch 'origin/master' into feat/web-diff-card 2026-07-30 21:37:01 +08:00
Chinesezjc 1fd6b5a107 fix(web): diff card review — TUI parity, path-header overlap, double-resolve
Bring the TUI diff footer onto the same terminator rule and distinct-path
count the Web DiffBlock uses (a trailing newline terminates its line; two
hunks in one file read as 1 file), so the two front ends' `+A -R · N file(s)`
footers agree. Reserve space in the diff path header for the floating copy
button so a long path no longer scrolls under it. Pass the tool's raw path to
the injected openFile (which already resolves against cwd) instead of resolving
twice. Rename the shared block-body CSS class to a card-neutral cardBody so a
terminal-spacing tweak cannot silently move the diff card. Add a same-file
two-hunk TUI unit test and an assembled built-boot assertion that the write
turn renders +1 -0 · 1 file end to end.
2026-07-30 21:36:42 +08:00
Yichen Jiang dceff19bd3 fix(jsonrpc-agent): claim the renamed route in the persistent-tools replay catalog
The rename to deepseek-official reached cordis.snapshot.yml but not its
persistent-tools sibling, so the replay catalog no longer owned the route the
agent asks for. The SDK server then mounted the real adapter, which failed the
turn on a missing key. Re-records the six transcripts and the two diagnostics
cards that still carried the old route name.
2026-07-30 21:34:46 +08:00
Chinesezjc 00c264fa50 Merge remote-tracking branch 'origin/master' into feat/web-presenter 2026-07-30 21:29:05 +08:00
Chinesezjc 689dcfe7d5 fix(web-presenter): dim-Markdown web fallback, memoize fetch conversion, strip note residue
Route a `web` result card's raw-content fallback through the TUI's dim
Markdown path (render() only recognized `card: 'generic'` as markdown
content, so web fallback rendered as bare undimmed text).

Memoize renderFetchOutput per (result, maxOutputChars) so the registry's
twin output.render / output.presentationMeta calls on the same frozen
result run one HTML->markdown conversion instead of two.

Remove the trailing `</content>`/`</invoke>` protocol residue from both
sides of the web-result-card Agent Note and re-record the pairing.
2026-07-30 20:48:19 +08:00
Yichen Jiang 3957ce007a Merge branch 'worktree-llm-dynamic-config' into worktree-llm-web-config
# Conflicts:
#	apps/cli/cordis.yml
#	apps/cli/package.json
#	apps/cli/tests/tui-keyless-smoke.e2e.ts
#	apps/web/tests/details-session-lifecycle.e2e.ts
#	apps/web/tests/snapshots/code-mode-round/ui.expected.md
#	apps/web/tests/snapshots/cordis-tool-round/ui.expected.md
#	apps/web/tests/snapshots/fresh-round-trip/ui.expected.md
#	apps/web/tests/snapshots/lifecycle-chrome/hero.expected.md
#	apps/web/tests/snapshots/lifecycle-chrome/reloaded.expected.md
#	apps/web/tests/snapshots/live-interactions/cancel.expected.md
#	apps/web/tests/snapshots/live-interactions/error-auth.expected.md
#	apps/web/tests/snapshots/live-interactions/retry.expected.md
#	apps/web/tests/snapshots/message-actions/ui.expected.md
#	apps/web/tests/snapshots/question-composer/answered.expected.md
#	apps/web/tests/snapshots/seeded-history/ui.expected.md
#	apps/web/tests/snapshots/steering/mid-steer.expected.md
#	apps/web/tests/snapshots/steering/settled.expected.md
#	docs/cordis-catalog/events.md
#	docs/cordis-catalog/services.md
#	docs/event-producer-consumer.md
#	docs/user/guide/config.i18n.yaml
#	docs/user/guide/config.md
#	docs/user/guide/config.zh.md
#	docs/user/guide/index.i18n.yaml
#	docs/user/guide/index.md
#	docs/user/guide/index.zh.md
#	examples/acp-agent/tests/snapshots/subagent-fork/session.1.jsonl
#	examples/acp-agent/tests/snapshots/subagent-mixed/session.2.jsonl
#	examples/cordis-agent/cordis.yml
#	examples/cordis-agent/tests/cordis-tools.e2e.ts
#	examples/headless-agent/tests/semantic-checkpoint-snapshots/tool-outcome-unknown/session.expected.jsonl
#	examples/headless-agent/tests/subagent-inheritance-snapshots/parent-override/parent.expected.jsonl
#	examples/tui-agent/code-mode.cordis.yml
#	examples/tui-agent/cordis.yml
#	packages/examples/tui-demo/README.md
#	packages/examples/tui-demo/README.zh.md
#	packages/host/apiproxy/README.i18n.yaml
#	packages/pty/tool-bash-persistent/README.i18n.yaml
#	packages/ui/tui/tests/snapshots/status-diagnostics-narrow.expected.txt
#	packages/ui/tui/tests/snapshots/status-diagnostics.expected.txt
#	pnpm-lock.yaml
#	scripts/snapshots/python-sdk-single-exe/advanced/result.json
#	scripts/snapshots/python-sdk-single-exe/advanced/session.1.jsonl
#	scripts/snapshots/python-sdk-single-exe/advanced/session.2.jsonl
#	scripts/snapshots/python-sdk-single-exe/advanced/session.jsonl
2026-07-30 20:15:40 +08:00
Hypatia May eb3188f05d Merge remote-tracking branch 'origin/fix/web-transcript-projection' into feat/manual-compact-single-lock
# Conflicts:
#	apps/cli/config/base.cordis.yml
#	apps/cli/cordis.yml
#	docs/event-producer-consumer.md
#	examples/package.json
#	examples/tui-agent/README.i18n.yaml
#	examples/tui-agent/README.md
#	examples/tui-agent/README.zh.md
#	pnpm-lock.yaml
2026-07-30 20:09:23 +08:00
Hypatia May fe97451604 Merge remote-tracking branch 'origin/master' into fix/human-transcript-projection
# Conflicts:
#	.agents/notes/implemented/feature/2026-07-17-dedicated-full-screen-tui-front-door.i18n.yaml
#	docs/cordis-catalog/services.md
#	packages/host/apiproxy/README.i18n.yaml
#	packages/ui/tui/README.i18n.yaml
2026-07-30 19:57:49 +08:00
Hypatia May bf1f06d398 test: stabilize aggregate coverage waits 2026-07-30 19:19:35 +08:00
Hypatia May faac9b4fd5 round 1: implement bracket-first manual compaction 2026-07-30 17:40:25 +08:00
Hypatia May 82817570b0 Merge remote-tracking branch 'origin/master' into fix/human-transcript-projection
# Conflicts:
#	docs/cordis-catalog/services.md
#	docs/core-data-structures/session.i18n.yaml
#	packages/host/apiproxy/README.i18n.yaml
#	packages/host/apiproxy/src/api-proxy.ts
#	packages/ui/tui/src/index.ts
2026-07-30 17:28:26 +08:00
Turtle 3c620a0cb6 Merge remote-tracking branch 'origin/master' into feature/shared-cli-config-foundation
# Conflicts:
#	docs/cordis-catalog/services.md
#	packages/host/apiproxy/README.i18n.yaml
2026-07-30 16:53:55 +08:00
Hypatia May 86b95a3856 Merge PR #941 dependency into manual compaction stack
# Conflicts:
#	docs/cordis-catalog/services.md
#	docs/core-data-structures/session.i18n.yaml
#	packages/host/apiproxy/README.i18n.yaml
#	packages/host/apiproxy/src/api-proxy.ts
#	packages/ui/tui/src/index.ts
2026-07-30 16:42:24 +08:00
Hypatia May 7bcf8d660d Merge remote-tracking branch 'origin/master' into fix/human-transcript-projection
# Conflicts:
#	packages/host/apiproxy/README.i18n.yaml
#	packages/host/apiproxy/src/api-proxy.ts
#	packages/ui/tui/README.i18n.yaml
2026-07-30 15:42:47 +08:00
Turtle 42ba71b4f2 test(tui): pin transient query access 2026-07-30 15:37:03 +08:00
Hypatia May 8527137230 refactor(session): rename the seed boundary to end-seed 2026-07-30 15:32:06 +08:00
Turtle 0b1aaa4b12 test(tui): remove erased enum import 2026-07-30 15:30:59 +08:00