Troubleshooting
My module shows "invalid".
Settings → Modules shows the validation reason. Common causes: an id that breaks the pattern or starts
with playstatus., a missing entry, net:fetch without allowedDomains, or no surfaces. See the
manifest reference.
It installed but isn't running. New modules are disabled by default — enable it in Settings → Modules.
A setting doesn't reach my widget.
Storage is async and per-surface-iframe; read it inside render, and call ps.reload() after writing it
from a settings surface. See the storage example.
A network request fails.
Confirm net:fetch is in permissions, the host is in allowedDomains (bare host, no scheme/path), and
you're calling ps.host.fetch — not the browser fetch, which is blocked by CSP.
My widget keeps a timer/subscription after it closes.
Return a cleanup function from render — it runs on unmount. Clear intervals and call stream unsubscribe
functions there.