Skip to content

Add workflow-canvas scaffold: Vite, React, Cloudscape, CI - #77

Merged
knihit merged 20 commits into
integration/workflow-canvasfrom
wc/01-scaffold
Oct 27, 2026
Merged

knihit merged 20 commits into
integration/workflow-canvasfrom
wc/01-scaffold

Conversation

@knihit

@knihit knihit commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Description

workflow-canvas/:

  • Added workflow-canvas/, an independent npm project (Vite, React, TypeScript) on Node 24 LTS or 26 (.nvmrc selects 24 until 26 becomes LTS on 2026-10-28; engines.node ^24.15.0 || >=26, enforced by engine-strict=true in .npmrc) with exact-pinned dependencies (.npmrc sets save-exact=true) and public @cloudscape-design/components and @cloudscape-design/global-styles from npm. One package.json is the only one for the folder, so the UI and later additions share it.
  • Added an almost empty page: Cloudscape AppLayout (gives the page a main landmark) with a "Workflow canvas" heading and Designer and Execution tabs, each showing a short placeholder. This is the base the follow-up PRs build on.
  • Added Vitest unit tests that check the title in the main landmark, both tabs (Designer selected) and the placeholders.
  • Added workflow-canvas/README.md: short explanation of the folder layout and commands.
  • Added ESLint (typescript-eslint) and Prettier checks, using the repo's root .prettierrc.

CI:

  • Added .github/workflows/workflow-canvas.yml: runs lint, typecheck, test and build in workflow-canvas/ on PRs targeting main, integration/** and wc/** (stacked PRs target other feature branches). Path-filtered to workflow-canvas/** and the root .prettierrc, permissions: contents: read, actions pinned by SHA with a version comment (checkout v7.0.1, setup-node v7.1.0; the other workflows are untouched). The job runs as a matrix on Node 24 and 26; installs use npm ci --ignore-scripts; checkout does not persist credentials; the job has a 10 minute timeout and superseded runs are cancelled. It is in a separate commit.

Docs:

  • CHANGELOG.md: added an entry under Unreleased. VERSION is not bumped.
  • AGENTS.md: added workflow-canvas/ to Project Structure, and the HTML form of the SPDX header (<!-- SPDX-License-Identifier: Apache-2.0 -->) to the license header list.

Type of Change

  • Dependency change (package.json, Cargo.toml, or CLI dependency)
  • Infrastructure / pipeline
  • Documentation
  • Other: new workflow-canvas/ folder (scaffold only)

Testing

  • npm test passes (runs tests/scripts/**/*.test.js). The same 17 tests fail with and without this change in my environment, so they are unrelated to it.
  • In workflow-canvas/: npm run lint, npm run typecheck, npm test and npm run build pass locally
  • New code files carry the required SPDX header; JSON is exempt

Checklist

  • My code follows the style guidelines of this project (see AGENTS.md's Code Style & Conventions)
  • I have performed a self-review of my own changes
  • I have commented my code where necessary
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings. vite build prints Vite's "chunks are larger than 500 kB" warning (the JavaScript chunk is about 782 kB, mostly Cloudscape). I left the limit as it is so later growth stays visible; code splitting is deferred to a later MVP.
  • I have added or updated tests that prove my change works

Notes for Reviewers

  • The first PR in a stack. Base is integration/workflow-canvas; later PRs target wc/* branches and are retargeted as lower PRs merge.
  • TypeScript stays on 6.0.x: typescript-eslint 8.72 requires TypeScript <6.1.0, so 7.x waits for a new typescript-eslint release.
  • src/ is type-checked without Node types; tsconfig.node.json covers vite.config.ts.
  • Scaffold only. No API contract, stub server or canvas features yet.
  • workflow-canvas/package-lock.json is about 3,500 lines of the diff; the rest is about 340 lines.

@knihit
knihit added this pull request to stack #79 October 24, 2026 01:09
@knihit
knihit marked this pull request as ready for review October 24, 2026 04:36
@knihit knihit mentioned this pull request Oct 24, 2026
7 of 11 tasks
@knihit
knihit removed this pull request from stack #79 October 27, 2026 02:47
@knihit
knihit changed the base branch from integration/workflow-canvas to main October 27, 2026 02:47
@knihit
knihit added this pull request to stack #101 October 27, 2026 02:47
@knihit
knihit removed this pull request from stack #101 October 27, 2026 02:48
@knihit
knihit changed the base branch from main to integration/workflow-canvas October 27, 2026 02:48
@knihit
knihit added this pull request to stack #102 October 27, 2026 02:48
knihit added 14 commits October 27, 2026 14:49
Node 24 is the newest LTS line every dependency supports (jsdom needs
^24.15, vitest ^24 or >=26, eslint >=24). Set engines.node, @types/node
and CI to it via .nvmrc. All other direct dependencies were already at
their latest stable release; TypeScript stays on 6.0.x because
typescript-eslint 8.72 requires <6.1.0.
Trigger on root .prettierrc changes, skip install scripts, drop the
checkout credential, cap the job at 10 minutes and cancel superseded
runs.
src/ no longer sees Node globals; only vite.config.ts is checked against
@types/node via tsconfig.node.json. Drop Vite build options that equal the
defaults, and let build rely on the separate typecheck step.
Wrap the page in AppLayout so it has a main landmark, label the tabs, and
show a short placeholder in each tab panel.
@knihit
knihit merged commit 33bdfcd into integration/workflow-canvas Oct 27, 2026
2 checks passed
@knihit
knihit deleted the wc/01-scaffold branch October 27, 2026 19:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants