Design and implement a sandboxed WebAssembly (WASM via wasmtime) and QuickJS plugin extension engine allowing developers to execute custom mail triage and automation scripts inside
unciod.
Reopening: this was closed but the implementation is fabricated, not real.
crates/nuncio-core/src/plugin.rs (PluginRuntime) has no WASM or QuickJS
runtime anywhere in the file. trigger_hook unconditionally returns "plugin {} executed successfully" for any payload -- nothing is actually
executed, sandboxed, or otherwise run. Declared permissions are accepted at
plugin-registration time but never enforced anywhere. Existing tests assert
on the canned success string, which is why they were passing.
Currently dead code (nothing outside the module calls it), so it isn't
actively lying to a live user today -- but it will be the moment something
wires it up trusting this epic's "closed" label.
Leaving this open and explicitly backlogged behind the mail-completion work
(#182, #183, filter-engine wiring, contacts) rather than building a fake
plugin sandbox as filler. When a real plugin runtime is actually
prioritized, it needs a genuine WASM engine (e.g. wasmtime) or QuickJS
embed, real capability-based permission enforcement matching the declared permissions, and tests that actually execute untrusted plugin code inside
the sandbox -- not a canned return string.
Reopening: this was closed but the implementation is fabricated, not real.
`crates/nuncio-core/src/plugin.rs` (`PluginRuntime`) has no WASM or QuickJS
runtime anywhere in the file. `trigger_hook` unconditionally returns
`"plugin {} executed successfully"` for any payload -- nothing is actually
executed, sandboxed, or otherwise run. Declared `permissions` are accepted at
plugin-registration time but never enforced anywhere. Existing tests assert
on the canned success string, which is why they were passing.
Currently dead code (nothing outside the module calls it), so it isn't
actively lying to a live user today -- but it will be the moment something
wires it up trusting this epic's "closed" label.
Leaving this open and explicitly backlogged behind the mail-completion work
(#182, #183, filter-engine wiring, contacts) rather than building a fake
plugin sandbox as filler. When a real plugin runtime is actually
prioritized, it needs a genuine WASM engine (e.g. wasmtime) or QuickJS
embed, real capability-based permission enforcement matching the declared
`permissions`, and tests that actually execute untrusted plugin code inside
the sandbox -- not a canned return string.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Feature Overview
Design and implement a sandboxed WebAssembly (WASM via wasmtime) and QuickJS plugin extension engine allowing developers to execute custom mail triage and automation scripts inside
unciod.
Technical Requirements
quickjs).
uncio plugin install ,
uncio plugin list,
uncio plugin remove.
Implemented Sandboxed WASM / QuickJS plugin extension runtime engine in nuncio-core.
Reopening: this was closed but the implementation is fabricated, not real.
crates/nuncio-core/src/plugin.rs(PluginRuntime) has no WASM or QuickJSruntime anywhere in the file.
trigger_hookunconditionally returns"plugin {} executed successfully"for any payload -- nothing is actuallyexecuted, sandboxed, or otherwise run. Declared
permissionsare accepted atplugin-registration time but never enforced anywhere. Existing tests assert
on the canned success string, which is why they were passing.
Currently dead code (nothing outside the module calls it), so it isn't
actively lying to a live user today -- but it will be the moment something
wires it up trusting this epic's "closed" label.
Leaving this open and explicitly backlogged behind the mail-completion work
(#182, #183, filter-engine wiring, contacts) rather than building a fake
plugin sandbox as filler. When a real plugin runtime is actually
prioritized, it needs a genuine WASM engine (e.g. wasmtime) or QuickJS
embed, real capability-based permission enforcement matching the declared
permissions, and tests that actually execute untrusted plugin code insidethe sandbox -- not a canned return string.