Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
670 commits
Select commit Hold shift + click to select a range
0fc7a25
Add the Designer canvas changelog line
knihit Oct 27, 2026
d10d0c0
Add the docs theme: tokens, bundled fonts and a light/dark mode switch
knihit Oct 25, 2026
df17d64
Give the page a top bar, a header band and themed canvas nodes and ports
knihit Oct 25, 2026
d2bee42
Cover the theme in e2e tests, add a dark screenshot, document the theme
knihit Oct 25, 2026
282e772
Put the tab strip on the header band and finish the dark canvas ports
knihit Oct 25, 2026
3b4dd16
Use a plain comment for the font wait helper in the screenshot support
knihit Oct 25, 2026
c3cfaca
Draw the S ports as jigsaw knobs and sockets, and tidy the theme
knihit Oct 25, 2026
bc85f89
Match the dark canvas muted text to the theme module
knihit Oct 25, 2026
47c9af3
Give the knob a longer pinched neck and draw the focus ring around th…
knihit Oct 26, 2026
7f7395c
Show the system outline for the focused node in forced-colors mode
knihit Oct 26, 2026
b65747a
Draw the S ports as square tabs and notches to match the connector de…
knihit Oct 27, 2026
baa1c52
Give stages and the end node room for the notch and a state badge
knihit Oct 27, 2026
48ed79c
Add the theme changelog line
knihit Oct 27, 2026
861f313
Read runs through the typed client and add the run core
knihit Oct 26, 2026
ea835c6
Draw the run on the Execution tab with a Run button and live node states
knihit Oct 26, 2026
725c3ba
Test the Execution tab end to end, capture its screenshots and docume…
knihit Oct 26, 2026
314ad57
Follow a run that is already active, retry failed reads and time out …
knihit Oct 26, 2026
6c74093
Show 'server did not answer' when the reply body hangs past the timeout
knihit Oct 26, 2026
09c99a9
Stop retrying run reads that cannot succeed (401, 404, unreadable reply)
knihit Oct 26, 2026
f979132
Keep keyboard focus in the goal box when Enter starts a run
knihit Oct 26, 2026
450ecc9
Test that a second start in the same tick is ignored
knihit Oct 26, 2026
a47a32e
Document read retries, the read-only goal box and the stale-graph limit
knihit Oct 26, 2026
5cd4ae6
Refresh the Execution screenshots: the goal box is read-only, not gre…
knihit Oct 26, 2026
d191024
Name the read-retry rule and make the README match it
knihit Oct 26, 2026
535bf45
Refresh the Execution screenshots for the square port tabs and notches
knihit Oct 27, 2026
c432696
Join a run that is still going when the page is opened again after a …
knihit Oct 27, 2026
9b7eaee
Add the Execution tab changelog line
knihit Oct 27, 2026
27720e4
Add the editing core of the Designer: draft, stage text, findings and…
knihit Oct 27, 2026
9883213
Mark the earlier stage too when two stages share a name
knihit Oct 27, 2026
524c790
Edit the stages of a workflow in the Designer: Properties, pick agent…
knihit Oct 27, 2026
3a5e71b
Ask before the page is closed or reloaded with changes that are not s…
knihit Oct 27, 2026
e20a8db
Save the workflow from the Designer, check it while typing and handle…
knihit Oct 27, 2026
5d7715e
List a repeated stage name once, and test that its field is marked on…
knihit Oct 27, 2026
b920f10
Name a stage with no name by its place in the list in the problem list
knihit Oct 27, 2026
c14dd6f
Say what to do next when the server is gone or has forgotten the session
knihit Oct 27, 2026
932d8a8
Merge the restacked layers below into the editing branch
knihit Oct 27, 2026
623e503
Add the stub API core: workflow check, store and simulated runs
knihit Oct 24, 2026
cb9bf4c
Serve the stub API over HTTP on the loopback address
knihit Oct 24, 2026
b3177a8
Test the stub API over HTTP against the contract
knihit Oct 24, 2026
32a9d62
Start the stub API in the Playwright config and in CI
knihit Oct 24, 2026
e225616
Document how to run the stub API
knihit Oct 24, 2026
6f43cbc
Make the core purity test catch randomness and clocks
knihit Oct 24, 2026
4368b6f
Report a second YAML document where it starts, in linear time
knihit Oct 24, 2026
cbc1f1a
Share the error factories and guard the codes against the contract
knihit Oct 24, 2026
51c19a0
Test the bound address, and let the dev server reach the stub
knihit Oct 24, 2026
233d5eb
Bring the workflow canvas README up to date with the stub API
knihit Oct 24, 2026
9e18c87
Document the API target switch in the README and changelog
knihit Oct 24, 2026
f47063a
Make the API backend switchable with WC_API_TARGET
knihit Oct 24, 2026
9d55e99
Fail only the commands that need the API target, and hide secrets in …
knihit Oct 24, 2026
7fc9dc8
Test dev:stub, escalate to SIGKILL, and fix the stub hint
knihit Oct 24, 2026
d6a7a8a
Keep npm test free of the API target, and redact every credential form
knihit Oct 24, 2026
d95914d
Keep the host when redacting, and tidy the wording
knihit Oct 24, 2026
af730c0
Mask the whole value when a password holds both an @ and a /
knihit Oct 24, 2026
08426d7
Let the dev stub take the launch code again, so a reload is not a dea…
knihit Oct 27, 2026
abd3935
Send the target's Origin only for requests from the dev page
knihit Oct 27, 2026
24d927c
Add the stub API changelog line
knihit Oct 27, 2026
f6162d7
Share the no-IO scan between the stub core and later cores
knihit Oct 25, 2026
15d8b73
Draw the workflow on the Designer tab from the API
knihit Oct 25, 2026
2ea3c74
Cover the canvas in the e2e tests, screenshots and docs
knihit Oct 25, 2026
f830e07
Name canvas nodes for screen readers and tighten the API reading
knihit Oct 25, 2026
0af85a0
Render the port badge letter in the pinned page font
knihit Oct 25, 2026
a10f6b7
Key each listed problem by its position as well as its text
knihit Oct 25, 2026
5ba4f5c
Move the key comment out of the map callback in the problem list
knihit Oct 25, 2026
1999806
Test that the printed launch address works again after a reload
knihit Oct 27, 2026
aeba79c
Add the Designer canvas changelog line
knihit Oct 27, 2026
8e709f4
Add the docs theme: tokens, bundled fonts and a light/dark mode switch
knihit Oct 25, 2026
685dbc9
Give the page a top bar, a header band and themed canvas nodes and ports
knihit Oct 25, 2026
5428a60
Cover the theme in e2e tests, add a dark screenshot, document the theme
knihit Oct 25, 2026
e79e88e
Put the tab strip on the header band and finish the dark canvas ports
knihit Oct 25, 2026
4a0a1ee
Use a plain comment for the font wait helper in the screenshot support
knihit Oct 25, 2026
6da13d3
Draw the S ports as jigsaw knobs and sockets, and tidy the theme
knihit Oct 25, 2026
7c9fad7
Match the dark canvas muted text to the theme module
knihit Oct 25, 2026
2857264
Give the knob a longer pinched neck and draw the focus ring around th…
knihit Oct 26, 2026
b4f7d7f
Show the system outline for the focused node in forced-colors mode
knihit Oct 26, 2026
af95708
Draw the S ports as square tabs and notches to match the connector de…
knihit Oct 27, 2026
ac42f58
Give stages and the end node room for the notch and a state badge
knihit Oct 27, 2026
8adbe2a
Add the theme changelog line
knihit Oct 27, 2026
8451056
Match the inline script tag case-insensitively in the early-mode test
knihit Oct 27, 2026
82c3f43
Draw the run on the Execution tab with a Run button and live node states
knihit Oct 26, 2026
d0fc075
Test the Execution tab end to end, capture its screenshots and docume…
knihit Oct 26, 2026
2600138
Follow a run that is already active, retry failed reads and time out …
knihit Oct 26, 2026
ea04f96
Show 'server did not answer' when the reply body hangs past the timeout
knihit Oct 26, 2026
a615576
Stop retrying run reads that cannot succeed (401, 404, unreadable reply)
knihit Oct 26, 2026
d2fdf3a
Keep keyboard focus in the goal box when Enter starts a run
knihit Oct 26, 2026
1af79f8
Test that a second start in the same tick is ignored
knihit Oct 26, 2026
0cba1e7
Document read retries, the read-only goal box and the stale-graph limit
knihit Oct 26, 2026
d4e6f46
Refresh the Execution screenshots: the goal box is read-only, not gre…
knihit Oct 26, 2026
fa53e19
Name the read-retry rule and make the README match it
knihit Oct 26, 2026
d6e0ee0
Refresh the Execution screenshots for the square port tabs and notches
knihit Oct 27, 2026
ab13673
Join a run that is still going when the page is opened again after a …
knihit Oct 27, 2026
e3ad08c
Add the Execution tab changelog line
knihit Oct 27, 2026
f0a2a72
Add the editing core of the Designer: draft, stage text, findings and…
knihit Oct 27, 2026
308c0ec
Mark the earlier stage too when two stages share a name
knihit Oct 27, 2026
6fb727b
Read runs through the typed client and add the run core
knihit Oct 26, 2026
3ecdc42
Edit the stages of a workflow in the Designer: Properties, pick agent…
knihit Oct 27, 2026
40e1d5a
Ask before the page is closed or reloaded with changes that are not s…
knihit Oct 27, 2026
9375e50
Save the workflow from the Designer, check it while typing and handle…
knihit Oct 27, 2026
154fbc8
List a repeated stage name once, and test that its field is marked on…
knihit Oct 27, 2026
241aeec
Name a stage with no name by its place in the list in the problem list
knihit Oct 27, 2026
6298935
Say what to do next when the server is gone or has forgotten the session
knihit Oct 27, 2026
61e6e06
Merge the restacked layers below into the editing branch
knihit Oct 27, 2026
c9221ad
Keep the run_id of a 409 and reject a run reply that breaks the contract
knihit Oct 27, 2026
2eb383f
Follow only the run that was started, and tidy the run core and its t…
knihit Oct 27, 2026
aae3c84
Draw the run on the Execution tab with a Run button and live node states
knihit Oct 26, 2026
4097d92
Test the Execution tab end to end, capture its screenshots and docume…
knihit Oct 26, 2026
a6b5bf6
Keep the goal across tabs, announce the run error and say the run may…
knihit Oct 27, 2026
fa7dcf0
Refresh the Execution screenshots: read-only goal box and square port…
knihit Oct 27, 2026
60b9ab2
Take the running captures without the tooltip of the Run button
knihit Oct 27, 2026
99381ea
Follow a run that is already active, retry failed reads and time out …
knihit Oct 26, 2026
a4db051
Show 'server did not answer' when the reply body hangs past the timeout
knihit Oct 26, 2026
a8bd750
Stop retrying run reads that cannot succeed (401, 404, unreadable reply)
knihit Oct 26, 2026
8ea327d
Test that a second start in the same tick is ignored
knihit Oct 26, 2026
58544c6
Document read retries, the read-only goal box and the stale-graph limit
knihit Oct 26, 2026
f65505f
Name the read-retry rule and make the README match it
knihit Oct 26, 2026
8f574e5
Join a run that is still going when the page is opened again after a …
knihit Oct 27, 2026
507a333
Add the Execution tab changelog line
knihit Oct 27, 2026
b9419b8
Add the editing core of the Designer: draft, stage text, findings and…
knihit Oct 27, 2026
42010ee
Mark the earlier stage too when two stages share a name
knihit Oct 27, 2026
3bf1e8c
Edit the stages of a workflow in the Designer: Properties, pick agent…
knihit Oct 27, 2026
09159d3
Ask before the page is closed or reloaded with changes that are not s…
knihit Oct 27, 2026
081e7a5
Save the workflow from the Designer, check it while typing and handle…
knihit Oct 27, 2026
c811692
List a repeated stage name once, and test that its field is marked on…
knihit Oct 27, 2026
d23e298
Name a stage with no name by its place in the list in the problem list
knihit Oct 27, 2026
9fa6668
Say what to do next when the server is gone or has forgotten the session
knihit Oct 27, 2026
28f9f62
Name the save and check calls among the calls of the port in the README
knihit Oct 27, 2026
c388bad
Merge the restacked layers below into the editing branch
knihit Oct 27, 2026
a99dfb2
Add the stub API core: workflow check, store and simulated runs
knihit Oct 24, 2026
4487554
Serve the stub API over HTTP on the loopback address
knihit Oct 24, 2026
8b03a97
Test the stub API over HTTP against the contract
knihit Oct 24, 2026
cf3dc1c
Start the stub API in the Playwright config and in CI
knihit Oct 24, 2026
bcaec3b
Document how to run the stub API
knihit Oct 24, 2026
f974e89
Make the core purity test catch randomness and clocks
knihit Oct 24, 2026
074e1d1
Report a second YAML document where it starts, in linear time
knihit Oct 24, 2026
a8d7098
Share the error factories and guard the codes against the contract
knihit Oct 24, 2026
87c6803
Test the bound address, and let the dev server reach the stub
knihit Oct 24, 2026
4428365
Bring the workflow canvas README up to date with the stub API
knihit Oct 24, 2026
37e5cd0
Document the API target switch in the README and changelog
knihit Oct 24, 2026
415ae0c
Make the API backend switchable with WC_API_TARGET
knihit Oct 24, 2026
b28a2f8
Fail only the commands that need the API target, and hide secrets in …
knihit Oct 24, 2026
be83f21
Test dev:stub, escalate to SIGKILL, and fix the stub hint
knihit Oct 24, 2026
7e3a12b
Keep npm test free of the API target, and redact every credential form
knihit Oct 24, 2026
7fd6635
Keep the host when redacting, and tidy the wording
knihit Oct 24, 2026
b76a747
Mask the whole value when a password holds both an @ and a /
knihit Oct 24, 2026
551886b
Let the dev stub take the launch code again, so a reload is not a dea…
knihit Oct 27, 2026
56b7569
Send the target's Origin only for requests from the dev page
knihit Oct 27, 2026
597e326
Add the stub API changelog line
knihit Oct 27, 2026
426a6a6
Share the no-IO scan between the stub core and later cores
knihit Oct 25, 2026
3ce0707
Draw the workflow on the Designer tab from the API
knihit Oct 25, 2026
6bafafb
Cover the canvas in the e2e tests, screenshots and docs
knihit Oct 25, 2026
e6a2502
Name canvas nodes for screen readers and tighten the API reading
knihit Oct 25, 2026
7aa5bc4
Render the port badge letter in the pinned page font
knihit Oct 25, 2026
def0c7c
Key each listed problem by its position as well as its text
knihit Oct 25, 2026
044205d
Move the key comment out of the map callback in the problem list
knihit Oct 25, 2026
d84e270
Test that the printed launch address works again after a reload
knihit Oct 27, 2026
95c4682
Add the Designer canvas changelog line
knihit Oct 27, 2026
43e37cb
Add the docs theme: tokens, bundled fonts and a light/dark mode switch
knihit Oct 25, 2026
21dbaca
Give the page a top bar, a header band and themed canvas nodes and ports
knihit Oct 25, 2026
189049e
Cover the theme in e2e tests, add a dark screenshot, document the theme
knihit Oct 25, 2026
76ab2c2
Put the tab strip on the header band and finish the dark canvas ports
knihit Oct 25, 2026
d36e206
Use a plain comment for the font wait helper in the screenshot support
knihit Oct 25, 2026
ce2c130
Draw the S ports as jigsaw knobs and sockets, and tidy the theme
knihit Oct 25, 2026
9e0e980
Match the dark canvas muted text to the theme module
knihit Oct 25, 2026
b7961d0
Give the knob a longer pinched neck and draw the focus ring around th…
knihit Oct 26, 2026
3004597
Show the system outline for the focused node in forced-colors mode
knihit Oct 26, 2026
81fbe22
Draw the S ports as square tabs and notches to match the connector de…
knihit Oct 27, 2026
619d600
Give stages and the end node room for the notch and a state badge
knihit Oct 27, 2026
bf63f37
Add the theme changelog line
knihit Oct 27, 2026
bdacdd6
Match the inline script tag case-insensitively in the early-mode test
knihit Oct 27, 2026
f22c659
Read runs through the typed client and add the run core
knihit Oct 26, 2026
ba51d0b
Keep the run_id of a 409 and reject a run reply that breaks the contract
knihit Oct 27, 2026
1b8d610
Follow only the run that was started, and tidy the run core and its t…
knihit Oct 27, 2026
e1e5fb1
Draw the run on the Execution tab with a Run button and live node states
knihit Oct 26, 2026
4a5d815
Test the Execution tab end to end, capture its screenshots and docume…
knihit Oct 26, 2026
d361753
Keep the goal across tabs, announce the run error and say the run may…
knihit Oct 27, 2026
d6feb3a
Refresh the Execution screenshots: read-only goal box and square port…
knihit Oct 27, 2026
5222942
Take the running captures without the tooltip of the Run button
knihit Oct 27, 2026
30eb824
Follow a run that is already active, retry failed reads and time out …
knihit Oct 26, 2026
2a67b6c
Show 'server did not answer' when the reply body hangs past the timeout
knihit Oct 26, 2026
503aef9
Stop retrying run reads that cannot succeed (401, 404, unreadable reply)
knihit Oct 26, 2026
5028c27
Test that a second start in the same tick is ignored
knihit Oct 26, 2026
f68035d
Document read retries, the read-only goal box and the stale-graph limit
knihit Oct 26, 2026
cb1f100
Name the read-retry rule and make the README match it
knihit Oct 26, 2026
a770e1b
Join a run that is still going when the page is opened again after a …
knihit Oct 27, 2026
50d91f9
Add the Execution tab changelog line
knihit Oct 27, 2026
453dc64
Add the editing core of the Designer: draft, stage text, findings and…
knihit Oct 27, 2026
b7669fa
Mark the earlier stage too when two stages share a name
knihit Oct 27, 2026
396293c
Edit the stages of a workflow in the Designer: Properties, pick agent…
knihit Oct 27, 2026
5d23e39
Ask before the page is closed or reloaded with changes that are not s…
knihit Oct 27, 2026
7c27673
Save the workflow from the Designer, check it while typing and handle…
knihit Oct 27, 2026
2888b0c
List a repeated stage name once, and test that its field is marked on…
knihit Oct 27, 2026
d93d4db
Name a stage with no name by its place in the list in the problem list
knihit Oct 27, 2026
f7d8f01
Say what to do next when the server is gone or has forgotten the session
knihit Oct 27, 2026
0d652a5
Name the save and check calls among the calls of the port in the README
knihit Oct 27, 2026
43f1280
Merge the restacked layers below into the editing branch
knihit Oct 27, 2026
23da7dc
Add the docs theme: tokens, bundled fonts and a light/dark mode switch
knihit Oct 25, 2026
e778e54
Give the page a top bar, a header band and themed canvas nodes and ports
knihit Oct 25, 2026
6eae234
Cover the theme in e2e tests, add a dark screenshot, document the theme
knihit Oct 25, 2026
c271c49
Put the tab strip on the header band and finish the dark canvas ports
knihit Oct 25, 2026
348ddd0
Use a plain comment for the font wait helper in the screenshot support
knihit Oct 25, 2026
a6de19b
Draw the S ports as jigsaw knobs and sockets, and tidy the theme
knihit Oct 25, 2026
b20d72a
Match the dark canvas muted text to the theme module
knihit Oct 25, 2026
3a56228
Give the knob a longer pinched neck and draw the focus ring around th…
knihit Oct 26, 2026
0450b54
Show the system outline for the focused node in forced-colors mode
knihit Oct 26, 2026
4836b05
Draw the S ports as square tabs and notches to match the connector de…
knihit Oct 27, 2026
aaa8317
Give stages and the end node room for the notch and a state badge
knihit Oct 27, 2026
035ec51
Add the theme changelog line
knihit Oct 27, 2026
f40492f
Match the inline script tag case-insensitively in the early-mode test
knihit Oct 27, 2026
af4888c
Read runs through the typed client and add the run core
knihit Oct 26, 2026
8cc32c5
Keep the run_id of a 409 and reject a run reply that breaks the contract
knihit Oct 27, 2026
955e1f4
Follow only the run that was started, and tidy the run core and its t…
knihit Oct 27, 2026
7e55f7f
Draw the run on the Execution tab with a Run button and live node states
knihit Oct 26, 2026
6f18556
Test the Execution tab end to end, capture its screenshots and docume…
knihit Oct 26, 2026
cfc04ea
Keep the goal across tabs, announce the run error and say the run may…
knihit Oct 27, 2026
d75f064
Refresh the Execution screenshots: read-only goal box and square port…
knihit Oct 27, 2026
224bb0b
Take the running captures without the tooltip of the Run button
knihit Oct 27, 2026
7fa0727
Follow a run that is already active, retry failed reads and time out …
knihit Oct 26, 2026
8347fd7
Show 'server did not answer' when the reply body hangs past the timeout
knihit Oct 26, 2026
a96bed1
Stop retrying run reads that cannot succeed (401, 404, unreadable reply)
knihit Oct 26, 2026
49a903f
Test that a second start in the same tick is ignored
knihit Oct 26, 2026
3232620
Document read retries, the read-only goal box and the stale-graph limit
knihit Oct 26, 2026
a2028da
Name the read-retry rule and make the README match it
knihit Oct 26, 2026
c046306
Join a run that is still going when the page is opened again after a …
knihit Oct 27, 2026
d7d8bf1
Add the Execution tab changelog line
knihit Oct 27, 2026
a079b4c
Add the editing core of the Designer: draft, stage text, findings and…
knihit Oct 27, 2026
810f448
Mark the earlier stage too when two stages share a name
knihit Oct 27, 2026
566338e
Edit the stages of a workflow in the Designer: Properties, pick agent…
knihit Oct 27, 2026
11b1405
Ask before the page is closed or reloaded with changes that are not s…
knihit Oct 27, 2026
d1f055b
Save the workflow from the Designer, check it while typing and handle…
knihit Oct 27, 2026
8c4f50f
List a repeated stage name once, and test that its field is marked on…
knihit Oct 27, 2026
60f2d88
Name a stage with no name by its place in the list in the problem list
knihit Oct 27, 2026
da3a1aa
Say what to do next when the server is gone or has forgotten the session
knihit Oct 27, 2026
7ef1184
Name the save and check calls among the calls of the port in the README
knihit Oct 27, 2026
fccde3a
Merge the restacked layers below into the editing branch
knihit Oct 28, 2026
177aee2
Merge the restacked layers below into the editing branch
knihit Oct 28, 2026
c22b87c
Merge the restacked layers below into the editing branch
knihit Oct 28, 2026
eef5838
Make the editing tests safe to repeat, and cover saves that go wrong
knihit Oct 28, 2026
cd4dd78
Merge branch 'wc/07c-save' into wc/07-editing
knihit Oct 28, 2026
e16da94
Merge branch 'wc/07c-save' into wc/07-editing
knihit Oct 28, 2026
3b90a84
Merge wc/07c-save into wc/07-editing, make the editing tests able to …
knihit Oct 28, 2026
9ad18a5
Merge wc/07c-save into wc/07-editing
knihit Oct 28, 2026
ebd9ba9
Follow the split of the Designer alerts in the editing e2e
knihit Oct 28, 2026
563789d
Merge wc/07c-save into wc/07-editing, reload the editing page without…
knihit Oct 28, 2026
861ccb5
Merge wc/07c-save into wc/07-editing, keep the session when a code op…
knihit Oct 28, 2026
7dbdda5
Test that a 401 on a save clears the token and shows the lost-session…
knihit Oct 28, 2026
33b3585
Merge branch 'wc/07c-save' into wc/07-editing
knihit Oct 28, 2026
774e425
Merge wc/07c-save into wc/07-editing
knihit Oct 29, 2026
b7d1462
Expect the new wording of the lost-draft sentence in the save 401 e2e…
knihit Oct 29, 2026
3624864
Merge wc/07c-save into wc/07-editing
knihit Oct 29, 2026
b11e201
Merge branch 'wc/07c-save' into wc/07-editing
knihit Oct 29, 2026
e4ce8b0
Merge wc/07c-save into wc/07-editing
knihit Oct 29, 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
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ not per individual commit.
- A spent launch address in the tab falls back to the kept session and says so, and a first load that failed, of an opened or a pasted address, can be retried with a reload.
- The workflow canvas uses the Konductor docs theme, with light and dark modes, and system colours in forced-colors mode.
- The Execution tab runs the workflow and shows live node states.
- The Designer tab edits stages (agent, rename, add, delete) and saves with checks while typing.

