Merge remote-tracking branch 'origin/master' into worktree/web-multimodal-image-input

# Conflicts:
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
#	packages/host/apiproxy/README.i18n.yaml
#	packages/host/apiproxy/src/api-proxy.ts
This commit is contained in:
creatixchu
2026-07-30 17:06:19 +08:00
50 changed files with 889 additions and 146 deletions

View File

@@ -48,7 +48,7 @@ buffer
17| "│ │"
style 0-0 dim
style 55-55 dim
18| "│ Agent: idle · 7 events · 1 turn · 1 step · 1 │"
18| "│ Agent: idle · 8 events · 1 turn · 1 step · 1 │"
style 0-0 dim
style 3-12 dim
style 55-55 dim

View File

@@ -45,7 +45,7 @@ buffer
16| "│ │"
style 0-0 dim
style 81-81 dim
17| "│ Agent: idle · 7 events · 1 turn · 1 step · 1 tool call │"
17| "│ Agent: idle · 8 events · 1 turn · 1 step · 1 tool call │"
style 0-0 dim
style 3-12 dim
style 81-81 dim

View File

@@ -837,6 +837,9 @@ describe('TUI terminal-state snapshots', () => {
{ type: 'step/end', seq: 5, time: Date.parse(`${day}T00:00:06Z`), data: { turn: 1, step: 1 } },
{ type: 'turn/end', seq: 6, time: Date.parse(`${day}T00:00:07Z`), data: { turn: 1, reason: { kind: 'completed' } } },
{ type: 'session/title', seq: 7, time: Date.parse(`${day}T00:00:08Z`), data: { title, messageSeqs: [1], source: { kind: 'fallback' } } },
// A prior pickup, dated well after the work: the picker must still
// show the work's date, not the pickup's.
{ type: 'session/end-seed', seq: 8, time: Date.parse('2026-07-23T07:59:00.000Z'), data: {} },
],
})
const harness = await setupSnapshot({
@@ -906,6 +909,12 @@ describe('TUI terminal-state snapshots', () => {
messageSeqs: [1],
source: { kind: 'fallback' },
})
// Renders over a boundary-bearing log. It cannot pin the exclusion:
// `/status` appends its own `command/run` first, so the boundary is
// never the tail here. The other two call sites pin it.
dateNow.mockReturnValue(Date.parse('2026-07-22T10:10:11.000Z'))
session.append('session/end-seed', {})
dateNow.mockReturnValue(Date.parse('2026-07-22T09:10:11.000Z'))
},
}, { columns: 92, rows: 32 })
await renderAfter(harness, () => {