project_root was only assigned in the relative-path branch, so an absolute
plugin_system.plugins_directory made web_interface/app.py raise NameError
at import (first use: the SchemaManager construction). Define it before the
if/else; plugins_dir resolution is unchanged.
Adds a regression test that imports the real module in a fresh interpreter
with an absolute and a relative plugins_directory.
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>