Commit Graph

1341 Commits

Author SHA1 Message Date
Chinesezjc
9d8a4d50ee Merge remote-tracking branch 'origin/master' into feat/web-terminal-card
# Conflicts:
#	packages/client/ui-conversation/src/client/chat/ToolRow.tsx
2026-07-28 16:43:15 +08:00
Chinesezjc
f4c243c75f feat(web): state the run state on the terminal card's prompt line
The terminal card showed no run state: a running command and a settled
command that produced no output rendered the same prompt line, so whether
a command was still running had to be inferred from the absence of output.

Lead the prompt line with a StateDot in three of its states — the spinning
ring while running, red for the same exit status that renders the status
pill, green for a clean settle. That is the same indicator a tool row's
leading icon carries, so a row and its own card cannot disagree about one
command; the row/card agreement is pinned in the ui-conversation spec.
StateDot is aria-hidden, so a visually hidden text label rides beside it,
which is what the refreshed aria goldens now record.

The e2e adds what jsdom cannot compute: the dot's color resolves to the
green success token through the real theme stylesheet, and the dot precedes
the prompt label in document order.
2026-07-28 16:41:04 +08:00
Tianyi Cui
d70cb63833 Merge remote-tracking branch 'origin/master' into worktree/replayable-gate-plans-20260727 2026-07-28 15:41:26 +08:00
Tianyi Cui
108374772f Merge branch 'master' into xtr/remove-append-out-of-band 2026-07-28 15:36:20 +08:00
Tianyi Cui
2a5137f0e9 Merge branch 'master' into worktree/sandbox-master-only-20260728 2026-07-28 15:35:36 +08:00
Tianyi Cui
09a65125ba Merge remote-tracking branch 'origin/master' into worktree/replayable-gate-plans-20260727 2026-07-28 15:34:30 +08:00
_Kerman
102ebb8772 Merge branch 'master' into xtr/remove-append-out-of-band 2026-07-28 15:33:34 +08:00
Tianyi Cui
cbbd888cab simplify gate graph validation 2026-07-28 15:33:20 +08:00
_Kerman
0cd28959e8 Merge branch 'master' into xtr/remove-append-out-of-band 2026-07-28 15:32:42 +08:00
Tianyi Cui
0a09924c00 Merge remote-tracking branch 'origin/master' into worktree/sandbox-master-only-20260728 2026-07-28 15:28:53 +08:00
imccyu
0bc9fa9546 Merge branch 'master' into fix/web-ui-optimization 2026-07-28 15:26:38 +08:00
Tianyi Cui
f85736e814 ci: run sandbox matrix on master only 2026-07-28 15:26:00 +08:00
_Kerman
833a58784f docs(session): refresh invariant metadata 2026-07-28 15:22:16 +08:00
_Kerman
f074444cf0 Merge remote-tracking branch 'origin/master' into xtr/remove-append-out-of-band 2026-07-28 15:19:00 +08:00
_Kerman
a39ffb095a fix(session): preserve plugin turn invariants 2026-07-28 15:18:48 +08:00
imccyu
ee9627f232 Merge remote-tracking branch 'origin/master' into fix/web-ui-optimization 2026-07-28 15:06:17 +08:00
Tianyi Cui
6a763e4b3c Merge branch 'master' into worktree/ci-flake-followup-20260728 2026-07-28 14:58:47 +08:00
Chinesezjc
540cb59585 Merge branch 'master' into feat/web-terminal-card 2026-07-28 14:58:28 +08:00
Chinesezjc
5081697aaf feat(web): render bash tool output as a terminal card
The bash tool already declares the `card: 'terminal'` render intent for
both its call and its result, and host/connection/runtime already deliver
it to the browser as callView/resultView. The Web client ignored it:
rows derived from raw args, and the details panel flattened every tool's
content into one soft-wrapping `<pre>`. Column-aligned output folded into
a paragraph and a long listing stretched the panel without bound.

`TerminalBlock` (ui-primitives) renders a command as a terminal surface:
a shortened-cwd prompt line, output at `white-space: pre` in a
horizontally scrolling box, a head/tail height cap with an expand
control, an exit-code/signal status pill, and a copy control for the raw
output. ANSI SGR runs are parsed with `anser` and resolved onto `--dsw-*`
theme tokens, with literal rgb kept for values the design system has no
token for. Geometry and fonts mirror CodeBlock; the clipboard write both
need moved into a package-internal `clipboard.ts`.

Both Web render sites for a bash call consume the intent through one
derivation (`terminal-card-model.ts`), so they cannot disagree about a
command, its cwd, or its exit status: the keyed BashRow carries the card
resident below its summary row, and the render-site fallback row keeps it
behind its existing expand control. Rows cap at 8 lines against the
panel's 16.

Inline output in the chat row reverses this package's stated
no-inline-output convention, on the owner's explicit decision; the Agent
Note records the reversal and its bound.

