rails-ai-context 4.3.2 → 4.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +72 -53
  3. data/CLAUDE.md +1 -1
  4. data/README.md +268 -197
  5. data/demo-trace.gif +0 -0
  6. data/demo-trace.tape +21 -0
  7. data/demo.gif +0 -0
  8. data/demo.tape +33 -0
  9. data/docs/GUIDE.md +9 -9
  10. data/lib/generators/rails_ai_context/install/install_generator.rb +2 -1
  11. data/lib/rails_ai_context/configuration.rb +1 -1
  12. data/lib/rails_ai_context/doctor.rb +4 -2
  13. data/lib/rails_ai_context/fingerprinter.rb +2 -1
  14. data/lib/rails_ai_context/introspectors/accessibility_introspector.rb +2 -1
  15. data/lib/rails_ai_context/introspectors/action_mailbox_introspector.rb +2 -1
  16. data/lib/rails_ai_context/introspectors/action_text_introspector.rb +2 -1
  17. data/lib/rails_ai_context/introspectors/active_storage_introspector.rb +6 -3
  18. data/lib/rails_ai_context/introspectors/api_introspector.rb +8 -4
  19. data/lib/rails_ai_context/introspectors/asset_pipeline_introspector.rb +6 -3
  20. data/lib/rails_ai_context/introspectors/auth_introspector.rb +14 -7
  21. data/lib/rails_ai_context/introspectors/config_introspector.rb +12 -6
  22. data/lib/rails_ai_context/introspectors/controller_introspector.rb +20 -10
  23. data/lib/rails_ai_context/introspectors/convention_detector.rb +2 -1
  24. data/lib/rails_ai_context/introspectors/design_token_introspector.rb +8 -4
  25. data/lib/rails_ai_context/introspectors/devops_introspector.rb +6 -3
  26. data/lib/rails_ai_context/introspectors/engine_introspector.rb +4 -2
  27. data/lib/rails_ai_context/introspectors/frontend_framework_introspector.rb +2 -1
  28. data/lib/rails_ai_context/introspectors/i18n_introspector.rb +2 -1
  29. data/lib/rails_ai_context/introspectors/job_introspector.rb +8 -4
  30. data/lib/rails_ai_context/introspectors/middleware_introspector.rb +4 -2
  31. data/lib/rails_ai_context/introspectors/migration_introspector.rb +2 -1
  32. data/lib/rails_ai_context/introspectors/model_introspector.rb +20 -10
  33. data/lib/rails_ai_context/introspectors/multi_database_introspector.rb +12 -6
  34. data/lib/rails_ai_context/introspectors/performance_introspector.rb +6 -3
  35. data/lib/rails_ai_context/introspectors/route_introspector.rb +4 -2
  36. data/lib/rails_ai_context/introspectors/schema_introspector.rb +14 -7
  37. data/lib/rails_ai_context/introspectors/seeds_introspector.rb +2 -1
  38. data/lib/rails_ai_context/introspectors/stimulus_introspector.rb +8 -4
  39. data/lib/rails_ai_context/introspectors/test_introspector.rb +8 -4
  40. data/lib/rails_ai_context/introspectors/turbo_introspector.rb +22 -11
  41. data/lib/rails_ai_context/introspectors/view_introspector.rb +8 -4
  42. data/lib/rails_ai_context/introspectors/view_template_introspector.rb +10 -5
  43. data/lib/rails_ai_context/tasks/rails_ai_context.rake +8 -4
  44. data/lib/rails_ai_context/tools/analyze_feature.rb +66 -19
  45. data/lib/rails_ai_context/tools/diagnose.rb +4 -2
  46. data/lib/rails_ai_context/tools/get_callbacks.rb +4 -2
  47. data/lib/rails_ai_context/tools/get_concern.rb +12 -6
  48. data/lib/rails_ai_context/tools/get_controllers.rb +10 -5
  49. data/lib/rails_ai_context/tools/get_conventions.rb +4 -2
  50. data/lib/rails_ai_context/tools/get_design_system.rb +2 -1
  51. data/lib/rails_ai_context/tools/get_env.rb +8 -4
  52. data/lib/rails_ai_context/tools/get_helper_methods.rb +6 -3
  53. data/lib/rails_ai_context/tools/get_job_pattern.rb +2 -1
  54. data/lib/rails_ai_context/tools/get_model_details.rb +10 -5
  55. data/lib/rails_ai_context/tools/get_partial_interface.rb +14 -7
  56. data/lib/rails_ai_context/tools/get_schema.rb +2 -1
  57. data/lib/rails_ai_context/tools/get_service_pattern.rb +2 -1
  58. data/lib/rails_ai_context/tools/get_stimulus.rb +2 -1
  59. data/lib/rails_ai_context/tools/get_test_info.rb +4 -2
  60. data/lib/rails_ai_context/tools/get_turbo_map.rb +22 -11
  61. data/lib/rails_ai_context/tools/get_view.rb +6 -3
  62. data/lib/rails_ai_context/tools/migration_advisor.rb +2 -1
  63. data/lib/rails_ai_context/tools/onboard.rb +2 -1
  64. data/lib/rails_ai_context/tools/performance_check.rb +2 -1
  65. data/lib/rails_ai_context/tools/runtime_info.rb +10 -5
  66. data/lib/rails_ai_context/tools/search_code.rb +8 -4
  67. data/lib/rails_ai_context/tools/search_docs.rb +2 -1
  68. data/lib/rails_ai_context/tools/session_context.rb +2 -1
  69. data/lib/rails_ai_context/tools/validate.rb +16 -8
  70. data/lib/rails_ai_context/version.rb +1 -1
  71. metadata +5 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5081505ca1d99874de52ff33fb72ff75877b67ec79984fb9bb9004dbcbf4ea27
