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

8.5 KiB

Scratchpad

Decisions

  • Keep both UX entry points: quick triage from Runs tab and full-page route for deep investigation/shareable links.
  • Do not keep two independent detail implementations. Use WorkflowRunDetails as the canonical detail/action/log/audit inspector.
  • Replace the Runs tab inline details card with a Drawer so operators can inspect runs without losing the table context.
  • Add Previous/Next drawer navigation over the currently loaded runs array.
  • Keep Run Studio's graph/pipeline as a full-page-only enhancement around the canonical inspector.

Relevant files

  • ee/server/src/components/workflow-designer/WorkflowRunList.tsx
  • ee/server/src/components/workflow-designer/WorkflowRunDetails.tsx
  • ee/server/src/components/workflow-run-studio/RunStudioShell.tsx
  • server/src/app/msp/workflows/runs/[runId]/page.tsx
  • packages/ui/src/components/Drawer.tsx

Validation commands

  • cd server && npm run typecheck -- --pretty false

Notes

  • Current branch: feature/combine-workflow-details-run-info.
  • The workflow palette/layout PR has been merged into origin/main and is present in this branch.

2026-04-28 implementation notes

  • WorkflowRunList.tsx now opens WorkflowRunDetails inside Drawer instead of rendering an inline card below the table.
  • Drawer navigation uses the currently loaded runs array and updates selectedRunId for Previous/Next.
  • Drawer includes an Open full page action that navigates to /msp/workflows/runs/${runId}.
  • RunStudioShell.tsx was simplified substantially. It now owns only studio shell concerns: loading graph context, graph/list view toggle, refresh/polling for active runs, and admin permission lookup. Detailed run metadata/actions/logs/audit rendering is delegated to WorkflowRunDetails.
  • Validation passed: cd server && npm run typecheck -- --pretty false.

2026-04-28 scroll fix

  • Drawer preview content now has an explicit viewport-bounded scrolling container so timeline, selected step details, logs, and audit sections can be reached.
  • Run Studio shell now uses a viewport-height layout with a scrollable canonical inspector column, keeping the graph column visible while details scroll independently.
  • Validation passed again: cd server && npm run typecheck -- --pretty false.

2026-04-28 UI click-through results

Tested with alga-dev against http://localhost:3872.

Full-page Workflow Run Studio checklist

  • Refresh button: clicked, page remained stable and run details stayed loaded.
  • Graph/List toggle: clicked List and Graph; list rendered run steps and graph rendered ReactFlow nodes.
  • Graph controls: clicked zoom in, zoom out, and fit view; no visible product breakage.
  • Graph/step selection: clicked a graph node and the Step Timeline View button; step details rendered.
  • Step filters: opened Step status and Node type dropdowns, selected Succeeded and action.call, toggled Collapse nested blocks, then reset filters back to All statuses / All types.
  • Details scroll: scrolled details column to logs and audit sections; #workflow-run-audit-export was reachable in viewport.
  • Envelope tabs: clicked Payload, Vars, Meta, Error, Raw, then Payload again.
  • Logs: typed a log search, applied, reset, selected Info level, applied, reset, and clicked Export CSV.
  • Audit: scrolled to and clicked Export Audit CSV.
  • Run actions: clicked Export. Opened Retry and Replay confirmation dialogs without confirming destructive actions.

Runs tab drawer checklist

  • Back to Runs page from full-page studio worked.
  • Preview button opened the run preview drawer.
  • Drawer showed canonical WorkflowRunDetails content for selected run.
  • Next and Previous controls moved between loaded runs and updated the displayed run ID.
  • Drawer content scroll container exposed bottom content; audit export was reachable in viewport.
  • Open full page navigated from drawer to /msp/workflows/runs/[runId].
  • Returning to the Runs page closed the drawer and preserved the Runs view.

