Commit 476efd9
feat(v2.1.0): wire FP suppression + remove Logtalk export
Context-aware false-positive suppression now active in all scan paths:
- WeakPoint gains suppressed: bool (serde default=false, audit-transparent)
- AssailReport gains suppressed_count: usize (skipped when 0)
- apply_suppression() wires kanren engine back to report after analysis
- Analyzer::analyze_inner() calls apply_suppression() on every scan
- Verbose output shows active/total counts with suppressed= semantics explained
10 suppression rules already in load_suppression_rules() now fire and
mark findings: test_file (0.99), null_checked (0.95), mutex_guarded (0.95),
constant_args (0.95), raii_managed (0.90), result_returning_fn (0.90),
enum_args (0.90), path_canonicalized (0.90), schema_validated (0.85),
timeout_protected (0.85). Heuristics intentionally broad (tune later).
Remove Logtalk export: --logtalk CLI flag removed, export_logtalk() and
write_logtalk_export() removed from kanren/mod.rs, all 3 completion files
updated. Hypatia now consumes JSON AssailReport via Elixir rules directly.
All docs updated: ROADMAP, EXPLAINME, CLAUDE.md, STATE.a2ml.
Tests: 289 passing, 0 failing across all suites.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>1 parent f02af8c commit 476efd9
22 files changed
Lines changed: 203 additions & 103 deletions
File tree
- .claude
- .machine_readable/6a2
- completions
- src
- a2ml
- assail
- kanren
- panll
- tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
168 | 168 | | |
169 | 169 | | |
170 | 170 | | |
171 | | - | |
| 171 | + | |
172 | 172 | | |
173 | 173 | | |
174 | 174 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
36 | | - | |
| 36 | + | |
37 | 37 | | |
38 | 38 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
69 | 69 | | |
70 | 70 | | |
71 | 71 | | |
72 | | - | |
| 72 | + | |
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
38 | | - | |
| 38 | + | |
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
43 | | - | |
44 | 43 | | |
45 | 44 | | |
46 | 45 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
72 | 72 | | |
73 | 73 | | |
74 | 74 | | |
75 | | - | |
76 | 75 | | |
77 | 76 | | |
78 | 77 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
48 | | - | |
49 | 48 | | |
50 | 49 | | |
51 | 50 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
832 | 832 | | |
833 | 833 | | |
834 | 834 | | |
| 835 | + | |
835 | 836 | | |
836 | 837 | | |
837 | 838 | | |
| |||
856 | 857 | | |
857 | 858 | | |
858 | 859 | | |
| 860 | + | |
859 | 861 | | |
860 | 862 | | |
861 | 863 | | |
| |||
0 commit comments