Skip to content

Rewrite cbwire skill for CBWIRE 5 - #8

Open
mrigsby wants to merge 1 commit into
ColdBox:mainfrom
mrigsby:cbwire-skill-refresh
Open

Rewrite cbwire skill for CBWIRE 5#8
mrigsby wants to merge 1 commit into
ColdBox:mainfrom
mrigsby:cbwire-skill-refresh

Conversation

@mrigsby

@mrigsby mrigsby commented Sep 2, 2026

Copy link
Copy Markdown

The shipped CBWIRE skill described the 2.x and 3.x API. Four of its instructions broke a working app:

  • It told the reader to add an Alpine.js CDN tag and a hand-written script tag. CBWIRE 5 bundles Alpine and injects its own assets.
  • It rendered with renderWire(). The method is wire().
  • It taught emit(), emitTo(), and emitUp(). The component API is dispatch(), dispatchTo(), and dispatchSelf().
  • It put the component template in views/wires/. Templates live in ./wires/, beside the class.

It also hand-rolled a ValidationManager call, treated a computed function as a bare property, and mislabeled the .lazy modifier.

Add the coverage the skill had none of: configuration, nested data binding, validation, file uploads, lazy loading, JavaScript integration, testing, and a set of behavior notes that are hard to diagnose from the symptom alone. Two of those notes correct the official documentation. A destroy() call after store() deletes the file you just saved, and .lazy resolves to the same code path as .change rather than deferring the update.

Every method, setting, annotation, and directive was checked against the CBWIRE 5 documentation and the module source. Where the two disagree, the skill follows the documentation, except where that loses data.

Examples are BoxLang. The Language Mode Reference table carries the CFML form, so only the secured annotation appears in both languages.

The shipped skill described the 2.x and 3.x API. Four of its
instructions broke a working app:

- It told the reader to add an Alpine.js CDN tag and a hand-written
  script tag. CBWIRE 5 bundles Alpine and injects its own assets.
- It rendered with renderWire(). The method is wire().
- It taught emit(), emitTo(), and emitUp(). The component API is
  dispatch(), dispatchTo(), and dispatchSelf().
- It put the component template in views/wires/. Templates live in
  ./wires/, beside the class.

It also hand-rolled a ValidationManager call, treated a computed
function as a bare property, and mislabeled the .lazy modifier.

Add the coverage the skill had none of: configuration, nested data
binding, validation, file uploads, lazy loading, JavaScript
integration, testing, and a set of behavior notes that are hard to
diagnose from the symptom alone. Two of those notes correct the
official documentation. A destroy() call after store() deletes the
file you just saved, and .lazy resolves to the same code path as
.change rather than deferring the update.

Every method, setting, annotation, and directive was checked against
the CBWIRE 5 documentation and the module source. Where the two
disagree, the skill follows the documentation, except where that
loses data.

Examples are BoxLang. The Language Mode Reference table carries the
CFML form, so only the secured annotation appears in both languages.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant