Same unconfined `predictions/<item_id>` path pattern remains in four benchmark rollouts
Los mantenedores suelen responder en 2 días
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 72/100
Línea de trabajo
Start with the merged reference implementation in skillopt/envs/spreadsheetbench/rollout.py (_is_safe_task_id(), _confined_task_out_dir()), then decide whether to lift them into a shared helper. Apply the pattern to the listed call sites in skillopt/envs/docvqa/rollout.py:173,:232, livemathematicianbench/rollout.py:144, searchqa/rollout.py:204, and officeqa/rollout.py:530, keeping in mind livemathematicianbench's colon-shaped ids need an id-to-safe-dirname mapping rather than validation-and-reject. Any mapping must be applied on the read side too: skillopt/optimizer/slow_update.py:113 reads predictions/<task_id>/conversation.json. Done when ids like ../../x cannot escape out_root and existing rollouts plus the reader still resolve their own outputs.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Follow-up from #264 (now merged). That PR validated the SpreadsheetBench task identifier and confined its persistent output directory. The same unconfined pattern remains in four other benchmark rollouts:
skillopt/envs/docvqa/rollout.py:173and:232skillopt/envs/livemathematicianbench/rollout.py:144skillopt/envs/searchqa/rollout.py:204skillopt/envs/officeqa/rollout.py:530
Each is os.path.join(out_root, "predictions", item_id), where item_id comes straight from the dataset item — no validation of the identifier and no containment check on the destination. An id such as ../../x therefore derives a destination outside out_root and processing continues into the model / code-execution path. skillopt/envs/spreadsheetbench/rollout.py now has _is_safe_task_id() and _confined_task_out_dir(), which could be lifted into a shared helper.
Two caveats are why this is filed rather than sent as a direct port:
-
A charset validator is not sufficient for
livemathematicianbench. Its ids are colon-shaped (202602:12), so all 177 ids across the shipped splits would be rejected by the SpreadsheetBench rule. Those runs need confinement by construction (map an id to a safe directory name) rather than validate-and-reject. Separately, an id containing:cannot be a Windows directory name at all, so those runs are already broken on Windows for an unrelated reason. -
Renaming the directory is not free. Readers look the task up by its raw id —
skillopt/optimizer/slow_update.py:113readspredictions/<task_id>/conversation.json— so any id-to-dirname mapping has to be applied on the read side too.
docvqa (63180), searchqa (hex) and officeqa (UID0003) use ids that are already safe shapes, so for those three the SpreadsheetBench approach can be applied as-is.
Filed separately because it is outside #264's reviewed scope.
- Lenguaje dominante
- Python
- Estrellas
- 18.2k
- Forks
- 1.7k
- Merge medio
- 4 d 1 h
- PR fusionados (30 d)
- 10
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la 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 microsoft/SkillOpt
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 32/100
Los mantenedores suelen responder en 2 días
-
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
Los mantenedores suelen responder en 2 días
-
Dificultad 3/5 1-2 días Aptitud para principiantes 64/100
Los mantenedores suelen responder en 2 días
-
项目还在迭代嘛?Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 10/100
microsoft/SkillOpt#291 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
Release cut for the Aug adopt/webui hardening + 2 residual staging gapsPosiblemente ocupada @RohithPariki la tomó hace 22 días. Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 42/100
microsoft/SkillOpt#288 · 2 comentarios ·
Los mantenedores suelen responder en 2 días
Todos los issues de microsoft/SkillOpt
Issues similares
-
fix(accounts): Balance Sheet and Profit and Loss crash on PostgreSQL due to MySQL force_indexAbierto
Dificultad 1/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
Discord webhook notifications fail with HTTP 403 (Cloudflare blocks default urllib User-Agent)Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
tharje/spooler-v2#20 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
Bump version of azure-servicebusPosiblemente ocupada @joostlek la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
home-assistant/core#186275 ·
Los mantenedores suelen responder en 1 día
-
documentation
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100