### Changed

Expand Down
34 changes: 26 additions & 8 deletions workflow-canvas/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ folder.
- `api/`: the HTTP API contract (`openapi.yaml`) and its test.
- `stub-api/`: a TypeScript stub server for the contract, for local
development and tests.
- `e2e/`: Playwright tests (`tests/`), the screenshot capture (`capture/`),
shared page objects and helpers (`support/`) and the committed PNGs
(`screenshots/`).
- `e2e/`: Playwright tests (`tests/`, and `editing/`, which saves to the
stub), the screenshot capture (`capture/`), shared page objects and helpers
(`support/`) and the committed PNGs (`screenshots/`).

A single `package.json` serves all of the above.

Expand Down Expand Up @@ -582,11 +582,29 @@ libraries):
npx playwright install chromium
```

Then `npm run test:e2e`. The HTML report is written to `playwright-report/`;
open it with `npx playwright show-report`. Accessibility is checked with
axe-core on each tab, on the error state, on the Execution tab with a stage
running, a failed stage, a passed run, the error of the API and a goal that
cannot be run, and in both theme modes.
Then `npm run test:e2e`. It has two Playwright projects. `functional`
(`e2e/tests/`) does not save to the stub. `editing` (`e2e/editing/`) does, so it
runs after `functional` has finished; one red functional test makes the editing
tests report "did not run". The editing tests run one after the other in one
worker (`fullyParallel: false`), and the `sample` fixture of
`e2e/support/editing-fixtures.ts` fails a test that finds itself in another
worker, because the stub keeps one workflow for all of them. So `--repeat-each`,
or a second spec file in `e2e/editing/`, needs `--workers=1`. To run only the
editing tests, add `--no-deps`, or `functional` runs first as its dependency. The stub keeps what
is saved until it stops, so the fixture puts the sample workflow back before
and after each test, and a test that needs the file changed by someone else
writes it itself (`e2e/support/stub-workflow.ts`, which fails on a refused
call). The editing tests also cover saves that go wrong: a refusal with
findings and one with none, a lost session, an answer that is lost or cannot be
read (the file holds the text, or does not), and a conflict whose draft can be
copied, and a graph that grows by added stages and is fitted again. A
test that says a save "writes nothing" counts the `PUT` requests that the
page sent; the file is checked only where a request reaches the stub. The HTML report is written to `playwright-report/`; open it with
`npx playwright show-report`. Accessibility is checked with axe-core on each
tab, on the error state, on the Execution tab with a stage running, a failed
stage, a passed run, the error of the API and a goal that cannot be run, on the
Designer tab while editing, with problems shown and with a conflict shown, and
in both theme modes.

The stub runs one run at a time and never fails a stage. So the one test that
starts a real run on it (`execution.spec.ts`, the first run test) waits for the
Expand Down
Loading
Loading