Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

tier-check: final 2026-07-28 is still treated as draft and legacy scenarios score by default

Aperta
#426 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 4 giorni

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
48/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
typescript

Direzione di ricerca

Inizia da src/types.ts per tracciare la gestione delle versioni dated, draft, latest e negotiable, quindi esamina scripts/sync-schema.ts e src/spec-types/SOURCE per il routing dello schema. Riproduci i casi di verifica del tier espliciti e predefiniti descritti nell’issue. Il lavoro è completato quando gli scenari final-2026 vengono valutati, gli scenari rimossi sono esclusi per impostazione predefinita e viene utilizzato lo schema finale immutabile, mentre i profili precedenti rimangono selezionabili.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Summary

The current conformance main (49103de6ed70804e940637bf3e9e29e4a3f54e64) predates the final MCP 2026-07-28 release (modelcontextprotocol@5f5440bb26a62e2cf3440b92da5a667efa03b267) and still classifies 2026-07-28 as the draft protocol version rather than a dated release.

That makes current Tier checks misleading in two directions:

  1. An explicit --spec-version 2026-07-28 run does not score the complete final profile.
  2. A default run scores removed legacy scenarios that are outside the SDK's target spec profile.

This was reproduced against leehack/mcp_dart@629a85c511913e30945568c6c27702da6760a3bc with @modelcontextprotocol/conformance built from 49103de6ed70804e940637bf3e9e29e4a3f54e64.

Current behavior

src/types.ts currently has dated versions ending at 2025-11-25, LATEST_SPEC_VERSION = '2025-11-25', and DRAFT_PROTOCOL_VERSION = '2026-07-28'.

For an explicit final-2026 run:

  • The client executes 32 applicable scenarios, but the 17 introduced in 2026-07-28 are marked informational. Only 15 scenarios affect pass_rate.
  • The server's default active suite excludes scenarios introduced in 2026-07-28. It runs 20 scenarios instead of the 37 applicable non-pending scenarios (40 applicable, 3 pending).
  • The output can therefore report Tier 1 without assessing all final-2026 requirements.

For a default run with no --spec-version:

  • Client tier-check invokes --suite all.
  • Two optional March 2025 OAuth backcompat scenarios with removedIn: '2025-06-18' enter the scored denominator.
  • Those scenarios are also run with the latest default wire version rather than a version inside their applicability window.
  • In this reproduction, required current-profile scenarios passed, but those two removed scenarios reduced the displayed client rate from 100% to 18/20 (90%) and the aggregate result from Tier 1 to Tier 2.

The Tier policy says scores should use the SDK's target specification and exclude legacy backcompat unless the SDK claims it: https://modelcontextprotocol.io/community/sdk-tiers

Schema drift

src/spec-types/SOURCE currently pins pre-final spec commit 71e306956a4959c9655e5036be215d41986596e6, and scripts/sync-schema.ts vendors only the older dated schemas plus mutable draft.

The final 2026-07-28 schema includes changes completed before the final tag, including the SubscriptionsListenResultResponse envelope from modelcontextprotocol/modelcontextprotocol#3158. Final-2026 validation should use an immutable vendored schema/2026-07-28, not the pre-final draft snapshot.

Expected behavior

  • Treat 2026-07-28 as a dated, latest, Tier-scoring release.
  • Make the default Tier conformance target the latest dated release, while retaining explicit older-profile assessment.
  • Exclude removed legacy scenarios and extensions from the default target profile; keep them selectable for intentional compatibility/extension testing.
  • Include all applicable, non-pending final-2026 client and server scenarios in the scored assessment.
  • Vendor and route final-2026 wire validation to the immutable final schema.
  • Preserve a useful draft target even while the spec repository's draft wire protocolVersion is temporarily identical to the latest final date.

Proposed implementation direction

One coherent change could:

  1. Add 2026-07-28 to the dated versions and make it latest.
  2. Represent whether there is a distinct unreleased draft separately from the draft wire identifier, deduplicating the version timeline and negotiable versions while both identifiers match.
  3. Keep the draft suites empty until a distinct unreleased draft exists, so final-introduced scenarios become active and scored.
  4. Default tier-check conformance to LATEST_SPEC_VERSION instead of the aggregate all suite.
  5. Vendor schema/2026-07-28 at the final tag and route dated validation to it.

The important design question is whether maintainers prefer this small has distinct draft model or a larger separation between CLI spec targets (draft versus dated releases) and wire protocolVersion values. I am happy to implement the agreed direction with inventory, tier-output, schema-routing, and backward-profile regression tests.

Lingua principale
TypeScript
Stelle
127
Fork
107
Merge medio
4g 22h
PR unite (30g)
5

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di modelcontextprotocol/conformance

Tutte le issue di modelcontextprotocol/conformance

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.