4
- data.tar.gz: cc6781e87f54708aab290044a33aee7aff3ddb7579fd4fe4f592eb5d3721b310
3
+ metadata.gz: 5568327e1027266892b2514cad27a3665532acfa1405236caecda030ff313739
4
+ data.tar.gz: 6be68e0d310f9a42aafc47161a676d162debba0cfe8a8f4087ee6051f79900cc
5
5
  SHA512:
6
- metadata.gz: '09c0346700785aa79211b6fddf7e52dfedf9989500abd53538fc451ca3b96b0f0450865a2cbad86d6c26ac2aaefd4e19a8dcc66587960674a0adefcc324d34a9'
7
- data.tar.gz: dfd9f8d968e87b736d026e9cf3fe98ef08f61527ad4be1a9c96f8abe8a9d8b47b15d0133970df3e9fd0d4f915de87c0d893686f236f9b903a1ef53ef2c406e67
6
+ metadata.gz: 151fec5402860aa577e1c21af3ece8c0378a3f5b50f3e18e34236a43061d01da945a869972347e07d2748601c4e7965a449596fecb04cf1eecb0915a0ef73463
7
+ data.tar.gz: 18f46e2c0c1d638c3822687f949588dc5f9874cb61cf3f827827205e472456c95d7c55f74cec6a157bfa99531ab4849a9e14a9c23fce7676fc554463a934d9d3
data/CHANGELOG.md CHANGED
@@ -5,6 +5,20 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [4.3.3] — 2026-04-02
9
+
10
+ ### Fixed
11
+ - **100 bare rescue statements across 46 files** — all replaced with `rescue => e` + conditional debug logging (`$stderr.puts ... if ENV["DEBUG"]`); errors are now visible instead of silently swallowed
12
+ - **database_stats introspector orphaned** — `DatabaseStatsIntrospector` was unreachable (not in any preset); added to `:full` preset (32 → 33 introspectors)
13
+ - **CHANGELOG date errors** — v4.0.0 corrected from 2026-03-26 to 2026-03-27, v4.2.0 from 2026-03-26 to 2026-03-30 (verified against git commit timestamps)
14
+ - **CHANGELOG missing v3.0.1 entry** — added (RubyGems republish, no code changes)
15
+ - **CHANGELOG date separator inconsistency** — normalized all 61 version entries to em dash (`—`)
16
+ - **Documentation preset counts** — CLAUDE.md, README, GUIDE all corrected: `:full` 32→33, `:standard` 14→19 (turbo, auth, accessibility, performance, i18n were added in v4.3.1 but docs not updated)
17
+ - **GUIDE.md standard preset table** — added 5 missing introspectors (turbo, auth, accessibility, performance, i18n) to match `configuration.rb`
18
+
19
+ ### Changed
20
+ - Full preset: 32 → 33 introspectors (added :database_stats)
21
+
8
22
  ## [4.3.2] — 2026-04-02
