Skip to content

tui: keep inaccessible apps out of mentions#24625

Merged
canvrno-oai merged 2 commits into
mainfrom
codex/filter-inaccessible-app-mentions
May 26, 2026
Merged

tui: keep inaccessible apps out of mentions#24625
canvrno-oai merged 2 commits into
mainfrom
codex/filter-inaccessible-app-mentions

Conversation

@canvrno-oai
Copy link
Copy Markdown
Contributor

@canvrno-oai canvrno-oai commented May 26, 2026

Summary

Fix the TUI $ app mention paths so App Directory rows that are not accessible are not treated as usable apps.

This includes the core preservation fix from #24104, but expands it to the other app mention paths:

  • preserve app-server is_accessible flags when partial app/list/updated snapshots reach the TUI
  • require apps to be both accessible and enabled when resolving exact $slug mentions
  • require restored/stale app://... bindings to point at accessible, enabled apps before emitting structured app mentions
  • remove the now-unused codex-chatgpt dependency from codex-tui, which addresses the cargo shear failure seen on tui: keep inaccessible apps out of the mention picker #24104

Root Cause

The app server already sends merged app snapshots with accessibility computed. The TUI handled app-server app list updates as partial app loads and re-ran the old accessible-app merge path. That path treated every notification row as accessible, so App Directory entries with isAccessible=false could appear in $ suggestions.

Regression source: #22914 routed app-list updates through the app server while reusing the old TUI partial-load handling. Related precursor: #14717 introduced the partial-load path, but #22914 made it user-visible for app-server updates.

Issues

Fixes #24145
Fixes #24205
Fixes #24319

Validation

  • just fmt
  • git diff --check
  • just bazel-lock-update
  • just bazel-lock-check
  • just argument-comment-lint -p codex-tui
  • just test -p codex-tui chatwidget::tests::popups_and_settings::apps_notification_update_excludes_inaccessible_apps_from_mentions chatwidget::tests::composer_submission::submit_user_message_ignores_inaccessible_app_mentions_from_bindings chatwidget::skills::tests::find_app_mentions_requires_accessible_enabled_apps_for_bound_paths chatwidget::skills::tests::find_app_mentions_requires_accessible_enabled_apps_for_slugs

@canvrno-oai canvrno-oai force-pushed the codex/filter-inaccessible-app-mentions branch from 8080a02 to 870d93f Compare May 26, 2026 17:57
@canvrno-oai
Copy link
Copy Markdown
Contributor Author

@codex review

Copy link
Copy Markdown
Contributor

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 870d93f248

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread codex-rs/tui/src/chatwidget/input_submission.rs
@canvrno-oai canvrno-oai marked this pull request as ready for review May 26, 2026 18:36
Copy link
Copy Markdown
Contributor

@fcoury-oai fcoury-oai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Smoke tested with $app and the difference is obvious. Code looks very straightforward.

Approved 👍

@canvrno-oai canvrno-oai merged commit cd934c8 into main May 26, 2026
31 checks passed
@canvrno-oai canvrno-oai deleted the codex/filter-inaccessible-app-mentions branch May 26, 2026 19:09
@github-actions github-actions Bot locked and limited conversation to collaborators May 26, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

2 participants