fix(native-chat): give a rollout-transcript shell row the terminal glyph

`exec` and `local_shell` are what the Codex rollout transcript names a
shell call — `native-chat-edit-normalize` already treats those three
words as the command tools — but the activity set the glyph vocabulary
reuses carries neither, so both rows headed a real command with the
generic-tool wrench.

Named in the vocabulary rather than in that activity set, because that
set also picks the running row's copy and this is only about the glyph.
This commit is contained in:
Merge Sim
2026-09-05 02:05:39 -07:00
parent d5413b6710
commit 43bbb9e1fe
2 changed files with 11 additions and 1 deletions
+6 -1
View File
@@ -104,8 +104,13 @@ describe('native chat tool icons', () => {
})
it('keeps the terminal glyph for a row that really ran a command', () => {
for (const name of ['shell', 'bash', 'run_terminal_cmd']) {
// `exec` and `local_shell` are how the Codex rollout transcript names a
// shell call; `native-chat-edit-normalize` already calls the three command
// tools by those words, so a wrench on one would deny a command that ran.
for (const name of ['shell', 'bash', 'run_terminal_cmd', 'exec', 'local_shell']) {
expect(nativeChatToolCategory(name)).toBe('unknown')
expect(nativeChatToolIconName(name)).toBe('square-terminal')
expect(isShellActivityToolRow(name)).toBe(true)
}
})
+5
View File
@@ -65,6 +65,11 @@ const CATEGORY_BY_ROW_WORD = new Map<string, NativeChatToolCategory>([
['read', 'read'],
['search', 'search'],
['list', 'listFiles'],
// Codex's rollout-transcript names for a shell call, which the activity set
// below does not carry: `isCommandToolName` also picks the running row's copy,
// and this vocabulary only picks a glyph.
['exec', 'unknown'],
['local_shell', 'unknown'],
// Every Codex file change projects as a `Diff` call, and the edit set below
// names the tools that carry the edit in their input, not that projection.
['diff', 'fileChange'],