Notes

  • Console contained existing local-env noise about localhost:3000/locales/en/common.json and an Electron CSP warning.
  • Radix reported a missing Dialog description warning while confirmation dialogs were open.
  • ReactFlow emitted page errors after synthetic alga-dev browser-press-key Escape calls; this appears tied to the automation key event target rather than normal click-through behavior. Future testing should close dialogs via their Cancel buttons instead of synthetic Escape.

2026-04-28 UI once-over fixes

  • Fixed the confirmation dialog accessibility warning by ensuring ConfirmationDialog always renders a DialogDescription for Radix.
  • Adjusted DialogDescription to accept a custom class so confirmation dialogs can provide an sr-only description without adding duplicate visible text.
  • Improved WorkflowRunDetails header layout: run ID now wraps/breaks safely and action buttons wrap instead of running off the right edge.
  • Added horizontal scrolling/min widths for the Step Timeline and Audit Trail tables.
  • Improved log filter/action layout so Apply/Reset/Export CSV wrap and align better in constrained widths.
  • Rechecked full-page and drawer layouts with alga-dev; visible buttons stayed within viewport bounds and bottom sections remained reachable by scrolling.
  • Reopened Retry dialog after the accessibility change and saw no new missing-description console warning.
  • Validation passed again: cd server && npm run typecheck -- --pretty false.

2026-04-28 visual grid button placement pass

  • Moved run action buttons into a full-width toolbar below the run identity block so they no longer crowd or clip against the right edge of the header.
  • Reduced header action buttons to size="sm" for better density in drawer/full-page contexts.
  • Reworked Step Timeline controls into a simple two-column filter grid with the collapse toggle on its own row, avoiding the previous baseline mismatch beside select controls.
  • Reworked Run Logs controls so Search and Level occupy the filter row and Apply/Reset/Export CSV sit together in a single right-aligned toolbar row.
  • Rechecked element bounds with alga-dev; key controls are within the viewport and aligned more consistently.
  • Validation passed: cd server && npm run typecheck -- --pretty false.

2026-04-28 step timeline row-click improvement

  • Made Step Timeline rows clickable and keyboard-activatable (Enter/Space) so users do not need to horizontally scroll to the View button on narrower screens.
  • Preserved the View button for explicit affordance and stopped propagation so clicking it does not double-handle the row click.
  • Verified via alga-dev that timeline rows expose role="button" and clicking a row selects/opens step details.
  • Validation passed: cd server && npm run typecheck -- --pretty false.

2026-04-28 audit trail DataTable + user display

  • Changed the Workflow Run Details Audit Trail from a custom Table to the shared DataTable component.
  • Added audit-user lookup through getAllUsersBasic(true) for admins and display user full name plus email/username instead of raw user_id when available.
  • Kept a safe fallback for system/unknown users.
  • Verified with alga-dev that the audit table renders via the datatable container and shows a human-readable user (Paula Policy Admin, glinda@emeraldcity.oz) instead of only the UUID.
  • Validation passed: cd server && npm run typecheck -- --pretty false.

2026-04-28 step timeline DataTable

  • Changed the Step Timeline from custom Table components to the shared DataTable component.
  • Preserved whole-row click behavior through DataTable onRowClick, so users can select a step without horizontally scrolling to the View button.
  • Kept the explicit View action as the standard action column.
  • Set non-paginated DataTables to use a page size matching loaded rows so Step Timeline and Audit Trail do not silently show only the first 10 rows.
  • Verified with alga-dev that the Step Timeline renders as a datatable and clicking a row updates the selected step URL param.
  • Validation passed: cd server && npm run typecheck -- --pretty false.

2026-04-28 run logs DataTable

  • Changed Run Logs from custom Table components to the shared DataTable component.
  • Preserved log filtering, reset, export, and load-more behavior.
  • Set non-paginated log DataTable page size to the loaded log count so loaded logs are not truncated to the default page size.
  • Verified with alga-dev that Run Logs renders as a datatable container.
  • Validation passed: cd server && npm run typecheck -- --pretty false.