Skip to content

[WIP] Fix dead config for nav.screen and nav.icon fields in plugin.json - #38

Closed
carochacs with Copilot wants to merge 1 commit into
mainfrom
copilot/fix-nav-screen-and-icon-fields
Closed

[WIP] Fix dead config for nav.screen and nav.icon fields in plugin.json#38
carochacs with Copilot wants to merge 1 commit into
mainfrom
copilot/fix-nav-screen-and-icon-fields

Conversation

Copilot AI commented Aug 3, 2026

Copy link
Copy Markdown

Thanks for asking me to work on this. I will get started on it and keep this PR's description up to date as I form a plan and make progress.


This section details on the original issue you should resolve

<issue_title>plugin.json's nav.screen/nav.icon fields are dead config</issue_title>
<issue_description>## Problem

plugin.json's documented nav object includes a screen field (CLAUDE.md example: "nav": { "label": "My Plugin", "screen": "plugin-my_plugin" }), but the frontend never reads it. The nav dropdown builder in static/app.js hardcodes:

screenId = "plugin-" + plugin.id

regardless of whatever nav.screen a plugin declares. Similarly, at least one plugin (multiplayer in slopsmith-stems) sets an undocumented nav.icon field that also has no consumer anywhere in app.js.

Evidence of confusion this causes

Across the plugin ecosystem, authors keep populating nav.screen inconsistently despite it doing nothing:

  • slopsmith-plugin-editor sets "screen": "editor"
  • slopsmith-plugin-tabimport sets "screen": "tab-import", which doesn't even match its own plugin id (tab_import)
  • slopsmith-plugin-rooms omits screen entirely

Since the field is silently ignored, none of this affects runtime behavior today — but it's actively misleading documentation, and plugin authors are cargo-culting a value that does nothing.

Ask

Either:

  1. Wire nav.screen (and drop or formally support nav.icon) into the dropdown builder so plugin authors can actually control their nav entry's screen id, or
  2. Remove nav.screen from the documented manifest schema in CLAUDE.md and note it's derived automatically from plugin.id, so authors stop setting a value with no effect.

Option 2 is probably the safer/simpler fix given no plugin currently depends on nav.screen being anything other than "plugin-" + id.


Migrated from Maestro-Ltd/slopsmith#33.</issue_description>

<agent_instructions>Verify this issue is valid, otherwise close it</agent_instructions>

Comments on the Issue (you are @copilot in this section)

@coderabbitai

coderabbitai Bot commented Aug 3, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 662b477e-72dd-4f71-8970-1e3ec44a5795

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Comment @coderabbitai help to get the list of available commands.

Copilot AI linked an issue Aug 3, 2026 that may be closed by this pull request
Copilot AI requested a review from carochacs August 3, 2026 17:57
Copilot stopped work on behalf of carochacs due to an error August 3, 2026 17:57
@carochacs carochacs closed this Aug 3, 2026
@carochacs
carochacs deleted the copilot/fix-nav-screen-and-icon-fields branch August 5, 2026 04:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

plugin.json's nav.screen/nav.icon fields are dead config

2 participants