Task Summary
The link-breakpoint feature was removed from the UI, but its plumbing is still in the graph model. None of these streams can emit: there is no .next() on any of them anywhere in production.
History
|
|
| Introduced by |
the original breakpoint implementation, commit f80c9a43db (2020-03-29) — predates the PR workflow |
| Usage removed by |
#2392 (2024-02-19) — "Remove breakpoint feature" deleted setLinkBreakpoint and the breakpointChangeStream.next producers. #3033 (2024-11-13) — "Remove Operator Group" then removed the last jointLinkBreakpointShowStream.next / HideStream.next calls |
Since #3033 there has been no producer at all, so the surviving getters hand out streams that never fire and linksWithBreakpoints stays permanently empty.
What goes: the two Subject fields and their getters, the linkIDType alias that only they used, linksWithBreakpoints + getLinkIDsWithBreakpoint, WorkflowGraph.breakpointChangeStream + getBreakpointChangeStream, the "setLinkBreakpoint" and "breakpointChangeStream" entries in the restricted-method union, the merge operand in WorkflowActionService, and the editor's handleLinkBreakpointToggleEvents.
One guard collapses: the link:mouseleave handler skipped hideTools() for links with a breakpoint, but getLinkIDsWithBreakpoint() always returns empty, so the call is now unconditional — same behaviour, one branch fewer.
They picked up coverage in #7481 (2026-08-09) and #6586 (2026-07-20), which is why they look live; those tests poke the dead subjects directly through (wrapper as any).
Pure deletion, no behaviour change: −100 lines.
Task Type
Task Summary
The link-breakpoint feature was removed from the UI, but its plumbing is still in the graph model. None of these streams can emit: there is no
.next()on any of them anywhere in production.History
f80c9a43db(2020-03-29) — predates the PR workflowsetLinkBreakpointand thebreakpointChangeStream.nextproducers. #3033 (2024-11-13) — "Remove Operator Group" then removed the lastjointLinkBreakpointShowStream.next/HideStream.nextcallsSince #3033 there has been no producer at all, so the surviving getters hand out streams that never fire and
linksWithBreakpointsstays permanently empty.What goes: the two
Subjectfields and their getters, thelinkIDTypealias that only they used,linksWithBreakpoints+getLinkIDsWithBreakpoint,WorkflowGraph.breakpointChangeStream+getBreakpointChangeStream, the"setLinkBreakpoint"and"breakpointChangeStream"entries in the restricted-method union, the merge operand inWorkflowActionService, and the editor'shandleLinkBreakpointToggleEvents.One guard collapses: the
link:mouseleavehandler skippedhideTools()for links with a breakpoint, butgetLinkIDsWithBreakpoint()always returns empty, so the call is now unconditional — same behaviour, one branch fewer.They picked up coverage in #7481 (2026-08-09) and #6586 (2026-07-20), which is why they look live; those tests poke the dead subjects directly through
(wrapper as any).Pure deletion, no behaviour change: −100 lines.
Task Type