Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Name the router's reactive primitives so attribution diagnostics say which query is waiting (liveQuery status, query versions, router memos)

Ouverte
#691 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
48/100
Type d'issue
Fonctionnalité
Clarté
Clairement spécifiée
Activité
Active
Stack technique
typescript

Piste de recherche

Start with the named primitives in src/data/liveQuery.ts, src/data/query.ts, routing.ts, routers/factory.tsx, routers/components.tsx, pending.ts, and data/action.ts. Check how @solidjs/signals accepts name, then trace the router primitives and their existing tests. Done means router-created primitives have descriptive names and a test with attribution.enable() confirms diagnostics do not report generic signal or computed sources.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

What happens

With Solid's attribution engine on (attribution.enable(), rc.16), every diagnostic that involves the router's data layer names its sources "signal" or "computed". A SILENT_HOLD on a Studio page in our app reads:

[SILENT_HOLD] writes to "signal" ("idle" → "connecting"), "signal" ("idle" → "connecting"), "signal" ("idle" → "connecting"), …

Those are liveQuery status signals. Neither a person reading the console nor an agent reading /__solid/diagnostics can tell which live query was connecting, so the diagnostic cannot be acted on without bisecting by hand. The query version signals and the router's own memos have the same gap.

Where (next, 24eee074; also v2.0.0-next.40/41)

The key is already in hand at each of these sites, so the name is free:

  • src/data/liveQuery.ts:62: createSignal<LiveQueryStatus>("idle", { ownedWrite: true }) → name: \liveQuery.status:${key}``
  • src/data/query.ts:322 and :437: the entry's version createSignal(stamp, { ownedWrite: true }) → name: \query:${key}``
  • Router internals with no name, which appear in tear/waterfall diagnostics: routing.ts (url, pathname, search, hash, queryFn, matches, the lazyTreeVersion signal, the link state/active/current/pending memos), routers/factory.tsx:364 (location signal), routers/components.tsx (data, routeStates, matchesAtLevel), pending.ts:24, data/action.ts:313.

@solidjs/signals already accepts name on all of these (SignalOptions.name, MemoOptions.name), and it is dropped in production builds.

Proposal

Name every primitive the router creates. Data-layer ones should carry the user's key (query:<name><hash>, liveQuery.status:<name><hash>), and internal ones should use a router. prefix (router.location, router.matches, …). A test that runs a page with attribution.enable() and asserts that no reported source is named "signal"/"computed" would keep it that way.

Happy to send a PR if that direction sounds right.

Langage dominant
TypeScript
Étoiles
1.3k
Forks
184
Merge moyen
15 h 47 min
PR mergées (30 j)
47

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de solidjs/solid-router

Toutes les issues de solidjs/solid-router

Issues similaires

Plus d'issues TypeScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.