Skip to content

feat: inspect port and edge values - #74

Merged
philippjfr merged 8 commits into
mainfrom
feat/port-value-inspection
Sep 23, 2026
Merged

philippjfr merged 8 commits into
mainfrom
feat/port-value-inspection

Conversation

@philippjfr

Copy link
Copy Markdown
Contributor

Description

This PR adds type-aware port tooltips and click-to-inspect support for handles and edges. A handle descriptor can now include a type, which renders with its label on hover. Handle and edge clicks emit events with their IDs and screen position, and ReactFlow.show_popup() renders a dismissible Panel overlay for application-specific value inspection.

The popup child is included in ReactFlow's child-model synchronization, and event callbacks are dispatched in the triggering document pass so callbacks can safely update child viewables.

Minimal example:

def on_handle_clicked(payload, flow):
    value = live_values[payload["node_id"]][payload["handle_id"]]
    flow.show_popup(pn.pane.Markdown(f"**Value:** {value!r}"), payload["position"])

flow.on("handle_clicked", on_handle_clicked)

How I tested:

  • pixi run -e py312 test
  • pixi run -e test-ui test-ui (48 passed, 2 reruns)
  • pre-commit run on all changed files

AI Disclosure

Tool & Model: Kilo Code, kilo/openai/gpt-5.6-terra
Usage: I used it to implement the feature, investigate the child-view synchronization issue found during browser testing, write tests and documentation, and run validation.

  • I have tested all AI-generated content in my PR.
  • I take responsibility for all AI-generated content in my PR.

Checklist

  • Tests added and are passing
  • Added documentation

@philippjfr
philippjfr merged commit c6f2370 into main Sep 23, 2026
17 checks passed
@philippjfr
philippjfr deleted the feat/port-value-inspection branch September 23, 2026 12:10
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