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

[BUG] Make resource, device, and route resolution deterministic and safety-aware

Abierto
#326 1 comentario 0 reacciones 0 asignados Ver en GitHub

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
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
python
Área
backend

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-123 searches gas sources by names and falls back to the first default gas source.
  • unilabos/compile/evacuateandrefill_protocol.py:179-238 searches valves by connectivity/name and can continue without an exact valve binding.
  • unilabos/compile/stir_protocol.py:15-44 returns the first stirrer or stirrer_1 if no exact connection is found.
  • unilabos/compile/dissolve_protocol.py:333-382 returns the first heater/stirrer candidate.
  • unilabos/compile/separate_protocol.py:604-689 falls back to the first separator/stirrer.
  • unilabos/devices/workstation/workflow_executors.py:559-568 returns 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

  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 deepmodeling/Uni-Lab-OS

Todos los issues de deepmodeling/Uni-Lab-OS

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.