poteto-mode watch-pr: PRs that are BLOCKED, BEHIND, UNKNOWN or REVIEW_REQUIRED come back as ready with mergeability "clear"
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 85/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- github, typescript
- Área
- tooling
Línea de trabajo
Empieza en scripts/watch-pr/policy.ts: lee assessGitHubMerge en la línea 12, gateReason en la línea 167 y readyContribution en la línea 203, luego ejecuta policy.test.ts (la línea 42 codifica el comportamiento actual). Usa watch-pr/fakes.test-helper.ts para reproducir los casos BLOCKED/BEHIND/UNKNOWN/REVIEW_REQUIRED. Terminado significa que las pruebas de tabla de verdad esperan un resultado de gate o de espera para esos estados y que mergeability: "clear" ya no se devuelve para ellos.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Found against pstack 0.15.34 at cursor/plugins 519d36aa98955bf680db01bcde5fdfba686dc901 (harness/pstack/claude-code/skills/poteto-mode/). Line numbers refer to that commit.
scripts/watch-pr/policy.ts decides readiness from CI and review threads, but not from GitHub's merge state or the
required review:
assessGitHubMerge(policy.ts:12): whenmergeStateStatusisBLOCKED, the only refusal is a head rollup of
ERRORorFAILURE. ASUCCESSrollup returnskind: "allowed",basis: "rollup".BEHIND,UNKNOWNand every
other state fall through toallowed,basis: "merge-state"(:26).gateReason(:167) turns onlyCHANGES_REQUESTEDinto a gate.REVIEW_REQUIREDis not a gate.readyContribution(:203) then returnskind: "ready-pr"withproof.mergeability: "clear".
GitHub documents BLOCKED as "the merge is blocked" and REVIEW_REQUIRED as "a review is required before the pull
request can be merged" (schema,
review decision). This also contradicts
playbooks/babysit.md:12, which requires the forge to agree that the PR can merge. GitHub still enforces its own rules,
but the watcher reports false readiness, so a babysit, shipping or autopilot run tells the user that a PR is mergeable
when it isn't.
Repro: call readSnapshot then classifyPr with the shipped fake reader (watch-pr/fakes.test-helper.ts), using
passing CI, rollup SUCCESS, no threads, reviewDecision: "REVIEW_REQUIRED", and each merge state:
mergeStateStatus BLOCKED -> kind: ready, mergeability: clear
mergeStateStatus BEHIND -> kind: ready, mergeability: clear
mergeStateStatus UNKNOWN -> kind: ready, mergeability: clear
The 18 existing tests in policy.test.ts pass. policy.test.ts:42 asserts the current behavior.
Suggested fix:
- Make an outstanding required review (
REVIEW_REQUIRED) and aBLOCKEDmerge state into merge gates (merge-gate
blockers with their own reasons), whatever the rollup says. - Treat
UNKNOWN(GitHub is still computing it) as waiting, not ready. TreatBEHINDas a gate, or as waiting when the
repo doesn't require branches to be up to date. - Never emit
mergeability: "clear"unlessmergeStateStatusisCLEAN(orHAS_HOOKS/UNSTABLE, if those are
deliberately accepted). - Update the truth-table tests to assert gate or waiting outcomes for each of these states.
- Lenguaje dominante
- TypeScript
- Estrellas
- 13.9k
- Forks
- 1.4k
- Merge medio
- 6 h 55 min
- PR fusionados (30 d)
- 158
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
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 cursor/plugins
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
cursor/plugins#1025 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
cursor/plugins#1012 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 80/100
cursor/plugins#990 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
statechart: a relative TLA2TOOLS or JAVA path fails, because TLC runs in the snapshot folderPosiblemente ocupada @Ehsan-hash la tomó hace 2 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
cursor/plugins#973 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 1 día
Todos los issues de cursor/plugins
Issues similares
-
fix(worker): keep normal prepare waiting states failure-freePosiblemente ocupada @LichKing-2234 la tomó hoy. Abiertoagent:codex priority:P1
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
AgoraIO-Extensions/agent-infra#3745 ·
Los mantenedores suelen responder en 1 día
-
The five-line work window can drop its oldest line: the per-line byte share ignores the JSON framingPosiblemente ocupada @Eapp1e la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
makecindy/cindy#7973 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
lingdojo/kana-dojo#33337 · 1 comentario · 5 reacciones ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
coder/xum#7733 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
code-yeongyu/senpi#4917 · 1 comentario ·
Los mantenedores suelen responder en 1 día