Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
3395833
feat(world-aws): add AWS World for Vercel Workflow DevKit (DynamoDB +…
stewartjarod Feb 21, 2026
e72fa2e
feat(world-aws): upgrade readFromStream() to DynamoDB Streams
stewartjarod Feb 21, 2026
bff93a6
fix(world-aws): pagination, idempotency, marshal dedup, queue validat…
stewartjarod Feb 22, 2026
f826c3a
feat(world-aws): add getEncryptionKeyForRun() with HKDF-SHA256
stewartjarod Feb 22, 2026
c3611ac
feat(world-aws): add error handling, config validation, clean shutdow…
stewartjarod Feb 22, 2026
8232d02
fix(world-aws): compile bin script for npm, drop tsx runtime dependency
stewartjarod Feb 22, 2026
2140a00
fix(world-aws): add bin wrapper for npm, publish v0.1.3
stewartjarod Feb 22, 2026
7eeb9a3
Update publish workflow: add world-aws, fix hyphenated tag parsing
stewartjarod Feb 22, 2026
8680e43
docs(world-aws): add README encryption docs, examples, Next.js Lambda…
stewartjarod Feb 22, 2026
5caf780
docs(world-aws): add architecture, local dev, and migration guide
stewartjarod Feb 22, 2026
7b2260f
feat(world-aws): handle timeoutSeconds in SQS handler for workflow sleep
stewartjarod Feb 22, 2026
2ed4d72
fix(world-aws): atomicity, error handling, parallelization, retry
stewartjarod Feb 23, 2026
c6684a1
feat(world-aws): add configurable DynamoDB TTL for automatic item expiry
stewartjarod Feb 23, 2026
2ce20dc
feat(world-aws): add SQS poller, CJS support, resilience, Date serial…
stewartjarod Feb 23, 2026
5de9b64
feat(world-aws): integrate world-testing, dual-protocol handler, SQS …
stewartjarod Feb 23, 2026
b38dacf
feat(world-aws): add e2e testing infrastructure (SST dev Lambda, e2e …
stewartjarod Feb 25, 2026
778025f
Rename visual builder from Workflows to Automations across codebase
stewartjarod Feb 25, 2026
1ef550b
fix: lint, formatting, remove duplicated workflow-builder files
stewartjarod Feb 25, 2026
96f1848
refactor: rename internal Workflow identifiers to Automation
stewartjarod Feb 26, 2026
3ba3e90
fix: update test mocks and assertions for Workflow→Automation rename
stewartjarod Feb 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 9 additions & 5 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,11 @@ jobs:
# cdk-v1.0.0, cdk-v1.0.0-beta.1
# pulumi-v1.0.0, pulumi-v1.0.0-beta.1
# core-v1.0.0, core-v1.0.0-beta.1
# world-aws-v0.1.0, world-aws-v0.1.0-beta.1

# Extract package name (everything before -v)
if [[ "$TAG" =~ ^([a-z]+)-v ]]; then
PACKAGE="${BASH_REMATCH[1]}"
else
# Extract package name (everything before last -v<number>)
PACKAGE="${TAG%-v*}"
if [[ "$PACKAGE" == "$TAG" || -z "$PACKAGE" ]]; then
echo "Error: Tag must be in format <package>-v<version> (e.g., cli-v1.0.0)"
exit 1
fi
Expand All @@ -68,8 +68,12 @@ jobs:
NPM_PACKAGE="@wraps/core"
FILTER="@wraps/core"
;;
world-aws)
NPM_PACKAGE="@wraps.dev/world-aws"
FILTER="@wraps.dev/world-aws"
;;
*)
echo "Error: Unknown package '$PACKAGE'. Must be one of: cli, cdk, pulumi, core"
echo "Error: Unknown package '$PACKAGE'. Must be one of: cli, cdk, pulumi, core, world-aws"
exit 1
;;
esac
Expand Down
6 changes: 3 additions & 3 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ wraps/ # Monorepo root
│ │ ├── actions/ # Server actions
│ │ ├── components/
│ │ │ ├── (ee)/ # Enterprise components
│ │ │ │ └── workflow-builder/ # React Flow workflow canvas
│ │ │ │ └── automation-builder/ # React Flow automation canvas
│ │ │ ├── template-editor/ # TipTap email template editor
│ │ │ └── ui/ # shadcn/ui components
│ │ ├── hooks/ # Custom hooks
Expand Down Expand Up @@ -543,9 +543,9 @@ These are enforced by `baseline.toml` and will fail CI:
- **packages/cli/src/utils/shared/config.ts**: Centralized API/app URL helpers
- **packages/db/src/schema/**: All database table definitions
- **apps/api/src/routes/**: API route handlers
- **apps/api/src/services/workflow-events.ts**: Workflow event emission
- **apps/api/src/services/automation-events.ts**: Automation event emission
- **apps/web/src/actions/**: Next.js server actions
- **apps/web/src/components/(ee)/workflow-builder/**: Workflow builder (React Flow)
- **apps/web/src/components/(ee)/automation-builder/**: Automation builder (React Flow)
- **apps/web/src/components/template-editor/**: Email template editor (TipTap)

## Common Tasks
Expand Down
2 changes: 1 addition & 1 deletion apps/api/CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,5 +69,5 @@ pnpm --filter @wraps/api test:coverage src/__tests__/my-test.test.ts
## Key Files

- `src/routes/` - API route handlers
- `src/services/workflow-events.ts` - Event emission helpers
- `src/services/automation-events.ts` - Event emission helpers
- `src/middleware/auth.ts` - Authentication middleware
8 changes: 6 additions & 2 deletions apps/api/src/(ee)/__tests__/workflow-definition-drift.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -302,15 +302,19 @@ vi.mock("../../services/credentials", () => ({
}),
}));

vi.mock("../../services/workflow-queue", () => ({
vi.mock("../../services/automation-queue", () => ({
enqueueAutomationStep: mockEnqueueWorkflowStep,
enqueueWorkflowStep: mockEnqueueWorkflowStep,
enqueueAutomationStepBatch: mockEnqueueWorkflowStepBatch,
enqueueWorkflowStepBatch: mockEnqueueWorkflowStepBatch,
scheduleWaitTimeout: mockScheduleWaitTimeout,
scheduleAutomationStep: mockScheduleWorkflowStep,
scheduleWorkflowStep: mockScheduleWorkflowStep,
deleteScheduledStep: mockDeleteScheduledStep,
}));

vi.mock("../../services/workflow-scheduler", () => ({
vi.mock("../../services/automation-scheduler", () => ({
createNextAutomationSchedule: mockCreateNextWorkflowSchedule,
createNextWorkflowSchedule: mockCreateNextWorkflowSchedule,
}));

Expand Down
3 changes: 2 additions & 1 deletion apps/api/src/(ee)/__tests__/workflow-dlq-consumer.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,8 @@ const mockDbSelect = vi.fn();
const mockDbUpdate = vi.fn();
const mockCreateNextWorkflowSchedule = vi.fn();

vi.mock("../../services/workflow-scheduler", () => ({
vi.mock("../../services/automation-scheduler", () => ({
createNextAutomationSchedule: mockCreateNextWorkflowSchedule,
createNextWorkflowSchedule: mockCreateNextWorkflowSchedule,
}));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ import {
} from "vitest";

// Mock the workflow-queue module to avoid actual AWS calls
vi.mock("../../services/workflow-queue", () => ({
vi.mock("../../services/automation-queue", () => ({
enqueueAutomationStep: vi.fn().mockResolvedValue(undefined),
enqueueWorkflowStep: vi.fn().mockResolvedValue(undefined),
deleteScheduledStep: vi.fn().mockResolvedValue(undefined),
}));
Expand Down
8 changes: 6 additions & 2 deletions apps/api/src/(ee)/__tests__/workflow-processor-core.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -276,15 +276,19 @@ vi.mock("../../services/credentials", () => ({
}),
}));

vi.mock("../../services/workflow-queue", () => ({
vi.mock("../../services/automation-queue", () => ({
enqueueAutomationStep: mockEnqueueWorkflowStep,
enqueueWorkflowStep: mockEnqueueWorkflowStep,
enqueueAutomationStepBatch: mockEnqueueWorkflowStepBatch,
enqueueWorkflowStepBatch: mockEnqueueWorkflowStepBatch,
scheduleWaitTimeout: mockScheduleWaitTimeout,
scheduleAutomationStep: mockScheduleWorkflowStep,
scheduleWorkflowStep: mockScheduleWorkflowStep,
deleteScheduledStep: mockDeleteScheduledStep,
}));

vi.mock("../../services/workflow-scheduler", () => ({
vi.mock("../../services/automation-scheduler", () => ({
createNextAutomationSchedule: mockCreateNextWorkflowSchedule,
createNextWorkflowSchedule: mockCreateNextWorkflowSchedule,
}));

Expand Down
8 changes: 6 additions & 2 deletions apps/api/src/(ee)/__tests__/workflow-processor-steps.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -228,15 +228,19 @@ vi.mock("../../services/credentials", () => ({
}),
}));

vi.mock("../../services/workflow-queue", () => ({
vi.mock("../../services/automation-queue", () => ({
enqueueAutomationStep: mockEnqueueWorkflowStep,
enqueueWorkflowStep: mockEnqueueWorkflowStep,
enqueueAutomationStepBatch: mockEnqueueWorkflowStepBatch,
enqueueWorkflowStepBatch: mockEnqueueWorkflowStepBatch,
scheduleWaitTimeout: mockScheduleWaitTimeout,
scheduleAutomationStep: mockScheduleWorkflowStep,
scheduleWorkflowStep: mockScheduleWorkflowStep,
deleteScheduledStep: mockDeleteScheduledStep,
}));

vi.mock("../../services/workflow-scheduler", () => ({
vi.mock("../../services/automation-scheduler", () => ({
createNextAutomationSchedule: mockCreateNextWorkflowSchedule,
createNextWorkflowSchedule: mockCreateNextWorkflowSchedule,
}));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -158,15 +158,19 @@ vi.mock("../../services/credentials", () => ({
}),
}));

vi.mock("../../services/workflow-queue", () => ({
vi.mock("../../services/automation-queue", () => ({
enqueueAutomationStep: mockEnqueueWorkflowStep,
enqueueWorkflowStep: mockEnqueueWorkflowStep,
enqueueAutomationStepBatch: mockEnqueueWorkflowStepBatch,
enqueueWorkflowStepBatch: mockEnqueueWorkflowStepBatch,
scheduleWaitTimeout: mockScheduleWaitTimeout,
scheduleAutomationStep: mockScheduleWorkflowStep,
scheduleWorkflowStep: mockScheduleWorkflowStep,
deleteScheduledStep: mockDeleteScheduledStep,
}));

vi.mock("../../services/workflow-scheduler", () => ({
vi.mock("../../services/automation-scheduler", () => ({
createNextAutomationSchedule: mockCreateNextWorkflowSchedule,
createNextWorkflowSchedule: mockCreateNextWorkflowSchedule,
}));

Expand Down
Loading
Loading