- Replace left_joins with includes in auto-join queries for better performance
- Remove complex after_initialize callback since includes handles association loading
- Add automatic includes to find method for consistent behavior
- Add comprehensive performance tests with query counting
- Fix Sorbet type checking by adding ActiveSupport::Notifications to todo.rbi
Performance improvements:
- where() queries now use single query with includes
- N+1 queries avoided for multiple record loading
- All query methods (find, find_by, where) now optimized
- Fix chained where clauses by extending ActiveRecord::Relation objects with auxiliary table support
- Fix nil value queries by using LEFT JOIN instead of INNER JOIN
- Fix non-existent column error handling by forcing query execution
- All 47 tests now pass, no regressions
- Sorbet typechecker passes with no errors
- Update backlog tasks to reflect completed work
- Add sorbet-runtime dependency to gemspec
- Add comprehensive type annotations to Configuration class
- Create RBI file with mixes_in_class_methods for proper class method typing
- Add ActiveSupport::Concern shim to handle included and class_methods DSL
- Add parameter validation for edge cases when RBI bypasses runtime checks
- Update tests to expect correct error messages from manual validation
- All 26 tests passing with full type safety
- Sorbet type checker passes with no errors
This implements the ActiveSupport::Concern DSL generator approach from
https://github.com/Shopify/tapioca/pull/360 to properly handle Sorbet
type checking with ActiveSupport::Concern modules.