16 Commits

Author SHA1 Message Date
Dylan Knutson
b4fd614280 optimizations when doing pluck / calculations 2025-07-29 15:04:21 +00:00
Dylan Knutson
ba1b74022a [wip] loading optimizations 2025-07-28 02:04:25 +00:00
Dylan Knutson
a4c9c597e3 .not chained queries 2025-07-23 23:08:46 +00:00
Dylan Knutson
3a8d71e2f7 cache bundle install at devcontainer build step 2025-07-21 05:22:10 +00:00
Dylan Knutson
198ab946d7 refactor devcontainer for simpler ruby install 2025-07-20 17:53:09 +00:00
Dylan Knutson
19d96dfebe update tapioca, more type annotations 2025-07-16 16:24:35 +00:00
Dylan Knutson
5f358abae6 checkpoint before breaking things 2025-07-15 03:50:34 +00:00
Dylan Knutson
c870eef9bc migration extension helpers 2025-07-14 17:08:22 +00:00
Dylan Knutson
30b017906f more ar hacking 2025-07-14 05:44:01 +00:00
Dylan Knutson
4f41b66f85 Improve query performance with includes and add comprehensive performance tests
- 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
2025-07-13 06:17:00 +00:00
Dylan Knutson
cde0896e98 Fix query extensions and test failures
- 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
2025-07-13 04:48:46 +00:00
Dylan Knutson
af97998393 integration tests 2025-07-13 03:22:23 +00:00
Dylan Knutson
c38482c9d8 feat: add comprehensive Sorbet type annotations with ActiveSupport::Concern support
- 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.
2025-07-13 02:12:56 +00:00
Dylan Knutson
164f16b048 fix: use POSIX-compliant shell syntax in json-lint hook 2025-07-13 02:02:26 +00:00
Dylan Knutson
51e7f9545b pre-commit checking of json,yaml,rb files 2025-07-13 01:37:31 +00:00
Dylan Knutson
6fc3f772c3 Set up lefthook for Ruby formatters and type checking 2025-07-13 01:22:54 +00:00