\directlua {
  callback.register('pre_linebreak_filter', function (head, groupcode)
    local nodes = {}
    for n in node.traverse(head) do
     table.insert(nodes, n)
    end
    local newhead, current = nil, nil
    for _, n in next, nodes do
      newhead, current = node.insert_after(newhead, current, n)
    end
    return newhead
  end)
  print()
}

\pardir TRT

\begingroup
\textdir TRT
text
\endgroup

\textdir TRT                                                                    
text                                                                            

\bye
