Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Public hook or event for live-query graph runs (for performance attribution)

Abierto
#1,827 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
35/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
typescript

Línea de trabajo

Empieza revisando CollectionConfigBuilder.executeGraphRun y maybeRunGraph, y después compara el evento propuesto de la colección de live-query con el hook global onLiveQueryRun. Se considera terminado cuando un punto de extensión público opt-in informa de cada ejecución del grafo con su temporización y la identidad de la colección, cubre useLiveQuery y createLiveQueryCollection, y evita parchear los componentes internos de dist.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Problem

We attribute main-thread long tasks to the sync stage that caused them using performance.mark pairs around our own collection commits (co:sync:commit:start/end). The other half of the picture, the time a commit spends re-running dependent live queries, has no public seam: CollectionConfigBuilder.executeGraphRun / maybeRunGraph run synchronously inside the source collection's commit and are private, and CollectionConfigBuilder is not re-exported from @tanstack/db.

What exists publicly today does not cover it:

  • createLiveQueryObserver subscribes to changes and status, not to the run itself.
  • createEffect's per-graph-run callback fires per effect query, so instrumenting it does not cover useLiveQuery / createLiveQueryCollection sites (we have ~65).
  • Collection events are status:change, subscribers:change, index:added, index:removed.

Patching the dist to wrap executeGraphRun works but is a vendor carry we do not want to maintain for a metric.

Request

A public, opt-in event around a live query's graph run, for example on the live query collection:

collection.on('graph:run', ({ id, durationMs, changes }) => { /* mark / measure */ })

or a global hook (onLiveQueryRun(listener)) that fires with { id, startTime, endTime } per executeGraphRun. Either lets consumers emit performance.mark pairs with detail: { collection: id } and lets DevTools-style tooling attribute long tasks to specific queries without touching internals.

Context

@tanstack/db 0.7.2. Related to the offset-regression issue we filed against electric-sql/electric#4806 in the same instrumentation effort.

Lenguaje dominante
TypeScript
Estrellas
3.9k
Forks
268
Merge medio
1 d 3 h
PR fusionados (30 d)
148

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de TanStack/db

Todos los issues de TanStack/db

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.