Repository navigation
Conversation
knihit
force-pushed
the
wc/07b-properties
branch
from
October 27, 2026 15:14
faeed54 to
fbc3a8c
Compare
knihit
force-pushed
the
wc/07b-properties
branch
4 times, most recently
from
October 27, 2026 21:08
d75da34 to
80e17eb
Compare
knihit
force-pushed
the
wc/07b-properties
branch
2 times, most recently
from
October 27, 2026 22:06
3a5e71b to
e0b27a6
Compare
knihit
force-pushed
the
wc/07b-properties
branch
from
October 27, 2026 22:23
e0b27a6 to
40e1d5a
Compare
knihit
force-pushed
the
wc/07b-properties
branch
from
October 27, 2026 23:15
40e1d5a to
09159d3
Compare
knihit
force-pushed
the
wc/07b-properties
branch
2 times, most recently
from
October 28, 2026 14:31
5d23e39 to
d67c5e6
Compare
knihit
force-pushed
the
wc/07b-properties
branch
from
October 28, 2026 14:54
d67c5e6 to
11b1405
Compare
knihit
force-pushed
the
wc/07b-properties
branch
from
October 28, 2026 15:39
11b1405 to
ec43f3a
Compare
knihit
force-pushed
the
wc/07b-properties
branch
from
October 28, 2026 17:25
ec43f3a to
367aa5d
Compare
knihit
force-pushed
the
wc/07b-properties
branch
from
October 28, 2026 18:31
a20d06c to
fec76d6
Compare
knihit
force-pushed
the
wc/07b-properties
branch
from
October 28, 2026 19:49
fec76d6 to
97b7020
Compare
knihit
force-pushed
the
wc/07b-properties
branch
from
October 28, 2026 21:38
97b7020 to
963ceb3
Compare
knihit
force-pushed
the
wc/07b-properties
branch
from
October 28, 2026 22:46
963ceb3 to
dd0de2b
Compare
knihit
force-pushed
the
wc/07b-properties
branch
from
October 28, 2026 23:50
dd0de2b to
ea5feb0
Compare
knihit
force-pushed
the
wc/07b-properties
branch
from
October 29, 2026 00:44
ea5feb0 to
10f1582
Compare
knihit
force-pushed
the
wc/07b-properties
branch
from
October 29, 2026 01:49
10f1582 to
ae371e9
Compare
…, add, rename, delete The Designer tab gets Properties for the selected stage, with a name field, a list of the agents Konductor ships, and Delete stage. Add stage adds the next agent-N. A stage is chosen by a click, or by Enter or Space on its node, and focus moves to its name. The draft is kept in App, so it survives a switch of tab, and the Execution tab says when it holds changes that are not saved. Nothing is written to the file yet. The graph names a node by the id of its stage, so two stages that share a name for a moment still have two nodes, and the canvas fits the graph again when a stage is added or deleted.
…aved The draft lives in the page only, so a reload or a closed tab threw it away without a word. While the draft differs from the saved file, a beforeunload handler now makes the browser ask whether to leave.
…r when read-only - Enter or Space on the stage that is already selected moves focus to its name, and Escape on a node no longer throws focus away. - The Complete and Needs a fix mark shows only for a draft that a check has answered for; before that it says nothing. - A polite live region says that a stage was added, deleted or selected. - A read-only workflow gets a note that says why, and the card header no longer asks to select a stage to edit it. - An agent that the saved file names stays on offer after another is chosen. - Two stages with one name say their place in the list to a screen reader. - The name box turns off spell check and autocomplete; the strong text is a Cloudscape strong; the agents test skips without the repository.
The note above the graph spans both columns of the Designer grid, so the graph keeps the wide column. An add names the new stage, and each announcement is a new element, so a repeat is read again. Escape is kept from React Flow only on a canvas that can select. Browser tests cover the note's layout and Enter, Space and Escape on the selected stage.
Focus went to the name, but the text stayed unselected, so typing was added to agent-1. The name is now selected.
…d run Pasting another launch address replaced the workflow and dropped the draft without a word. The page now asks first. Cancel keeps the page as it is; the address can be pasted again. The question also names a run being followed, which is let go when another workflow opens.
knihit
force-pushed
the
wc/07b-properties
branch
from
October 29, 2026 02:51
ae371e9 to
af55544
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
Layer 2 of 4 of the editing work in the Designer. It adds the part you see and use: pick an agent, rename a stage, add one, delete one. Nothing is written to the file yet; the draft lives in the page.
Designer (
workflow-canvas/src/designer/):name(a text field) andagent(a list of the agents Konductor ships, each with a line on what it is for), aComplete,Has a noteorNeeds a fixmark, and Delete stage. A file that names an agent not on the list keeps it, shown first.agent-N(the first free N) with agentk-developerat the end, selects it and moves focus to its name. It is off at 40 stages, with the reason.App(useEditor), so it survives a switch of tab. The Execution tab draws the workflow as loaded and shows an info note when the Designer holds changes that are not saved.Canvas and graph:
WorkflowCanvastakes an optionalselection; without it the canvas is read-only as before.FitWhenGrownfits the graph again when a stage is added or deleted.Tests and docs: unit tests for the selection, the graph by stage id, the agent list (and
api/agents.test.ts, which checks it againstagents/), and the Designer throughApp(Properties, select by click and Enter, rename, agent list, add, delete, limits, the draft kept across tabs, read-only). Existing e2e expectations changed on purpose: the first stage's node name now ends with "selected" and the node description no longer says "Read-only".README.mdhas the Designer tab section.How to review
PropertiesPane.tsxandDesignerEditor.tsx, thenuse-editor.ts, then the canvas selection (WorkflowCanvas.tsx,selection.ts), then the graph change.cd workflow-canvas && npm ci && npm run dev:stub, open the address it prints, and edit a stage. Saving is not there yet, so a reload gives the file back.What the next layer adds
PR #100: Save, the check while typing, the 409 conflict flow with Load the file again, the 422 findings, the lost-answer rule, the save line and alerts, and the API client calls.
Fixes from the hands-on QA run
beforeunloadhandler (useLeaveGuard) makes the browser ask before the page is closed or reloaded. It is off when the draft equals the file, also after a change is put back.e2e/tests/leave-page.spec.ts(asks with unsaved changes and the page stays; no question with no change or with the change put back). The first failed before the change.Type of Change
workflow-canvas/Testing
npm test(tests/scripts/**/*.test.js): not applicable; this PR changes onlyworkflow-canvas/.cli/changed: not applicable,cli/is untouchedChecked in
workflow-canvas/on this head:npm run lint,npm run typecheck(3 projects),npm test(74 files, 1266 tests),npm run test:stub(20 files, 354 tests),npm run api:lint,npm run buildandnpm run test:e2e(78 tests) all pass.npm run screenshotswas run and its files are committed; a second run gives the same files.Screenshots
Designer tab, full page, 1280x800 (regenerated by
npm run screenshots; the links are pinned to the head commit of this PR):Checklist
Notes for Reviewers
wc/06-execution).SaveState,stage-text.ts,textOf) is not dispatched byuse-editorhere; Save the workflow from the Designer, with checks while typing and conflict handling #100 uses it first.e2e/tests/designer.spec.ts(Enter, Space and Escape on the selected stage, and the layout of the read-only note); the editing flow has its own e2e project in Test editing in the Designer end to end and add the changelog entry #97, which runs against the finished page.Fixes from the second adversarial review
wc/07a-edit-core. The e2e for add, delete and keyboard selection are in Test editing in the Designer end to end and add the changelog entry #97.Fixes from the third adversarial review
wc/07a-edit-core.Fixes from the second hands-on QA run
swap-guard.ts; unit tests, App tests for what is at risk, e2e for cancel and accept).Round 6
Rebased on #98 (the session guard and the page policy). No change of its own.
Round 9: rebased on #98. No change of its own.
npm test(1360 tests), lint and typecheck pass.