Skip to content

[plugins] Add dark-mode logo metadata#29488

Merged
drewschuster-openai merged 3 commits into
mainfrom
dev/drew/plugin-dark-mode-logos
Jun 22, 2026
Merged

[plugins] Add dark-mode logo metadata#29488
drewschuster-openai merged 3 commits into
mainfrom
dev/drew/plugin-dark-mode-logos

Conversation

@drewschuster-openai

@drewschuster-openai drewschuster-openai commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Adds additive dark-mode plugin logo metadata across manifests, remote catalogs, and the app-server protocol while keeping uninstalled Git listings free of synthetic local paths.

Supersedes #28945. This replacement uses an upstream branch so trusted CI can use the repository-provided remote Bazel configuration.

Current state

Plugin interfaces expose only the default logo asset. Clients therefore cannot select a dedicated dark-mode logo even when a plugin provides one.

What this PR changes

  • Adds nullable logoDark and logoUrlDark fields to PluginInterface.
  • Resolves local interface.logoDark assets and maps remote logo_url_dark values.
  • Removes path-backed interface assets, including logoDark, from uninstalled Git fallback listings until the plugin has a real local root.
  • Updates the bundled plugin validator and manifest reference.
  • Regenerates the app-server JSON schemas and TypeScript types.

Local manifests expose interface.logoDark as a package-relative asset path. Remote catalog responses expose logo_url_dark. These values map into separate app-server fields so clients can preserve local-path and remote-URL handling.

Risk

The fields are additive and nullable, so existing clients retain their current logo behavior. The main risks are an incomplete mapping path or exposing a synthetic local path for an uninstalled Git plugin. Local-manifest, remote-catalog, fallback-listing, protocol serialization, and app-server integration tests cover those paths.

Spiciness: 2/5

Testing

  • just write-app-server-schema
  • just fmt
  • Regression test first failed with logo_dark resolved to /assets/logo-dark.png, then passed after the fallback-listing fix.
  • just test -p codex-core-plugins (267 tests passed)
  • just test -p codex-app-server 'suite::v2::plugin' (114 tests passed)
  • just test -p codex-app-server-protocol -p codex-core-plugins -p codex-plugin -p codex-skills (517 tests passed before the follow-up)
  • just test -p codex-tui plugin (47 tests passed)
  • Validated a local plugin manifest containing interface.logoDark with the bundled validator.

Manual verification

Create a local plugin with both interface.logo and interface.logoDark, then call plugin/list or plugin/read. Confirm the response contains separate logo and logoDark paths. For a remote catalog entry, confirm logoUrlDark is populated from logo_url_dark. For an uninstalled Git marketplace entry, confirm path-backed interface assets remain absent until installation.

Issue: N/A - coordinated maintainer change.

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

Copy link
Copy Markdown
Contributor

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: 352d83c424

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread codex-rs/core-plugins/src/manifest.rs
@drewschuster-openai drewschuster-openai merged commit 2c351cb into main Jun 22, 2026
45 of 47 checks passed
@drewschuster-openai drewschuster-openai deleted the dev/drew/plugin-dark-mode-logos branch June 22, 2026 23:01
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 22, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants