core-agent-ide/codex-rs/tui/src
Michael Bolin e6cd75a684
notify: include client in legacy hook payload (#12968)
## Why

The `notify` hook payload did not identify which Codex client started
the turn. That meant downstream notification hooks could not distinguish
between completions coming from the TUI and completions coming from
app-server clients such as VS Code or Xcode. Now that the Codex App
provides its own desktop notifications, it would be nice to be able to
filter those out.

This change adds that context without changing the existing payload
shape for callers that do not know the client name, and keeps the new
end-to-end test cross-platform.

## What changed

- added an optional top-level `client` field to the legacy `notify` JSON
payload
- threaded that value through `core` and `hooks`; the internal session
and turn state now carries it as `app_server_client_name`
- set the field to `codex-tui` for TUI turns
- captured `initialize.clientInfo.name` in the app server and applied it
to subsequent turns before dispatching hooks
- replaced the notify integration test hook with a `python3` script so
the test does not rely on Unix shell permissions or `bash`
- documented the new field in `docs/config.md`

## Testing

- `cargo test -p codex-hooks`
- `cargo test -p codex-tui`
- `cargo test -p codex-app-server
suite::v2::initialize::turn_start_notify_payload_includes_initialize_client_name
-- --exact --nocapture`
- `cargo test -p codex-core` (`src/lib.rs` passed; `core/tests/all.rs`
still has unrelated existing failures in this environment)

## Docs

The public config reference on `developers.openai.com/codex` should
mention that the legacy `notify` payload may include a top-level
`client` field. The TUI reports `codex-tui`, and the app server reports
`initialize.clientInfo.name` when it is available.
2026-02-26 22:27:34 -08:00
..
app feat: include available decisions in command approval requests (#12758) 2026-02-26 01:10:46 +00:00
bin replace tui_markdown with a custom markdown renderer (#3396) 2025-09-10 12:13:53 -07:00
bottom_pane Add realtime audio device picker (#12850) 2026-02-26 17:27:44 -08:00
chatwidget notify: include client in legacy hook payload (#12968) 2026-02-26 22:27:34 -08:00
exec_cell Handle orphan exec ends without clobbering active exploring cell (#12313) 2026-02-22 14:26:58 +00:00
notifications Added tui.notifications_method config option (#10043) 2026-01-28 12:00:32 -08:00
onboarding Update Codex docs success link (#12805) 2026-02-25 12:02:41 -08:00
public_widgets Persist text elements through TUI input and history (#9393) 2026-01-19 23:49:34 -08:00
render Add C# syntax option to highlight selections (#12511) 2026-02-22 12:15:20 -08:00
snapshots tui: use thread_id for resume/fork cwd resolution (#12727) 2026-02-26 12:52:31 -08:00
status Use model catalog default for reasoning summary fallback (#12873) 2026-02-26 09:31:13 -08:00
streaming Remove noisy log (#12929) 2026-02-26 11:34:14 -08:00
tui feat(tui): pace catch-up stream chunking with hysteresis (#10461) 2026-02-03 15:01:51 -08:00
additional_dirs.rs chore: remove codex-core public protocol/shell re-exports (#12432) 2026-02-20 23:45:35 -08:00
app.rs Add realtime audio device picker (#12850) 2026-02-26 17:27:44 -08:00
app_backtrack.rs chore: remove codex-core public protocol/shell re-exports (#12432) 2026-02-20 23:45:35 -08:00
app_event.rs Add realtime audio device picker (#12850) 2026-02-26 17:27:44 -08:00
app_event_sender.rs tui: switch to using tokio + EventStream for processing crossterm events (#2489) 2025-08-20 17:11:09 +00:00
ascii_animation.rs chore: remove model upgrade popup (#4332) 2025-09-27 13:25:09 -07:00
audio_device.rs Add realtime audio device picker (#12850) 2026-02-26 17:27:44 -08:00
chatwidget.rs Add realtime audio device picker (#12850) 2026-02-26 17:27:44 -08:00
cli.rs feat: split codex-common into smaller utils crates (#11422) 2026-02-11 12:59:24 +00:00
clipboard_paste.rs Fixed TUI regression related to image paste in WSL (#9473) 2026-01-18 23:02:02 -08:00
clipboard_text.rs feat(tui) - /copy (#12613) 2026-02-24 14:17:01 -08:00
collaboration_modes.rs Sync collaboration mode naming across Default prompt, tools, and TUI (#10666) 2026-02-04 23:03:28 -08:00
color.rs update composer + user message styling (#4240) 2025-09-26 16:35:56 -07:00
custom_terminal.rs tweaked /clear to support clear + new chat, also fix minor bug for macos terminal (#12520) 2026-02-23 09:11:05 -08:00
cwd_prompt.rs tui: exit session on Ctrl+C in cwd change prompt (#12040) 2026-02-17 14:48:12 -08:00
debug_config.rs chore: remove codex-core public protocol/shell re-exports (#12432) 2026-02-20 23:45:35 -08:00
diff_render.rs feat(tui): add theme-aware diff backgrounds with capability-graded palettes (#12581) 2026-02-24 11:55:01 -08:00
exec_command.rs chore: remove codex-core public protocol/shell re-exports (#12432) 2026-02-20 23:45:35 -08:00
external_editor.rs feat: open prompt in configured external editor (#7606) 2025-12-22 15:12:23 -08:00
file_search.rs app-server: add fuzzy search sessions for streaming file search (#10268) 2026-02-12 10:49:44 -08:00
frames.rs Login flow polish (#3632) 2025-09-15 00:42:53 -07:00
get_git_diff.rs Show progress indicator for /diff command (#2245) 2025-08-15 15:32:41 -07:00
history_cell.rs Add oauth_resource handling for MCP login flows (#12866) 2026-02-26 20:10:12 -08:00
insert_history.rs feat(tui) /clear (#12444) 2026-02-21 22:06:56 -08:00
key_hint.rs Add vim navigation keys to transcript pager (#7550) 2025-12-09 10:23:11 -08:00
lib.rs feat: add local date/timezone to turn environment context (#12947) 2026-02-26 23:17:35 +00:00
line_truncation.rs fix: add ellipsis for truncated status indicator (#12540) 2026-02-23 11:45:46 -08:00
live_wrap.rs Stream model responses (#1810) 2025-08-05 04:23:22 +00:00
main.rs feat: pass helper executable paths via Arg0DispatchPaths (#12719) 2026-02-24 17:44:38 -08:00
markdown.rs tui: drop citation rendering (#4855) 2025-10-20 21:08:19 +00:00
markdown_render.rs tui: restore visible line numbers for hidden file links (#12870) 2026-02-26 10:29:54 +00:00
markdown_render_tests.rs tui: restore visible line numbers for hidden file links (#12870) 2026-02-26 10:29:54 +00:00
markdown_stream.rs tui: drop citation rendering (#4855) 2025-10-20 21:08:19 +00:00
mention_codec.rs TUI/Core: preserve duplicate skill/app mention selection across submit + resume (#10855) 2026-02-06 15:59:00 -08:00
model_migration.rs fix(tui): preserve URL clickability across all TUI views (#12067) 2026-02-21 15:31:41 -08:00
multi_agents.rs feat: keep dead agents in the agent picker (#12570) 2026-02-23 12:58:55 +00:00
oss_selection.rs chore: nuke chat/completions API (#10157) 2026-02-03 11:31:57 +00:00
pager_overlay.rs fix(tui): preserve URL clickability across all TUI views (#12067) 2026-02-21 15:31:41 -08:00
resume_picker.rs tui: use thread_id for resume/fork cwd resolution (#12727) 2026-02-26 12:52:31 -08:00
selection_list.rs splash screen (#8270) 2025-12-18 10:59:53 -08:00
session_log.rs feat(tui) /clear (#12444) 2026-02-21 22:06:56 -08:00
shimmer.rs tui: hardcode xterm palette, shimmer blends between fg and bg (#4957) 2025-10-08 20:23:13 +00:00
skills_helpers.rs feat: split codex-common into smaller utils crates (#11422) 2026-02-11 12:59:24 +00:00
slash_command.rs Add realtime audio device picker (#12850) 2026-02-26 17:27:44 -08:00
status_indicator_widget.rs fix: show command running in background terminal in details under status indicator (#12549) 2026-02-23 21:04:24 +00:00
style.rs Make plan highlight use popup grey background (#10253) 2026-01-30 12:39:15 -08:00
terminal_palette.rs feat(tui): add theme-aware diff backgrounds with capability-graded palettes (#12581) 2026-02-24 11:55:01 -08:00
test_backend.rs feat: Constrain values for approval_policy (#7778) 2025-12-17 16:19:27 +00:00
text_formatting.rs feat(tui): add /statusline command for interactive status line configuration (#10546) 2026-02-05 08:50:21 -08:00
theme_picker.rs feat(tui): add theme-aware diff backgrounds with capability-graded palettes (#12581) 2026-02-24 11:55:01 -08:00
tooltips.rs Point Codex App tooltip links to app landing page (#11515) 2026-02-12 23:35:57 -08:00
tui.rs feat(tui) /clear (#12444) 2026-02-21 22:06:56 -08:00
ui_consts.rs Fixes (#4458) 2025-09-30 00:10:04 +00:00
update_action.rs fix: use brew upgrade --cask codex to avoid warnings and ambiguity (#9823) 2026-01-26 16:21:09 -08:00
update_prompt.rs fix: update brew auto update version check (#6238) 2025-11-10 09:05:00 -08:00
updates.rs updates: use brew api for version check (#10809) 2026-02-05 15:12:27 -08:00
version.rs Added CLI version to /status output (#3223) 2025-09-05 16:27:31 -07:00
voice.rs Add realtime audio device config (#12849) 2026-02-26 15:08:21 -08:00
wrapping.rs fix(tui): recover on owned wrap mapping mismatch (#12609) 2026-02-23 20:14:50 +00:00