Skip to content

_v1: expose a step-script deserializer (no way to decode a bare StepScript) #334

Closed

Description

@seant-aws

Gap

The _openjd_rs binding exposes deserialize_step, which requires a full named step object. There is no entry point to deserialize a bare step script.

Consequence

Callers that hold a StepScript (e.g. the deadline-cloud-worker-agent's RustSessionRuntime adapter in aws-deadline/deadline-cloud-worker-agent#1002) must fabricate a synthetic wrapper — {"name": "Placeholder", "script": ...} — and pull .script off the deserialized step. Functional, but the synthetic name can leak into Rust-side validation error messages and confuse whoever reads the session log.

Proposal

Expose a deserialize_step_script-style function (binding and/or crate) that decodes a bare script object directly.

Related: #332 (run-task-without-session-env capability for the same adapter).

Activity

  1. seant-aws commented on Aug 5, 2026

    @seant-aws
    ContributorAuthor

    Closing. Since filing this, we've confirmed the synthetic wrapper is lower-impact than it first appeared: WrappedStep.Name (RFC 0008 wrap actions) is resolved from the step_name argument to run_task, not from the deserialized step's name — so the placeholder name never affects execution semantics. The remaining impact is cosmetic: the synthetic name can appear in Rust-side validation error messages for a malformed script. That alone doesn't justify a new deserializer API surface, and the ~18-line wrapper in the worker agent adapter is stable and covered by tests. Happy to reopen if another consumer needs to decode a bare StepScript.

  2. seant-aws commented on Aug 5, 2026

    @seant-aws
    ContributorAuthor

    Closing. Since filing this, we've confirmed the synthetic wrapper is lower-impact than it first appeared: WrappedStep.Name (RFC 0008 wrap actions) is resolved from the step_name argument to run_task, not from the deserialized step's name — so the placeholder name never affects execution semantics. The remaining impact is cosmetic: the synthetic name can appear in Rust-side validation error messages for a malformed script. That alone doesn't justify a new deserializer API surface, and the small wrapper in the worker agent adapter is stable and covered by tests. Happy to reopen if another consumer needs to decode a bare StepScript.

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