Skip to content

fix: KEEP-519/521 workflow editor UI polish + earnings pagination#1189

Merged
joelorzet merged 6 commits intostagingfrom
chore/KEEP-519-workflow-ui-polish
May 8, 2026
Merged

fix: KEEP-519/521 workflow editor UI polish + earnings pagination#1189
joelorzet merged 6 commits intostagingfrom
chore/KEEP-519-workflow-ui-polish

Conversation

@joelorzet
Copy link
Copy Markdown

@joelorzet joelorzet commented May 8, 2026

Summary

Bundle of small UI polish fixes targeting KEEP-519 plus an unrelated quality-of-life fix on the Earnings page (KEEP-521).

KEEP-466 — Collect node .count / .results missing in code+SQL template autocomplete

Two getCommonFields resolvers had drifted: components/ui/template-autocomplete.tsx (the main {{@}} dropdown) had explicit Collect / For Each branches, but the exported lib/workflow/editor/template-helpers.ts (used by the code-editor and SQL-editor template autocompletes) did not, falling through to [{ field: "data" }]. Result: typing {{@collectId. inside an HTTP body / SQL Query / etc. only suggested .data, even though the executor was already producing { results, count }.

Added explicit branches for both Collect (results, count) and For Each (currentItem, index, totalItems). Runtime is unchanged. New test file tests/unit/template-helpers-action-fields.test.ts covers both branches plus the unknown-action-type fallback (8 cases, all passing).

KEEP-380 — Node Description field unreadable for long text

The Description field was a single-line <Input>, so long text scrolled horizontally inside a narrow box. Swapped to <Textarea> in both editing surfaces (node-config-panel and configuration-overlay) with rows={3}, field-sizing-content (auto-grow with content, inherited from the Textarea component), max-h-64 cap, and resize-y so users can drag to expand. Background overridden to transparent to match the other inputs in the panel.

KEEP-518 — Import modal breaks UI for big workflows

DialogContent had no max-height, so the import dialog could grow past the viewport (especially with many code-step warning rows), pushing the close button off-screen. Added max-h-[90vh] overflow-y-auto on components/overlays/workflow-io-overlay.tsx.

KEEP-521 — Earnings: bump Workflow Earnings pagination 10 -> 20

Three matching constants were updated together so the API default, the client fetch, and the UI fallback all agree on 20:

joelorzet added 4 commits May 8, 2026 19:24
…+SQL template autocomplete

The code-editor and SQL-editor template autocompletes call getActionFields
in lib/workflow/editor/template-helpers.ts, which had no branch for the
Collect or For Each system actions and fell through to the generic
[{ field: "data" }] default. As a result, typing {{@collectId.}} inside
those editors only suggested .data instead of the actual .results and
.count outputs the executor already produces.

Add explicit branches mirroring the ones already present in the main
{{@}} dropdown (components/ui/template-autocomplete.tsx) so all template
surfaces agree on the available fields. Runtime behavior is unchanged --
the executor already builds { results, count } at executor.workflow.ts.

Tests cover both new branches plus the unknown-action-type fallback.
The node Description field was a single-line Input, so any description
longer than the panel width was unreadable -- it scrolled horizontally
inside the field with no way to view the full text.

Swap to Textarea in both editing surfaces (node-config-panel and
configuration-overlay):
- rows=3 gives a reasonable default height for short descriptions
- field-sizing-content (already on the Textarea component) auto-grows
  with content
- max-h-64 + resize-y caps the auto-grow and lets users drag to resize
DialogContent had no max-height, so a workflow with many code steps
pushed the modal past the viewport and broke the UI -- header and
close button could be off-screen entirely on shorter displays.

Cap to 90vh and let the body scroll inside.
Three matching constants were updated together so the API default, the
client fetch, and the UI fallback all agree on 20:

- DEFAULT_PAGE_SIZE in app/api/earnings/route.ts (still bounded by
  MAX_PAGE_SIZE=50).
- Hardcoded pageSize in the client fetch (components/earnings/use-earnings.ts).
- pageSize fallback in the table when the API response is missing the
  field (components/earnings/workflow-earnings-table.tsx).
@joelorzet joelorzet changed the title fix: KEEP-519 workflow editor UI polish bundle fix: KEEP-519/521 workflow editor UI polish + earnings pagination May 8, 2026
… API/client/UI

The page size was duplicated as a literal "20" in three places, which
was the same drift risk that existed previously with "10". Extract to
lib/earnings/constants.ts and import from the API default, the client
fetch, and the UI fallback so changing the page size only requires
editing one line.
@joelorzet joelorzet requested review from a team, OleksandrUA, eskp and suisuss and removed request for a team May 8, 2026 23:28
@joelorzet joelorzet merged commit d79b4a7 into staging May 8, 2026
36 checks passed
@joelorzet joelorzet deleted the chore/KEEP-519-workflow-ui-polish branch May 8, 2026 23:28
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 8, 2026

🧹 PR Environment Cleaned Up

The PR environment has been successfully deleted.

Deleted Resources:

  • Namespace: pr-1189
  • All Helm releases (Keeperhub, Scheduler, Event services)
  • PostgreSQL Database (including data)
  • LocalStack, Redis
  • All associated secrets and configs

All resources have been cleaned up and will no longer incur costs.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 8, 2026

ℹ️ No PR Environment to Clean Up

No PR environment was found for this PR. This is expected if:

  • The PR never had the deploy-pr-environment label
  • The environment was already cleaned up
  • The deployment never completed successfully

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant