diff --git a/docs/fishbone/docs/sequences.md b/docs/fishbone/docs/sequences.md
index 2f24378..3ff5e0e 100644
--- a/docs/fishbone/docs/sequences.md
+++ b/docs/fishbone/docs/sequences.md
@@ -70,12 +70,13 @@ attribute | description
--------- | -----------
`name` | Optional: Name of this step. If not provided name of the filter or name of the contained sequence will be used.
`card` | Optional: Cardinality of this step. Defaults to "exactly once/mandatory step" if not provided. Can be any of:
`?`:zero or once, so an optional step,
`*`:any number of times = 0.., so an optional step that can occur not at all or any number of times
`+`:once or multiple times, so a mandatory step that can occur multiple times but at least once
-`canCreateNew`| Optional: Determines whether this step can create a new sequence occurrence. Defaults to `true`. Must not be `false`for the first step in a sequence. Set to `false` if this step shall only be checked for a created occurrence from an earlier step. So the `filter` or `sequence` will be ignored then.
-`filter` | [DLT filter](https://mbehr1.github.io/dlt-logs/docs/filterReference#details) definition. If this filter matches a msg the step is seen as "matching". Either `filter` or `sequence` must be provided.
+`canCreateNew`| Optional: Determines whether this step can create a new sequence occurrence. Defaults to `true`. Must not be `false` for the first step in a sequence. Set to `false` if this step shall only be checked for a created occurrence from an earlier step. So the `filter`,`sequence` or `alt` will be ignored then.
+`filter` | [DLT filter](https://mbehr1.github.io/dlt-logs/docs/filterReference#details) definition. If this filter matches a msg the step is seen as "matching". Either `filter`,`sequence` or `alt` must be provided.
`sequence` | A definition of a `sub-sequence`. For this step a full sequence is used. This is useful to either break down a bigger sequence into smaller parts of if this step can be executed multiple times (e.g. with `card:*`) but consists of multiple events/steps. See [example](#example).
+`alt`| A definition for a list of alternative steps. The `alt` attribute is an array/list of step definitions. Any `card` or `canCreateNew` attribute will automatically be applied to the alternative steps. For this step to be `ok` exactly one step needs to be `ok`. See [example alt](#example-alternative-steps).
:::important
-A step must contain either a filter or a sub-sequence but not both!
+A step must contain either a filter or a sub-sequence or an alt-list but not more than one!
:::
:::caution
@@ -191,6 +192,54 @@ sequences=[
]
```
+### example alt(ernative) steps
+
+See here an example for the `alt` attribute of a step:
+
+```mermaid
+sequenceDiagram
+ autoNumber
+ actor tester
+ participant flash
+ alt
+ tester->>+flash: flash new SW if new SW is newer
+ else
+ tester->>+flash: skip flash if new SW is the same
+ else
+ tester->>+flash: reject flash if new SW is older
+ end
+```
+
+```jsonc {8,10,14,18,21}
+/get/docs/0/filters?
+sequences=[
+ {
+ "name": "SW Update",
+ "steps":[
+ { // this step is an alternative step with 3 alternatives:
+ "name":"flash",
+ "alt":[
+ { // alt step 1
+ "name":"flash new SW if new SW is newer",
+ "sequence":// e.g. sub-sequence to detect if flash was started with newer SW
+ },
+ { // alt-step 2
+ "name":"skip flash if new SW is the same",
+ "filter":// filter to detect skip of SW
+ },
+ { // alt-step 3
+ "name":"reject flash if new SW is older",
+ "filter":// filter to detect rejection...
+ }
+ ]
+ }
+ ],
+ "failures:[ // ommitted here
+ ],
+ }
+]
+```
+
### context
Any filter payload regex can capture `context` via capture group names.
diff --git a/package.json b/package.json
index 97e8279..1953d33 100644
--- a/package.json
+++ b/package.json
@@ -143,7 +143,7 @@
},
"dependencies": {
"@vscode/extension-telemetry": "^0.8.4",
- "dlt-logs-utils": "0.6.0",
+ "dlt-logs-utils": "0.7.0",
"jju": "github:mbehr1/jju#3aa4169df926e99083fdd511d7c20b5bd9ba789f",
"js-yaml": "^4.1.0",
"json5": "2.2.3",
diff --git a/src/webview/package.json b/src/webview/package.json
index 476b269..dbac1c9 100644
--- a/src/webview/package.json
+++ b/src/webview/package.json
@@ -13,7 +13,7 @@
"@testing-library/jest-dom": "^5.16.5",
"@testing-library/react": "^13.4.0",
"@testing-library/user-event": "^14.4.3",
- "dlt-logs-utils": "^0.6.0",
+ "dlt-logs-utils": "0.7.0",
"dompurify": "^2.4.0",
"jju": "github:mbehr1/jju#3aa4169df926e99083fdd511d7c20b5bd9ba789f",
"js-yaml": "^4.1.0",
diff --git a/src/webview/yarn.lock b/src/webview/yarn.lock
index b761d0a..64ece1d 100644
--- a/src/webview/yarn.lock
+++ b/src/webview/yarn.lock
@@ -4259,10 +4259,10 @@ dir-glob@^3.0.1:
dependencies:
path-type "^4.0.0"
-dlt-logs-utils@^0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/dlt-logs-utils/-/dlt-logs-utils-0.6.0.tgz#f4104a86fb05fe3c096088c9acac258b86c99b8a"
- integrity sha512-1LmVBxZFdp1NNorqWADcztoOdCMewJGbHLTk3LEoUhyusR2RRubPt2DG3Tdmznfv9PY2yiLfjI6v/NDdoAMZnA==
+dlt-logs-utils@0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/dlt-logs-utils/-/dlt-logs-utils-0.7.0.tgz#4b1d611f8257c88daf56e318b37616683157a8b2"
+ integrity sha512-Pu+B0CLt+9Z3rzip2TltCWZ3Hvhvb0xwuU1nPaOomSHIvuyzKh/Vnbgv7Pubhj/kiLweXJBbxiI9az7zIGnnUg==
dlv@^1.1.3:
version "1.1.3"
diff --git a/yarn.lock b/yarn.lock
index 33ea028..a1cf0cf 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2453,10 +2453,10 @@ dir-glob@^3.0.0, dir-glob@^3.0.1:
dependencies:
path-type "^4.0.0"
-dlt-logs-utils@0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/dlt-logs-utils/-/dlt-logs-utils-0.6.0.tgz#f4104a86fb05fe3c096088c9acac258b86c99b8a"
- integrity sha512-1LmVBxZFdp1NNorqWADcztoOdCMewJGbHLTk3LEoUhyusR2RRubPt2DG3Tdmznfv9PY2yiLfjI6v/NDdoAMZnA==
+dlt-logs-utils@0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/dlt-logs-utils/-/dlt-logs-utils-0.7.0.tgz#4b1d611f8257c88daf56e318b37616683157a8b2"
+ integrity sha512-Pu+B0CLt+9Z3rzip2TltCWZ3Hvhvb0xwuU1nPaOomSHIvuyzKh/Vnbgv7Pubhj/kiLweXJBbxiI9az7zIGnnUg==
doctrine@^3.0.0:
version "3.0.0"