9
23
 
10
24
  ### Fixed
@@ -113,7 +127,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
113
127
  ### Changed
114
128
  - Test count: 983 → 998
115
129
 
116
- ## [4.2.0] — 2026-03-26
130
+ ## [4.2.0] — 2026-03-30
117
131
 
118
132
  ### Added
119
133
  - New `rails_search_docs` tool: bundled topic index with weighted keyword search, on-demand GitHub fetch for Rails documentation
@@ -169,7 +183,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
169
183
  - Test count: 817 → 893
170
184
  - Install generator always writes `config.ai_tools` and `config.tool_mode` uncommented for re-install detection
171
185
 
172
- ## [4.0.0] — 2026-03-26
186
+ ## [4.0.0] — 2026-03-27
173
187
 
174
188
  ### Added
175
189
 
@@ -207,7 +221,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
207
221
  - Test count: 681 → 806 examples
208
222
  - Combustion test app expanded with Stimulus controllers, ViewComponents, accessible views, factories
209
223
 
210
- ## [3.1.0] - 2026-03-26
224
+ ## [3.1.0] 2026-03-26
211
225
 
212
226
  ### Fixed
213
227
 
@@ -223,7 +237,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
223
237
  - **File path suggestions in validate** — `files=["cook.rb"]` now suggests `app/models/cook.rb` when the file isn't found at the given path.
224
238
  - **Empty parameter validation** — `edit_context` now returns friendly messages for empty `file` or `near` parameters instead of hard errors.
225
239
 
226
- ## [3.0.0] - 2026-03-26
240
+ ## [3.0.1] 2026-03-26
241
+
242
+ ### Changed
243
+ - Patch for RubyGems publish — no code changes from v3.0.0.
244
+
245
+ ## [3.0.0] — 2026-03-26
227
246
 
228
247
  ### Removed
229
248
 
@@ -250,14 +269,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
250
269
  - All CLI examples use zsh-safe quoting: `rails 'ai:tool[X]'` (brackets are glob patterns in zsh).
251
270
  - README rewritten with real-world workflow examples, categorized tool table, MCP vs CLI showcase.
252
271
 
253
- ## [2.0.5] - 2026-03-25
272
+ ## [2.0.5] 2026-03-25
254
273
 
255
274
  ### Changed
256
275
 
257
276
  - **Task-based MCP tool instructions** — all 6 serializers (Claude, Cursor, Copilot, Windsurf, OpenCode) rewritten from tool-first to task-first: "What are you trying to do?" → exact tool call. 7 task categories: understand a feature, trace a method, add a field, fix a controller, build a view, write tests, find code. Every AI agent now understands which tool to use for any task.
258
277
  - **Concern detail:"full" bug fix** — `\b` after `?`/`!` prevented 13 of 15 method bodies from being extracted. All methods now show source code.
259
278
 
260
- ## [2.0.4] - 2026-03-25
279
+ ## [2.0.4] 2026-03-25
261
280
 
262
281
  ### Added
263
282
 
@@ -268,14 +287,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
268
287
  - **analyze_feature: service test gaps** — checks services for missing test files, not just models/controllers/jobs.
269
288
  - **All 6 serializers updated** — Claude, Cursor, Copilot, Windsurf, OpenCode all document trace mode, concern source, orphaned tables, inherited filters.
270
289
 
271
- ## [2.0.3] - 2026-03-25
290
+ ## [2.0.3] 2026-03-25
272
291
 
273
292
  ### Added
274
293
 
275
294
  - **Trace mode 100%** — `match_type:"trace"` now shows 7 sections: definition with class/module context, source code, internal calls, sibling methods (same file), app callers with route chain hints, and test coverage (separated from app code). Zero follow-up calls needed.
276
295
  - **README rewrite** — neuro marketing techniques: loss aversion hook, measured token savings table, trace output inline, architecture diagram. 456→261 lines.
277
296
 
278
- ## [2.0.2] - 2026-03-25
297
+ ## [2.0.2] 2026-03-25
279
298
 
280
299
  ### Added
281
300
 
@@ -293,7 +312,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
293
312
 
294
313
  - **Documentation audit** — fixed max_tool_response_chars reference (120K→200K), added missing search_code params to GUIDE, added config.ai_tools to config reference.
