Installing a plugin from a library bypasses the upgrader modules
Author: pmarioCreated Sep 8, 2026Updated Sep 8, 2026
Installing a plugin from a plugin library adds the tiddler straight to the store:
} else if(event.data.cookies.type === "save-tiddler") {
var tiddler = $tw.utils.parseJSONSafe(event.data.body);
$tw.wiki.addTiddler(new $tw.Tiddler(tiddler));
}core/modules/startup/browser-messaging.js L171-173, the tm-load-plugin-from-library handler.
The import path instead calls wiki.invokeUpgraders() (core/modules/widgets/navigator.js L528). So dragging a plugin file into the wiki is checked, and installing the same plugin from a library is not.
What the library path skips:
BLOCKED_PLUGINSincore/modules/upgraders/plugins.js.$:/themes/tiddlywiki/stickytitlesand$:/plugins/tiddlywiki/fullscreenare suppressed on import at every version, and install normally from a library.- The version check in the same module, which suppresses an incoming plugin older than the installed one.
core/modules/upgraders/system.js, which suppresses$:/Importand$:/build, and warns when a shadow$:/core/modules/tiddler would be overwritten.- The
th-importing-tiddlerhook, so a plugin cannot inspect or reject an incoming library tiddler.
Source: TiddlyWiki/TiddlyWiki5