queue: no test executes the worker's raw SQL, so a type-resolution error would ship green
Los mantenedores suelen responder en 4 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 48/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- postgresql, typescript
Línea de trabajo
Comienza con queue.test.ts y worker-concurrency.test.ts; después, inspecciona el servicio de CI postgres:18 existente y la configuración de la base de datos migrada. Añade un archivo de pruebas respaldado por Postgres que cubra la ejecución de SQL sin procesar, los predicados de reclaim, los bloqueos legacy, las actualizaciones de DEAD_LETTER frente a PENDING y el plan de índices indicado; el trabajo estará terminado cuando estos comportamientos y los riesgos de resolución de tipos se ejerciten sin mocks de Prisma.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Raised repeatedly during the #224 review rounds, and it is the structural limit of the current approach rather than anything wrong with the tests that exist.
The gap
Every claim and reclaim assertion in queue.test.ts and worker-concurrency.test.ts is a substring match against mock.calls[0][0].join(' ') — the template literal's static fragments. The tests mock prisma, so CI never executes the SQL either.
Unverified anywhere, and all of it is load-bearing:
gen_random_uuid()::text(jsonb ->> "Job".type)::double precision— the per-type timeout lookup<param> * INTERVAL '1 millisecond'operator resolution against Prisma's parameter typingLEAST(<float8>, $n)with a Prisma-typed integer parameter — a classic "could not determine data type of parameter" shapePOWER,random(),left(job.error, 200), and the string concatenation on theerrorcolumn- type unification across the
CASEarms UPDATE ... RETURNING "claimToken"semantics- whether the planner actually uses
Job_status_lockUntil_idx— a property asserted as fact in bothschema.prismaand the migration, and only provable byEXPLAIN
Why it is worth doing now
A type-resolution error in reclaimStaleJobs fails on the first poll of every replica, with CI fully green — the sweep is the first statement of every poll. That is a fleet-wide failure that no gate we have can catch.
Behavioural gaps that fall out of the same absence:
- The reclaim predicate has no behavioural test. The premise of #224 is "reclaim on the deadline the claiming worker recorded", and no test asserts which rows that predicate actually selects. Wanted:
lockUntil = now + 120sis left alone by a worker whosedefaultTimeoutMsis 5s;lockUntil = now - 1sis left alone (inside the grace);lockUntil = now - 31sis reclaimed. - The legacy arm is untested behaviourally —
lockUntil IS NULLwithlockedAt20 min ago reclaims, 5 min ago does not. - The DEAD_LETTER vs PENDING branch is untested —
attempts + 1 >= maxAttemptsdrives three different columns. A row atattempts=4, maxAttempts=5must landDEAD_LETTERwithcompletedAtset andrunAtuntouched; atattempts=0,PENDINGwith a futurerunAtandcompletedAtNULL.
Shape
The repo already runs a postgres:18 service in CI. One Postgres-backed test file against a migrated database would cover every item above at once, and queue.test.ts's own header has said integration tests "should be added separately" since it was written — with no owner and no link. This is that link.
- Lenguaje dominante
- TypeScript
- Estrellas
- 10
- Forks
- 4
- Merge medio
- 4 d 2 h
- PR fusionados (30 d)
- 7
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de CopilotKit/outpost
-
area: docs area: security roadmap: now
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
CopilotKit/outpost#277 ·
Los mantenedores suelen responder en 4 días
-
area: infrastructure roadmap roadmap: later
Dificultad 1/5 Menos de una hora Aptitud para principiantes 74/100
CopilotKit/outpost#179 ·
Los mantenedores suelen responder en 4 días
-
area: ai roadmap roadmap: now
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
CopilotKit/outpost#145 ·
Los mantenedores suelen responder en 4 días
-
area: integrations priority: low roadmap roadmap: later
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
CopilotKit/outpost#124 · 3 comentarios ·
Los mantenedores suelen responder en 4 días
-
area: integrations priority: low roadmap roadmap: later
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
CopilotKit/outpost#123 · 2 comentarios ·
Los mantenedores suelen responder en 4 días
Todos los issues de CopilotKit/outpost
Issues similares
-
triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
github/docs#46222 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
agent-ready area: config area: skills type: chore upstream: brain-kit
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
-
enhancement priority:low ready-for-dev
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
bug escritorio mapa
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
marcosferr/reporte-ciudadano#4 · 1 comentario ·
-
area: material/sort gemini-triaged needs triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
angular/components#33933 ·
Los mantenedores suelen responder en 1 día