[BUG] Make resource, device, and route resolution deterministic and safety-aware
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
Línea de trabajo
Start by reading the resolver and fallback paths in unilabos/compile/evacuateandrefill_protocol.py, stir_protocol.py, dissolve_protocol.py, separate_protocol.py, and unilabos/devices/workstation/workflow_executors.py. Then inspect the existing authority and reservation work before defining the resolution record and fail-closed diagnostics. Done means ambiguous, stale, disconnected, or unsafe routes block compilation, while tests cover multiple candidates, disconnected paths, stale reservations, and an allowed alternate route.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem
Resource and route resolution uses naming heuristics and first-match fallbacks, which can produce an executable action sequence for the wrong device or route.
Concrete code evidence
unilabos/compile/evacuateandrefill_protocol.py:40-123searches gas sources by names and falls back to the first default gas source.unilabos/compile/evacuateandrefill_protocol.py:179-238searches valves by connectivity/name and can continue without an exact valve binding.unilabos/compile/stir_protocol.py:15-44returns the first stirrer orstirrer_1if no exact connection is found.unilabos/compile/dissolve_protocol.py:333-382returns the first heater/stirrer candidate.unilabos/compile/separate_protocol.py:604-689falls back to the first separator/stirrer.unilabos/devices/workstation/workflow_executors.py:559-568returns the first available tip rack when the requested set is unavailable.
Design gap
A graph path is treated as sufficient evidence of a safe executable route. It does not encode valve state, isolation, pressure, reservation, interlocks, or ambiguity.
Expected behavior
Resource and route resolution must return an explicit resolution record or a fail-closed diagnostic. First-match selection must not be used for outcome-relevant resources.
Acceptance criteria
- Missing, ambiguous, stale, or disconnected bindings block compilation.
- Resolved routes include nodes, handles, state transitions, and required interlocks.
- Unsafe valve/pump ordering is rejected before execution.
- Tests cover multiple candidates, disconnected paths, stale reservations, and an allowed alternate route.
- Resource ownership remains aligned with the existing authority/reservation work rather than adding a parallel authority.
- Lenguaje dominante
- Python
- Estrellas
- 180
- Forks
- 76
- Métricas de merge de PR
- Sin PR fusionados en 30 d
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 deepmodeling/Uni-Lab-OS
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
deepmodeling/Uni-Lab-OS#327 · 1 comentario ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
deepmodeling/Uni-Lab-OS#325 · 1 comentario ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
deepmodeling/Uni-Lab-OS#324 · 1 comentario ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
deepmodeling/Uni-Lab-OS#323 · 1 comentario ·
-
[Workflow] Phase 02H:实现 Task input preflight 与 Handle bindingQuizá libre de nuevo @TablewareBox la tomó hace 82 días y no hay ningún pull request abierto. Abierto
deepmodeling/Uni-Lab-OS#301 · 1 comentario · 1 asignado ·
Todos los issues de deepmodeling/Uni-Lab-OS
Issues similares
-
follow-up
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
Download helper still uses huggingface_hub arguments removed in 1.0: USE_SYMLINKS is silently ignored and every download ends with a WinError 3 linePosiblemente ocupada @li-lizhe la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
IPv6 node addresses produce an invalid request URLPosiblemente ocupada @RaphaelFakhri la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
typesense/typesense-python#154 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
elastic/elasticsearch-py#3592 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
developmentseed/titiler-cmr#250 · 1 comentario ·
Los mantenedores suelen responder en 1 día