docs(web/guides): document wheels-websockets package; correct legacy ForgeBox guidance - #3367
Conversation
…ForgeBox guidance channels.mdx and server-sent-events.mdx still denied that WebSocket support exists, pointing readers at roadmap issue #2962. The first-party wheels-websockets package shipped at v0.2.0 and is installable via 'wheels packages add wheels-websockets' (RustCFML native since v0.1.0, Lucee 6.2+ verified live, Lucee 7 pending 7.0.2.7+ plus a jakarta-compatible extension release, Adobe/BoxLang demand-gated with graceful SSE fallback). Both pages now document the package instead of denying it, matching why-wheels.mdx. installing-with-commandbox.mdx claimed cfwheels-base-template 'still resolves on ForgeBox but errors on its missing cfwheels core dependency' — the slug is now fully unlisted and box install fails with 'entry slug invalid or does not exist'. Also adds the legacy cfwheels-cli slug to the old-to-new mapping, pointing readers at the standalone wheels CLI. Refs #3292, Refs #3182 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: Peter Amiri <petera@pai.com>
There was a problem hiding this comment.
Wheels Bot — Reviewer
TL;DR — This is a docs-only truth-up of three v4-0-0 guide pages: it documents the first-party wheels-websockets package in channels.mdx / server-sent-events.mdx (replacing the stale "Wheels does not ship WebSocket support" claim), and corrects the ForgeBox legacy-slug guidance in installing-with-commandbox.mdx. The diff is clean, internally consistent, and well-worded. Verdict: comment (approve-quality on everything I can verify; the only reason I stop short of approve is that the external wheels-websockets engine-support matrix lives in another repo and I cannot independently verify it).
Correctness
No code paths touched — three .mdx files only. Verified the mechanical correctness of the internal references:
- Anchor
#not-supported-via-commandbox-the-wheels-cli-feature-setresolves to the real heading## Not supported via CommandBox: the+ "wheels" +CLI feature set(installing-with-commandbox.mdx:101). - Anchor
#supported-install-the-frameworkresolves to## Supported: install the framework(line 46). - Links
/v4-0-0/start-here/installing/and/v4-0-0/digging-deeper/channels/point at existing pages, and the trailing-slash style matches the 15+ other internal links in the same file. grepconfirms no staledoes not ship WebSocket/still resolves on ForgeBoxtext remains; the surviving "framework core ships no WebSocket layer" wording inserver-sent-events.mdx:33is the intended, correctly-qualified replacement.- The new claim is consistent with
start-here/why-wheels.mdx:101("WebSocket support is available").
Conventions
- The install snippet uses the canonical CLI verb
wheels packages add wheels-websockets(matches CLAUDE.md Package System —addis the canonical verb). Good. - Minor, non-blocking nit: the code fence is titled
title="illustrative — install the package", but the command itself is real and correct, not illustrative. Considertitle="install the package"(or dropping the label) so readers do not read the working command as pseudo-code. Not a blocker.
Docs
- Docs-only
docs-type change — nochangelog.d/fragment required (fragments are for user-facingfix/feat). Correct to omit. - Engine matrix, SSE-fallback behavior, and version claims (RustCFML native since v0.1.0; Lucee 6.2+ verified; Lucee 7 gated on 7.0.2.7+ / jakarta extension; Adobe/BoxLang SSE-only) are appropriately hedged and, per the PR body, cross-checked against the wheels-websockets v0.2.0 README. I cannot verify these against the external repo from here, so flagging as the one unverified surface — recommend a maintainer familiar with the package confirm the matrix before merge. No wording concern: the claims are carefully scoped (stock Lucee 7 is explicitly NOT claimed to work).
Commits
docs(web/guides): document wheels-websockets package; correct legacy ForgeBox guidance — valid type, sensible monorepo scope, header well under 100 chars, not ALL-CAPS. Conforms to commitlint.
No blocking findings. Once a maintainer confirms the external engine matrix, this is ready to merge.
What / why
Two verified-stale docs truth-ups in the v4-0-0 guides:
A) WebSocket story (Refs #3292) —
digging-deeper/channels.mdxstill said "Wheels does notship WebSocket support" and pointed readers at roadmap issue #2962;
server-sent-events.mdxsaid "Wheels itself ships no WebSocket layer" with no alternative. The first-party
wheels-websockets package shipped at v0.2.0
and is installable via
wheels packages add wheels-websockets(registry entry mergedwheels-dev/wheels-packages#13). Both pages now document the package — engine matrix (RustCFML
native since v0.1.0; Lucee 6.2+ verified live; Lucee 7 needs 7.0.2.7+ and a jakarta-compatible
websocket-extension release that isn't published yet; Adobe/BoxLang demand-gated on discussion
#3286), graceful SSE fallback, and the
WheelsRealtimeclient's automaticWheelsSSEfallback — instead of denying it exists. This brings both pages in line with
start-here/why-wheels.mdx, which already says WebSocket support is available.B) Legacy ForgeBox slugs (Refs #3182) —
start-here/installing-with-commandbox.mdxclaimedcfwheels-base-template"still resolves on ForgeBox but errors on its missing cfwheels coredependency". The slug is now fully unlisted:
box install cfwheels-base-templatefails withentry slug invalid or does not exist. The Aside now says so, and the old-to-new slug mappinggains a
cfwheels-clientry pointing readers at the standalonewheelsCLI (noting the renamedwheels-cliForgeBox slug is itself the deprecated legacy CommandBox module).Docs are carefully worded per the assessment risks: stock Lucee 7 is NOT claimed to work (Lucee
6.2 is the verified stock path), and Adobe/BoxLang SSE-only degradation is stated explicitly.
Approach
Facts cross-checked against the wheels-dev/wheels-websockets README (v0.2.0) and the issue
assessments. Acceptance check:
grep -ri "does not ship WebSocket" web/sites/guidesandgrep -ri "still resolves on ForgeBox" web/sites/guidesboth return nothing; channels.mdx namesthe package and install command.
Test evidence
Docs-only change — three
.mdxfiles underweb/sites/guides/; zero executable code pathstouched (no
vendor/wheels/,app/, orcli/changes), so the core suite does not apply perthe repo test matrix. The core suite could not be run locally regardless: the orchestrator-mandated
PORT=0is rejected by the CLI ("Cannot start server - port conflicts detected") and other portswere off-limits to this agent. The guides site build in CI validates the MDX.
Residual scope (this PR closes neither issue)
v0.2.0 + registry PR Issue 784 #13, and re-home the live external dependencies (jakarta websocket-extension
release watch, RustCFML channel-dir ask, LuCLI#8 bundled-engine bump) so they aren't lost.
box install cfwheels-base-templatehard-errors on the deletedcfwheelsslug #3182: the credentialed ForgeBox runbook remains — manualbox publishof deprecationrevisions to the
cfwheels-clislug from the wheels-dev account (op://Wheels/ secrets), plus theoptional cfwheels.org apex DNS record. Only a maintainer can execute those.
Refs #3292, Refs #3182
🤖 Generated with Claude Code