Skip to content

feat: make module deprecation more visible to users - #4495

Merged
Julusian merged 3 commits into
mainfrom
claude/eloquent-cori-q86ulk
Oct 3, 2026
Merged

Julusian merged 3 commits into
mainfrom
claude/eloquent-cori-q86ulk

Conversation

@Julusian

@Julusian Julusian commented Oct 3, 2026 •

Copy link
Copy Markdown
Member

A deprecated module was only hinted at on the modules list, by a warning
icon whose tooltip said no more than "Deprecated" - so a user running one
had no way to find out, or to learn why.

Summary by CodeRabbit

  • New Features
    • Module lists now show deprecation badges, with details available on hover.
    • Deprecation alerts appear in module management and instance help and edit views.
    • Instance lists identify deprecated modules beside their names.
    • Notices distinguish module-level deprecations from deprecations affecting the version in use, and display available reasons.

claude added 3 commits October 3, 2026 22:01
A deprecated module was only hinted at on the modules list, by a warning
icon whose tooltip said no more than "Deprecated" - so a user running one
had no way to find out, or to learn why.

Add a shared `Badge` component, and a `ModuleDeprecation` lookup beside the
module stores that reports both levels the store can deprecate: the module
as a whole, and the specific version in use. The label distinguishes them,
so a row does not condemn a module that is itself current. The per-module
version subscription is only taken when there is a store version to look
up, leaving dev/builtin versions and the no-version case free.

Surface it in the three places a user meets a module:

- Connection/surface list rows: a badge beside the module name, with the
  reasons in a tooltip. The name keeps its own truncating span so the badge
  cannot be clipped.
- Help modal: the reasons spelled out above the help text. This needs the
  raw version id kept alongside its display name.
- Config panel: the same notice at the top of the panel.

The modules list keeps its indicator, redesigned onto the shared badge so
it finally shows the reason.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XAxrCHCfp9TKnaeZHPzt3v
The store's default reason is the literal string "Version is deprecated",
which most of its version entries send verbatim, so prefixing it produced
"Deprecated version / The version in use is deprecated: Version is
deprecated" - the same fact three times over.

Drop the prefix: the heading names the subject, so the body is only the
reason. A reason that is nothing but that boilerplate becomes advice the
user can act on, and a leading boilerplate line is dropped while the detail
under it is kept - six version entries, all qsys-remote-control and
bmd-atem, open that way. A reason that merely begins with the same wording
is left intact.

Reasons also keep their own line breaks, which those multiline entries need,
and when both the module and the version in use are deprecated each line now
says which it is about.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XAxrCHCfp9TKnaeZHPzt3v
The panel a user opens to manage a module's versions said nothing about the
module itself being deprecated - only its versions table hinted at anything,
and then only per version. Put the same notice at the top of the body, where
it is the first thing read.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XAxrCHCfp9TKnaeZHPzt3v
@coderabbitai

coderabbitai Bot commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 2bb48300-af00-4485-9dc2-ef274dbf59eb
📥 Commits

Reviewing files that changed from the base of the PR and between 5eaea25 and b845160.

📒 Files selected for processing (7)
  • webui/src/Instances/HelpModal.tsx
  • webui/src/Instances/InstanceEdit/InstanceEditPanel.tsx
  • webui/src/Instances/List/InstancesListTableRow.tsx
  • webui/src/Modules/ModuleDeprecation.tsx
  • webui/src/Modules/ModuleManagePanel.tsx
  • webui/src/Modules/ModulesList.tsx
  • webui/src/Modules/__tests__/ModuleDeprecation.test.tsx

Included review availability: This review used your included allowance. Your plan provides up to 8 included reviews per hour; 7 remain after this review.


📝 Walkthrough

Walkthrough

The pull request adds shared module deprecation lookup and display components. Module lists and management panels show module-level deprecations. Instance help, edit, and list views show deprecations for the applicable module and version.

Changes

Module Deprecation Notices

Layer / File(s) Summary
Deprecation lookup and presentation
webui/src/Modules/ModuleDeprecation.tsx, webui/src/Modules/__tests__/ModuleDeprecation.test.tsx
The hook returns module and applicable version deprecation reasons, excluding null, dev, and builtin versions from version lookup. Badge and alert components display formatted reasons. Tests cover lookup, formatting, and labels.
Module list and management views
webui/src/Modules/ModulesList.tsx, webui/src/Modules/ModuleManagePanel.tsx
The module list replaces its warning icon with a deprecation badge. The module management panel displays a module-level deprecation alert.
Instance help, edit, and list views
webui/src/Instances/HelpModal.tsx, webui/src/Instances/InstanceEdit/InstanceEditPanel.tsx, webui/src/Instances/List/InstancesListTableRow.tsx
The help modal and edit panel display deprecation alerts for the instance’s module and version. Instance list rows show a deprecation badge beside the module name.

Priority: ⬇️ Low

Merge Risk: ⚪ Minimal · up to b8451

The deprecation notices are ready to merge after normal checks; no actionable merge-blocking issue was established.

Security Architecture Review

Security architecture risk: 🔵 Low · up to b8451

The change adds read-only notices to existing screens. Reasons are displayed as text, and configuration actions remain unchanged. No introduced security issue was identified, but metadata access controls and freshness were not fully verified.

Retained concerns
No architecture-level concerns identified.

Security review details

Security Blast Radius

  • inferred — Control over a module's deprecation metadata could affect advisory text shown wherever that module or its selected version is viewed. The inspected flow provides no route from that text to credentials, configuration writes or executable content.

Trust Boundaries and Controls

  • observed — The new reasons terminate in text-only badge and alert content. Existing help fetching, sanitized markdown rendering, navigation and configuration-save actions remain separate from the deprecation values.

Resilience and Maintainability Implications

  • inferred — Notices inherit existing freshness limitations: cached version data can survive subscription failure, and an older HelpModal fetch can replace newer content. Response identity and markdown are committed together, so each alert remains tied to its displayed response. These limitations predate the PR and were not shown to weaken authorization or configuration controls.
🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: making module deprecation status and reasons more visible to users.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Module reasons come to light
Version notices join the sight
Badges mark the list rows clear
Alerts show the reasons here
Tests check labels, text, and scope

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

@Julusian
Julusian merged commit 15bfb48 into main Oct 3, 2026
27 checks passed
@Julusian
Julusian deleted the claude/eloquent-cori-q86ulk branch October 3, 2026 21:18
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.

2 participants