[ { "id": "T001", "description": "Schema: workflow definition accepts a one-time schedule trigger variant", "implemented": true, "featureIds": ["F001"] }, { "id": "T002", "description": "Schema: workflow definition accepts a recurring schedule trigger variant", "implemented": true, "featureIds": ["F001"] }, { "id": "T003", "description": "Schema: workflow definition without a trigger remains valid and is not coerced into an explicit manual trigger type", "implemented": true, "featureIds": ["F001"] }, { "id": "T004", "description": "Server action: create workflow accepts one-time schedule trigger payloads", "implemented": true, "featureIds": ["F002"] }, { "id": "T005", "description": "Server action: update workflow accepts recurring schedule trigger payloads", "implemented": true, "featureIds": ["F002"] }, { "id": "T006", "description": "Guard: time-triggered workflow publish is rejected when EE-only scheduling support is unavailable", "implemented": true, "featureIds": ["F003"] }, { "id": "T007", "description": "Contract: time-triggered workflow publish resolves the fixed synthetic payload schema ref", "implemented": true, "featureIds": ["F004"] }, { "id": "T008", "description": "Contract: time-trigger fire payload matches the registered synthetic schema", "implemented": true, "featureIds": ["F004", "F018", "F019"] }, { "id": "T009", "description": "Validation: publish rejects inferred payload schema mode for one-time schedule triggers", "implemented": true, "featureIds": ["F005"] }, { "id": "T010", "description": "Validation: publish rejects inferred payload schema mode for recurring schedule triggers", "implemented": true, "featureIds": ["F005"] }, { "id": "T011", "description": "Validation: one-time schedule publish rejects missing runAt timestamp", "implemented": true, "featureIds": ["F006"] }, { "id": "T012", "description": "Validation: one-time schedule publish rejects invalid timestamp values", "implemented": true, "featureIds": ["F006"] }, { "id": "T013", "description": "Validation: recurring schedule publish rejects cron expressions with six fields or seconds", "implemented": true, "featureIds": ["F007"] }, { "id": "T014", "description": "Validation: recurring schedule publish rejects invalid timezone values", "implemented": true, "featureIds": ["F007"] }, { "id": "T015", "description": "Validation: recurring schedule publish accepts valid 5-field cron expressions", "implemented": true, "featureIds": ["F007"] }, { "id": "T016", "description": "List API: workflows with one-time schedule triggers are reported with a real schedule trigger type rather than heuristic event matching", "implemented": true, "featureIds": ["F008"] }, { "id": "T017", "description": "List API: workflows with recurring schedule triggers are reported with a real recurring trigger type rather than heuristic event matching", "implemented": true, "featureIds": ["F008"] }, { "id": "T018", "description": "Designer: user can select One-time schedule trigger and save a draft definition", "implemented": true, "featureIds": ["F009", "F010"] }, { "id": "T019", "description": "Designer: user can select Recurring schedule trigger and save a draft definition", "implemented": true, "featureIds": ["F009", "F011"] }, { "id": "T020", "description": "Designer: time-trigger selection hides event catalog and trigger mapping controls", "implemented": true, "featureIds": ["F012"] }, { "id": "T021", "description": "Designer: time-trigger selection shows fixed clock payload schema preview", "implemented": true, "featureIds": ["F013"] }, { "id": "T022", "description": "DB integration: publishing a one-time scheduled workflow creates a workflow schedule state row", "implemented": true, "featureIds": ["F014", "F020"] }, { "id": "T023", "description": "DB integration: publishing a recurring scheduled workflow creates a workflow schedule state row", "implemented": true, "featureIds": ["F014", "F021"] }, { "id": "T024", "description": "DB integration: workflow schedule state row persists runner job identifiers after registration", "implemented": true, "featureIds": ["F015", "F020", "F021"] }, { "id": "T025", "description": "Launcher: event-triggered workflow starts still flow through the shared launcher after refactor", "implemented": true, "featureIds": ["F016", "F017"] }, { "id": "T026", "description": "Launcher: one-time schedule job handler starts a workflow run through the shared launcher", "implemented": true, "featureIds": ["F016", "F018"] }, { "id": "T027", "description": "Launcher: recurring schedule job handler starts a workflow run through the shared launcher", "implemented": true, "featureIds": ["F016", "F019"] }, { "id": "T028", "description": "Publish lifecycle: publishing a one-time scheduled workflow registers a one-time job via scheduleJobAt", "implemented": true, "featureIds": ["F020"] }, { "id": "T029", "description": "Publish lifecycle: publishing a recurring scheduled workflow registers a recurring job via scheduleRecurringJob", "implemented": true, "featureIds": ["F021"] }, { "id": "T030", "description": "Lifecycle: pausing a published time-triggered workflow cancels or disables its registered schedule", "implemented": true, "featureIds": ["F022"] }, { "id": "T031", "description": "Lifecycle: deleting a published time-triggered workflow cancels its registered schedule", "implemented": true, "featureIds": ["F022"] }, { "id": "T032", "description": "Lifecycle: changing a published workflow from time trigger to event trigger removes its registered schedule", "implemented": true, "featureIds": ["F022", "F023"] }, { "id": "T033", "description": "Reschedule: updating a published one-time trigger atomically cancels the old registration and stores the replacement registration", "implemented": true, "featureIds": ["F023"] }, { "id": "T034", "description": "Reschedule: updating a published recurring trigger atomically cancels the old registration and stores the replacement registration", "implemented": true, "featureIds": ["F023"] }, { "id": "T035", "description": "Fire semantics: one-time schedule fire starts exactly one workflow run", "implemented": true, "featureIds": ["F018", "F024"] }, { "id": "T036", "description": "Fire semantics: recurring schedule fire starts exactly one workflow run for that fire", "implemented": true, "featureIds": ["F019"] }, { "id": "T037", "description": "State: one-time workflow schedule is marked completed after a successful fire", "implemented": true, "featureIds": ["F024"] }, { "id": "T038", "description": "State: completed one-time schedule does not refire on later worker ticks", "implemented": true, "featureIds": ["F024"] }, { "id": "T039", "description": "Run provenance: one-time triggered run persists time-trigger provenance fields", "implemented": true, "featureIds": ["F025"] }, { "id": "T040", "description": "Run provenance: recurring triggered run persists time-trigger provenance fields", "implemented": true, "featureIds": ["F025"] }, { "id": "T041", "description": "UI: workflow runs list displays One-time schedule label for one-time-triggered workflows", "implemented": true, "featureIds": ["F026"] }, { "id": "T042", "description": "UI: workflow runs list displays Recurring schedule label for recurring-triggered workflows", "implemented": true, "featureIds": ["F026"] }, { "id": "T043", "description": "Idempotency: duplicate delivery of the same one-time schedule fire does not create duplicate runs", "implemented": true, "featureIds": ["F027"] }, { "id": "T044", "description": "Idempotency: duplicate delivery of the same recurring schedule fire does not create duplicate runs", "implemented": true, "featureIds": ["F027"] }, { "id": "T045", "description": "Regression: no-trigger workflows still publish and run correctly after time-trigger support is added", "implemented": true, "featureIds": ["F001", "F016"] }, { "id": "T046", "description": "Regression: event-triggered workflows still publish and start correctly after launcher extraction", "implemented": true, "featureIds": ["F017"] } ]