295
314
 
296
- ## [2.0.1] - 2026-03-25
315
+ ## [2.0.1] 2026-03-25
297
316
 
298
317
  ### Fixed
299
318
 
@@ -304,7 +323,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
304
323
  - **Issue #14** — `multi_db[:databases].keys` crash on Array fixed.
305
324
  - **Search code NON_CODE_GLOBS** — excludes lock files, docs, CI configs, generated context from all searches.
306
325
 
307
- ## [2.0.0] - 2026-03-24
326
+ ## [2.0.0] 2026-03-24
308
327
 
309
328
  ### Added
310
329
 
@@ -349,14 +368,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
349
368
 
350
369
  - **JS fallback validator false-positives** — escaped backslashes before string-closing quotes (`"path\\"`) no longer cause false bracket mismatch errors. Replaced `prev_char` check with proper `escaped` toggle flag.
351
370
 
352
- ## [1.3.1] - 2026-03-23
371
+ ## [1.3.1] 2026-03-23
353
372
 
354
373
  ### Fixed
355
374
 
356
375
  - **Documentation audit** — updated tool count from 14 to 15 across README, GUIDE, CONTRIBUTING, server.json. Added `rails_get_design_system` documentation section to GUIDE.md. Updated SECURITY.md supported versions. Fixed spec count in CLAUDE.md. Added `rails_get_design_system` to README tool table. Updated `rails_analyze_feature` description to reflect full-stack discovery (services, jobs, views, Stimulus, tests, related models, env deps).
357
376
  - **analyze_feature crash on complex models** — added type guards (`is_a?(Hash)`, `is_a?(Array)`) to all data access points preventing `no implicit conversion of Symbol into Integer` errors on models with many associations or complex data.
358
377
 
359
- ## [1.3.0] - 2026-03-23
378
+ ## [1.3.0] 2026-03-23
360
379
 
361
380
  ### Added
362
381
 
@@ -378,7 +397,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
378
397
  - **Rules serializer methods cap raised to 20** (RS1) — uses introspector's pre-filtered methods directly instead of redundant re-filtering
379
398
  - **oklch token noise filtered** (DS21) — complex color values (oklch, calc, var) hidden from summary, only shown in `detail:"full"`
380
399
 
381
- ## [1.2.1] - 2026-03-23
400
+ ## [1.2.1] 2026-03-23
382
401
 
383
402
  ### Fixed
384
403
 
@@ -392,7 +411,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
392
411
  - **Column defaults shown in generated rules** — columns with non-nil defaults now show `(=value)` inline.
393
412
  - **`analyze_feature` matches models by table name and underscore form** — `feature:"share"` now finds `CookShare` (via `cook_shares` table and `cook_share` underscore form), not just exact model name substring.
394
413
 
395
- ## [1.2.0] - 2026-03-23
414
+ ## [1.2.0] 2026-03-23
396
415
 
397
416
  ### Added
398
417
 
@@ -406,7 +425,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
406
425
  - **"UI Patterns" section renamed to "Design System"** — richer content with color palette, typography, components, spacing conventions, interactive states, and design rules.
407
426
  - **Design tokens consumed for the first time** — `context[:design_tokens]` data was previously extracted but never rendered. Now merged into design system output in all serializers and the new MCP tool.
408
427
 
409
- ## [1.1.1] - 2026-03-23
428
+ ## [1.1.1] 2026-03-23
410
429
 
411
430
  ### Added
412
431
 
@@ -417,13 +436,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
417
436
 
418
437
  - **Tool count corrected from 13 to 14** across all serializers to reflect `rails_analyze_feature` added in v1.0.0.
419
438
 
420
- ## [1.1.0] - 2026-03-23
439
+ ## [1.1.0] 2026-03-23
421
440
 
422
441
  ### Changed
423
442
 
424
443
  - **Default preset changed to `:full`** — all 28 introspectors now run by default, giving AI assistants richer context out of the box. Introspectors that don't find relevant data return empty hashes with zero overhead. Use `config.preset = :standard` for the previous 13-core default.
425
444
 
426
- ## [1.0.0] - 2026-03-23
445
+ ## [1.0.0] 2026-03-23
427
446
 
428
447
  ### Added
429
448
 
@@ -436,25 +455,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
436
455
 
