Commit Graph

4878 Commits

Author SHA1 Message Date
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
Yichen Jiang 55ae4751b7 Merge worktree-llm-web-config (939, with latest master) into worktree/onboarding-deepseek-config 2026-07-30 22:21:05 +08:00
Tianyi Cui 9a0ee6fbfe Merge branch 'master' into worktree/deepseek-max-tokens-defaults 2026-07-30 22:20:47 +08:00
Yichen Jiang 015b065e9d Merge worktree-llm-dynamic-config (884, with latest master) into worktree-llm-web-config
# Conflicts:
#	apps/web/tests/scaffold.ts
2026-07-30 22:19:53 +08:00
Tianyi Cui 8f275cbf5a Merge branch 'master' into xtr/trajectory-timeline-click-focus 2026-07-30 22:19:42 +08:00
Tianyi Cui dc5f270ae2 Merge branch 'master' into codex/queue-collapse 2026-07-30 22:18:44 +08:00
Yichen Jiang 80c36ff0d3 Merge latest master into worktree-llm-dynamic-config 2026-07-30 22:18:16 +08:00
Tianyi Cui b5f5a01dcb Merge remote-tracking branch 'origin/master' into worktree/pr798-retarget-config-20260730 2026-07-30 22:14:08 +08:00
imccyu f2bbc0f453 Merge branch 'master' into worktree-forkweb 2026-07-30 22:12:50 +08:00
Ziya a1738d3769 Merge branch 'master' into feat/gui-full-access-confirmation 2026-07-30 10:11:13 -04:00
creatixchu 1102cfc1f3 Merge remote-tracking branch 'origin/master' into worktree/plan-review-layout 2026-07-30 22:10:56 +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 4fbe46c381 fix(fs): persist read window offset in the read card meta
An empty read window (byte cap below the first selected line: `lines: []`
with `totalLines > 0`) dropped `offset` from the persisted presentation
meta, so a replayed read card could not report where the window starts or
where a continuation resumes. Carry `offset` on `FsReadMeta`,
`ReadResultView`, and the `presentationMeta` projection, and validate it in
`readMetaFromMeta` (1-based integer; the first line number may not fall
below it). Re-record the ACP fixtures and the cordis api catalog.

