Repository navigation
Conversation
7 of 11 tasks
knihit
force-pushed
the
wc/06b-run-panel
branch
from
October 27, 2026 23:03
d0fc075 to
fa7dcf0
Compare
knihit
force-pushed
the
wc/06b-run-panel
branch
2 times, most recently
from
October 28, 2026 14:31
5222942 to
57de421
Compare
knihit
force-pushed
the
wc/06b-run-panel
branch
from
October 28, 2026 14:54
57de421 to
224bb0b
Compare
knihit
marked this pull request as ready for review
October 28, 2026 15:37
knihit
requested review from
georgebearden,
ihmaws,
shsenior and
simonkrol
as code owners
October 28, 2026 15:37
knihit
force-pushed
the
wc/06b-run-panel
branch
from
October 28, 2026 15:38
224bb0b to
bf3cbef
Compare
7 of 11 tasks
knihit
force-pushed
the
wc/06b-run-panel
branch
from
October 28, 2026 16:37
bf3cbef to
b2c2559
Compare
knihit
force-pushed
the
wc/06b-run-panel
branch
from
October 28, 2026 17:03
b2c2559 to
2b9df48
Compare
knihit
force-pushed
the
wc/06b-run-panel
branch
from
October 28, 2026 18:31
2b9df48 to
c68cda8
Compare
knihit
force-pushed
the
wc/06b-run-panel
branch
from
October 28, 2026 19:32
c68cda8 to
eb076d9
Compare
knihit
force-pushed
the
wc/06b-run-panel
branch
from
October 28, 2026 21:38
eb076d9 to
f527b97
Compare
knihit
force-pushed
the
wc/06b-run-panel
branch
from
October 28, 2026 22:46
f527b97 to
668b427
Compare
knihit
force-pushed
the
wc/06b-run-panel
branch
from
October 28, 2026 23:50
668b427 to
9c080c2
Compare
knihit
force-pushed
the
wc/06b-run-panel
branch
from
October 29, 2026 00:42
9c080c2 to
ccb6a32
Compare
knihit
force-pushed
the
wc/06b-run-panel
branch
from
October 29, 2026 01:49
ccb6a32 to
cf5d8f5
Compare
The Execution tab shows the graph of the Designer with a goal box and a Run button. Run starts a run and reads it once a second; each node shows its state as a word and a colour from the theme, and the end shows the result. The status is a live region and an API error shows in one alert. Both tabs now share the load states and the graph card.
…nt it End-to-end tests run the stub through each stage in order, and answer the run calls themselves for a failed stage and a refused run. Axe checks the tab with a running, a failed and a passed run. The screenshots show the tab before, during and after a run, and during a run in the dark mode.
… still be going The goal box text lives in App beside the run state, so a switch of tab no longer drops what was typed or shows another goal for a run in flight; the box is read-only, not disabled, while a run is in flight, and Enter in it starts a run. The alert sits in an alert region that is always on the page, so a screen reader reads the sentence of the server, and the status line says only to see the error above. A failed read adds that the run may still be going on the server. The e2e test of a run that goes on now waits for reads while the Designer tab is open, the axe runs cover the error and the invalid goal, and the captures use fixed run replies.
After the click the pointer and the focus stay on Run, which is off and shows its reason in a tooltip. Whether the tooltip was in the PNG depended on timing, so the capture moves the pointer away and blurs the button.
…tton - The status and alert live regions move to App, outside the tabs, so a failure or a result is announced while the Designer tab is open. The visible copies carry no role, so nothing is said twice. - The alert sits under the Run button and names the run that may still be going on the server. - Enter that ends an input method composition starts no run, and a line break in the outcome of the intent becomes a space in the goal. - The reducer keeps the run id of a failure, and the status line points below.
A workflow can be saved while a run goes on. Node states attach by stage name, so the run may then miss some nodes. A warning above the graph names the stages that are not drawn and the ones that are not in the run.
The live status region stays empty on an error, as the alert says it all. An Enter with key code 229 starts no run, which is how Safari reports the one that ends a composition. The stage notice says the file may have changed after the page loaded, and tells the person to reload. A start with no clear answer says the run may not have started. A new workflow redraws the Execution tab canvas.
…son to reload A run that was followed stayed on the page after a pasted launch address opened another workflow: the status and the badges described the old run over the new graph, Run stayed off, and the stage note blamed a changed file. Opening another workflow now stops following the run and clears its status. The run itself goes on at its server. The stage note no longer says to reload the page. A launch code works once on a real server, so a reload ends in "no launch code". It now says to paste a fresh launch address from the server.
knihit
force-pushed
the
wc/06b-run-panel
branch
from
October 29, 2026 02:51
cf5d8f5 to
50e3dff
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Part 2 of 3 of the Execution tab, after #115, which holds the run core (
wc/06a-run-core); #93 is part 3. This part puts the run on the page: the Execution tab draws the same graph as the Designer, read-only, with a goal box and a Run button. Run starts a run on the API, then reads it once a second, and each node shows its live state until the run ends. The page calls the relative/api, so it works the same against the stub (npm run dev:stub) or a server named byWC_API_TARGET.Execution tab (
src/execution/):Execution.tsx: the graph, a Goal box and Run. The goal starts as the outcome of the intent. The text of the box is kept inApp, so it survives a switch of tab. From the click until the run ends Run is off and the box is read-only (not disabled, so it keeps focus) and shows the goal of that run. Enter in the box starts a run, except the Enter that ends an input method composition. A line break in the outcome becomes a space in the goal.role="status") thatAppkeeps outside the tabs, so it is announced while the Designer tab is open too. Each node's name for a screen reader ends with its state.role="alert"region thatAppkeeps outside the tabs (a test checks that it is empty before the error and holds the sentence after, with the Designer tab open too); the status line on the tab says only "See the error below.", which the live status region leaves out When a read of a started run fails, the alert adds that the run, with its id, may still be going on the server. A failed stage is a result, not an error.timerScheduleris the browser adapter for the core'sSchedulerport.useExecutionanduseGoalkeep the state and the goal inApp, so a run goes on and the goal stays while the Designer tab is open.Shared pieces:
WorkflowGraphCard(the card with the graph) andWorkflowGate(loading, error and empty states) are used by both tabs;designer/states.tsxmoved toworkflow/states.tsx. State colours are CSS variables incanvas.css, and a test checks that they match the theme module and reach WCAG 2 AA in both modes.Docs:
workflow-canvas/README.mdhas an Execution tab section.How to run
cd workflow-canvas npm ci npm run dev:stubOpen the address it prints, open the Execution tab and press Run. The stub fakes a run:
draftruns for 3 seconds, thenreview, then the end shows Passed.Type of Change
workflow-canvas/Testing
npm test(tests/scripts/**/*.test.js): not run; this PR changes onlyworkflow-canvas/.cli/changed: not applicableChecked in
workflow-canvas/atf527b97:npm run lint,npm run typecheck,npm test(55 files, 949 tests) andnpm run test:e2e(63 tests, against the stub) pass. By hand againstnpm run dev:stubin a browser: a real run followed from the Designer tab (the status was announced there from the live region), a failed read while the Designer tab was open (the alert region held the sentence and the run id), and the alert under the Run button at 700 px wide.Tests added: the tab through
Appwith a fake server and scheduler (idle, Run disabled in flight, each node going queued -> running -> done, a failed run, one alert for a refused start, the run continuing on the Designer tab, loading and failed-load states); the timer adapter with fake timers; state colour contrast and match with the theme module; e2eexecution.spec.ts(a real run on the stub: draft Running -> Done, review Running -> Done, end Passed, with Run off in between; live region and node names; a failed stage; a refused run; a run that can no longer be followed; a run followed while the Designer tab is open; the goal kept across a switch of tab and read-only in flight, checked to fail on the earlier code; Enter in the goal box; a failure announced while the Designer tab is open) and axe checks of the Execution tab inaccessibility.spec.ts, including the error of the API and a goal that cannot be run.Screenshots
First-version Execution tab, full page, 1280x800 (generated by
npm run screenshots; the runs in them answer with fixed replies, so they do not depend on timing), pinned toeb076d9757169e3d10551b81d49e1af15bc349dc:Checklist
Notes for Reviewers
wc/06a-run-core). Eight commits (the first two are the original change; the others answer reviews). Following an active run, read retries and timeouts are in Read runs through the typed client and add the run core #115. Run the workflow from the Execution tab with live node states #93 is stacked on this PR and adds resume after reload.Execution.tsxanduse-execution.tswiring to the core, the node badges innodes.tsxandcanvas.css, and the move of the shared graph card and gate.Fixes from the second adversarial review
Fixes from the third adversarial review
wc/06a-run-core.Fixes from the second hands-on QA run
Round 6
Rebased on #115 (the session guard and the page policy). No change of its own.
Round 9: rebased on #115. No change of its own.
npm test(1043 tests), lint and typecheck pass.