437
456
  - **LLM-optimized tool descriptions (all 14 tools)** — every description now follows "what it does / Use when: / key params" format so AI agents pick the right tool on first try.
438
457
 
439
- ## [0.15.10] - 2026-03-23
458
+ ## [0.15.10] 2026-03-23
440
459
 
441
460
  ### Changed
442
461
 
443
462
  - **Gemspec description rewritten** — repositioned from feature list to value proposition: mental model, semantic validation, cross-file error detection.
444
463
 
445
- ## [0.15.9] - 2026-03-23
464
+ ## [0.15.9] 2026-03-23
446
465
 
447
466
  ### Added
448
467
 
449
468
  - **Deep diagnostic checks in `rails ai:doctor`** — upgraded from 13 shallow file-existence checks to 20 deep checks: pending migrations, context file freshness, .mcp.json validation, introspector health (dry-runs each one), preset coverage (detects features not in preset), .env/.master.key gitignore check, auto_mount production warning, schema/view size vs limits.
450
469
 
451
- ## [0.15.8] - 2026-03-23
470
+ ## [0.15.8] 2026-03-23
452
471
 
453
472
  ### Added
454
473
 
455
474
  - **Semantic validation (`level:"rails"`)** — `rails_validate` now supports `level:"rails"` for deep semantic checks beyond syntax: partial existence, route helper validity, column references vs schema, strong params vs schema columns, callback method existence, route-action consistency, `has_many` dependent options, missing FK indexes, and Stimulus controller file existence.
456
475
 
457
- ## [0.15.7] - 2026-03-22
476
+ ## [0.15.7] 2026-03-22
458
477
 
459
478
  ### Improved
460
479
 
@@ -466,7 +485,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
466
485
  - **Concern test lookup** — `rails_get_test_info(model:"PlanLimitable")` searches concern test paths.
467
486
  - **Controller flexible matching** — underscore-based normalization handles CamelCase, snake_case, and slash notation consistently.
468
487
 
469
- ## [0.15.6] - 2026-03-22
488
+ ## [0.15.6] 2026-03-22
470
489
 
471
490
  ### Added
472
491
 
@@ -482,7 +501,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
482
501
  - **Concern methods inline** — shows public methods from concern source files (e.g. `PlanLimitable — can_cook?, increment_cook_count!`).
483
502
  - **MCP tool error messages** — all tools now show available values on error/not-found for AI self-correction.
484
503
 
485
- ## [0.15.5] - 2026-03-22
504
+ ## [0.15.5] 2026-03-22
486
505
 
487
506
  ### Fixed
488
507
 
@@ -495,7 +514,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
495
514
  - **Namespace test lookup** — supports `bonus/crises` format and flat test directories.
496
515
  - **Empty inputs** — `near:""` in edit_context and `pattern:""` in search return helpful errors.
497
516
 
498
- ## [0.15.4] - 2026-03-22
517
+ ## [0.15.4] 2026-03-22
499
518
 
500
519
  ### Fixed
501
520
 
@@ -512,7 +531,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
512
531
 
513
532
  - **Pagination on models, controllers, stimulus** — `limit`/`offset` params (default 50) with "end of results" hints. Prevents token bombs on large apps.
514
533
 
515
- ## [0.15.3] - 2026-03-22
534
+ ## [0.15.3] 2026-03-22
516
535
 
517
536
  ### Fixed
518
537
 
@@ -523,20 +542,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
523
542
 
524
543
  - **Documentation** — updated all docs (README, CLAUDE.md, GUIDE.md, SECURITY.md, CHANGELOG, server.json, install generator) to match v0.15.x codebase. Fixed spec counts, file counts, preset counts, config options, and supported versions.
525
544
 
526
- ## [0.15.2] - 2026-03-22
545
+ ## [0.15.2] 2026-03-22
527
546
 
528
547
  ### Fixed
529
548
 
