Skip to content

FE-1509: Surface cycles and initial places across the notebook - #9432

Draft
kube wants to merge 1 commit into
claude/fe-1509-notebook-analyses-algorithmsfrom
claude/fe-1509-notebook-analyses-ui
Draft

FE-1509: Surface cycles and initial places across the notebook#9432
kube wants to merge 1 commit into
claude/fe-1509-notebook-analyses-algorithmsfrom
claude/fe-1509-notebook-analyses-ui

Conversation

@kube

@kube kube commented Aug 29, 2026

Copy link
Copy Markdown
Collaborator

Important

Experimental
Behind the Notebook view feature flag.

Summary

Before this PR, the cycle and initial-place analyses exist as pure functions with nothing consuming them. The notebook reads flat: a feedback loop looks like any other run of cells, and a resource pool that must be seeded looks like any other place.

Surfaces both analyses across the view. Cells caught in a cycle carry a tinted badge and places the initial state must seed carry an initial badge; hovering a cycle badge lights the whole loop up in the list and the diagram. The diagram marks cycle members with dashed rings and must-seed places with a hollow token, the explorer header counts both, and the topological order hoists seed places to the front.

9432.mp4

Links

Changes

Cell list

  • Cycle badges after the cell name, tinted per cycle group

    Hovering one highlights every member row and recolours the loop's edges in the diagram, so the circuit reads as one thing.

  • Initial badges on places the initial state must seed
  • Topological order hoists seed places to the front

    A resource pool inside a cycle reads alongside the net's plain sources rather than buried wherever the layering put it.

Graph explorer

  • Cycle members carry a dashed ring, tinted like their badge
  • Must-seed places carry a hollow token marker inside the node
  • Header counts cycles and initial places for the whole net

Test coverage

  • Existing @hashintel/petrinaut unit suite:

    The analyses themselves are covered by the suites in the layer below.

  • Browser verification:

    Badge hover, ring tints, and the hoisted topological order.

How to test

  • Open Petrinaut preview on Vercel
  • Viewport controls > Settings > Notebook view
  • Menu > Examples > Production with Machine Failure
  • Top bar > Notebook
  • Hover a cycle badge
  • Expect the whole loop lit in the list and the diagram
  • Toolbar > Topological
  • Expect seed places listed first

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

vercel Bot commented Aug 29, 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 10:54pm UTC
petrinaut Ready Ready Preview Sep 3, 2026 10:54pm UTC
petrinaut-docs Ready Ready Preview Sep 3, 2026 10:54pm UTC
1 Skipped Deployment
Project Deployment Actions Updated
hashdotdesign-tokens Ignored Ignored Preview Sep 3, 2026 10:54pm UTC

Request Review

@github-actions github-actions Bot added area/libs Relates to first-party libraries/crates/packages (area) type/eng > frontend Owned by the @frontend team labels Aug 29, 2026
@kube
kube force-pushed the claude/fe-1509-notebook-analyses-ui branch from f097813 to 7c2b48c Compare August 29, 2026 14:09
@kube
kube force-pushed the claude/fe-1509-notebook-analyses-ui branch from 7c2b48c to 57610f6 Compare August 30, 2026 04:54
@kube
kube force-pushed the claude/fe-1509-notebook-analyses-ui branch from 57610f6 to 3f082a2 Compare August 30, 2026 13:07
@kube
kube force-pushed the claude/fe-1509-notebook-analyses-ui branch from 3f082a2 to f26bd18 Compare August 30, 2026 13:55
Cell rows gain a tinted ↻ badge for cycle members and a blue initial
badge for places the net cannot seed itself; hovering a badge lights
the whole cycle up in the list and the graph. Topological ordering
hoists the seed places to the front of the flow.

In the graph explorer, cycle members carry dashed rings (solid while
their cycle is hovered, with intra-cycle edges recoloured to match),
initial places a hollow token marker inside the node, and the header
counts both.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/libs Relates to first-party libraries/crates/packages (area) type/eng > frontend Owned by the @frontend team

Development

Successfully merging this pull request may close these issues.

1 participant