Skip to content

FE-1548: Rework the optimization and sweep drawer views - #9422

Merged
kube merged 11 commits into
cf/fe-1546-stream-range-sweeps-as-one-stochastic-simulation-over-thefrom
cf/fe-1548-rework-the-optimization-and-sweep-drawer-views
Sep 3, 2026
Merged

FE-1548: Rework the optimization and sweep drawer views#9422
kube merged 11 commits into
cf/fe-1546-stream-range-sweeps-as-one-stochastic-simulation-over-thefrom
cf/fe-1548-rework-the-optimization-and-sweep-drawer-views

Conversation

@kube

@kube kube commented Aug 28, 2026

Copy link
Copy Markdown
Collaborator

Important

Experimental
Behind the Parameter sweeps and Optimization surface feature flags.
Section order and scrolling list ship for every experiment and study.

Summary

Before this PR, in the experiment and optimization result drawers the surface sat below the event list. Experiment drawer put it under the metric charts, optimization drawer under the steps. Whole drawer body scrolled, graphs included.

This PR reorders both drawers so the graphs come before the event lists. Summary, navigator and surface stay fixed above the list. Only the step or metric list scrolls, in its own container.

Links

Changes

Drawer layout

  • Optimization drawer orders Summary → Best parameters → Surface → Steps

    Surface previously sat below the steps.

  • Experiment drawer orders Summary → Parameters → Surface → Metrics

    Surface previously sat below the metric charts.

  • Drawer bodies no longer scroll as a whole

    Both are flex columns.
    Sections above the list are fixed.
    Steps table or metric grid scrolls in its own container and fills the remaining height.

  • Steps table header stays pinned while the list scrolls

    Sticky element is the header's rowgroup. A sticky row can only move within its own rowgroup, which is exactly as tall as the row.

  • Fixes clipped labels in the surface control row

    ds Select root's min-width: min-content overflowed its 170px box over the neighbouring "Y" and "Metric" labels.

Test coverage

  • Existing @hashintel/petrinaut unit suite
  • Storybook DOM probes and screenshots:

    List scrolls alone, drawer body holds still, table header stays pinned.

How to test

  • Open Petrinaut preview on Vercel
  • Viewport controls > Settings > Simulation > Parameter sweeps and Optimization surface
  • Simulate > Experiments > Create
  • Pick scenario, flip Sweep on two numeric parameters, Run
  • Open experiment row
  • Expect summary, sliders and surface hold still while only metric charts scroll
  • Expect "Y" and "Metric" labels beside surface selects unclipped
  • Studies need optimizer service, locally turbo run dev --filter @apps/petrinaut-website -- --with-optimizer-service
  • Create study over two parameters, open its row
  • Expect surface above steps, steps list scrolls in place, header row stays pinned

Demo

Screenshots pending, files handed over alongside this PR.

@kube kube self-assigned this Aug 28, 2026
@vercel

vercel Bot commented Aug 28, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
hash Ready Ready Preview Sep 3, 2026 4:28pm UTC
petrinaut Ready Ready Preview Sep 3, 2026 4:28pm UTC
petrinaut-docs Ready Ready Preview Sep 3, 2026 4:28pm UTC
1 Skipped Deployment
Project Deployment Actions Updated
hashdotdesign-tokens Ignored Ignored Preview Sep 3, 2026 4:28pm UTC

Request Review

@github-actions github-actions Bot added area/infra Relates to version control, CI, CD or IaC (area) area/libs Relates to first-party libraries/crates/packages (area) type/eng > frontend Owned by the @frontend team labels Aug 28, 2026
@kube
kube force-pushed the cf/fe-1548-rework-the-optimization-and-sweep-drawer-views branch from b83e049 to 1b11836 Compare August 28, 2026 22:39
@kube
kube force-pushed the cf/fe-1548-rework-the-optimization-and-sweep-drawer-views branch from 1b11836 to ca19a7b Compare August 28, 2026 22:56
@kube
kube force-pushed the cf/fe-1548-rework-the-optimization-and-sweep-drawer-views branch from ca19a7b to 4727638 Compare August 28, 2026 23:15
@kube
kube force-pushed the cf/fe-1548-rework-the-optimization-and-sweep-drawer-views branch from 4727638 to be2d422 Compare August 28, 2026 23:34
@kube
kube force-pushed the cf/fe-1548-rework-the-optimization-and-sweep-drawer-views branch from be2d422 to fac5f1c Compare August 29, 2026 02:43

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 58fbc0e. Configure here.

YannisZa
YannisZa previously approved these changes Sep 3, 2026
TimDiekmann
TimDiekmann previously approved these changes Sep 3, 2026

@TimDiekmann TimDiekmann left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

re-approval of pre-rebase

@hash-release hash-release Bot mentioned this pull request Sep 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/apps > hash.design Affects the `hash.design` design site (app) area/infra Relates to version control, CI, CD or IaC (area) area/libs Relates to first-party libraries/crates/packages (area) type/eng > backend Owned by the @backend team type/eng > frontend Owned by the @frontend team

Development

Successfully merging this pull request may close these issues.

4 participants