You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(cli): resolve cli.lucli.* component paths via the modules.wheels mapping
Replaces every `cli.lucli.services.*` absolute dotted path in cli/lucli/
with the equivalent `modules.wheels.services.*` path. The new prefix
matches the same `modules.<name>.<...>` convention LuCLI uses to load
each module's own `Module.cfc`, so the paths resolve identically in
every context the CLI runs in:
Dev symlink (~/.lucli/modules/wheels -> <repo>/cli/lucli)
modules.wheels.services.X -> <repo>/cli/lucli/services/X.cfc
Brew install (~/.wheels/modules/wheels)
modules.wheels.services.X -> ~/.wheels/modules/wheels/services/X.cfc
Isolated harness ($LUCLI_HOME/modules/wheels)
modules.wheels.services.X -> $LUCLI_HOME/modules/wheels/services/X.cfc
The previous `cli.lucli.*` prefix only resolved when the module was
loaded from a path with `cli/lucli/` in its filesystem ancestry —
true for the user's daily dev symlink (because the symlink target
lives in the repo's `cli/lucli/` directory and Lucee follows the
symlink to its real path), but NOT true for any installation that
copies the module's contents (Homebrew bottle, Chocolatey package,
or any LUCLI_HOME-isolated test setup).
User-visible effect on fresh installs:
Before:
$ wheels deploy version
Error: could not find component or class with name
[cli.lucli.services.deploy.cli.DeployMainCli]
$ wheels packages list
Error: could not find component or class with name
[cli.lucli.services.packages.PackagesMainCli]
After:
$ wheels deploy version
wheels-deploy mirrors kamal 2.4.0 / kamal-proxy v0.8.6
$ wheels packages list
[reaches the next level — see follow-up note below]
Reported as F7 in the second VM-onboarding journal. Validated locally
via the onboarding harness (PR #2308): with this fix applied, the
`wheels deploy` family resolves cleanly in the LUCLI_HOME-isolated
test that simulates a fresh brew install.
Scope: 88 files in cli/lucli/, 482 -> 486 prefix substitutions (small
discrepancy because a handful of files had >1 ref per line via comments
or chained calls). Includes test specs so they continue to mirror
production paths.
Out of scope (separate follow-up):
`wheels packages list` now reaches PackagesMainCli but fails at
cli/lucli/services/packages/VersionResolver.cfc:17 which does
`new wheels.SemVer()` — a reference to the framework's
`vendor/wheels/SemVer.cfc`. The framework isn't on the CLI's
resolution path when running outside an app, so SemVer can't be
found. That's a different architectural issue (CLI command depends
on framework being loaded) and warrants its own PR. The harness
Phase 7 will continue to surface it as a SKIP until that's fixed.
0 commit comments