paths: plugin run inside a plugin finds the plugins root (#147)

* paths: plugin run inside a plugin finds the plugins root

Hooks and plugin commands get SIGNALTTY_PLUGIN_DIR set to their own
package dir, but paths::plugin_dir() reads the same variable as the
plugins root. A nested `signaltty plugin run` from a hook or command
then scanned <root>/<name>/*/plugin.toml and failed with 'no such
plugin'. When SIGNALTTY_PLUGIN_NAME names the dir's last component,
resolve the root as its parent.

* paths: resolve a relative plugin root before commands change cwd

A relative SIGNALTTY_PLUGIN_DIR (or server --plugin-dir) was exported
as-is to plugin commands and hooks, which run from their package dir,
so a nested `signaltty plugin run` looked in <root>/<name>/<root>.
Make both absolute up front; add a CLI test for the relative root.

---------

Co-authored-by: Grok Bot <grok-bot@x.ai>
0910eb5823Simone committed on 10/19/2026, 7:33:17 PM· committed by GitHubparent1d60fec
3 files changedLine totals unavailable