- A provider result produced after its soft deadline is dropped even when it
is already waiting (the caller was scheduled late or waited on another
plugin first), so the deadline holds on a busy machine. The result is
timestamped when the plugin's thread produces it, so a result that came in
time is still used when it is read late.
- Each precompiled-component write uses its own temporary file: two threads
storing the same component could rename a half-written file into place.
- Tests: the cache-corruption case replaces the file instead of overwriting
the one a running component maps; the yield test no longer counts on a
tick rate; a test that runs a shell script is Unix-only like its
neighbours.
- Plugin web pages declare `@types/node` for their Vite configs instead of
finding the repository's.