Skip to content

wheels-sentry ships incompatible package.json and box.json declaring different install locations #2710

Description

@bpamiri

Severity: low — but creates the SENTRY-B / #2705 breakage when combined with wheels packages add.

Surfaced by: titan Phase 2.1 (Wheels 4.0 upgrade), 2026-05-15.

Description

The wheels-sentry@1.0.0 package ships two manifest files that disagree about where it should be installed:

  • package.json (4.0 PackageLoader convention) declares provides.mixins = \"controller\" — implies install to vendor/<name>/ so PackageLoader can pick it up.
  • box.json (legacy ForgeBox convention) declares directory: \"/plugins/\" + packageDirectory: \"sentry\" — implies install to plugins/sentry/.

Sentry.cfc:79 hardcodes the plugins.sentry.SentryClient path, so only the legacy install location works. Combined with the fact that wheels packages add installs to vendor/<name>/ (lucli-canonical) and ignores box.json hints, the package is broken at its canonical install path — see #2705 for the symptom.

Suggested fix

Pick one install convention and ship one manifest. Options:

  1. Drop box.json — the package is Wheels 4.0+ only, lucli-canonical (vendor/<name>/). Update Sentry.cfc:79 to reference SentryClient.cfc via relative file path so it works wherever installed.
  2. Drop the 4.0-shape package.json — keep the legacy box.json, ship as a plugins/-style legacy package only. Note this would foreclose on PackageLoader mixin/middleware integration.

Option 1 is forward-looking; Option 2 is least disruptive.

cc @bpamiri

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions