PSA/ee/docs/plans/workflow_run_studio_features.json
Hermes 284313f908
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
Initial import of AlgaPSA codebase from PSA server
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz

Source: /opt/alga-psa on psa.joliet.tech
2026-06-22 16:12:17 -05:00

1606 lines
40 KiB
JSON

{
"feature": "Workflow Run Studio",
"description": "End-to-end UX for running workflows, supplying synthetic event payloads, and observing live execution with step status, logs, and history.",
"branch": "feat/workflow-overhaul",
"createdAt": "2025-12-26",
"relatedPRDSection": "§21",
"tasks": [
{
"id": "WRX-001",
"category": "Run Trigger",
"description": "Add Run button in designer toolbar (only when workflow has a published version)",
"file": "",
"done": true
},
{
"id": "WRX-002",
"category": "Run Trigger",
"description": "Disable Run when workflow is paused or validation_status=error",
"file": "",
"done": true
},
{
"id": "WRX-003",
"category": "Run Trigger",
"description": "Show published version selector in Run dialog",
"file": "",
"done": true
},
{
"id": "WRX-004",
"category": "Run Trigger",
"description": "Allow running latest published version by default",
"file": "",
"done": true
},
{
"id": "WRX-005",
"category": "Run Trigger",
"description": "Display trigger type (event/manual) in Run dialog header",
"file": "",
"done": true
},
{
"id": "WRX-006",
"category": "Run Trigger",
"description": "Show warning when draft differs from published version",
"file": "",
"done": true
},
{
"id": "WRX-007",
"category": "Run Trigger",
"description": "Offer quick link to publish before running",
"file": "",
"done": true
},
{
"id": "WRX-008",
"category": "Run Trigger",
"description": "Add confirmation when running system workflows",
"file": "",
"done": true
},
{
"id": "WRX-009",
"category": "Run Trigger",
"description": "Surface concurrency limit notice in Run dialog",
"file": "",
"done": true
},
{
"id": "WRX-010",
"category": "Run Trigger",
"description": "Remember last used run options per workflow",
"file": "",
"done": true
},
{
"id": "WRX-011",
"category": "Test Event Builder",
"description": "Render payload editor seeded with payload schema defaults",
"file": "",
"done": true
},
{
"id": "WRX-012",
"category": "Test Event Builder",
"description": "Support JSON editor + structured form toggle",
"file": "",
"done": true
},
{
"id": "WRX-013",
"category": "Test Event Builder",
"description": "Validate JSON syntax and show inline errors",
"file": "",
"done": true
},
{
"id": "WRX-014",
"category": "Test Event Builder",
"description": "Provide schema-driven required field indicators",
"file": "",
"done": true
},
{
"id": "WRX-015",
"category": "Test Event Builder",
"description": "Offer example payload snippets from schema examples",
"file": "",
"done": true
},
{
"id": "WRX-016",
"category": "Test Event Builder",
"description": "Allow saving named payload presets per workflow",
"file": "",
"done": true
},
{
"id": "WRX-017",
"category": "Test Event Builder",
"description": "Allow cloning prior run payload into editor",
"file": "",
"done": true
},
{
"id": "WRX-018",
"category": "Test Event Builder",
"description": "Add \"Reset to defaults\" action",
"file": "",
"done": true
},
{
"id": "WRX-019",
"category": "Test Event Builder",
"description": "Support quick-fill from sample templates (email, webhook, etc.)",
"file": "",
"done": true
},
{
"id": "WRX-020",
"category": "Test Event Builder",
"description": "Show payload size estimate and limit warnings",
"file": "",
"done": true
},
{
"id": "WRX-021",
"category": "Schema-Based Form",
"description": "Auto-generate form fields from payload schema",
"file": "",
"done": true
},
{
"id": "WRX-022",
"category": "Schema-Based Form",
"description": "Support nested objects with collapsible sections",
"file": "",
"done": true
},
{
"id": "WRX-023",
"category": "Schema-Based Form",
"description": "Support arrays with add/remove row controls",
"file": "",
"done": true
},
{
"id": "WRX-024",
"category": "Schema-Based Form",
"description": "Render enums as select dropdowns",
"file": "",
"done": true
},
{
"id": "WRX-025",
"category": "Schema-Based Form",
"description": "Render booleans as toggles",
"file": "",
"done": true
},
{
"id": "WRX-026",
"category": "Schema-Based Form",
"description": "Render date/time with datetime picker",
"file": "",
"done": true
},
{
"id": "WRX-027",
"category": "Schema-Based Form",
"description": "Show field descriptions as helper text",
"file": "",
"done": true
},
{
"id": "WRX-028",
"category": "Schema-Based Form",
"description": "Surface default values with reset per field",
"file": "",
"done": true
},
{
"id": "WRX-029",
"category": "Schema-Based Form",
"description": "Show validation errors from Zod schema",
"file": "",
"done": true
},
{
"id": "WRX-030",
"category": "Schema-Based Form",
"description": "Allow copy JSON from form view",
"file": "",
"done": true
},
{
"id": "WRX-031",
"category": "Run Studio Layout",
"description": "Create dedicated Run Studio page for a workflow run",
"file": "",
"done": true
},
{
"id": "WRX-032",
"category": "Run Studio Layout",
"description": "Left: pipeline visualization; right: details/logs",
"file": "",
"done": true
},
{
"id": "WRX-033",
"category": "Run Studio Layout",
"description": "Top bar with run status, workflow name, version",
"file": "",
"done": true
},
{
"id": "WRX-034",
"category": "Run Studio Layout",
"description": "Breadcrumb navigation back to workflow designer",
"file": "",
"done": true
},
{
"id": "WRX-035",
"category": "Run Studio Layout",
"description": "Sticky status summary on scroll",
"file": "",
"done": false
},
{
"id": "WRX-036",
"category": "Run Studio Layout",
"description": "Split panel resizing with persisted widths",
"file": "",
"done": false
},
{
"id": "WRX-037",
"category": "Run Studio Layout",
"description": "Run metadata panel (run_id, started_at, duration)",
"file": "",
"done": true
},
{
"id": "WRX-038",
"category": "Run Studio Layout",
"description": "Show tenant and trigger metadata",
"file": "",
"done": true
},
{
"id": "WRX-039",
"category": "Run Studio Layout",
"description": "Quick link to open definition version",
"file": "",
"done": false
},
{
"id": "WRX-040",
"category": "Run Studio Layout",
"description": "Empty state when no run selected",
"file": "",
"done": false
},
{
"id": "WRX-041",
"category": "Node Status Visualization",
"description": "Show running node highlighted (e.g., cyan) with pulse",
"file": "",
"done": true
},
{
"id": "WRX-042",
"category": "Node Status Visualization",
"description": "Show succeeded nodes in green",
"file": "",
"done": true
},
{
"id": "WRX-043",
"category": "Node Status Visualization",
"description": "Show failed nodes in red",
"file": "",
"done": true
},
{
"id": "WRX-044",
"category": "Node Status Visualization",
"description": "Show canceled nodes in gray",
"file": "",
"done": true
},
{
"id": "WRX-045",
"category": "Node Status Visualization",
"description": "Show waiting nodes in yellow",
"file": "",
"done": false
},
{
"id": "WRX-046",
"category": "Node Status Visualization",
"description": "Render retrying nodes with striped indicator",
"file": "",
"done": true
},
{
"id": "WRX-047",
"category": "Node Status Visualization",
"description": "Display node attempt count badge",
"file": "",
"done": true
},
{
"id": "WRX-048",
"category": "Node Status Visualization",
"description": "Animate transition from running → succeeded",
"file": "",
"done": false
},
{
"id": "WRX-049",
"category": "Node Status Visualization",
"description": "Show tooltip with last status + timestamp",
"file": "",
"done": true
},
{
"id": "WRX-050",
"category": "Node Status Visualization",
"description": "Expose legend for status colors",
"file": "",
"done": true
},
{
"id": "WRX-051",
"category": "Live Updates",
"description": "Poll run status and step statuses at interval",
"file": "",
"done": true
},
{
"id": "WRX-052",
"category": "Live Updates",
"description": "Backoff polling when run completes",
"file": "",
"done": true
},
{
"id": "WRX-053",
"category": "Live Updates",
"description": "Allow manual refresh button",
"file": "",
"done": true
},
{
"id": "WRX-054",
"category": "Live Updates",
"description": "Subscribe to server-sent events when available",
"file": "",
"done": false
},
{
"id": "WRX-055",
"category": "Live Updates",
"description": "Auto-scroll to latest step on updates",
"file": "",
"done": false
},
{
"id": "WRX-056",
"category": "Live Updates",
"description": "Detect stale UI and display \"out of date\" banner",
"file": "",
"done": false
},
{
"id": "WRX-057",
"category": "Live Updates",
"description": "Update duration timer live while running",
"file": "",
"done": true
},
{
"id": "WRX-058",
"category": "Live Updates",
"description": "Handle network disconnects gracefully",
"file": "",
"done": false
},
{
"id": "WRX-059",
"category": "Live Updates",
"description": "Prevent UI flicker with diff-based updates",
"file": "",
"done": false
},
{
"id": "WRX-060",
"category": "Live Updates",
"description": "Show \"last updated\" timestamp",
"file": "",
"done": true
},
{
"id": "WRX-061",
"category": "Execution History",
"description": "Show chronological step execution timeline",
"file": "",
"done": true
},
{
"id": "WRX-062",
"category": "Execution History",
"description": "Group retries under a step with expandable attempts",
"file": "",
"done": true
},
{
"id": "WRX-063",
"category": "Execution History",
"description": "Show wait steps (event/human/timeout) in timeline",
"file": "",
"done": true
},
{
"id": "WRX-064",
"category": "Execution History",
"description": "Display duration per step attempt",
"file": "",
"done": true
},
{
"id": "WRX-065",
"category": "Execution History",
"description": "Provide search/filter within history",
"file": "",
"done": true
},
{
"id": "WRX-066",
"category": "Execution History",
"description": "Highlight failed attempts with error summary",
"file": "",
"done": false
},
{
"id": "WRX-067",
"category": "Execution History",
"description": "Allow jumping timeline to node in graph",
"file": "",
"done": true
},
{
"id": "WRX-068",
"category": "Execution History",
"description": "Show state.set transitions in timeline",
"file": "",
"done": false
},
{
"id": "WRX-069",
"category": "Execution History",
"description": "Show control block enter/exit markers",
"file": "",
"done": false
},
{
"id": "WRX-070",
"category": "Execution History",
"description": "Export timeline as JSON",
"file": "",
"done": false
},
{
"id": "WRX-071",
"category": "Run Logs",
"description": "Stream logs for the run with level filtering",
"file": "",
"done": false
},
{
"id": "WRX-072",
"category": "Run Logs",
"description": "Support log search (text match)",
"file": "",
"done": true
},
{
"id": "WRX-073",
"category": "Run Logs",
"description": "Support paging/virtualization for large log sets",
"file": "",
"done": false
},
{
"id": "WRX-074",
"category": "Run Logs",
"description": "Show log context (step_path, event_name)",
"file": "",
"done": false
},
{
"id": "WRX-075",
"category": "Run Logs",
"description": "Allow copy log line with timestamp",
"file": "",
"done": false
},
{
"id": "WRX-076",
"category": "Run Logs",
"description": "Allow download logs as CSV",
"file": "",
"done": false
},
{
"id": "WRX-077",
"category": "Run Logs",
"description": "Colorize by log level",
"file": "",
"done": true
},
{
"id": "WRX-078",
"category": "Run Logs",
"description": "Pin logs panel open across navigation",
"file": "",
"done": false
},
{
"id": "WRX-079",
"category": "Run Logs",
"description": "Show empty state when no logs",
"file": "",
"done": true
},
{
"id": "WRX-080",
"category": "Run Logs",
"description": "Show \"log source\" column",
"file": "",
"done": false
},
{
"id": "WRX-081",
"category": "Step Details",
"description": "Show selected step configuration (read-only)",
"file": "",
"done": true
},
{
"id": "WRX-082",
"category": "Step Details",
"description": "Show input mapping resolved values (from snapshot)",
"file": "",
"done": true
},
{
"id": "WRX-083",
"category": "Step Details",
"description": "Show output payload for action.call steps",
"file": "",
"done": true
},
{
"id": "WRX-084",
"category": "Step Details",
"description": "Show error payload for failed steps",
"file": "",
"done": true
},
{
"id": "WRX-085",
"category": "Step Details",
"description": "Show retry policy for step",
"file": "",
"done": false
},
{
"id": "WRX-086",
"category": "Step Details",
"description": "Allow copy JSON of input/output",
"file": "",
"done": true
},
{
"id": "WRX-087",
"category": "Step Details",
"description": "Show action id + version for action.call",
"file": "",
"done": true
},
{
"id": "WRX-088",
"category": "Step Details",
"description": "Show node type + config for node steps",
"file": "",
"done": false
},
{
"id": "WRX-089",
"category": "Step Details",
"description": "Surface idempotency key for action steps",
"file": "",
"done": false
},
{
"id": "WRX-090",
"category": "Step Details",
"description": "Show step path with breadcrumbs",
"file": "",
"done": false
},
{
"id": "WRX-091",
"category": "Envelope Snapshots",
"description": "View envelope snapshot per step",
"file": "",
"done": true
},
{
"id": "WRX-092",
"category": "Envelope Snapshots",
"description": "Diff two snapshots side-by-side",
"file": "",
"done": false
},
{
"id": "WRX-093",
"category": "Envelope Snapshots",
"description": "Highlight changed fields between steps",
"file": "",
"done": false
},
{
"id": "WRX-094",
"category": "Envelope Snapshots",
"description": "Allow expand/collapse large objects",
"file": "",
"done": false
},
{
"id": "WRX-095",
"category": "Envelope Snapshots",
"description": "Mask secrets in snapshot view",
"file": "",
"done": false
},
{
"id": "WRX-096",
"category": "Envelope Snapshots",
"description": "Search within snapshot JSON",
"file": "",
"done": false
},
{
"id": "WRX-097",
"category": "Envelope Snapshots",
"description": "Copy JSON path from snapshot view",
"file": "",
"done": false
},
{
"id": "WRX-098",
"category": "Envelope Snapshots",
"description": "Show snapshot size and redaction status",
"file": "",
"done": false
},
{
"id": "WRX-099",
"category": "Envelope Snapshots",
"description": "Allow download snapshot JSON",
"file": "",
"done": false
},
{
"id": "WRX-100",
"category": "Envelope Snapshots",
"description": "Show warnings when snapshot truncated",
"file": "",
"done": false
},
{
"id": "WRX-101",
"category": "Error Handling UX",
"description": "Display run-level error summary banner",
"file": "",
"done": true
},
{
"id": "WRX-102",
"category": "Error Handling UX",
"description": "Show stack trace panel for failures",
"file": "",
"done": false
},
{
"id": "WRX-103",
"category": "Error Handling UX",
"description": "Display error category (ActionError, ValidationError)",
"file": "",
"done": false
},
{
"id": "WRX-104",
"category": "Error Handling UX",
"description": "Show last successful step before failure",
"file": "",
"done": true
},
{
"id": "WRX-105",
"category": "Error Handling UX",
"description": "Provide link to retry/resume actions",
"file": "",
"done": false
},
{
"id": "WRX-106",
"category": "Error Handling UX",
"description": "Show human task link if created",
"file": "",
"done": false
},
{
"id": "WRX-107",
"category": "Error Handling UX",
"description": "Expose error_json from run record",
"file": "",
"done": true
},
{
"id": "WRX-108",
"category": "Error Handling UX",
"description": "Show resume_event_name/payload when waiting",
"file": "",
"done": true
},
{
"id": "WRX-109",
"category": "Error Handling UX",
"description": "Offer \"Report bug\" with context",
"file": "",
"done": false
},
{
"id": "WRX-110",
"category": "Error Handling UX",
"description": "Show hints for common error codes",
"file": "",
"done": false
},
{
"id": "WRX-111",
"category": "Run Controls",
"description": "Add Cancel Run button",
"file": "",
"done": true
},
{
"id": "WRX-112",
"category": "Run Controls",
"description": "Add Resume Run button (admin only)",
"file": "",
"done": false
},
{
"id": "WRX-113",
"category": "Run Controls",
"description": "Add Replay Run button with payload override",
"file": "",
"done": true
},
{
"id": "WRX-114",
"category": "Run Controls",
"description": "Confirm destructive actions (cancel/replay)",
"file": "",
"done": true
},
{
"id": "WRX-115",
"category": "Run Controls",
"description": "Show run status change toast notifications",
"file": "",
"done": true
},
{
"id": "WRX-116",
"category": "Run Controls",
"description": "Disable controls when run is finished",
"file": "",
"done": true
},
{
"id": "WRX-117",
"category": "Run Controls",
"description": "Add \"Requeue wait\" action for waiting runs",
"file": "",
"done": false
},
{
"id": "WRX-118",
"category": "Run Controls",
"description": "Show reason input for cancel/replay",
"file": "",
"done": true
},
{
"id": "WRX-119",
"category": "Run Controls",
"description": "Audit log entry for operator actions",
"file": "",
"done": false
},
{
"id": "WRX-120",
"category": "Run Controls",
"description": "Expose \"Open in new tab\" action",
"file": "",
"done": false
},
{
"id": "WRX-121",
"category": "Run List Integration",
"description": "Add \"Run now\" action to workflow list row",
"file": "",
"done": true
},
{
"id": "WRX-122",
"category": "Run List Integration",
"description": "Add \"View latest run\" quick action",
"file": "",
"done": true
},
{
"id": "WRX-123",
"category": "Run List Integration",
"description": "Open Run Studio from Runs tab",
"file": "",
"done": true
},
{
"id": "WRX-124",
"category": "Run List Integration",
"description": "Filter runs by workflow version",
"file": "",
"done": true
},
{
"id": "WRX-125",
"category": "Run List Integration",
"description": "Filter runs by status",
"file": "",
"done": true
},
{
"id": "WRX-126",
"category": "Run List Integration",
"description": "Filter runs by date range",
"file": "",
"done": true
},
{
"id": "WRX-127",
"category": "Run List Integration",
"description": "Show run count badges per workflow",
"file": "",
"done": true
},
{
"id": "WRX-128",
"category": "Run List Integration",
"description": "Show latest run status in workflow list",
"file": "",
"done": true
},
{
"id": "WRX-129",
"category": "Run List Integration",
"description": "Link run_id to Run Studio",
"file": "",
"done": true
},
{
"id": "WRX-130",
"category": "Run List Integration",
"description": "Support shareable run URLs",
"file": "",
"done": true
},
{
"id": "WRX-131",
"category": "Permissions & Security",
"description": "Require workflow:manage permission to run",
"file": "",
"done": true
},
{
"id": "WRX-132",
"category": "Permissions & Security",
"description": "Require workflow:admin for system workflow runs",
"file": "",
"done": true
},
{
"id": "WRX-133",
"category": "Permissions & Security",
"description": "Hide secrets in logs and snapshots",
"file": "",
"done": true
},
{
"id": "WRX-134",
"category": "Permissions & Security",
"description": "Restrict log access to workflow:read",
"file": "",
"done": true
},
{
"id": "WRX-135",
"category": "Permissions & Security",
"description": "Enforce tenant isolation for run data",
"file": "",
"done": true
},
{
"id": "WRX-136",
"category": "Permissions & Security",
"description": "Check secrets.view for secret metadata in UI",
"file": "",
"done": true
},
{
"id": "WRX-137",
"category": "Permissions & Security",
"description": "Block run controls for read-only users",
"file": "",
"done": true
},
{
"id": "WRX-138",
"category": "Permissions & Security",
"description": "Audit user actions for run controls",
"file": "",
"done": true
},
{
"id": "WRX-139",
"category": "Permissions & Security",
"description": "Mask sensitive payload fields by pattern",
"file": "",
"done": true
},
{
"id": "WRX-140",
"category": "Permissions & Security",
"description": "Support per-tenant redaction overrides",
"file": "",
"done": true
},
{
"id": "WRX-141",
"category": "Backend API",
"description": "Add server action to create synthetic run with payload",
"file": "",
"done": true
},
{
"id": "WRX-142",
"category": "Backend API",
"description": "Add server action to list steps + snapshots for run",
"file": "",
"done": true
},
{
"id": "WRX-143",
"category": "Backend API",
"description": "Add server action to list logs for run",
"file": "",
"done": true
},
{
"id": "WRX-144",
"category": "Backend API",
"description": "Add server action to export logs",
"file": "",
"done": true
},
{
"id": "WRX-145",
"category": "Backend API",
"description": "Add server action to fetch run summary metadata",
"file": "",
"done": true
},
{
"id": "WRX-146",
"category": "Backend API",
"description": "Add server action to fetch latest run by workflow",
"file": "",
"done": true
},
{
"id": "WRX-147",
"category": "Backend API",
"description": "Add server action to replay run",
"file": "",
"done": true
},
{
"id": "WRX-148",
"category": "Backend API",
"description": "Add server action to cancel run",
"file": "",
"done": true
},
{
"id": "WRX-149",
"category": "Backend API",
"description": "Add server action to resume run",
"file": "",
"done": true
},
{
"id": "WRX-150",
"category": "Backend API",
"description": "Add server action to list run timeline events",
"file": "",
"done": true
},
{
"id": "WRX-151",
"category": "Backend Runtime",
"description": "Emit step status updates with timestamps",
"file": "",
"done": true
},
{
"id": "WRX-152",
"category": "Backend Runtime",
"description": "Persist node_path on each step transition",
"file": "",
"done": true
},
{
"id": "WRX-153",
"category": "Backend Runtime",
"description": "Record attempt counts per step",
"file": "",
"done": true
},
{
"id": "WRX-154",
"category": "Backend Runtime",
"description": "Write action invocation records for idempotency",
"file": "",
"done": true
},
{
"id": "WRX-155",
"category": "Backend Runtime",
"description": "Store snapshot size and enforce limits",
"file": "",
"done": true
},
{
"id": "WRX-156",
"category": "Backend Runtime",
"description": "Write logs for state transitions",
"file": "",
"done": true
},
{
"id": "WRX-157",
"category": "Backend Runtime",
"description": "Capture error context for run",
"file": "",
"done": true
},
{
"id": "WRX-158",
"category": "Backend Runtime",
"description": "Expose wait metadata for event/human/timeouts",
"file": "",
"done": true
},
{
"id": "WRX-159",
"category": "Backend Runtime",
"description": "Provide run summary aggregation",
"file": "",
"done": true
},
{
"id": "WRX-160",
"category": "Backend Runtime",
"description": "Support resume from persisted node_path",
"file": "",
"done": true
},
{
"id": "WRX-161",
"category": "Telemetry & Analytics",
"description": "Track run started event",
"file": "",
"done": false
},
{
"id": "WRX-162",
"category": "Telemetry & Analytics",
"description": "Track run completed event",
"file": "",
"done": false
},
{
"id": "WRX-163",
"category": "Telemetry & Analytics",
"description": "Track run failed event",
"file": "",
"done": false
},
{
"id": "WRX-164",
"category": "Telemetry & Analytics",
"description": "Track time-to-complete metric",
"file": "",
"done": false
},
{
"id": "WRX-165",
"category": "Telemetry & Analytics",
"description": "Track step retry counts",
"file": "",
"done": false
},
{
"id": "WRX-166",
"category": "Telemetry & Analytics",
"description": "Capture workflow_run_id in logs",
"file": "",
"done": false
},
{
"id": "WRX-167",
"category": "Telemetry & Analytics",
"description": "Emit run status change notifications",
"file": "",
"done": false
},
{
"id": "WRX-168",
"category": "Telemetry & Analytics",
"description": "Expose metrics for dashboard",
"file": "",
"done": false
},
{
"id": "WRX-169",
"category": "Telemetry & Analytics",
"description": "Track usage of Run Studio",
"file": "",
"done": false
},
{
"id": "WRX-170",
"category": "Telemetry & Analytics",
"description": "Track export logs usage",
"file": "",
"done": false
},
{
"id": "WRX-171",
"category": "Performance",
"description": "Virtualize run log list",
"file": "",
"done": false
},
{
"id": "WRX-172",
"category": "Performance",
"description": "Virtualize snapshot JSON viewer",
"file": "",
"done": false
},
{
"id": "WRX-173",
"category": "Performance",
"description": "Debounce polling when UI inactive",
"file": "",
"done": false
},
{
"id": "WRX-174",
"category": "Performance",
"description": "Cache schema and registry lookups",
"file": "",
"done": false
},
{
"id": "WRX-175",
"category": "Performance",
"description": "Compress large payload previews",
"file": "",
"done": false
},
{
"id": "WRX-176",
"category": "Performance",
"description": "Lazy-load run studio panels",
"file": "",
"done": false
},
{
"id": "WRX-177",
"category": "Performance",
"description": "Avoid re-rendering graph on log updates",
"file": "",
"done": false
},
{
"id": "WRX-178",
"category": "Performance",
"description": "Batch UI updates per polling tick",
"file": "",
"done": false
},
{
"id": "WRX-179",
"category": "Performance",
"description": "Reduce payload size with redaction",
"file": "",
"done": false
},
{
"id": "WRX-180",
"category": "Performance",
"description": "Memoize computed status map",
"file": "",
"done": false
},
{
"id": "WRX-181",
"category": "Accessibility",
"description": "Ensure color status has text/label alternatives",
"file": "",
"done": false
},
{
"id": "WRX-182",
"category": "Accessibility",
"description": "Add aria-live region for run status",
"file": "",
"done": false
},
{
"id": "WRX-183",
"category": "Accessibility",
"description": "Keyboard navigation for timeline",
"file": "",
"done": false
},
{
"id": "WRX-184",
"category": "Accessibility",
"description": "Focusable step nodes with status",
"file": "",
"done": false
},
{
"id": "WRX-185",
"category": "Accessibility",
"description": "Screen reader labels for log entries",
"file": "",
"done": false
},
{
"id": "WRX-186",
"category": "Accessibility",
"description": "High-contrast mode for statuses",
"file": "",
"done": false
},
{
"id": "WRX-187",
"category": "Accessibility",
"description": "Respect reduced motion for animations",
"file": "",
"done": false
},
{
"id": "WRX-188",
"category": "Accessibility",
"description": "Accessible dialog for Run input",
"file": "",
"done": false
},
{
"id": "WRX-189",
"category": "Accessibility",
"description": "Focus trap in Run dialog",
"file": "",
"done": false
},
{
"id": "WRX-190",
"category": "Accessibility",
"description": "Skip links to main panels",
"file": "",
"done": false
},
{
"id": "WRX-191",
"category": "Testing",
"description": "Unit tests for payload form generation",
"file": "",
"done": false
},
{
"id": "WRX-192",
"category": "Testing",
"description": "Unit tests for validation of synthetic payloads",
"file": "",
"done": false
},
{
"id": "WRX-193",
"category": "Testing",
"description": "Unit tests for status color mapping",
"file": "",
"done": false
},
{
"id": "WRX-194",
"category": "Testing",
"description": "Integration tests for start run action",
"file": "",
"done": false
},
{
"id": "WRX-195",
"category": "Testing",
"description": "Integration tests for cancel/resume actions",
"file": "",
"done": false
},
{
"id": "WRX-196",
"category": "Testing",
"description": "Integration tests for run status polling",
"file": "",
"done": false
},
{
"id": "WRX-197",
"category": "Testing",
"description": "Playwright test for Run dialog",
"file": "",
"done": false
},
{
"id": "WRX-198",
"category": "Testing",
"description": "Playwright test for Run Studio status updates",
"file": "",
"done": false
},
{
"id": "WRX-199",
"category": "Testing",
"description": "Playwright test for logs viewer search",
"file": "",
"done": false
},
{
"id": "WRX-200",
"category": "Testing",
"description": "Playwright test for snapshot viewer",
"file": "",
"done": false
},
{
"id": "WRX-201",
"category": "Event Registry Payloads",
"description": "Add event registry selector to Run dialog (choose event type)",
"file": "",
"done": true
},
{
"id": "WRX-202",
"category": "Event Registry Payloads",
"description": "Preselect event based on workflow trigger eventName when available",
"file": "",
"done": true
},
{
"id": "WRX-203",
"category": "Event Registry Payloads",
"description": "Display event category + description in selector row",
"file": "",
"done": true
},
{
"id": "WRX-204",
"category": "Event Registry Payloads",
"description": "Load event catalog entries for current tenant",
"file": "",
"done": true
},
{
"id": "WRX-205",
"category": "Event Registry Payloads",
"description": "Allow searching/filtering event catalog list",
"file": "",
"done": true
},
{
"id": "WRX-206",
"category": "Event Registry Payloads",
"description": "Show system vs tenant event badge in selector",
"file": "",
"done": true
},
{
"id": "WRX-207",
"category": "Event Registry Payloads",
"description": "On event selection, load payload_schema from event registry",
"file": "",
"done": true
},
{
"id": "WRX-208",
"category": "Event Registry Payloads",
"description": "Seed payload builder from selected event schema",
"file": "",
"done": true
},
{
"id": "WRX-209",
"category": "Event Registry Payloads",
"description": "Allow switching back to workflow payload schema",
"file": "",
"done": true
},
{
"id": "WRX-210",
"category": "Event Registry Payloads",
"description": "Warn when selected event schema differs from workflow payload schema",
"file": "",
"done": true
},
{
"id": "WRX-211",
"category": "Event Registry Payloads",
"description": "Allow manual override of schema source (event vs payloadSchemaRef)",
"file": "",
"done": true
},
{
"id": "WRX-212",
"category": "Event Registry Payloads",
"description": "Persist last selected event per workflow (localStorage)",
"file": "",
"done": true
},
{
"id": "WRX-213",
"category": "Event Registry Payloads",
"description": "Support example payloads from event schema examples",
"file": "",
"done": true
},
{
"id": "WRX-214",
"category": "Event Registry Payloads",
"description": "Support event-specific sample templates (email/webhook)",
"file": "",
"done": true
},
{
"id": "WRX-215",
"category": "Event Registry Payloads",
"description": "Show event name/slug in Run dialog header",
"file": "",
"done": true
},
{
"id": "WRX-216",
"category": "Event Registry Payloads",
"description": "Add quick link to open Events Catalog entry",
"file": "",
"done": true
},
{
"id": "WRX-217",
"category": "Event Registry Payloads",
"description": "Handle missing event schema gracefully (fallback to payloadSchemaRef)",
"file": "",
"done": true
},
{
"id": "WRX-218",
"category": "Event Registry Payloads",
"description": "Validate event payload against event schema when selected",
"file": "",
"done": true
},
{
"id": "WRX-219",
"category": "Event Registry Payloads",
"description": "Display event schema required field indicators in form mode",
"file": "",
"done": true
},
{
"id": "WRX-220",
"category": "Event Registry Payloads",
"description": "Include event schema descriptions as helper text",
"file": "",
"done": true
},
{
"id": "WRX-221",
"category": "Event Registry Payloads",
"description": "Allow cloning latest run for the selected event",
"file": "",
"done": true
},
{
"id": "WRX-222",
"category": "Event Registry Payloads",
"description": "Remember schema source + event selection across sessions",
"file": "",
"done": true
},
{
"id": "WRX-223",
"category": "Event Registry Payloads",
"description": "Expose event selection in Run options persistence",
"file": "",
"done": true
},
{
"id": "WRX-224",
"category": "Event Registry Payloads",
"description": "Include eventType in run metadata for synthetic runs",
"file": "",
"done": true
},
{
"id": "WRX-225",
"category": "Event Registry Payloads",
"description": "Provide inline diff between event schema and payload schema",
"file": "",
"done": true
},
{
"id": "WRX-226",
"category": "Event Registry Payloads",
"description": "Add \"Use event schema\" action in Run dialog warnings",
"file": "",
"done": true
},
{
"id": "WRX-227",
"category": "Event Registry Payloads",
"description": "Add telemetry: track event selection usage in Run dialog",
"file": "",
"done": true
},
{
"id": "WRX-228",
"category": "Event Registry Payloads",
"description": "Add tests for event selector + schema seeding",
"file": "",
"done": true
}
]
}