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
Memoize Ajv schema compilation for repeated validation paths to avoid retained SchemaEnv/closure growth in long-running processes. Thanks to @KrasimirKralev (PR #98) and @cmi525 (Issue #96).
Improve workflow resume compatibility for stateKey naming by accepting both workflow_resume_ and workflow-resume_ prefixes, including cleanup against the resolved on-disk key. Thanks to @brownetw-ai (PR #4).
Add per-step workflow retry policies (max, backoff, delay_ms, max_delay_ms, jitter) with retry-aware stderr logs and dry-run visibility. Thanks to @scottgl9 (PR #84).
Add optional approval identity constraints for workflow gates (approval.initiated_by, approval.required_approver, approval.require_different_approver) with resume-time enforcement via LOBSTER_APPROVAL_APPROVED_BY and envelope metadata for integrations. Thanks to @coolmanns (Issue #44).
Clarify pipeline: vs run: usage for llm.invoke / llm_task.invoke in workflow files, and add regression coverage to ensure stdin: $step.stdout is forwarded as LLM artifacts for llm_task.invoke pipeline steps. Thanks to @RatkoJ (Issue #41).
Add lobster graph workflow visualization with mermaid (default), dot, and ascii outputs, including step-type nodes, stdin data-flow edges, conditional dependency labels (when/condition), approval-gate diamond shapes, and --args-json label resolution support. Thanks to @vignesh07 (Issue #53).
Add workflow composition via workflow: + workflow_args, including recursive sub-workflow execution, cycle detection, and dry-run visibility for workflow steps. Sub-workflow approval/input halts are rejected with resume-state cleanup. Thanks to @scottgl9 (PR #73).
Add per-step on_error workflow policies (stop|continue|skip_rest) for partial-failure recovery, with structured step error fields (error, errorMessage) for condition-based branching. Thanks to @scottgl9 (PR #72).
Add per-step workflow timeout_ms handling, including timeout-triggered aborts, SIGKILL for timed shell steps, and dry-run annotations. Thanks to @scottgl9 (PR #74).
Add workflow condition comparison operators <, <=, >, and >= with strict numeric semantics (booleans/null do not coerce), including mixed boolean-expression support with &&/||. Thanks to @scottgl9 (PR #71).
Add workflow-level LLM cost tracking with _meta.cost summaries, per-step usage attribution, and optional cost_limit controls with warn/stop actions (plus custom pricing via LOBSTER_LLM_PRICING_JSON). Thanks to @scottgl9 (PR #70).
Add parallel workflow steps with branch fan-out, wait: all|any, block-level timeout support, and branch result references in downstream steps. Thanks to @scottgl9 (PR #69).
Add for_each workflow steps for per-item sub-step execution over arrays, including loop-scoped vars (item_var/index_var), optional batch_size + pause_ms, and collected iteration outputs for downstream steps. Thanks to @scottgl9 (PR #68).
Add pipe-based template filters (for example upper, length, join, default, date) for the template command with quote-aware filter parsing and chain evaluation. Thanks to @scottgl9 (PR #67).