Skip to content
MyDSHMy DSH Field Notes
中文
Independently maintained; not affiliated with DeepSeek. No association with mydsh.dev or other MyDSH sites.

Home/Developers & plugin dev/Dev setup & scaffolding

Edits do not apply: the truth about hot reload, even with patchReload set to live

Edited plugin code, refreshed, saw nothing change, and assumed a config mistake.

VerifiedVersion and environmentChecked 2026-11-14
Host
0.1.2-alpha.5
Config
web profile with patchReload: live
Checked
2026-11-14

Copyable command

# after editing a plugin, restart; do not wait for hot reload

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 changedHow it was testedResult
Plugin source lib/index.jsapply wrote a v1 line after boot; changed it to write v2-changed and waited fifteen secondsNothing changed; the log stayed at that v1 line
The profile's cordis.patch.ymlSet the plugin entry to disabled: true and waited fifteen secondsNothing 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

  1. Edit the code.
  2. Restart the process (on this machine web takes about 10 to 20 seconds to boot).
  3. Check whether the side-effect file gained a line — the only way to confirm the new code actually ran.
Do not plan on skipping the restart. I waited fifteen seconds after my first edit and started doubting whether the file had saved. Writing this down is to save you that same fifteen seconds: just restart.

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.

What counts as working

Check every line. All of them pass or the job is not done.

  • The side-effect file gains a new line after restart
  • 'patchReload: live' is not treated as 'edits apply immediately'
  • Verification uses an observable side effect, not ctx.logger.info

Where it fails

Symptom, cause, what to do — written in the order it actually happens.

SymptomCauseWhat to do
Code changed, behaviour did notThe process was not restartedRestart; web takes about 10 to 20 seconds here
Your log line never appearsweb does not log at info level by defaultSwitch to an externally visible side effect such as a file write

Sources

Verified means measured here. Compiled means every line carries a source.