The GitHub Actions job "Backport Checks" on texera.git/formview-pr15a has succeeded. Run started by GitHub user yangzhang75 (triggered by yangzhang75).
Head commit for run: c66787a732c44f19f072a4f02c8ae794bca57fb4 / Yang Zhang <[email protected]> feat(gui): open the Form View's result picker to everyone, one saved list of shown results The picker was the author's alone and never offered the final step. Now everyone sees it: in edit mode a toggle sets the default for all readers (saved in the config); anyone else, a writer merely viewing included, changes only their own view of the page, so a reader without write access can choose too. Nothing is written for that; the choice lasts for the page. The final steps are offered as well, under their plain name like any other step. What shows is one saved list, shownResultIds (mengw15's shape): absent, every final step shows, as on the canvas; once the author has chosen, exactly the listed steps show, and an empty list means none, a choice the previous two opposite-signed lists (featured / turned off) could not store and could contradict each other on. The first choice starts the list from the final steps at that moment, so nothing the author saw disappears; the accepted cost is that a step which becomes final after the author has chosen does not appear by itself. A definition whose only content is that list, an empty one included, is still persisted. Only edit mode unlocks the graph from this page, and only while no run is in flight (the canvas rule, kept so that entering edit mode mid-run cannot undo it). The lock is a root-level flag with writers that know nothing of this page -- the execute service unlocks it when a run ends, the computing-unit selector when it finds no run on the chosen unit -- so the page clamps at the stream they all report to: whenever the flag turns on while the page must stay locked, it is turned off again. The clamp runs a microtask after the unlocking call, never inside it: that call enables undo/redo after it emits and the stream still has other subscribers to reach, so a nested disable would leave them on the stale "true". The execute service flips the lock before it emits the new state; by the time the clamp looks, the execution-state handler has re-applied the same rule with the final state, so in edit mode the unlock stands. The step panel follows the same rule (panelLive), not edit mode alone: the property frame does not consult the lock before its own writes, so a step selected while a run is in flight stays a read-only, inert mount even in edit mode and turns live when the run ends. Done dismisses the step panel before leaving edit mode, while the frame is still an editor: the only state in which the property editor clears the "currently editing" marker co-editors see. A reader is offered only steps whose result exists (final, or viewed on the canvas); a listed step whose eye has gone stays offered in edit mode only, to be taken off. Saves go out one at a time, in order: two persists in flight at once can land out of order and the older content would win, so the save behind the Canvas switch waits for an autosave already on its way, and the page hands over only once the queue has drained -- that save and any asked for while it was in flight, the page staying interactive until the hand-over; each request carries the workflow as it was when the save was asked for, so the last one enqueued is the latest. The drain outlives the page: the final save on the way out joins the same queue instead of racing an autosave still in flight, and the queue is closed after it. A failed save reports itself and does not stop the queue. A save's response feeds back the server-owned metadata (the timestamp) but never undoes a rename made while it was in flight, and repaints nothing once the page is gone. What has a result, and what the picker offers, follows the graph's shape and names as well as the eye: a step deleted, disabled, given a downstream link, or renamed (a co-editor's edit included) refreshes both at once from the graph's own streams, not only after the debounced compilation. The structure-locked preview no longer grows editing buttons: no link tools on hover (remove, breakpoint), and a selected operator unfolds its state and port counts but not its delete, chat and add/remove-port buttons. None of them can act there, so they only suggested the preview could be edited. Co-Authored-By: Claude Fable 5.1 <[email protected]> Claude-Session: https://claude.ai/code/session_01FVvP3ttj22f9LB4p9u2anY Report URL: https://github.com/apache/texera/actions/runs/34676131879 With regards, GitHub Actions via GitBox
