Add Zeitwerk eager loading check to CI#505
Draft
trevorturk wants to merge 1 commit intocrmne:mainfrom
Draft
Conversation
Adds validation that Zeitwerk can eager load all files without errors. This catches autoloading issues like inflector bugs and missing conditional checks before they reach production. - Added check after linter step for fast fail - Runs on all Ruby/Rails matrix combinations - ~2 second check prevents production crashes ## Blocked This PR depends on crmne#504 (ActiveRecord dependency fix) to pass. Without it, the eager loading check fails with NameError. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
trevorturk
added a commit
to trevorturk/ruby_llm-mcp
that referenced
this pull request
Nov 18, 2025
Adds a validation step that runs Zeitwerk::Loader.eager_load_all after dependency installation to catch autoloading issues early in the CI pipeline. This check helps prevent production crashes by detecting: - Inflector configuration errors - Constant definition issues - Missing conditional checks for optional dependencies The check runs quickly (~2 seconds) before the test matrix, providing rapid feedback on structural issues. Note: This check currently fails due to upstream ruby_llm ActiveRecord dependency issues. See: - crmne/ruby_llm#504 - crmne/ruby_llm#505 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This was referenced Nov 18, 2025
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
Adds Zeitwerk eager loading validation to CI to catch autoloading issues before release.
Problem
Lack of CI check for catching eager loading issues. Recent example: ActiveRecord dependency bug (PR #504) would have been caught by this check.
Solution
Add
Zeitwerk::Loader.eager_load_allcheck after linter step:Placement: After linter, before tests
Blocked
This PR depends on #504 (ActiveRecord dependency fix).
Without #504, the eager loading check fails with:
After #504 is merged: ✅ Passes
Benefits
🤖 Generated with Claude Code