Commit 245d856
Fix all code review bugs: security, thread safety, correctness, and cleanup
Critical:
- C1: Block Cypher injection in McpTools.runCypher() — reject mutating queries
- C2: Add synchronized to all AnalysisCache methods for H2 thread safety
- C3: Remove dead cachePath/standardCachePath variables in McpTools.loadCacheData()
Important:
- I1: Validate EdgeKind enum in EnrichCommand before Neo4j relationship creation
- I2: Add TODO for QueryService.getStats() full-graph load (needs Cypher aggregation)
- I3: Wrap unmodifiable list in QueryService.egoGraph() with new ArrayList<>()
- I4: Pre-compile glob exclude patterns once, reuse for all files in Analyzer
- I5: Add PARSER.remove() after JavaParser parse to clean ThreadLocal
- I6: Fix analyzeCosdebase typo, pass incremental param through to analyzer
- I7: Remove redundant shutdown hook in Neo4jConfig (Spring destroyMethod suffices)
Minor:
- S1: Replace SQL-injectable countTable(String) with specific count methods
- S2: Remove duplicate source/javadoc plugins from default build (keep in release)
- S3: Fix greedy command detection — check only first non-flag arg
- S5: Escape all regex special chars in glob-to-regex conversion
- S6: Add missing "method" property in SpringRestDetector AST path
- S7: Add static Map for O(1) NodeKind/EdgeKind.fromValue() lookup
All 1227 tests pass. E2E verified on nest project.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>1 parent 1ac7acd commit 245d856
13 files changed
Lines changed: 144 additions & 114 deletions
File tree
- src
- main/java/io/github/randomcodespace/iq
- analyzer
- cache
- cli
- config
- detector/java
- mcp
- model
- query
- test/java/io/github/randomcodespace/iq/mcp
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
301 | 301 | | |
302 | 302 | | |
303 | 303 | | |
304 | | - | |
305 | | - | |
306 | | - | |
307 | | - | |
308 | | - | |
309 | | - | |
310 | | - | |
311 | | - | |
312 | | - | |
313 | | - | |
314 | | - | |
315 | | - | |
316 | | - | |
317 | | - | |
318 | | - | |
319 | | - | |
320 | | - | |
321 | | - | |
322 | | - | |
323 | | - | |
324 | | - | |
325 | | - | |
326 | | - | |
327 | | - | |
328 | | - | |
329 | | - | |
330 | | - | |
331 | | - | |
332 | | - | |
333 | | - | |
334 | | - | |
335 | 304 | | |
336 | 305 | | |
337 | 306 | | |
| |||
366 | 335 | | |
367 | 336 | | |
368 | 337 | | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
369 | 341 | | |
370 | 342 | | |
371 | 343 | | |
| |||
Lines changed: 8 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | | - | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
58 | 59 | | |
59 | 60 | | |
60 | 61 | | |
| |||
Lines changed: 34 additions & 14 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
187 | 187 | | |
188 | 188 | | |
189 | 189 | | |
| 190 | + | |
190 | 191 | | |
191 | | - | |
| 192 | + | |
192 | 193 | | |
193 | 194 | | |
194 | 195 | | |
| |||
422 | 423 | | |
423 | 424 | | |
424 | 425 | | |
| 426 | + | |
425 | 427 | | |
426 | | - | |
| 428 | + | |
427 | 429 | | |
428 | 430 | | |
429 | 431 | | |
| |||
740 | 742 | | |
741 | 743 | | |
742 | 744 | | |
743 | | - | |
744 | | - | |
745 | | - | |
| 745 | + | |
| 746 | + | |
| 747 | + | |
| 748 | + | |
| 749 | + | |
| 750 | + | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
746 | 756 | | |
747 | 757 | | |
748 | 758 | | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
749 | 768 | | |
750 | | - | |
751 | | - | |
| 769 | + | |
| 770 | + | |
752 | 771 | | |
753 | 772 | | |
754 | 773 | | |
755 | 774 | | |
756 | 775 | | |
757 | 776 | | |
758 | 777 | | |
759 | | - | |
760 | | - | |
| 778 | + | |
| 779 | + | |
| 780 | + | |
761 | 781 | | |
762 | | - | |
763 | | - | |
| 782 | + | |
764 | 783 | | |
765 | 784 | | |
766 | 785 | | |
| |||
780 | 799 | | |
781 | 800 | | |
782 | 801 | | |
783 | | - | |
784 | | - | |
| 802 | + | |
| 803 | + | |
| 804 | + | |
785 | 805 | | |
786 | 806 | | |
787 | 807 | | |
788 | 808 | | |
789 | 809 | | |
790 | 810 | | |
791 | 811 | | |
792 | | - | |
| 812 | + | |
793 | 813 | | |
794 | 814 | | |
Lines changed: 34 additions & 18 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
121 | 121 | | |
122 | 122 | | |
123 | 123 | | |
124 | | - | |
| 124 | + | |
125 | 125 | | |
126 | 126 | | |
127 | 127 | | |
| |||
139 | 139 | | |
140 | 140 | | |
141 | 141 | | |
142 | | - | |
| 142 | + | |
143 | 143 | | |
144 | 144 | | |
145 | 145 | | |
| |||
155 | 155 | | |
156 | 156 | | |
157 | 157 | | |
158 | | - | |
| 158 | + | |
159 | 159 | | |
160 | 160 | | |
161 | 161 | | |
| |||
230 | 230 | | |
231 | 231 | | |
232 | 232 | | |
233 | | - | |
| 233 | + | |
234 | 234 | | |
235 | 235 | | |
236 | 236 | | |
| |||
265 | 265 | | |
266 | 266 | | |
267 | 267 | | |
268 | | - | |
| 268 | + | |
269 | 269 | | |
270 | 270 | | |
271 | 271 | | |
| |||
300 | 300 | | |
301 | 301 | | |
302 | 302 | | |
303 | | - | |
| 303 | + | |
304 | 304 | | |
305 | 305 | | |
306 | 306 | | |
| |||
318 | 318 | | |
319 | 319 | | |
320 | 320 | | |
321 | | - | |
| 321 | + | |
322 | 322 | | |
323 | 323 | | |
324 | | - | |
| 324 | + | |
325 | 325 | | |
326 | | - | |
327 | | - | |
| 326 | + | |
| 327 | + | |
328 | 328 | | |
329 | 329 | | |
330 | 330 | | |
| |||
335 | 335 | | |
336 | 336 | | |
337 | 337 | | |
338 | | - | |
| 338 | + | |
339 | 339 | | |
340 | 340 | | |
341 | 341 | | |
| |||
456 | 456 | | |
457 | 457 | | |
458 | 458 | | |
459 | | - | |
| 459 | + | |
460 | 460 | | |
461 | | - | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
462 | 478 | | |
463 | 479 | | |
464 | 480 | | |
| |||
467 | 483 | | |
468 | 484 | | |
469 | 485 | | |
470 | | - | |
| 486 | + | |
471 | 487 | | |
472 | 488 | | |
473 | 489 | | |
| |||
481 | 497 | | |
482 | 498 | | |
483 | 499 | | |
484 | | - | |
| 500 | + | |
485 | 501 | | |
486 | | - | |
| 502 | + | |
487 | 503 | | |
488 | 504 | | |
489 | 505 | | |
| |||
511 | 527 | | |
512 | 528 | | |
513 | 529 | | |
514 | | - | |
| 530 | + | |
515 | 531 | | |
516 | 532 | | |
517 | 533 | | |
| |||
530 | 546 | | |
531 | 547 | | |
532 | 548 | | |
533 | | - | |
| 549 | + | |
534 | 550 | | |
535 | 551 | | |
536 | 552 | | |
| |||
Lines changed: 10 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| 10 | + | |
10 | 11 | | |
11 | 12 | | |
12 | 13 | | |
| |||
216 | 217 | | |
217 | 218 | | |
218 | 219 | | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
219 | 228 | | |
220 | 229 | | |
221 | | - | |
| 230 | + | |
222 | 231 | | |
223 | 232 | | |
224 | 233 | | |
| |||
Lines changed: 1 addition & 10 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | | - | |
| 31 | + | |
41 | 32 | | |
42 | 33 | | |
43 | 34 | | |
| |||
Lines changed: 2 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
| 32 | + | |
| 33 | + | |
32 | 34 | | |
33 | 35 | | |
34 | 36 | | |
| |||
Lines changed: 1 addition & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
139 | 139 | | |
140 | 140 | | |
141 | 141 | | |
| 142 | + | |
142 | 143 | | |
143 | 144 | | |
144 | 145 | | |
| |||
0 commit comments