# Validation Baseline ## Date 2026-07-18 ## Environment - Target toolchain: Node.js 20 and npm 10 - Executed toolchain: Node.js 20.20.2 and npm 10.9.8, supplied ephemerally through `npx` - Docker CLI: available on Windows - Docker engine: unavailable because Docker Desktop's Linux engine was not running - Docker inside WSL: unavailable because WSL integration was disabled ## Dependency Installation - Root `npm ci`: passed under the preinstalled WSL Node 18/npm 9 toolchain; reported 2 high-severity audit findings in `ajv-cli` dependencies. - Frontend clean install initially failed because `frontend/package-lock.json` was missing `yaml@2.9.0`. - `npm install --package-lock-only` under Node 20/npm 10 repaired the frontend lockfile. - Frontend clean install then passed under Node 20/npm 10; npm reported 28 dependency vulnerabilities: 9 low, 6 moderate, and 13 high. - Backend clean install passed under Node 20/npm 10; npm reported 0 vulnerabilities. ## Automated Checks ### Frontend tests Command: ```bash npx --yes --package=node@20 --package=npm@10 npm test -- --watchAll=false --runInBand ``` Result: Passed. - Test suites: 7 passed, 7 total - Tests: 433 passed, 433 total - Snapshots: 0 ### Frontend production build Command: ```bash npx --yes --package=node@20 --package=npm@10 npm run build ``` Result: Passed. ### Backend TypeScript build Command: ```bash npx --yes --package=node@20 --package=npm@10 npm run build ``` Result: Passed. ## Schema Matrix Twelve `valid-*.json` project definitions pass validation against `shared/schemas/conductor-project.schema.json`, including the Slice 1 all-components fixture. Two schema-invalid fixtures failed validation as expected: - `invalid-dropdown-option-shape.json` - `invalid-missing-required.json` Two diagnostic-invalid fixtures passed structural schema validation as designed because their defects require semantic/runtime diagnostics: - `invalid-template-malformed.json` - `invalid-template-missing-component.json` ## Slice 1 Manual Acceptance User validation completed successfully on 2026-07-18: - All five new components can be configured and manipulated in the Visual Editor. - Preview interaction, disabled and hidden behavior, and Status Panel tones work as expected. - Visual Editor and JSON Editor synchronization works. - Save/load persistence and existing-component regression checks pass. ## Slice 2 Increment 1 Validation Validation completed on 2026-07-18 for visual anonymous REST action authoring. ### Focused editor tests Command: ```bash npm test -- --watchAll=false --runInBand --runTestsByPath \ src/components/ActionInspector/actionEditorUtils.test.ts \ src/components/ActionInspector/ActionInspector.test.tsx ``` Result: Passed. - Test suites: 2 passed, 2 total - Tests: 23 passed, 23 total - Covers canonical CRUD, duplicate-ID safety, reference discovery, request-map and URL validation, anonymous duplication, immediate document synchronization, and invalid local drafts. ### Full target-toolchain checks Commands: ```bash npx --yes --package=node@20 --package=npm@10 npm test -- --watchAll=false --runInBand npx --yes --package=node@20 --package=npm@10 npm run build ``` The frontend commands ran from `frontend/`. The build command also ran from `backend/`. Results: - Frontend tests: 9 suites and 456 tests passed; 0 snapshots. - Frontend production build: passed. - Backend TypeScript build: passed. ### Schema fixture matrix Each fixture was checked with: ```bash ./node_modules/.bin/ajv validate \ -s shared/schemas/conductor-project.schema.json \ -d \ --spec=draft2020 ``` Results: - 13 of 13 `valid-*.json` fixtures passed, including `valid-visual-rest-actions.json`. - 2 of 2 schema-invalid fixtures failed as expected. - 2 of 2 diagnostic-invalid fixtures passed structural validation as designed. ### Standalone frontend TypeScript check Command: ```bash npx tsc --noEmit ``` Result: Blocked by an existing dependency/toolchain mismatch. Frontend TypeScript 4.9 cannot parse syntax in resolved `@types/node@26.1.0` (first error: `node_modules/@types/node/ffi.d.ts(94,21): TS1139`). The CRA production build performs the application TypeScript compile and passed. ### Visual QA The frontend development server compiled successfully at `http://localhost:3000`. In-app browser automation could not start during implementation while Docker Desktop was not running; its Node REPL kernel reported `helper_unknown_error: setup refresh had errors` during Windows sandbox setup. After Docker Desktop and the app were started, the user completed the Slice 2 Increment 1 manual acceptance on 2026-07-19. The accepted workflow covered visual anonymous REST action authoring, a Button `events` entry inserted through canonical JSON for an `onClick` action reference, and referenced-action deletion confirmation. Full Slice 2 workflow-launcher and dependent-data acceptance remains pending later increments. ## Runtime Startup Initial backend startup against a clean SQLite database failed with: ```text SqliteError: no such table: projects ``` Cause: `backend/src/index.ts` statically imported `app` before calling `initDatabase()`. Importing the app loaded project routes and prepared SQL statements before the `projects` table existed. Fix: run `initDatabase()` first, then dynamically import the Express app and start listening. After the fix, clean-database startup, HTTP health, complete CRUD, cleanup, and persistence across a backend container restart all passed. ## Docker Validation Docker Desktop was started and validation completed. Both images built, both services started, the frontend compiled, the backend initialized SQLite, and health, CRUD, cleanup, and restart-persistence checks passed. ## Baseline Status Passing for the current automated and Docker smoke-test scope: - [x] Locked frontend dependencies repaired - [x] Frontend tests pass - [x] Frontend production build passes - [x] Backend TypeScript build passes - [x] Schema matrix behaves as expected - [x] Backend starts against a clean database - [x] Health and CRUD smoke checks pass - [x] Persistence survives a backend container restart - [x] Docker Compose build and integration checks pass Remaining release work includes broader backend tests, browser end-to-end tests, security regression tests, and resolution of the frontend dependency audit findings. ## Slice 2 Increment 2 Button Event Validation On 2026-07-19, focused tests passed (3 suites / 6 tests), full frontend tests passed (12 suites / 462 tests), the frontend and backend builds passed, and the schema matrix passed at 13 / 2 / 2. `ComponentEvent.inputMap` was documented as compatibility-only; executed request inputs continue to use component/variable REST templates. Automated Preview dispatch passed. The user then manually verified creating a REST action and assigning it visually to a Button; Increment 2 Button `onClick` acceptance passed.