530
549
  - **Test command detection** — Serializers now use detected test framework (minitest → `rails test`, rspec → `bundle exec rspec`) instead of hardcoding `bundle exec rspec`. Default is `rails test` (the Rails default). Contributed by @curi (PR #13).
531
550
 
532
- ## [0.15.1] - 2026-03-22
551
+ ## [0.15.1] 2026-03-22
533
552
 
534
553
  ### Fixed
535
554
 
536
555
  - **Copilot serializer** — Show all model associations (not capped at 3), use human-readable architecture/pattern labels.
537
556
  - **OpenCode rules serializer** — Filter framework controllers (Devise) from AGENTS.md output, show all associations, match `before_action` with `!`/`?` suffixes.
538
557
 
539
- ## [0.15.0] - 2026-03-22
558
+ ## [0.15.0] 2026-03-22
540
559
 
541
560
  ### Security
542
561
 
@@ -577,7 +596,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
577
596
  - **Strong params body** — Action detail now shows the actual `permit(...)` call.
578
597
  - **AR-generated methods** — Filter `build_*`, `*_ids=`, etc. from model instance methods.
579
598
 
580
- ## [0.14.0] - 2026-03-20
599
+ ## [0.14.0] 2026-03-20
581
600
 
582
601
  ### Fixed
583
602
 
@@ -595,7 +614,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
595
614
  - **Stimulus dash/underscore normalization** — Both `weekly-chart` and `weekly_chart` work for controller lookup. Output shows HTML `data-controller` attribute.
596
615
  - **Model public method signatures** — `rails_get_model_details(model: "Cook")` shows method names with params from source, stopping at private boundary.
597
616
 
598
- ## [0.13.1] - 2026-03-20
617
+ ## [0.13.1] 2026-03-20
599
618
 
600
619
  ### Changed
601
620
 
@@ -603,7 +622,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
603
622
  - **Model details** — shows method signatures (name + parameters) instead of just method names.
604
623
  - Removed unused demo files; fixed GUIDE.md preset tables.
605
624
 
606
- ## [0.13.0] - 2026-03-20
625
+ ## [0.13.0] 2026-03-20
607
626
 
608
627
  ### Added
609
628
 
@@ -624,7 +643,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
624
643
  - ERB validation was broken due to shell quoting bug (backticks + nested quotes). Replaced with `Open3.capture2e("ruby", "-e", script, ARGV[0])`.
625
644
  - Rubocop offenses in validate.rb (18 spacing issues auto-corrected).
626
645
 
627
- ## [0.12.0] - 2026-03-20
646
+ ## [0.12.0] 2026-03-20
628
647
 
629
648
  ### Added
630
649
 
@@ -657,7 +676,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
657
676
  - Progress bars misclassified as badges.
658
677
  - Input detection picking up alert divs instead of actual inputs.
659
678
 
660
- ## [0.11.0] - 2026-03-20
679
+ ## [0.11.0] 2026-03-20
661
680
 
662
681
  ### Added
663
682
 
@@ -665,20 +684,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
665
684
  - **View partial structure** — `rails_get_view(detail: "standard")` shows model fields and helper methods used by each partial.
666
685
  - **Schema column names** — `.claude/rules/rails-schema.md` shows key column names with types, foreign keys, indexes, and enum values. Keeps polymorphic `_type`, STI `type`, and soft-delete `deleted_at` columns.
667
686
 
668
- ## [0.10.2] - 2026-03-20
687
+ ## [0.10.2] 2026-03-20
669
688
 
670
689
  ### Security
671
690
 
672
691
  - **ReDoS protection** — added regex timeout and converted greedy quantifiers to non-greedy across all pattern matching.
673
692
  - **File size limits** — added size caps on parsed files to prevent memory exhaustion from oversized inputs.
674
693
 
675
- ## [0.10.1] - 2026-03-19
694
+ ## [0.10.1] 2026-03-19
676
695
 
677
696
  ### Changed
678
697
 
679
698
  - Patch release for RubyGems republish (no code changes).
680
699
 
681
- ## [0.10.0] - 2026-03-19
700
+ ## [0.10.0] 2026-03-19
682
701
 
683
702
  ### Added
684
703
 
@@ -689,7 +708,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
689
708
  - **ViewTemplateIntrospector** — new introspector that reads view file contents and extracts partial references and Stimulus data attributes.
690
709
  - **Stimulus and view_templates in standard preset** — both introspectors now in `:standard` preset (11 introspectors, was 10).
691
710
 
692
- ## [0.9.0] - 2026-03-19
711
+ ## [0.9.0] 2026-03-19
693
712
 
694
713
  ### Added
695
714
 
@@ -702,7 +721,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
702
721
  - **Removed `.cursorrules` root file** — Cursor officially deprecated `.cursorrules` in favor of `.cursor/rules/`. The `:cursor` format now generates only `.cursor/rules/*.mdc` split rules. The `rails-project.mdc` split rule (with `alwaysApply: true`) already provides the project overview.
703
722
  - **License changed from AGPL-3.0 to MIT** — removes the copyleft blocker for SaaS and commercial projects.
704
723
 
705
- ## [0.8.5] - 2026-03-19
724
+ ## [0.8.5] 2026-03-19
706
725
 
707
726
  ### Fixed
708
727
 
@@ -715,27 +734,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
715
734
 
716
735
  - **Standalone CLI documented** — the `rails-ai-context` executable (serve, context, inspect, watch, doctor, version) is now documented in README, GUIDE, and CLAUDE.md.
717
736
 
718
- ## [0.8.4] - 2026-03-19
737
+ ## [0.8.4] 2026-03-19
719
738
 
720
739
  ### Added
721
740
 
722
741
  - **`structure.sql` support** — the schema introspector now parses `db/structure.sql` when no `db/schema.rb` exists and no database connection is available. Extracts tables, columns (with SQL type normalization), indexes, and foreign keys from PostgreSQL dump format. Prefers `schema.rb` when both exist.
723
742
  - **Fingerprinter watches `db/structure.sql`** — file changes to `structure.sql` now trigger cache invalidation and live reload.
724
743
 
725
- ## [0.8.3] - 2026-03-19
744
+ ## [0.8.3] 2026-03-19
726
745
 
727
746
  ### Changed
728
747
 
729
748
  - **License published to RubyGems** — v0.8.2 changed the license from MIT to AGPL-3.0 but the gem was not republished. This release ensures the AGPL-3.0 license is reflected on RubyGems.
730
749
 
731
- ## [0.8.2] - 2026-03-19
750
+ ## [0.8.2] 2026-03-19
732
751
 
733
752
  ### Changed
734
753
 
735
754
  - **License** — changed from MIT to AGPL-3.0 to protect against unauthorized clones and ensure derivative works remain open source.
736
755
  - **CI: auto-publish to MCP Registry** — the release workflow now automatically publishes to the MCP Registry via `mcp-publisher` with GitHub OIDC auth. No manual `mcp-publisher login` + `publish` needed.
737
756
 
738
- ## [0.8.1] - 2026-03-19
757
+ ## [0.8.1] 2026-03-19
739
758
 
740
759
  ### Added
741
760
 
@@ -746,14 +765,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
746
765
  - **Live reload LoadError in HTTP mode** — when `live_reload = true` and the `listen` gem was missing, the `start_http` method's rescue block (for rackup fallback) swallowed the live reload error, producing a confusing rack error instead of the correct "listen gem required" message. The rescue is now scoped to the rackup require only.
747
766
  - **Dangling @live_reload reference** — `@live_reload` was assigned before `start` was called. If `start` raised LoadError, the instance variable pointed to a non-functional object. Now only assigned after successful start.
748
767
 
749
- ## [0.8.0] - 2026-03-19
768
+ ## [0.8.0] 2026-03-19
750
769
 
751
770
  ### Added
752
771
 
753
772
  - **MCP Live Reload** — when running `rails ai:serve`, file changes automatically invalidate tool caches and send MCP notifications (`notifications/resources/list_changed`) to connected AI clients. The AI's context stays fresh without manual re-querying. Requires the `listen` gem (enabled by default when available). Configurable via `config.live_reload` (`:auto`, `true`, `false`) and `config.live_reload_debounce` (default: 1.5s).
754
773
  - **Live reload doctor check** — `rails ai:doctor` now warns when the `listen` gem is not installed.
755
774
 
756
- ## [0.7.1] - 2026-03-19
775
+ ## [0.7.1] 2026-03-19
757
776
 
758
777
  ### Added
759
778
 
@@ -765,7 +784,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
765
784
  - **Schema version parsing** — versions with underscores (e.g. `2024_01_15_123456`) were truncated to the first digit group. Now captures the full version string.
766
785
  - **Documentation** — updated README (detail levels, pagination, generated file tree, config options), SECURITY.md (supported versions), CONTRIBUTING.md (project structure), gemspec (post-install message), demo_script.sh (all 17 generated files).
767
786
 
768
- ## [0.7.0] - 2026-03-19
787
+ ## [0.7.0] 2026-03-19
769
788
 
770
789
  ### Added
771
790
 
@@ -788,7 +807,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
788
807
  - All tools return pagination hints when results are truncated.
789
808
  - `.windsurfrules` now uses dedicated `WindsurfSerializer` instead of sharing `RulesSerializer` with Cursor.
790
809
 
791
- ## [0.6.0] - 2026-03-18
810
+ ## [0.6.0] 2026-03-18
792
811
 
793
812
  ### Added
794
813
 
@@ -809,7 +828,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
809
828
  - Doctor checks expanded from 11 to 12
810
829
  - Static MCP resources expanded from 7 to 9
811
830
 
812
- ## [0.5.2] - 2026-03-18
831
+ ## [0.5.2] 2026-03-18
813
832
 
814
833
  ### Fixed
815
834
 
@@ -817,14 +836,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
817
836
  - **Zeitwerk dependency** — Changed from open-ended `>= 2.6` to pessimistic `~> 2.6` per RubyGems best practices
818
837
  - **Documentation** — Updated CONTRIBUTING.md, CHANGELOG.md, and CLAUDE.md to reflect Zeitwerk autoloading, introspector presets, and `.mcp.json` auto-discovery changes
819
838
 
820
- ## [0.5.1] - 2026-03-18
839
+ ## [0.5.1] 2026-03-18
821
840
 
822
841
  ### Fixed
823
842
 
824
843
  - Documentation updates and animated demo GIF added to README.
825
844
  - Zeitwerk autoloading fixes for edge cases.
826
845
 
827
- ## [0.5.0] - 2026-03-18
846
+ ## [0.5.0] 2026-03-18
828
847
 
829
848
  ### Added
830
849
 
@@ -845,7 +864,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
845
864
  - Default introspectors reduced from 21 to 8 (`:standard` preset) for faster boot; use `config.preset = :full` for all 21
846
865
  - New files auto-loaded by Zeitwerk — no manual `require_relative` needed when adding introspectors or tools
847
866
 
848
- ## [0.4.0] - 2026-03-18
867
+ ## [0.4.0] 2026-03-18
849
868
 
850
869
  ### Added
851
870
 
@@ -882,7 +901,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
882
901
  - Doctor checks expanded from 7 to 11
883
902
  - Test suite expanded from 149 to 247 examples with exact value assertions
884
903
 
885
- ## [0.3.0] - 2026-03-18
904
+ ## [0.3.0] 2026-03-18
886
905
 
887
906
  ### Added
888
907
 
@@ -907,7 +926,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
907
926
  - `generate_context` now returns `{ written: [], skipped: [] }` instead of flat array
908
927
  - Default introspectors now include `:stimulus`
909
928
 
910
- ## [0.2.0] - 2026-03-18
929
+ ## [0.2.0] 2026-03-18
911
930
 
912
931
  ### Added
913
932
 
@@ -921,7 +940,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
921
940
  - `rails ai:context_for[claude]` failing in zsh due to bracket glob interpretation
922
941
  - Double introspection in `ai:context` and `ai:context_for` tasks (removed unused `RailsAiContext.introspect` calls)
923
942
 
924
- ## [0.1.0] - 2026-03-18
943
+ ## [0.1.0] 2026-03-18
925
944
 
926
945
  ### Added
927
946
 
data/CLAUDE.md CHANGED
@@ -34,7 +34,7 @@ structure to AI assistants via the Model Context Protocol (MCP).
34
34
  7. **Diff-aware** — context regeneration skips unchanged files
35
35
  8. **Per-assistant serializers** — each AI tool gets tailored output format
36
36
  9. **Zeitwerk autoloading** — files loaded on-demand, not all upfront
37
- 10. **Introspector presets** — `:full` (32) default, `:standard` (14 core) for lightweight usage
37
+ 10. **Introspector presets** — `:full` (33) default, `:standard` (19) for lightweight usage
38
38
  11. **MCP auto-discovery** — `.mcp.json` generated by install generator
39
39
  12. **Compact by default** — context files ≤150 lines, MCP tools use `detail` parameter (summary/standard/full)
40
40
  13. **Per-tool split rules** — `.claude/rules/`, `.cursor/rules/`, `.github/instructions/`