feat(flows): inspector panel with widgets + docs (NF-UI-4) #354

Closed
dev wants to merge 1 commit from dev/334 into main
Collaborator

Right-hand Inspector panel that opens on node selection, with Config (typed widget controls), Docs (Markdown), and Run (disabled) tabs.

Test plan

  • Select a node in the canvas → Inspector panel appears on the right
  • agent.dispatch node shows all 6 widgets: enum-select (type), string-input (repo), number-input (issue), string-input (skill), textarea (task), label-multiselect (labels)
  • Filling the repo arg (owner/name) triggers label fetch in the label-multiselect
  • Nodes without ui.widgets (e.g. source) show the read-only JSON fallback
  • Editing a widget value marks the node with an amber dot; toolbar shows unsaved indicator
  • Save clears the amber dots
  • Docs tab renders the Markdown doc for nodes that declare ui.doc
  • Nodes without ui.doc (e.g. forge.read_file) auto-generate a ports table in Docs
  • Run tab is greyed out and unclickable
  • Close button (✕) deselects the node and hides the inspector
  • json-editor widget (router.filter, util.guard) shows CodeMirror with JSON syntax highlighting and an inline parse-error message on invalid input
  • GET /forge/repo-labels?repo=owner/name returns label list from the forge adapter
  • just qa clean — typecheck + Biome + 267 web tests + 1562 server tests pass

Closes #334

Right-hand Inspector panel that opens on node selection, with Config (typed widget controls), Docs (Markdown), and Run (disabled) tabs. ## Test plan - [ ] Select a node in the canvas → Inspector panel appears on the right - [ ] `agent.dispatch` node shows all 6 widgets: enum-select (type), string-input (repo), number-input (issue), string-input (skill), textarea (task), label-multiselect (labels) - [ ] Filling the `repo` arg (owner/name) triggers label fetch in the label-multiselect - [ ] Nodes without `ui.widgets` (e.g. `source`) show the read-only JSON fallback - [ ] Editing a widget value marks the node with an amber dot; toolbar shows unsaved indicator - [ ] Save clears the amber dots - [ ] Docs tab renders the Markdown doc for nodes that declare `ui.doc` - [ ] Nodes without `ui.doc` (e.g. `forge.read_file`) auto-generate a ports table in Docs - [ ] Run tab is greyed out and unclickable - [ ] Close button (✕) deselects the node and hides the inspector - [ ] `json-editor` widget (router.filter, util.guard) shows CodeMirror with JSON syntax highlighting and an inline parse-error message on invalid input - [ ] `GET /forge/repo-labels?repo=owner/name` returns label list from the forge adapter - [ ] `just qa` clean — typecheck + Biome + 267 web tests + 1562 server tests pass Closes #334
feat(flows): inspector panel with widgets + docs (NF-UI-4)
All checks were successful
qa / qa (pull_request) Successful in 6m31s
qa / dockerfile (pull_request) Successful in 7s
ca53ab550a
Adds the right-hand Inspector panel that opens when a node is selected
in the canvas, with three tabs — Config (typed widget controls for static
args), Docs (Markdown from ui.doc), and Run (disabled placeholder for
NF-UI-7).

Shipped widget controls: string-input, textarea, number-input, enum-select,
boolean-toggle, label-multiselect (backed by GET /forge/repo-labels), and
json-editor (CodeMirror). Widget changes are optimistic: debounced push
into the canvas model + amber dirty dot on the node until saved.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
dev requested review from reviewer 2026-04-24 13:36:13 +00:00
dev force-pushed dev/334 from ca53ab550a
All checks were successful
qa / qa (pull_request) Successful in 6m31s
qa / dockerfile (pull_request) Successful in 7s
to bd7e9defef
All checks were successful
qa / qa (pull_request) Successful in 6m41s
qa / dockerfile (pull_request) Successful in 10s
2026-04-24 14:08:05 +00:00
Compare
Collaborator

Closing as superseded by #355 which landed NF-UI-4 first and is already on main. Thanks for the parallel attempt — the ticket is closed and the implementation that merged is the canonical one. Closing this branch to keep the PR list clean.

Closing as superseded by #355 which landed NF-UI-4 first and is already on main. Thanks for the parallel attempt — the ticket is closed and the implementation that merged is the canonical one. Closing this branch to keep the PR list clean.
code-lead closed this pull request 2026-04-24 14:08:55 +00:00
All checks were successful
qa / qa (pull_request) Successful in 6m41s
Required
Details
qa / dockerfile (pull_request) Successful in 10s

Pull request closed

Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
charles/claude-hooks!354
No description provided.