Commit History

  1. Wire get_graph_depth() into 5 internal investigator queries (R-5, partial)⁠

    f064888

  1. fix: desktop-mode-adapt dossier output; unify 3 hardcoded copies of its path (P-1)⁠

    7650d33
  2. fix: store case_memory.json in app-data dir in desktop mode (P-1)⁠

    af4b9c1

  1. fix: wire 3 hardcoded AI models into the existing model_selector tiering (R-2/R-3/R-4)⁠

    3066feb

  1. fix(asset_investigator): surface declared liabilities, not just assets⁠

    f25c8e1
  2. fix(network_investigator): surface PageRank and risk_score instead of silently discarding them⁠

    4a0a326
  3. fix(timeline_builder): log 3 previously-silent exception handlers⁠

    5a51b25

  1. fix(math_investigator): Benford integration was completely dead -- wrong class name, wrong query shape, wrong output keys⁠

    aa20ab9
  2. fix(benfords_analyzer): rename output key chi_squared -> chi2_statistic⁠

    67ca8f6
  3. fix(benfords_analyzer): correct get_first_digit for values with leading decimal zeros⁠

    cb893f6

  1. fix(timeline_builder): pass entity_name into audit/press event fetchers⁠

    23131d6

  1. fix(ascii): replace all non-ASCII chars in Python source files⁠

    fa87992
  2. fix(B-26): add __iter__ and __getitem__ to FakeResult for offline compatibility⁠

    9e00b4a
  3. fix(B-04): remove duplicate MathInvestigator class definition⁠

    480903f
  4. fix(B-03): remove duplicate BenamiInvestigator class definition⁠

    0a34a0f
  5. fix(B-10): remove dead module-level investigate() with 0.3 asset fabrication⁠

    fa0f8ca
  6. fix(B-02 step1): remove third AffidavitInvestigator class (the broken one)⁠

    54825a7

  1. fix(INV-3): add __enter__/__exit__ to FakeSession -- investigators using 'with session.run()' no longer crash silently when DB is offline

    60c253a
  2. fix(CodeQL#12-15): use real_out_dir for makedirs and pdf_path in dossier_generator -- original output_dir was not used post-validation

    b54995d
  3. fix(CodeQL#10,#11,#21): remove Rs amount from affidavit_analyzer logger.success -- financial PII must not appear in plaintext logs

    d83f35d

  1. fix(BUG-C1): add MathInvestigator class wrapper -- all 15 investigators now importable

    dfeea7b
  2. fix(BUG-C1): add BenamiInvestigator class wrapper

    4e07a37
  3. fix(BUG-C1,BUG-H1): add AffidavitInvestigator class wrapper; remove fabricated synthetic asset history

    8702ccc

  1. fix(CodeQL#10,#11,#21): redact entity_id in affidavit_analyzer log calls -- clear-text logging of potentially sensitive identifiers

    4ec50a7
  2. fix(H-07,CodeQL#12-17): use file-anchored absolute paths for path traversal guards in dossier_generator and export -- relative realpath() was CWD-dependent

    6de77e6
  3. fix(BUG-M9): pass driver kwarg to investigators in run_investigator -- BenamiDetector/SpectralAnalyzer need driver not session

    805478a
  4. fix(BUG-C1): add MathInvestigator class wrapper -- all 15 investigators now importable

    529f177
  5. fix(BUG-C1): add BenamiInvestigator class wrapper -- resolves ImportError crashing ALL_INVESTIGATORS

    4a1062b
  6. fix(BUG-C1,BUG-H1): add AffidavitInvestigator class wrapper; remove fabricated synthetic asset history

    6bc281f

  1. fix(NEW-A3 part2): encode Indian script string literals as Unicode escapes in 4 files -- CI ASCII requirement met without data loss

    611725a
  2. fix(NEW-A3 part1): replace em-dashes/smart-quotes in 56+ Python files -- CI requires pure ASCII source

    8a0fba4

  1. fix(ai): add AffidavitInvestigator+BenamiInvestigator+MathInvestigator to ALL_INVESTIGATORS⁠

    c5025f2
  2. fix(api+ai): M-01+M-02+M-03 -- version consistency and duplicate assignments⁠

    01cf12a

  1. fix(encoding): strip non-ASCII chars from all modified files⁠

    747e613
  2. fix(ai): BUG-1+7 -- entity_label UnboundLocalError on DB exception⁠

    3c2c226
  3. fix(ai): BUG-1+7 -- entity_label UnboundLocalError on DB exception⁠

    fa5e7e8

  1. refactor(ai): multi_investigator reads max_workers from PROFILE⁠

    5733584

  1. fix(ai): BUG-8/11 — confidence threshold, FakeSession warning⁠

    7391f78

  1. fix(BUG-18/19): timeline audit events use entity_name not entity_id; fulltext index covers all 16 node types

    e728463
  2. fix(BUG-15): each investigation layer now has its own Neo4j session — isolated, independently failable

    9a1c2f4

  1. fix(BUG-04): lambda closure — all 6 investigation layers were running the same function

    5852df6
  2. fix(i18n): correct garbled Gujarati no_data string

    ec78dc9

  1. fix(investigation): richer 6-layer queries, confidence scoring, WHY explanations⁠

    7b27c41

  1. feat(ai): complete — Multi-Agent Debate Engine⁠

    ef9f819

  1. fix(api): search product field, max_hops, evidence coalesce, sources, stats

    3f059ef
  2. fix(security): remove cleartext logging and info exposure — CodeQL alerts 4-11

    b6a8cbc
  3. fix(security): path traversal guards on file output paths — CodeQL alerts 12-16

    86a78a9

  1. feat(ai): complete — Adversarial Counterevidence and Competing Hypotheses⁠

    10ac2cc
  2. fix(ai/forensics): replace empty policy_benefit_analyzer.py with full implementation⁠

    c179f19

  1. feat(ai/forensics): complete — Policy-Benefit Causal Analysis⁠

    66297ad