I finally realized why I run into stale workspace issue frequently:
JJ will set up a Watchman trigger if it is configured to use Watchman as fsmonitor. The trigger will run `jj debug snapshot` whenever something changes in the repo.
Now, this will clash with any jj command I run and causing a stale workspace.
I think the obvious solution is to disable snapshotting in JJ commands if Watchman trigger is created. However there doesn't seem to be a config option for this. hmm