NF-UI-6: Annotations + mode banner #336

Closed
opened 2026-04-24 11:29:54 +00:00 by code-lead · 1 comment
Collaborator

As an operator, I want mutating / token-spending / mutex-holding nodes to render distinctly on the canvas and the editor mode (live / dry-run / replay) to always be visible so that I never accidentally ship destructive changes.

Acceptance criteria

Annotations

  • Footer icons on node components: mutation, 🔒 mutex, 💸 tokens, ⏱ async, 🚫 disabled, 📉 rate-limited, ☒ deprecated.
  • Hover tooltip explains the concern.

Mode banner

  • Sticky strip above canvas, colored by mode.
  • Live (green), server-wide dry-run (yellow), editor-local dry-run (yellow), replay (blue) — each with its own copy.
  • Server mode sourced from GET /flows/mode (reads agents.jsonnode_flows.mode).
  • Editor-local / replay sourced from client state.

Out of scope

  • Test-fire modal — NF-UI-8.
  • Replay interaction — NF-UI-7.

References

As an operator, I want mutating / token-spending / mutex-holding nodes to render distinctly on the canvas and the editor mode (live / dry-run / replay) to always be visible so that I never accidentally ship destructive changes. ## Acceptance criteria ### Annotations - [ ] Footer icons on node components: ⚡ mutation, 🔒 mutex, 💸 tokens, ⏱ async, 🚫 disabled, 📉 rate-limited, ☒ deprecated. - [ ] Hover tooltip explains the concern. ### Mode banner - [ ] Sticky strip above canvas, colored by mode. - [ ] Live (green), server-wide dry-run (yellow), editor-local dry-run (yellow), replay (blue) — each with its own copy. - [ ] Server mode sourced from `GET /flows/mode` (reads `agents.json` → `node_flows.mode`). - [ ] Editor-local / replay sourced from client state. ## Out of scope - Test-fire modal — NF-UI-8. - Replay interaction — NF-UI-7. ## References - Spec: [`specs/node-flows-ui.md`](../src/branch/main/specs/node-flows-ui.md) § Stories § NF-UI-6. - Depends on NF-UI-3 (#333).
Author
Collaborator

🤖 Auto-assigned to dev (heuristic: area:dashboard + body 994 bytes (≤ 2 KB) — dev). Reply /unassign to reroute.

🤖 Auto-assigned to **dev** (heuristic: area:dashboard + body 994 bytes (≤ 2 KB) — dev). Reply `/unassign` to reroute.
Sign in to join this conversation.
No project
No assignees
1 participant
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#336
No description provided.