Commit efca28f
Fix critical RBS runtime checking and validation issues
CRITICAL FIXES:
1. Runtime Type Checking Now Actually Works
- Changed from opt-in (never enabled) to enabled-by-default with opt-out
- Was: ENV["ENABLE_RBS_RUNTIME_CHECKING"] (never set anywhere)
- Now: Enabled by default, disable with DISABLE_RBS_RUNTIME_CHECKING=true
- This activates the third pillar of type safety (static, steep, runtime)
2. Improved Error Handling in RBS Validation
- Replace fragile stderr redirection with Open3.capture3
- Properly separates validation errors from warnings
- No longer hides real issues with 2>/dev/null
- Shows both stdout and stderr when validation fails
3. Remove Redundant bundle exec
- Removed unnecessary 'bundle exec' from rake tasks
- When running 'bundle exec rake', already in bundle context
- Reduces overhead and simplifies implementation
- Uses direct 'rbs' and 'steep' commands
DOCUMENTATION:
4. Comprehensive RBS Documentation in CLAUDE.md
- Added "RBS Type Checking" section with quick start
- Documents runtime checking behavior (enabled by default)
- Explains how to disable for faster test runs
- Step-by-step guide for adding new type signatures
- Lists files currently type-checked
- Pro package validation instructions
These fixes ensure runtime type checking actually runs in tests, providing
comprehensive type safety validation that catches errors static analysis misses.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <[email protected]>1 parent d782263 commit efca28f
3 files changed
+77
-32
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
48 | 53 | | |
49 | 54 | | |
50 | 55 | | |
| |||
117 | 122 | | |
118 | 123 | | |
119 | 124 | | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
120 | 175 | | |
121 | 176 | | |
122 | 177 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
| 4 | + | |
3 | 5 | | |
4 | 6 | | |
5 | 7 | | |
| |||
9 | 11 | | |
10 | 12 | | |
11 | 13 | | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
17 | 17 | | |
18 | | - | |
19 | | - | |
| 18 | + | |
20 | 19 | | |
21 | | - | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
28 | 24 | | |
29 | 25 | | |
30 | 26 | | |
| |||
44 | 40 | | |
45 | 41 | | |
46 | 42 | | |
47 | | - | |
48 | | - | |
49 | | - | |
50 | | - | |
51 | | - | |
| 43 | + | |
| 44 | + | |
52 | 45 | | |
53 | | - | |
54 | | - | |
| 46 | + | |
55 | 47 | | |
56 | | - | |
57 | | - | |
58 | | - | |
59 | | - | |
60 | | - | |
61 | | - | |
62 | | - | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
63 | 52 | | |
64 | 53 | | |
65 | 54 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
25 | | - | |
26 | | - | |
| 25 | + | |
| 26 | + | |
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| |||
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
38 | | - | |
| 38 | + | |
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
44 | | - | |
| 44 | + | |
| 45 | + | |
45 | 46 | | |
46 | 47 | | |
47 | 48 | | |
| |||
0 commit comments