Flatten monorepo structure with new features and docs#1885
Merged
Conversation
Analyzes four options for restructuring the monorepo so that cloning the repo produces a runnable application. Recommends Option A (flatten) which promotes templates/base/src/ to root and moves core/src/wheels/ into vendor/wheels/, matching the historical Wheels repo layout. https://claude.ai/code/session_01Fu8QwCidRvyz1eaZcHRECM
Promotes the app scaffold (templates/base/src/) to repo root and moves the framework core (core/src/wheels/) to vendor/wheels/, making the repository root a runnable Wheels application. After cloning, developers can simply run `box server start` without Docker assembly. Key changes: - app/, config/, public/, db/, plugins/ now live at repo root - vendor/wheels/ contains the framework core (tracked as source) - compose.yml simplified from 3 cross-dir volume mounts to 1 root mount - Build scripts (prepare-base.sh, prepare-core.sh) updated for new paths - CLI source detection updated (isWheelsInstall checks for cli/ + tools/) - Documentation updated across MONOREPO.md, docs/, design_docs/ - .gitattributes added for export-ignore and linguist-vendored - .gitignore updated: vendor/* ignored except vendor/wheels/ Note: GitHub Actions workflow updates (.github/workflows/*.yml) require workflows permission and will need to be applied separately by a maintainer with the appropriate token. https://claude.ai/code/session_01Fu8QwCidRvyz1eaZcHRECM
Details the 5 GitHub Actions workflow files that need path updates for the flattened monorepo. Requires workflows permission on token. https://claude.ai/code/session_01Fu8QwCidRvyz1eaZcHRECM
Updates version detection and JDBC download paths in all workflows to match the new flattened directory structure: - Version read from root box.json instead of templates/base/src/box.json - Oracle JDBC downloaded to .engine/ instead of templates/base/src/.engine/ - Removed cd into deleted templates/base/src/ directory https://claude.ai/code/session_01Fu8QwCidRvyz1eaZcHRECM
Compares Wheels 3.0 against Rails 8.1, Laravel 12, Django 6.0, Phoenix 1.8, Next.js 16, and Spring Boot 4.0. Covers ORM, routing, testing, real-time, jobs, CLI, and deployment. Includes gap analysis and prioritized recommendations. https://claude.ai/code/session_01Fu8QwCidRvyz1eaZcHRECM
Four major features from the framework review recommendations: 1. Nested Resource Routes: Add callback parameter to resources() for clean block-based nested resource declaration. Backward compatible with existing nested=true approach. 2. HTML5 Form Helpers: Add emailField, urlField, numberField, telField, dateField, colorField, rangeField, searchField (plus Tag variants). Each follows the existing passwordField pattern. 3. Database-Backed Job Queue: Complete rewrite of Job.cfc with persistent queue storage, retry with exponential backoff, dead letter handling, queue stats, and batch processing. Includes migration for _wheels_jobs table. 4. Server-Sent Events (SSE): New controller module (sse.cfc) with renderSSE() for single-event responses, initSSEStream()/ sendSSEEvent()/closeSSEStream() for streaming, and isSSERequest() for content negotiation. Includes 950 lines of TestBox BDD tests across 4 spec files. https://claude.ai/code/session_01Fu8QwCidRvyz1eaZcHRECM
…eue, and SSE Update both .ai/ reference docs and docs/src/ GitBook docs to cover all four new features: callback-based nested resource routes, HTML5 form helpers (emailField, urlField, numberField, etc.), database-backed background job queue, and Server-Sent Events controller support. https://claude.ai/code/session_01Fu8QwCidRvyz1eaZcHRECM
- Replace all string-interpolated SQL in Job.cfc with queryExecute() parameter binding to prevent SQL injection - Move callback auto-set of nested=true before comma-list check in resources.cfc so error is correctly thrown for callback + list combos - Handle empty data string in SSE $formatSSEEvent() to emit required data: line per SSE spec - Add step parameter to dateField/dateFieldTag for HTML5 compliance - Fix misleading describe block labels in html5FormHelpersSpec https://claude.ai/code/session_01Fu8QwCidRvyz1eaZcHRECM
Replace the dated gray debug footer with a modern fixed-bottom debug toolbar featuring tabbed panels (Request, Timing, Params, Environment, Tools) with a Catppuccin Mocha dark theme. Add comprehensive dark theme CSS overrides to the shared layout header so all /wheels/* pages (info, routes, migrator, plugins, API docs, guides) inherit the modern dark styling automatically. Redesign error pages (wheelserror.cfm, cfmlerror.cfm) with syntax-highlighted source code context, collapsible stack traces, organized request info grids, and collapsible scope dumps. Add migration status summary cards to the migrator page. Fix SVG icon visibility across all pages for dark backgrounds. https://claude.ai/code/session_01Fu8QwCidRvyz1eaZcHRECM
Replace modal popups with inline expandable results section that supports copy-to-clipboard for easy pasting into AI agent windows. Add detection and execution of out-of-sequence migrations created by other developers on separate branches, with individual and bulk run capabilities. https://claude.ai/code/session_01Fu8QwCidRvyz1eaZcHRECM
…o claude/reorganize-monorepo-structure-qNFcv # Conflicts: # .github/workflows/generate-changelog.yml # .github/workflows/release-candidate.yml # .github/workflows/release.yml # .github/workflows/tests.yml # .github/workflows/version-bump.yml
Resolve conflicts by keeping v3.1 refactored approach (decomposed init includes, no wirebox/testbox deps) while preserving authenticateThis plugin addition from develop. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ucture Resolve conflict in prepare-base.sh by keeping .opencode copy line. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Workflow files: keep flat paths from monorepo reorg, adopt develop's SNAPSHOT workflow changes and 3.1.0 version references - Docs: keep flat vendor/wheels paths, update URLs to 3.1.0, keep new SSE documentation section - Delete files removed by monorepo reorg (core/box.json, core/src/wheels/events/onapplicationstart.cfc, templates/base/box.json) - starter-app: update wheels-core dependency to ^3.1.0
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
core/src/tovendor/for clone-and-run development workflow/wheels/*UITest plan
🤖 Generated with Claude Code