You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
enhance(BA-6053): preserve str start_command form in model definitions
Stop coercing string ``start_command`` values into argv lists via
``shlex.split`` in the API and config validators. The kernel runner
already wraps ``str`` commands as ``[shell, "-c", str]`` at exec time
(``kernel/service.py``), so passing the original string through gives
users full shell semantics — line continuations, ``$VAR`` expansion,
pipes — and removes the need to manually strip backslashes from
copy-pasted multi-line vendor recipes (e.g. vLLM).
- ``ModelServiceConfig.start_command`` and the draft mirror now accept
``str | list[str] | None``; the previous ``shlex.split`` validator
is removed.
- ``{model_path}`` substitution and ``with_args_appended`` handle both
forms; preset ARGS appended to a string command are shell-quoted via
``shlex.join``.
- DTOs in ``common/dto/manager/v2/deployment`` are widened to match.
The GraphQL types expose the field as ``JSON | None`` (the same
pattern already used for ``ModelMetadata.version``) since GraphQL
cannot natively represent a scalar/list union.
Existing list-form definitions are unaffected.
resolves#11624
Preserve the original `str` form of `start_command` in model definitions all the way to the kernel runner so the kernel runner's existing `[shell, "-c", str]` wrapping handles shell semantics (line continuations, `$VAR` expansion, pipes) — eliminating the need to manually strip backslashes from copy-pasted multi-line vendor recipes (e.g. vLLM).
0 commit comments