Commits
Tarun Sukhani authored 37871d5c7f9
fix(cli): dedupe module command loading to silence spurious doc:export conflict warning
CommandLoader.load_play_module is invoked once per entry from
PlayApplication.modules() and once per --with=<name> module. In dev mode
modules() auto-appends the framework's docviewer, so any --with=docviewer
(or duplicate path arriving through application.conf module.X= entries)
re-registered doc:export and tripped the "conflict on command" warning in
_load_cmd_from. The set() dedupe inside modules() couldn't see the second
list, so dedupe has to live in the loader itself.
Track loaded module directories by os.path.realpath and short-circuit
repeat calls to load_play_module. Symlinked modules and ${play.path}
expansions that resolve to the same target are now treated as identical.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>