The conclusion first: editing plugin source does not hot-reload, and neither does editing the profile patch layer — even though the config says patchReload: live.
What was measured
| What changed | How it was tested | Result |
|---|---|---|
| Plugin source lib/index.js | apply wrote a v1 line after boot; changed it to write v2-changed and waited fifteen seconds | Nothing changed; the log stayed at that v1 line |
| The profile's cordis.patch.yml | Set the plugin entry to disabled: true and waited fifteen seconds | Nothing changed; apply was neither revoked nor re-run |
The word 'live' misleads
It does not mean edits take effect immediately. Both kinds of edit needed a process restart to show any effect.
The development loop that works
- Edit the code.
- Restart the process (on this machine web takes about 10 to 20 seconds to boot).
- Check whether the side-effect file gained a line — the only way to confirm the new code actually ran.
Why a side effect beats a log line
web does not log at info level by default, so ctx.logger.info(…) in a plugin shows nothing. Verifying 'did my code run' therefore needs something externally visible: writing a file, printing to stdout, or changing behaviour observable over HTTP.