Some checks are pending
Bidi Control Character Guard / bidi-control-guard (push) Waiting to run
Circular Dependency Check / Check for new circular dependencies (push) Waiting to run
Citus Migration Smoke / Combined migrations on single-node Citus (push) Waiting to run
E2E Fresh Install Tests / fresh-install-e2e (push) Waiting to run
ext-v2 guardrails / Run ext-v2 guard and ESLint (push) Waiting to run
Integration Tests / Check for relevant changes (push) Waiting to run
Integration Tests / ${{ (github.event_name == 'schedule' || github.event.inputs.suite == 'full') && 'Full integration suite' || 'Tier-1 integration subset' }} (push) Blocked by required conditions
Mobile checks / Mobile lint + typecheck (push) Waiting to run
Mobile checks / Mobile unit tests (push) Waiting to run
Mobile checks / Mobile dependency audit (report) (push) Waiting to run
Mobile checks / Mobile reproducibility checks (push) Waiting to run
Secrets guard (env backups) / Ensure no tracked env backup files (push) Waiting to run
Temporal Readiness / fast-readiness (push) Waiting to run
Temporal Readiness / docker-parity (push) Waiting to run
TypeScript Type Check / Nx affected typecheck (push) Waiting to run
Unit Tests / Skipped-test budget (push) Waiting to run
Unit Tests / Nx affected unit tests (push) Waiting to run
Unit Tests / Server unit coverage (informational) (push) Waiting to run
Validate Tenant Management Schema / Check for relevant changes (push) Waiting to run
Validate Tenant Management Schema / Validate Tenant Management Schema (push) Blocked by required conditions
EE Workflows Build Guard / ee-workflows-build-guard (push) Waiting to run
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz Source: /opt/alga-psa on psa.joliet.tech
27 KiB
27 KiB
Scratchpad — Workflow EE Ownership Cutover
- Plan slug:
workflow-ee-ownership-cutover - Created:
2026-03-13
What This Is
Keep a lightweight, continuously-updated log of discoveries and decisions made while implementing this plan.
Prefer short bullets. Append new entries as you learn things, and also update earlier notes when a decision changes.
Decisions
- (2026-03-13) Treat workflow as EE-only, hard stop. The ownership cutover will move workflow into
@alga-psa/workflowsrather than leaving it in the global shared namespace. - (2026-03-13) This is a hard-cut migration, not a shimmed transition. Application code and tests should stop importing
@shared/workflow*and@alga-psa/shared/workflow*. - (2026-03-13) The target home is the existing EE package at
ee/packages/workflows/src/*. - (2026-03-13) Workflow-owned stream and domain-event helper surfaces move with workflow rather than being split into a separate shared package in this change.
- (2026-03-13) The AI workflow step refactor is part of this broader ownership move, not a separate plan.
Discoveries / Constraints
- (2026-03-13)
shared/workflowis much wider than just the runtime; it includes actions, adapters, bundle, expression-authoring, persistence, runtime, secrets, services, streams, types, utilities, and workers. - (2026-03-13) The current EE workflows package exists, but its build/export surface is narrow: package root plus
actions,components,forms,lib, andmodels. - (2026-03-13)
services/workflow-workercurrently imports runtime and workers from@shared/workflow. - (2026-03-13)
ee/packages/workflowsstill imports runtime, persistence, bundle, and catalog helpers from@shared/workflow. - (2026-03-13) Many non-workflow packages currently import workflow-owned domain-event builders from
@shared/workflow/streams/...or@alga-psa/shared/workflow/streams/.... - (2026-03-13) Some server code outside the EE workflows package still initializes workflow runtime or uses workflow persistence helpers directly.
- (2026-03-13) The AI inference work introduced a concrete shared-to-EE leak:
shared/workflow/runtime/actions/registerAiActions.tsimports the EE workflow inference service. - (2026-03-13) The worker package already has a dependency alias for
@alga-psa/workflows, so the package is the natural canonical surface for runtime ownership. - (2026-03-13) The EE workflows package can cover the hard cut with category entrypoints (
runtime,workers,persistence,bundle,streams,expression-authoring,secrets,services,types) instead of mirroring every legacy shared deep file one-for-one. - (2026-03-13) Export-star collisions surfaced once the new EE barrels existed. The safe pattern here is: keep the root package barrel narrow, keep category barrels broad, and explicitly re-export only the extra runtime/stream symbols that are not already covered by the shared category index.
- (2026-03-13)
pnpm --filter @alga-psa/workflows buildandpnpm --filter workflow-worker buildare partially blocked in this workspace because local CLIs liketsupandtsc-aliasare not installed undernode_modules; targeted TypeScript compilation still works. - (2026-03-13) The remaining test-import cleanup was safer after adding deep EE proxy files for the legacy subpaths still used by tests (
runtime/*,persistence/*,streams/*,bundle/canonicalJson,actions/emailWorkflowActions,adapters/*) rather than hand-rewriting every test to category-root imports. - (2026-03-13) The stale
20250707201500_register_email_processing_workflow.cjsbootstrap migration was pointing at a nonexistent legacy workflow module. Replacing it with an explicit placeholder throw is lower risk than preserving the broken dynamic import string because later migrations overwrite the DB-stored code anyway. - (2026-03-13) The runtime publish contract now reports unknown workflow payload schema refs as
PAYLOAD_SCHEMA_REF_UNKNOWNonroot.payloadSchemaRef; olderUNKNOWN_SCHEMAassertions were stale. - (2026-03-13)
test.echois no longer a stable "missing required mapping" sentinel for publish validation.test.actionProvided.keyis the reliable required-input case. - (2026-03-13)
startWorkflowRunActionstill revalidates published versions whenvalidation_statusis missing or errored, but the forced-invalid coverage case must be definition-invalid (for exampleunknown.node) rather than relying on action-mapping ambiguity. - (2026-03-13) The worker E2E harness had the same stale pre-cutover imports as the runtime suites.
workflowRuntimeV2.e2e.test.tsneeded to mock@alga-psa/dband@alga-psa/auth, ensuretenant_workflow_scheduleexists, and insert a real tenant row so directevent_catalogwrites satisfy FK constraints. - (2026-03-13) The email workflow fixture used by worker E2E coverage predates trigger-payload mapping. To publish it through the canonical server action, the test seed now injects
sourcePayloadSchemaRef: payload.InboundEmailReceived.v1plus an explicit mapping foremailData,providerId, andtenantId. - (2026-03-13) The shared inbound-email workflow fixture is version
2; stale E2E callers were still starting version1, which surfaced asWorkflow version not foundafter the seed helper moved onto the real create/publish path.
Commands / Runbooks
- (2026-03-13) Inventory workflow imports:
rg -n "@shared/workflow|@alga-psa/shared/workflow|shared/workflow" . -g '!**/dist/**'
- (2026-03-13) Inventory current EE workflows package surface:
find ee/packages/workflows -maxdepth 2 -type f | sortcat ee/packages/workflows/package.jsoncat ee/packages/workflows/tsup.config.ts
- (2026-03-13) Inventory workflow runtime bootstrap callers:
rg -n "initializeWorkflowRuntimeV2\\(|WorkflowRuntimeV2Worker|WorkflowRuntimeV2EventStreamWorker" ee server services shared
- (2026-03-13) Focused import-audit validation after implementation:
rg -n "from '@shared/workflow|from '@alga-psa/shared/workflow" packages server services ee -g '!**/docs/**'
- (2026-03-13) Suggested focused validation after implementation:
pnpm --filter @alga-psa/workflows buildpnpm --filter workflow-worker typecheckpnpm --filter server typecheckpnpm --filter ee-server typecheck
- (2026-03-13) Validation actually used for the first cutover tranche:
pnpm --filter @alga-psa/workflows typecheckpnpm --filter workflow-worker buildrg -n "@shared/workflow|@alga-psa/shared/workflow" packages server services ee -g '!**/docs/**' -g '!**/dist/**' -g '!**/__tests__/**' -g '!**/test/**' -g '!**/tests/**'
- (2026-03-13) Validation used for the AI/test cutover tranche:
pnpm --filter @alga-psa/workflows typecheckpnpm --filter server typecheckpnpm --filter sebastian-ee typecheckpnpm --filter workflow-worker exec tsc -p tsconfig.jsonrg -n "@shared/workflow|@alga-psa/shared/workflow" . -g '!**/docs/**' -g '!**/dist/**'pnpm --filter server exec vitest run src/test/unit/workflowSchemaRegistry.unit.test.ts src/test/unit/email/inboundEmailBodyParsing.test.tspnpm --filter sebastian-ee exec vitest run src/components/workflow-designer/__tests__/workflowDataContext.test.ts
- (2026-03-13) Validation used for the runtime compatibility tranche:
pnpm --filter server exec vitest run src/test/integration/workflowRuntimeV2.publish.integration.test.tspnpm --filter server exec vitest run src/test/integration/workflowRuntimeV2.control.integration.test.tspnpm --filter server exec vitest run src/test/unit/workflowRuntimeV2.unit.test.ts
- (2026-03-13) Validation used for the worker compatibility tranche:
pnpm --filter server exec vitest run src/test/e2e/workflowRuntimeV2.e2e.test.ts -t "publish a workflow|event trigger starts workflow run|event.wait pauses run|timeout on event.wait|retryable action failure|idempotent action call|canceling a running workflow|resume a WAITING run"
Links / References
- EE workflows package root: package.json
- EE workflows build config: tsup.config.ts
- Shared runtime entrypoint: index.ts
- Shared runtime bootstrap: init.ts
- Workflow worker bootstrap: index.ts
- Workflow worker event stream: WorkflowRuntimeV2EventStreamWorker.ts
- EE workflow server actions: workflow-runtime-v2-actions.ts
- AI registration leak point: registerAiActions.ts
- AI workflow plan that triggered this cleanup: PRD.md
Open Questions
- None. The plan assumes full workflow ownership belongs in the EE workflows package and that workflow-owned helper surfaces move with it.
Progress Log
- (2026-03-13) Completed F001/F002/F003/F004/F005/F006/F007/F008 in one tranche by adding EE workflow category entrypoints, expanding package exports/build entries, shifting runtime bootstrap through
@alga-psa/workflows/runtime, and rewriting worker, EE package, server, and EE UI callers to the package surface. - (2026-03-13) Completed F009/F010/F011 on top of the same tranche because the new
persistence,bundle, andworkersentrypoints now exist inee/packages/workflows/src/*, active callers were rewired to them, and the worker compile path reached the post-tsctool stage without TypeScript errors. - (2026-03-13) Completed F012/F013/F014/F015/F021/F022/F023 in the same tranche by moving stream/event-builder, expression-authoring, secrets, services, client/type, server helper, and dependent package imports to
@alga-psa/workflows/*, and by adding direct@alga-psa/workflowsdependencies to touched workspaces. - (2026-03-13) Completed F020 by removing the static EE workflow inference import from shared runtime registration. Shared runtime now exposes an injectable AI inference hook, and the EE runtime entrypoint wires that hook before registering AI actions.
- (2026-03-13) Validation outcome for the first tranche:
pnpm --filter @alga-psa/workflows typecheckpassed.pnpm --filter workflow-worker buildreached the post-tsctooling stage and then failed becausetsc-aliasis not installed in this workspace.pnpm --filter @alga-psa/workflows buildis still blocked locally becausetsupis not installed in this workspace.
- (2026-03-13) Completed T023 by running
pnpm --filter server typecheckafter the server helper rewrites. The server package typecheck passed with the new@alga-psa/workflows/*imports. - (2026-03-13) Completed T046 by updating
server/src/lib/jobs/tests/renewalQueueScheduling.wiring.test.tsto assert the new@alga-psa/workflows/runtimeimport string instead of the old shared runtime import strings. - (2026-03-13) Remaining shared-workflow references after the first tranche are concentrated in tests, legacy tsconfig aliases, and the system-email-processing workflow migration string path. Those are the next cleanup targets before F024/F025/F026/F034 can be marked complete.
- (2026-03-13) Completed F016/F017/F018/F019 by moving the AI schema types, action registration wiring, output-schema resolution seam, and publish-validation usage fully behind
@alga-psa/workflows/runtime;pnpm --filter sebastian-ee typecheckpassed after the EE designer AI typing fixes. - (2026-03-13) Completed F024/F025/F026 by rewriting the remaining wiring tests to
@alga-psa/workflows/*, backfilling deep EE proxy entrypoints for test-only legacy subpaths, removing@shared/workflow*tsconfig aliases, and cleaning the last stale migration string reference. Repo-wide import audit is now clean outside docs. - (2026-03-13) Completed T001/T002/T003/T004/T005/T006/T009/T010/T011/T014/T015/T016/T017/T018/T019/T020/T021/T022/T047 with the second tranche. Evidence:
pnpm --filter @alga-psa/workflows typecheckpassed after adding wildcard exports and deep proxy files.pnpm --filter server typecheck,pnpm --filter sebastian-ee typecheck, andpnpm --filter workflow-worker exec tsc -p tsconfig.jsonpassed with the new namespace and without shared-workflow tsconfig aliases.rg -n "@shared/workflow|@alga-psa/shared/workflow" . -g '!**/docs/**' -g '!**/dist/**'returned no matches.
- (2026-03-13) Focused runtime sanity checks after the second tranche:
server/src/test/unit/email/inboundEmailBodyParsing.test.tspassed through the new@alga-psa/workflows/actions/emailWorkflowActionsproxy.server/src/test/unit/workflowSchemaRegistry.unit.test.tsfailed on an existing auth spy expectation (hasPermissionwas not observed), not on import resolution.ee/serverVitest resolution is still blocked forworkflowDataContext.test.tsby unrelated package-entry resolution for@alga-psa/storage.
- (2026-03-13) The workflow bundle integration suite was also still on the pre-cutover auth/DB harness. Route-level bundle export/import now needs both canonical mocks (
@alga-psa/db,@alga-psa/auth) and the compatibilityserver/src/lib/dbmock because the Next route wrappers still call the compatibility helper. - (2026-03-13) The EE workflow-designer Vitest config was missing source aliases for workspace packages that are only available as built outputs in package manifests (
@alga-psa/storage,@alga-psa/event-bus,@alga-psa/types,@alga-psa/validation,@alga-psa/auth,@alga-psa/event-schemas). Focused designer suites need those aliases to execute against source in this workspace. - (2026-03-13) There were no focused task-inbox coverage files exercising the moved
@alga-psa/workflows/persistencetask surface. Added a narrow EE unit suite aroundtaskInboxActionsto cover submit, inbox aggregation, and dismiss/revalidate behavior directly at the action boundary. - (2026-03-13)
packages/storageandpackages/schedulingVitest configs were both assuming built package exports. Running the stream publisher suites from source required explicit aliases for EE workflows/event-schemas/core and, for scheduling, expandingincludeto coversrc/**/*.test.ts. - (2026-03-13) The shared
registerAiActionstest was still coupled to the pre-cutover direct EE inference import. Post-cutover, the stable seam isconfigureWorkflowAiInferenceService, so the test now needs to register a mock service through that runtime hook. - (2026-03-13) Package-local
node_modulesare absent in this workspace, but the root workspace has the required CLIs. Manual build-equivalent validation through../../node_modules/.bin/tsc-aliasand../../../node_modules/.bin/tsupis sufficient to prove the cutovered package graphs build cleanly. - (2026-03-13) The remaining EE-server schedule coverage could not rely on
workflow-external-schedules.actions.integration.test.tsin this workspace because no local Postgres listener is available onlocalhost:5432; replacing that with focused unit action tests was lower-risk than pretending the infra failure was a product regression. - (2026-03-13) A top-level
WorkflowDesignersmoke render needed two things in the EE Vitest harness: a wider set of workspace source aliases (analytics,billing,tags,scheduling,documents,notifications,user-composition,product-extension-actions, DB model/core server/auth subpaths,fsbuiltins) and aggressive mocking of UI/local designer subcomponents so the smoke test validates the designer shell instead of transitively compiling unrelated product surfaces. - (2026-03-13) Completed F027/T029 by fixing stale runtime integration harnesses and publish assertions after the ownership move:
server/vitest.config.tsnow points@alga-psa/product-extension-actionsat the real OSS entrypoint and pre-createscoverage/.tmpso focused Vitest runs stop failing on harness setup.server/src/test/integration/workflowRuntimeV2.control.integration.test.tsandserver/src/test/integration/workflowRuntimeV2.eventTrigger.integration.test.tsnow mock@alga-psa/dband@alga-psa/auth, matching the canonical runtime imports.server/src/test/integration/workflowRuntimeV2.publish.integration.test.tsnow asserts the current publish/runtime contract (PAYLOAD_SCHEMA_REF_UNKNOWN, required mappings ontest.actionProvided, event triggers withsourcePayloadSchemaRef, and revalidation failure via an injectedunknown.nodedefinition).- Evidence:
pnpm --filter server exec vitest run src/test/integration/workflowRuntimeV2.publish.integration.test.tspassed.pnpm --filter server exec vitest run src/test/integration/workflowRuntimeV2.control.integration.test.tspassed.pnpm --filter server exec vitest run src/test/unit/workflowRuntimeV2.unit.test.tspassed.
- (2026-03-13) Completed F028/T030 by fixing the worker E2E harness to the canonical package boundary and rerunning the worker-focused smoke subset:
server/src/test/e2e/workflowRuntimeV2.e2e.test.tsnow mocks@alga-psa/dband@alga-psa/auth, bootstrapstenant_workflow_schedule, seeds a tenant row, and publishes the email workflow fixture through the real create/publish actions with explicit trigger mapping.- The worker-focused E2E subset passed with the new package ownership and covers publish/start, event-triggered launch, wait/resume, timeout processing, retry lease handling, idempotent action reuse, cancel-before-resume, and admin resume.
- Evidence:
pnpm --filter server exec vitest run src/test/e2e/workflowRuntimeV2.e2e.test.ts -t "publish a workflow|event trigger starts workflow run|event.wait pauses run|timeout on event.wait|retryable action failure|idempotent action call|canceling a running workflow|resume a WAITING run"passed (8 tests, 8 skipped).
- (2026-03-13) Completed F029/T032/T043 by restoring the bundle import/export integration harness to the post-cutover package boundary:
server/src/test/integration/workflowBundleV1.importExport.integration.test.tsnow mocks@alga-psa/db,@alga-psa/auth, and the compatibilityserver/src/lib/dbmodule, and ensurestenant_workflow_scheduleexists before bundle tests execute runtime-backed publish/start paths.- The restored suite covers canonical export formatting, HTTP export/import routes, round-trip canonical normalization, dependency validation, AI inline-schema round-tripping, and end-to-end execution of an imported workflow.
- Evidence:
pnpm --filter server exec vitest run src/test/integration/workflowBundleV1.importExport.integration.test.tspassed.
- (2026-03-13) Completed F030/T033/T034/T035 by fixing the EE designer Vitest harness and rerunning focused workflow-designer coverage:
ee/server/vitest.config.tsnow maps the workspace package sources needed by the designer test graph instead of relying on missing built package entries.- The focused designer suites passed for grouped action hydration/persistence, AI downstream reference options, and workflow data-context output typing.
- Evidence:
pnpm --filter sebastian-ee exec vitest run src/components/workflow-designer/__tests__/groupedActionStep.test.ts src/components/workflow-designer/__tests__/workflowReferenceOptions.test.ts src/components/workflow-designer/__tests__/workflowDataContext.test.tspassed.
- (2026-03-13) Completed F031/T041 by adding focused task-inbox action coverage against the EE persistence surface:
- Added
ee/server/src/__tests__/unit/workflowTaskInboxActions.test.tsto exercise task submission/history, inbox aggregation + dedupe + pagination, and dismiss/revalidate behavior using the moved@alga-psa/workflows/persistencetask interfaces. - Evidence:
pnpm --filter sebastian-ee exec vitest run src/__tests__/unit/workflowTaskInboxActions.test.tspassed.
- Added
- (2026-03-13) Completed F032/T045 by validating workflow-owned stream helper consumers across multiple packages after the import cutover:
serverbilling payload-builder suites still validate workflow payload contracts for invoice and payment events via@alga-psa/workflows/streams/workflowEventPublishHelpers.packages/integrations,packages/storage, andpackages/schedulingpublisher suites passed after updating their Vitest source-alias config to resolve the EE workflow stream surface directly from source.- Evidence:
pnpm --filter server exec vitest run src/test/unit/paymentWorkflowEvents.test.ts src/test/unit/invoiceWorkflowEvents.test.tspassed.node ../../node_modules/vitest/vitest.mjs run src/lib/__tests__/externalMappingWorkflowEvents.test.tspassed inpackages/integrations.node ../../node_modules/vitest/vitest.mjs run tests/storageService.workflowEvents.test.tspassed inpackages/storage.node ../../node_modules/vitest/vitest.mjs run src/lib/__tests__/capacityThresholdWorkflowEvents.publisher.test.tspassed inpackages/scheduling.
- (2026-03-13) Completed F033/T036/T037/T038/T039/T040 by rerunning focused AI compatibility coverage against the post-cutover seams:
shared/workflow/runtime/actions/__tests__/registerAiActions.test.tsnow exercises the EE-owned runtime registration seam viaconfigureWorkflowAiInferenceServiceinstead of the removed direct inference import path.- The shared AI suites passed for runtime registration, schema parsing/validation, and output-schema resolution.
- The server workflow runtime suites passed for publish-time AI schema validation and runtime
ai.inferoutput handling. - Evidence:
node ./node_modules/vitest/vitest.mjs run --config shared/vitest.config.ts shared/workflow/runtime/actions/__tests__/registerAiActions.test.ts shared/workflow/runtime/ai/__tests__/aiSchema.test.ts shared/workflow/runtime/actions/__tests__/actionOutputSchemaResolver.test.tspassed.pnpm --filter server exec vitest run src/test/unit/workflowRuntimeV2.unit.test.ts src/test/integration/workflowRuntimeV2.publish.integration.test.tspassed.
- (2026-03-13) Completed T007/T008/T012/T013/T024/T025/T026/T027/T028 by running manual build/typecheck validation across the remaining package boundaries:
services/workflow-workercompleted the full post-compile chain (tsc,tsc-alias, import extension fixer, runtime import validator) using the root workspace CLIs.ee/packages/workflowscompleted bothtsc --noEmitandtsupusing the root workspace CLIs, proving the expanded entrypoint surface still builds.- The dependent stream/secrets consumers typechecked cleanly in
billing,scheduling,clients,projects,storage,documents,notifications, andtenancy. - Evidence:
../../node_modules/.bin/tsc -p tsconfig.json && ../../node_modules/.bin/tsc-alias -p tsconfig.json -f --resolve-full-paths && node scripts/fix-relative-import-extensions.mjs && node scripts/validate-runtime-imports.mjspassed inservices/workflow-worker.../../../node_modules/.bin/tsc --noEmit -p tsconfig.json && ../../../node_modules/.bin/tsuppassed inee/packages/workflows.pnpm --filter @alga-psa/billing typecheckpassed.pnpm --filter @alga-psa/scheduling typecheckpassed.pnpm --filter @alga-psa/clients typecheckpassed.pnpm --filter @alga-psa/projects typecheckpassed.pnpm --filter @alga-psa/storage typecheckpassed.pnpm --filter @alga-psa/documents typecheckpassed.pnpm --filter @alga-psa/notifications typecheckpassed.pnpm --filter @alga-psa/tenancy typecheckpassed.
- (2026-03-13) Completed T031/T048 by adding focused worker coverage at the EE package boundary:
- Added
services/workflow-worker/src/v2/WorkflowRuntimeV2EventStreamWorker.test.tsto assert stream consumer startup, event ingestion, runtime-event persistence, workflow launch handoff, and duplicate-event suppression through@alga-psa/workflows/*. - Added
services/workflow-worker/src/index.startup.test.tsto smoke the worker entrypoint bootstrap, including runtime initialization, email-provider registration, enterprise storage registration, worker construction, and start hooks. shared/vitest.config.tsnow aliases the remaining workspace packages (@alga-psa/workflows,@alga-psa/email,@alga-psa/event-schemas) needed for service-level tests to resolve from source.- Evidence:
node ./node_modules/vitest/vitest.mjs run --config shared/vitest.config.ts services/workflow-worker/src/v2/WorkflowRuntimeV2EventStreamWorker.test.ts services/workflow-worker/src/index.startup.test.tspassed.
- Added
- (2026-03-13) Completed T042/T044/T049/T050 by restoring the last focused action/smoke suites to the post-cutover graph:
server/src/test/unit/workflowRunLauncher.unit.test.tsandserver/src/test/unit/workflowScheduledRunHandlers.unit.test.tsnow mock the named@alga-psa/workflows/persistencesurface and current handler path, matching the cutovered runtime/persistence ownership.- Added
ee/server/src/__tests__/unit/workflowEventCatalogActions.test.tsandee/server/src/__tests__/unit/workflowScheduleActions.test.tsfor focused event-catalog and schedule action coverage without depending on unavailable local Postgres infrastructure. - Added
ee/server/src/components/workflow-designer/__tests__/WorkflowDesigner.smoke.test.tsxfor a top-level designer shell render smoke against the EE workflows package actions. ee/server/vitest.config.tsnow carries the workspace aliases required for those EE-server smoke tests to resolve from source.- Evidence:
pnpm --filter server exec vitest run src/test/unit/workflowRunLauncher.unit.test.ts src/test/unit/workflowScheduledRunHandlers.unit.test.tspassed.pnpm --filter sebastian-ee exec vitest run src/__tests__/unit/workflowEventCatalogActions.test.ts src/__tests__/unit/workflowScheduleActions.test.ts src/components/workflow-designer/__tests__/WorkflowDesigner.smoke.test.tsxpassed.pnpm --filter server exec vitest run src/test/unit/workflowRuntimeV2.unit.test.ts src/test/integration/workflowRuntimeV2.publish.integration.test.tshad already passed in the AI validation tranche and continues to cover the main EE workflow action runtime path.
- (2026-03-13) Completed F034/T051 by removing the last live non-test
shared/workflowconsumer outside the package scaffolding and re-running the active-path audit:services/workflow-worker/dlq-util.jsnow imports Redis stream helpers from@alga-psa/workflows/streams.- The remaining
shared/workflowmatches outside docs/dist are now limited to comments, inert tooling, a legacy migration string, and the EE package's internal re-export scaffolding; the active caller surface outside the package no longer points atshared/workflow. - Evidence:
rg -n "shared/workflow" . -g '!**/docs/**' -g '!**/dist/**' -g '!**/coverage/**' -g '!ee/packages/workflows/**' -g '!shared/workflow/**' -g '!**/*test*.ts' -g '!**/*.test.ts' -g '!**/*.test.tsx' -g '!**/__tests__/**' -g '!server/src/test/**' -g '!packages/**/tests/**' -g '!docker-compose*.yaml' -g '!Dockerfile*' -g '!eslint.config.js'returned only comments/tooling plus the legacy migration string.