Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
0a1717d
feat(workflows): describe container changes and build a canvas diff o…
mzxchandra Sep 30, 2026
463603c
feat(preview): paint comparison status on the read-only canvas
mzxchandra Sep 30, 2026
d5dc867
feat(workflows): version diff view with a field-level change list
mzxchandra Sep 30, 2026
609c81b
feat(deploy): compare deployment versions and the draft
mzxchandra Sep 30, 2026
b02ec19
feat(forks): preview one workflow's block-level changes before a sync
mzxchandra Sep 30, 2026
90b0089
fix(workflows): harden the version diff after review
mzxchandra Sep 30, 2026
b610b2c
fix(workflows): scope the fork preview to one workflow and close revi…
mzxchandra Sep 30, 2026
43feafc
test(forks): use a neutral workflow name in preview fixtures
mzxchandra Sep 30, 2026
0f55477
fix(forks): offer "View changes" only on workflows the sync changes
mzxchandra Sep 30, 2026
2a3e35f
fix(workflows): bound the sync change check and tighten diff rendering
mzxchandra Sep 30, 2026
a1f6f07
fix(workflows): mask message text, count all block columns, reset sel…
mzxchandra Sep 30, 2026
9a18b8e
fix(workflows): scope selection reset to picked versions and test out…
mzxchandra Sep 30, 2026
5c28dd5
fix(workflows): only call a message change masked when the message ex…
mzxchandra Sep 30, 2026
64529e4
test(workflows): use absolute imports in new tests
mzxchandra Sep 30, 2026
5793bb2
Merge staging into feat/workflow-version-diff
icecrasher321 Oct 1, 2026
b874363
fix(workflows): unify version comparison and simplify diff UI
icecrasher321 Oct 1, 2026
a99b35a
Merge remote-tracking branch 'origin/staging' into feat/workflow-vers…
icecrasher321 Oct 1, 2026
580f1bd
fix(workflows): compare against previous saved version by default
icecrasher321 Oct 1, 2026
d4e23ca
fix(workflows): preserve comparison semantics and preview ports
icecrasher321 Oct 1, 2026
727629e
feat(workflows): render structured version changes by subblock type
icecrasher321 Oct 1, 2026
c40ad8a
Merge remote-tracking branch 'origin/staging' into feat/workflow-vers…
icecrasher321 Oct 1, 2026
2bfd64a
fix(api): remove stale OpenAPI operation count assertions
icecrasher321 Oct 1, 2026
f6cda93
fix(workflows): preserve scoped fields and snapshot ports
icecrasher321 Oct 1, 2026
8f96452
fix(workflows): resolve selection labels from saved snapshots
icecrasher321 Oct 2, 2026
d563d65
fix(workflows): preserve version-specific container labels
icecrasher321 Oct 2, 2026
51242f6
fix(workflows): retain tool context when masking encoded params
icecrasher321 Oct 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion .github/workflows/test-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ jobs:
# immediately, and either way the server log tail lands in the job log. No
# step timeout: the job's bound covers a hang without cutting a slow but
# healthy suite short of writing its report.
- name: Verify SCIM and administration over real HTTP
- name: Verify SCIM, administration and workflow comparisons over real HTTP
working-directory: apps/sim
env:
NEXT_PUBLIC_APP_URL: http://127.0.0.1:3017
Expand Down Expand Up @@ -247,6 +247,11 @@ jobs:
SCIM_E2E_AUTH_SECRET="$BETTER_AUTH_SECRET" \
SCIM_E2E_REPORT_PATH="$report_dir/scim-e2e-report.json" \
bun run test:scim:e2e
VERSION_COMPARE_E2E_BASE_URL="$NEXT_PUBLIC_APP_URL" \
VERSION_COMPARE_E2E_DATABASE_URL="$DATABASE_URL" \
VERSION_COMPARE_E2E_AUTH_SECRET="$BETTER_AUTH_SECRET" \
VERSION_COMPARE_E2E_REPORT_PATH="$report_dir/version-compare-http-report.json" \
bun run test:workflow-version-compare:e2e

