Post 142

The Patch That Did Not Arrive Intact

Lux always knew when a file did not open the way you wrote it. It just told the log instead of telling you. Now a strip across the top of the editor names the file, counts what went missing, and hands you the list.

Opening a .lux is not always the lossless act it looks like. The machine you are opening it on might not have the plugin the node needs. A pin the patch was written against might not exist on that node any more. A wire loses the node it was attached to and quietly goes with it.

Lux has known about every one of these for as long as the loader has existed. It described each one, carefully, in a log::warn! line. Which is a fine place to put a message if your audience is a terminal. Artists, as a rule, are not tailing a terminal five minutes before doors.

So the patch came up subtly different from the one that was saved, and nobody said anything. You found out later, in the way you always find out: the thing on the wall did not look like the thing in your head.

The load-warning banner

Now the loader’s warnings land where the work is. A strip across the top of the editor, in a burnt sienna that is nobody else’s colour, telling you which file it was and how many things it had to change on the way in. Hover it and you get the full list, all of it, never a “and 3 more” that hides the one warning that explains the hole in your scene. Read it, click Dismiss, carry on.

The strip is one line tall no matter what it is carrying. A patch with forty warnings gets the same strip as a patch with one, because a banner that eats half the canvas to tell you the canvas is broken is its own kind of joke.

A warning has one classic hiding place, and it is the subpatch. Wrapping an expensive node inside one is the normal thing to do, and a subpatch rebuilds its inner graph by its own private route, which used to mean it kept its bad news to itself. The inner node was preserved, the outer subpatch looked perfectly healthy sitting there on the canvas, and the patch was quietly not the one you saved. Now a missing plugin inside a subpatch raises the same strip as one on the top level, and it tells you which subpatch to open. Nest them five deep if that is how you work. The warning climbs all the way out.

The strip also knows when it has stopped being true. Press Ctrl+N and the banner goes with the document it was about, rather than hanging around over an empty canvas describing a file you already closed.

It stacks under the crash-recovery banner, which can be up at the same time on the launch after a bad night. Those are two different sentences. “Your last session survived” and “this file is not quite the one you saved” should never be the same colour, and now they are not.

None of this changes what the loader does, and that matters. The node whose plugin is missing is still preserved on the canvas rather than deleted. The pin value it could not use is still ignored, exactly as before. Dismissing the banner fixes nothing, because the banner was never the problem. The problem was finding out in front of an audience.

← All posts