Skip to content

[Feature Request] Separate requested protocol semantics from simulation-time acceleration #324

Description

@SchrodingersCattt

Problem

Simulation-time shortcuts are embedded in protocol compilers and alter the action payload that represents the requested procedure.

Concrete code evidence

  • unilabos/compile/heatchill_protocol.py:209-213: simulation_time_limit = 100.0; values above it are assigned back to final_time.
  • unilabos/compile/stir_protocol.py:201-209: requested stir and settling times are assigned back to 60 s and 30 s limits.
  • unilabos/compile/hydrogenate_protocol.py:299-335: reaction time is assigned back to a 60 s simulation limit.
  • unilabos/compile/recrystallize_protocol.py:327-331: crystallization time is replaced by a 60 s maximum.
  • unilabos/compile/reset_handling_protocol.py:283-287: wait time is replaced by a 5 s simulation limit.

Design gap

The compiler has no separate execution-policy object. Scientific/method parameters and wall-clock scheduling are represented by the same fields, so simulation acceleration changes the method itself.

Expected behavior

Preserve requested parameters unchanged. Apply acceleration only in the runtime scheduler and record it separately in a run receipt.

{
  "requested": {"duration_s": 7200},
  "execution": {"mode": "simulation", "wall_clock_duration_s": 1},
  "observed": null
}

Acceptance criteria

  • Compiler output retains the requested semantic parameters.
  • Simulation policy is explicit and versioned.
  • Real/simulation mode and wall-clock acceleration appear in run provenance.
  • Unsupported physical conditions are still reported as unsupported unless a virtual capability explicitly declares them.
  • Regression tests prove that protocol payloads are unchanged by simulation acceleration.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions