merge: ugly work-around to prevent plugins from breaking timelines (!558)
View MR for information: https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/558 Approved-by: Leah <kevinlukej@gmail.com> Approved-by: fEmber <acomputerdog@gmail.com>
This commit is contained in:
commit
c57931d408
|
@ -28,10 +28,31 @@ export async function install(plugin: Plugin): Promise<void> {
|
||||||
},
|
},
|
||||||
log: (): void => {
|
log: (): void => {
|
||||||
},
|
},
|
||||||
err: (err): void => {
|
/* dakkar 2024-06-20
|
||||||
pluginLogs.value.get(plugin.id).push(`${err}`);
|
|
||||||
throw err; // install時のtry-catchに反応させる
|
passing an `err` triggers an unwanted side-effect inside the
|
||||||
},
|
AiScript Interpreter:
|
||||||
|
|
||||||
|
- the plugin code throws an exception of any kind (in the
|
||||||
|
specific case that made us look, it was `note.text.split(...)`
|
||||||
|
on a note with no text)
|
||||||
|
|
||||||
|
- the Interpreter's `handleError` calls `this.abort()` before
|
||||||
|
calling our `err`
|
||||||
|
|
||||||
|
- from that point on, every evaluation of that Interpreter object
|
||||||
|
returns null
|
||||||
|
|
||||||
|
- which, at least inside a noteViewInterruptor, causes all notes
|
||||||
|
to be replaced with a null
|
||||||
|
|
||||||
|
I'm reporting this problem upstream, in the meantime we'll have
|
||||||
|
to do without error logs
|
||||||
|
*/
|
||||||
|
// err: (err): void => {
|
||||||
|
// pluginLogs.value.get(plugin.id).push(`${err}`);
|
||||||
|
// throw err; // install時のtry-catchに反応させる
|
||||||
|
// },
|
||||||
});
|
});
|
||||||
|
|
||||||
initPlugin({ plugin, aiscript });
|
initPlugin({ plugin, aiscript });
|
||||||
|
|
Loading…
Reference in New Issue