Skip to content

Implement the wide StateMachine condition workspace #956

Description

@sfmskywalker

Objective

Implement the wide condition authoring experience opened from ONLY IF, using the lossless adapter and ratified structured-clause boundary.

Context

Scope

  • Modes for Always/missing, explicit true, Never/false, structured clauses where supported, provider expression, and custom definition.
  • Wide dialog/drawer with clear summary and Apply/Cancel.
  • No mutation before Apply.
  • Advanced raw definition editor with validation and original-source preservation.
  • Provider selector/editor reuse where safe.
  • Read-only inspection mode.
  • Responsive and keyboard behavior.

Non-goals

  • Parsing arbitrary code into clauses.
  • Normalizing unknown values.
  • Treating Condition as an activity.

Architecture constraints

Use the pure adapter; apply through the wrapper/session mutation path; key provider editor state so transition/provider changes cannot leak stale Monaco content.

Dependencies

  • Boolean-condition adapter.
  • Structured-clause mapping spike.

Affected repositories

  • elsa-workflows/elsa-studio

Acceptance criteria

  • Cancel preserves the exact original condition.
  • Always can preserve missing or explicitly clear to missing.
  • Never is explicit and visibly warns that the transition cannot pass.
  • Known provider expressions edit and save valid Boolean input JSON.
  • Supported structured clauses round-trip losslessly.
  • Unsupported/unknown definitions fall back without data loss.
  • Invalid advanced JSON cannot be applied.
  • Read-only, keyboard, and narrow viewport states pass.

Validation

Adapter and bUnit tests, provider integration test, save/reload round-trip, and browser verification.

Agent readiness

Not Ready — depends on the adapter and structured-clause spike.

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