Tests: TerminalBlock/ansi/clipboard unit specs, ui-conversation wiring
specs at every render site, a built-client-graph snapshot covering both
chat-row shapes, and a real-browser e2e asserting the no-wrap layout and
the page's own Clipboard API.
2026-07-28 14:58:06 +08:00
Tianyi Cui
eeaf4c7220 fix(ci): stabilize readiness timing boundaries 2026-07-28 14:49:59 +08:00
_Kerman
cee0666a4d refactor(session): remove synthetic log-only turns 2026-07-28 14:41:51 +08:00
Yif
3134f2d430 doc: agent note for the web conversation polish sweep 2026-07-28 12:36:29 +08:00
imccyu
b5168bbf86 feat(ui-slots): bind inject hooks compartments into use<Name> selector hooks
Registrant-private reactive facts previously reached components as raw
observables that each component subscribed by hand (InputBar notices/
lexicon via uSES, SettingsRoot via a version/subscribe/getter triple).
The inject face now carries a reserved hooks compartment of bare
sources; the renderer binds each into a use<Name> selector hook through
the same machinery as the provide channel, so components consume
useNotices/useLexicon/useSections and never see a subscription
primitive. InputBar and SettingsRoot are the first two consumers.
2026-07-28 12:09:48 +08:00
imccyu
c4df0628db docs(notes): record reactive provide projection and lexicon subscription decisions 2026-07-28 12:09:48 +08:00
Yichen Jiang
2e6abdf8a7 Merge remote-tracking branch 'origin/master' into worktree/tui-session-title-search 2026-07-28 11:12:56 +08:00
Yichen Jiang
968e4d5312 Merge remote-tracking branch 'origin/master' into worktree/tui-session-title-search
# Conflicts:
#	.agents/notes/implemented/feature/2026-07-21-cross-session-references.i18n.yaml
#	.agents/notes/implemented/feature/2026-07-21-cross-session-references.md
#	.agents/notes/implemented/feature/2026-07-21-cross-session-references.zh.md
#	packages/context/session-reference/README.i18n.yaml
#	packages/context/session-reference/README.md
#	packages/context/session-reference/README.zh.md
#	packages/context/session-reference/src/index.ts
2026-07-28 11:11:57 +08:00
Tianyi Cui
cee7462994 Merge remote-tracking branch 'origin/master' into worktree/sdk-public-api 2026-07-28 11:06:00 +08:00
Yichen Jiang
a43a2032ec fix(tui): search session references by title 2026-07-28 11:05:53 +08:00
Tianyi Cui
e98c180062 Merge branch 'master' into worktree/change-scope-trim-20260728 2026-07-28 10:59:00 +08:00
Tianyi Cui
629f1c638b Merge branch 'master' into worktree/sdk-public-api 2026-07-28 02:11:10 +08:00
Tianyi Cui
3b5be72086 fix(sdk): narrow TypeScript client interface 2026-07-28 01:41:32 +08:00
Tianyi Cui
1a623946b9 Merge current master with codex/fix-acp-snapshot-refresh-volatiles 2026-07-28 01:36:32 +08:00
Tianyi Cui
a1401349d8 Merge remote-tracking branch 'origin/master' into worktree/change-scope-trim-20260728 2026-07-28 01:26:55 +08:00
Tianyi Cui
f6a850b107 Merge remote-tracking branch 'origin/master' into worktree/change-scope-trim-20260728 2026-07-28 01:21:25 +08:00
Tianyi Cui
9ebd0075e9 Merge master into fix/pty-handoff-grace 2026-07-28 01:19:58 +08:00
Tianyi Cui
2b539346c8 Merge remote-tracking branch 'origin/master' into worktree/change-scope-trim-20260728 2026-07-28 01:12:16 +08:00
Chinesezjc
d0be242138 Merge branch 'master' into fix/worker-timer-clamp 2026-07-28 01:12:16 +08:00
Chinesezjc
ca676178b5 Merge branch 'master' into fix/worker-timer-clamp 2026-07-28 01:06:22 +08:00
Tianyi Cui
9cd87f91cc Merge origin/master into worktree/change-scope-trim-20260728 2026-07-28 01:03:15 +08:00
Tianyi Cui
2a562236d0 Merge remote-tracking branch 'origin/master' into worktree/pr784-merge-20260728 2026-07-28 01:02:49 +08:00
Tianyi Cui
a5ed3a5cfc refactor(dev-infra): narrow change scope report 2026-07-28 01:02:43 +08:00
Tianyi Cui
00b6aff3fc docs(notes): seal corrected archive inputs 2026-07-28 00:58:33 +08:00
imccyu
730657375f Merge branch 'master' into worktree/web-session-model-selector 2026-07-28 00:56:56 +08:00
Tianyi Cui
98e953596d docs(notes): normalize archive inputs before sealing 2026-07-28 00:56:48 +08:00
Tianyi Cui
c0b9734494 Merge remote-tracking branch 'origin/master' into worktree/pr784-merge-20260728 2026-07-28 00:52:23 +08:00
Chinesezjc
57a117b7bb Merge remote-tracking branch 'origin/master' into fix/worker-timer-clamp 2026-07-28 00:49:21 +08:00
Tianyi Cui
9c6de3644e Merge branch 'master' into archive-agent-notes-sweep-2 2026-07-28 00:49:13 +08:00
Tianyi Cui
7b140eb136 docs(notes): archive superseded session-prefix note after master retarget
The rebase onto master picked up #585 (agent-loop message machine), which
removed the request-only session-prefix seam; the unified sourced-message
decision now owns the mechanism and the note's own banner declares the
seam removed. Archive the triplet and rewrite the skill-system note's
catalog mechanism against the shipped agent/step sourced injection,
keeping the archived note as the intentional historical citation.

Re-checked the other notes master added or amended (provider retry
policies, request-error retry action, observable state machine, OTel
telemetry, dependabot): their supersessions were already executed
upstream in the same PRs; no further active note qualifies.
2026-07-28 00:42:33 +08:00
imccyu
94af1589a9 Merge branch 'master' into worktree/web-session-model-selector 2026-07-28 00:40:08 +08:00
imccyu
af70af4020 Merge remote-tracking branch 'origin/master' into worktree/web-session-model-selector 2026-07-28 00:39:24 +08:00