Repository navigation
fix(everything): give gzip-file-as-resource's resource the resource icons - #5436
Conversation
…cons #3131 put a light/dark icon pair on every primitive, and the docs say every resources/list entry carries one, but the resource the gzip tool creates had none: the 2025-era session resource (its list entry and link) and the 2026-07-28 minted link. Both now carry RESOURCE_ICONS, and the icon tests cover the generated resource in both eras. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: cliffhall <cliff@futurescale.com>
🦋 Changeset detectedLatest commit: ee12fb1 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
| Tools | Prompts | Resources | Resource templates | |
|---|---|---|---|---|
| Base | 22 | 4 | 8 | 5 |
| Head | 22 | 4 | 8 | 5 |
Updated by this run for ee12fb1446585fe27407d4fe1a0205c3feffefa8.
There was a problem hiding this comment.
🟢 Approval recommended
No active review issues are reported for the generated-resource icon changes.
No open issues 🎉
What changed in this PR
Fixes #5434 by adding light/dark resource icons to resources generated by gzip-file-as-resource, bringing the Everything server into line with its documented icon support.
Changes:
- Adds
RESOURCE_ICONSto legacy session resources and modern minted resource links. - Adds regression checks for links in both protocol eras and legacy resource listings.
- Includes a patch changeset for the Everything package.
| File | Description |
|---|---|
src/everything/tools/gzip-file-as-resource.ts |
Adds icons to generated session resources and their links. |
src/everything/resources/minted.ts |
Adds icons to minted resource links. |
src/everything/__tests__/icons.test.ts |
Checks generated resource icons across both protocol eras. |
src/everything/__tests__/gzip-file-as-resource.test.ts |
Updates expected resource metadata to include icons. |
.changeset/everything-5434-generated-resource-icons.md |
Records the fix for a patch release. |
Review effort: Balanced
|
Copilot round 1: clean (no findings, no suppressed comments). Review loop ends on the first clean round. |
Closes #5434
Description
#3131 gave every
everythingprimitive a light/dark icon pair. The docs (docs/features.md, README) say everyresources/listentry carries one. Copilot, reviewing the v2.3.0 merge PR #5430, found that the resourcegzip-file-as-resourcecreates had none, in either era:resources/listentry and the returnedresource_linkhad no icons.resource_linkhad no icons.Both now carry
RESOURCE_ICONS. Intools/gzip-file-as-resource.tsthe session resource object gets them, andregisterSessionResourcealready passesiconsthrough. Inresources/minted.tsthe minted link gets them, so any minted resource has them.Server Details
gzip-file-as-resourcecreates (tools/gzip-file-as-resource.ts,resources/minted.ts); tests; patch changesetMotivation and Context
#5434. This is part of #3131, which ships in this release (v2.3.0, #5425), so it is fixed before the release.
How Has This Been Tested?
Inspector CLI 2.13.0,
tools/call gzip-file-as-resource {"name":"i.gz","data":"data:text/plain;base64,…"}, both eras:SDK client (
@modelcontextprotocol/client, 2025-era, stdio). The CLI cannot list resources after a call in the same session, so this script calls the tool and thenresources/list:LLM client: Claude Code 2.1.318, headless,
--strict-mcp-confignaming this branch's build. Asked to callgzip-file-as-resourcewithllm.gz, it returned the minted linkdemo://resource/minted/1250165c-…/llm.gz, so it negotiated 2026-07-28. It reported no icons, because Claude Code passes the model only the link's name, URI and description. The icons on that same link are shown by the CLI row above.Tests:
icons.test.tschecks the returned link in both eras, and the session resource'sresources/listentry on the 2025 era. All three fail without the fix.gzip-file-as-resource.test.ts's two exact-match expectations now include the icons.everything: 461 passed, coverage 99.91 / 98.67 / 99.6 / 100.
npm run local:gate: EXIT=0. The interface diff shows no change, since icons on a generated resource are not part of the listed interface.Breaking Changes
None. One optional field is added to a generated resource.
Types of changes
Checklist
IcononResourceandResourceLink, SEP-973)npm run changeset) if this changes what a TypeScript server publishes🤖 Generated with Claude Code