Primitive definitions are replaced with error-prone definitions written in Snap!

Hi. I am unsure how to explain my issue. I was working on a project (the same one as last time...), and everything was working fine. I saved it and returned later, but my script kept throwing errors saying that "a variable named __embroider does not exist in this context," with a script pic of [ V] of (__embroider) . I checked the script and found that a lot of the motion blocks had this weird, invalid __embroider variable in their definitions. Some of them even had the primitive definition set to <false>. For example, the definition of go to [ V] was:

{go to [#1 = $_random position]::motion} :: define+
<f> primitive [doGotoObject V]
go to x: (item (1) of (#1)) y: (item (2) of (#1))

Anyway, I created a new project and checked the definition of that same block, and it was:

{go to [#1 = $_random position]::motion} :: define+
<t> primitive [doGotoObject V]

I'm confused. First of all, how did Snap! modify the block's definition by itself, and why did it change when I reopened the project?

It didn't, you loaded the embroidery library at some point, which overrides many definitions with custom definitions.

You can fix this issue by shift clicking the gear (options) button, and then clicking "Ptimitives palette".

Actually, I now realize that this was part of a bug that was fixed in 10.3.6. All I did was preview the library.

Yeah, I didn't know about that until this morning either.