Skip to content

Wire the sidebar listChanged indicator across all screens #1402

@cliffhall

Description

@cliffhall

Summary

The listChanged sidebar indicator badge is hardcoded false for every screen — Tools, Apps, Prompts, and Resources — in clients/web/src/components/views/InspectorView/InspectorView.tsx. It is never wired to a real notifications/*/list_changed signal, so the indicator can never light up.

Note this is the indicator badge only: the lists themselves already refresh live. For example, the managed-tools layer (core/react/useManagedTools.ts) updates the tools array on its toolsChange event, so the Apps/Tools sidebar contents stay current. What's missing is the visual "the server changed its list since you last looked" affordance.

This was split out of #1370 (render MCP Apps end-to-end), which deliberately kept scope to the apps render path.

Proposed work

  • Surface a per-primitive "list changed since last refresh" boolean from the managed-state layer (tools/prompts/resources) up through App.tsxInspectorView → each screen's listChanged prop.
  • Decide the reset semantics (e.g. clear the flag when the user refreshes that list, or when the list is viewed).
  • Apply consistently to all four screens so behavior is uniform.

Acceptance criteria

  • A notifications/tools/list_changed (and prompts/resources equivalents) sets the corresponding screen's listChanged indicator.
  • The indicator clears on the defined reset action.
  • All four screens (Tools, Apps, Prompts, Resources) behave consistently; no screen is left hardcoded false.
  • Tests cover the set + clear transitions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    v2Issues and PRs for v2

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions