Script IDE 1.24.0
The last three items of the Ectobox borrowings brief. All four groups are now done.
Nothing is lost if the tab dies
Every unsaved buffer is kept in your browser as you type, and offered back when the page comes up again — after a crash, an accidental close, or a laptop that slept and reloaded. The IDE's save history could never help here: it only ever sees text that was successfully written, which is exactly the text that was not at risk.
Restore loads the buffer; it never writes. The gateway's current copy is opened first and your recovered text applied over it, so the tab is dirty against what the gateway holds now — not against a signature from a session that has ended. You can see what you are about to save before you save it.
The notice says the work was kept in this browser only, because that is the limit of the promise: nothing was sent to the gateway, and a draft is invisible from any other machine.
Start from a template
Six starting points for a new library script — a documented module, a parameterised database read, a transaction, tag read/write, a test module, and a module with a logger. Library scripts only: an event script's signature is dictated by its type and already seeded from a measured stub, so a picker there would offer to replace a correct answer with a guess.
Each one obeys the rules it would otherwise teach people to break: tabs never spaces, except Throwable never except Exception around a platform call, and parameterised SQL rather than a formatted string.
They are compiled by the gateway before they ship. The live suite runs every template through the running Jython, and the calls they make were checked against the live 8.3.8 system.*. That caught one before it went out: the transaction template used beginNamedQueryTransaction, which is for runNamedQuery — runPrepUpdate takes its id from beginTransaction.
Take the console output with you
Export saves the output as a text file, stamped, with colour codes stripped — the point is something you can paste into a ticket or grep. The header says the times are the browser's clock, not the gateway's, which matters the moment anyone lines them up against a gateway log.
Times stamps each block on screen. Off by default, remembered per viewer, and rendered outside the text so copying the output copies the output.
Signed module, Ignition 8.3.0+. 815 unit tests, 18 live suites (446 checks) against a running 8.3.8 gateway.