Also correct the Note's `parallel-file-reads` golden path
(examples/tui-agent -> apps/cli) and record the pre-card replay-degradation
tradeoff in the Decision section.
2026-07-30 22:00:35 +08:00
Chinesezjc ec0d3c2359 Merge remote-tracking branch 'origin/master' into feat/web-presenter 2026-07-30 21:55:37 +08:00
Chinesezjc f070597378 fix(tool-web): share one source projection between search execute and meta
The web_search execute result and searchMetaFromValue each spread the
same {url, title?, snippet?, publishedAt?} projection over a seam source,
which the duplication gate flags as a clone. Extract projectSource, typed
on the seam's WebSearchSource, so both sites carry a byte-identical shape
from one definition.
2026-07-30 21:55:22 +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
imccyu 6f2e8fb6aa Merge branch 'master' into worktree-forkweb 2026-07-30 21:53:03 +08:00
Yichen Jiang e5d7fa4cef Merge worktree-llm-web-config (939, with latest master) into worktree/onboarding-deepseek-config 2026-07-30 21:52:25 +08:00
Chinesezjc de36fde01c Merge remote-tracking branch 'origin/master' into feat/web-diff-card 2026-07-30 21:51:48 +08:00
Chinesezjc 568c564db4 fix(web): update diff-card tests for the openFile no-double-resolve contract
The coverage lane caught a regression in the prior commit: FileMutationRow now
passes the tool's raw path to the injected openFile (which resolves against cwd
in apply.ts), but diff-card.spec still asserted the row pre-resolved. Assert on
the raw path instead. Also fix the built-boot diff assertion to match on the
line body and footer text — the `+ ` prefix is a CSS ::before, absent from
textContent.
2026-07-30 21:51:27 +08:00
imccyu e35e2a9f3e perf: tsc 2026-07-30 21:50:48 +08:00
Yichen Jiang 5fd34f9109 fix(agent-loop): rematerialize adapter defaults 2026-07-30 21:49:58 +08:00
Turtle 7f1c724165 merge: update origin/master 2026-07-30 21:49:51 +08:00
Turtle f04b35c6a4 fix(test): isolate jsdom storage on Node 26 2026-07-30 21:49:33 +08:00
Yichen Jiang cd6027125c Merge latest master into worktree-llm-dynamic-config 2026-07-30 21:49:30 +08:00
Wenlu Wang a1c8fa06a0 Merge branch 'master' into codex/queue-collapse 2026-07-30 21:46:37 +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
ZiyaZhang c2bce3cac6 fix(client): unblock full access CI gates 2026-07-30 06:45:36 -07:00
Chinesezjc 2b3d1a3dd9 Merge remote-tracking branch 'origin/feat/web-presenter' into feat/web-web-card 2026-07-30 21:45:02 +08:00
creatixchu ddc4adb7a3 Merge remote-tracking branch 'origin/master' into feat/dir-selector-adaptive-default 2026-07-30 21:42:30 +08:00
Tianyi Cui ec9ff784fa Merge remote-tracking branch 'origin/master' into feature/directory-listing-tool 2026-07-30 21:41:25 +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
Tianyi Cui 99db7e8fc3 Merge remote-tracking branch 'origin/master' into feature/directory-listing-tool 2026-07-30 21:35:08 +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
07akioni eef07b51a7 Merge branch 'master' into fix/turn-actions 2026-07-30 21:29:29 +08:00
Chinesezjc 00c264fa50 Merge remote-tracking branch 'origin/master' into feat/web-presenter 2026-07-30 21:29:05 +08:00
Chinesezjc fb0063de48 fix(tool-web): unexport renderFetchOutput so its memo stays behind the frozen path
renderFetchOutput has no external consumer: only formatFetchOutput and
fetchMetaFromValue call it, both through the registry, which deep-freezes
the result value. Exporting it let a hypothetical caller mutate a cached
input or the returned RenderedFetch and desync the card's truncated flag
from the model text. Drop it from the barrel and document that the memo
needs no defensive copy because every caller is internal and read-only.
2026-07-30 21:28:54 +08:00
imccyu 3b370549a1 feat(client): increment forked session titles 2026-07-30 21:28:17 +08:00
imccyu 213de9a737 feat(ui-conversation): wire assistant session forks 2026-07-30 21:28:17 +08:00
imccyu 2f8f47e500 feat(ui-workspace): flatten session fork rows 2026-07-30 21:28:17 +08:00
imccyu 7d27c92851 test(web): cover row fork in the real app 2026-07-30 21:28:16 +08:00
imccyu 36f1489398 fix(web): address session fork review findings 2026-07-30 21:28:13 +08:00
imccyu 57fb5b488e feat: fork 2026-07-30 21:27:14 +08:00
Chinesezjc 60a3cbeb8e fix(client-connection): drop content copy from fixture web views after base merge
The base (feat/web-presenter) removed the content field from
WebSearchResultView/WebFetchResultView: the web card carries no content
copy and a capability-less UI falls back to the raw tool/result content
(web-result-card note). The fixture still constructed both web result
views with a content field, failing the e2e build with TS2353. Drop the
content spread and the stale Omit key; the fixture already emits the same
text as the tool/result content the fallback path renders.
2026-07-30 21:26:37 +08:00
Yichen Jiang b6004aca52 test(settings,apiproxy): cover the path-write and revision paths the wire reaches
The mutate seam's root-path ops, its non-array rejection, and the recursion
into an existing nested object were unexercised, as was the whole containment
side of the settings/document-updated fan-out and the before-snapshot repair
of a section a hand edit left non-object. The settings.mutate route had no
round trip at all: neither the client method nor the handler entry ran.
2026-07-30 21:25:16 +08:00
creatixchu 8d864c9549 Merge remote-tracking branch 'origin/master' into feat/dir-selector-adaptive-default 2026-07-30 21:22:28 +08:00
Tianyi Cui 81e5eb9800 Merge latest master into worktree-config-settings-seam 2026-07-30 21:21:35 +08:00
Yif 78e4d36214 feat(web): unify tool-row expand interaction with IN/OUT card and trajectory Inspect
Every expandable tool row shares one interaction (whole-row toggle,
icon-to-chevron hover preview) and one expanded body: an IN/OUT
gutter-labeled card with per-section 150px scroll caps and sticky labels.
toolRowModel derives result output and the error first line, terminalFailed
surfaces a failing exit as the collapsed row's red dot, a hover Inspect
pill jumps to the call's trajectory record through a one-shot store
handoff, and the chat view keeps its scroll offset across view switches.
2026-07-30 21:21:29 +08:00