- name: Upload end-to-end reports and server logs
if: failure()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
"applyWorkflowVariables",
"listWorkflowVersionsV2",
"getWorkflowVersionV2",
"compareWorkflowVersionsV2",
"updateWorkflowVersionV2",
"activateWorkflowVersion",
"revertWorkflowVersion",
Expand Down
185 changes: 107 additions & 78 deletions apps/docs/content/docs/cli/reference.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6277,6 +6277,113 @@ sim workflows runs wait <runId> [options]

</CommandTable>

### sim workflows versions compare

Compare Workflow Versions

```bash
sim workflows versions compare <workflowId> [options]
```

**Arguments**

<CommandTable>

| Argument | Required | Description |
| --- | --- | --- |
| `workflowId` | Yes | Unique workflow identifier. |

</CommandTable>

**Options**

<CommandTable>

| Option | Required | Description |
| --- | --- | --- |
| `--base <value>` | Yes | Deployment version to compare from. |
| `--target <value>` | Yes | Deployment version to compare to, in the same workflow. |

</CommandTable>

### sim workflows versions get

Get Workflow Version

```bash
sim workflows versions get <workflowId> <version>
```

**Arguments**

<CommandTable>

| Argument | Required | Description |
| --- | --- | --- |
| `workflowId` | Yes | Unique workflow identifier. |
| `version` | Yes | Numeric deployment version. |

</CommandTable>

### sim workflows versions list

List Workflow Versions

```bash
sim workflows versions list <workflowId> [options]
```

**Arguments**

<CommandTable>

| Argument | Required | Description |
| --- | --- | --- |
| `workflowId` | Yes | Unique workflow identifier. |

</CommandTable>

**Options**

<CommandTable>

| Option | Required | Description |
| --- | --- | --- |
| `--limit <n>` | No | Maximum items to return (0 for everything). Defaults to `100`. |
| `--cursor <value>` | No | Continue from nextCursor returned by a previous result. |

</CommandTable>

### sim workflows versions update

Update Workflow Version

```bash
sim workflows versions update <workflowId> <version> [options]
```

**Arguments**

<CommandTable>

| Argument | Required | Description |
| --- | --- | --- |
| `workflowId` | Yes | Unique workflow identifier. |
| `version` | Yes | Numeric deployment version. |

</CommandTable>

**Options**

<CommandTable>

| Option | Required | Description |
| --- | --- | --- |
| `--name <value>` | No | New label for the deployment version. |
| `--description <value>` | No | New release note for the deployment version, or null to clear it. (--description null sends the word, not JSON null). |

</CommandTable>

### sim workflows create

Create Workflow
Expand Down Expand Up @@ -6750,84 +6857,6 @@ sim workflows state replace <workflowId> [options]

</CommandTable>

### sim workflows versions get

Get Workflow Version

```bash
sim workflows versions get <workflowId> <version>
```

**Arguments**

<CommandTable>

| Argument | Required | Description |
| --- | --- | --- |
| `workflowId` | Yes | Unique workflow identifier. |
| `version` | Yes | Numeric deployment version. |

</CommandTable>

### sim workflows versions list

List Workflow Versions

```bash
sim workflows versions list <workflowId> [options]
```

**Arguments**

<CommandTable>

| Argument | Required | Description |
| --- | --- | --- |
| `workflowId` | Yes | Unique workflow identifier. |

</CommandTable>

**Options**

<CommandTable>

| Option | Required | Description |
| --- | --- | --- |
| `--limit <n>` | No | Maximum items to return (0 for everything). Defaults to `100`. |
| `--cursor <value>` | No | Continue from nextCursor returned by a previous result. |

</CommandTable>

### sim workflows versions update

Update Workflow Version

```bash
sim workflows versions update <workflowId> <version> [options]
```

**Arguments**

<CommandTable>

| Argument | Required | Description |
| --- | --- | --- |
| `workflowId` | Yes | Unique workflow identifier. |
| `version` | Yes | Numeric deployment version. |

</CommandTable>

**Options**

<CommandTable>

| Option | Required | Description |
| --- | --- | --- |
| `--name <value>` | No | New label for the deployment version. |
| `--description <value>` | No | New release note for the deployment version, or null to clear it. (--description null sends the word, not JSON null). |

</CommandTable>

### sim workflows import

Import Workflow
Expand Down
Loading
Loading