What's Changed
- feat(efficient_did): survey-weighted Silverman bandwidth in conditional Omega* by @igerber in #594
- feat(had): cluster-robust SE on the continuous paths (Phase 2a) by @igerber in #596
- ci: SHA-pin all GitHub Actions and add CODEOWNERS (supply-chain hardening) by @igerber in #595
- Add LP-DiD launch carousel (local-projections crossover narrative) by @igerber in #597
- fix: define zero-column rank detection contract by @shawcharles in #578
- feat(synthetic_control): split cv-infeasible from failed in placebo/LOO diagnostics by @igerber in #598
- bench: FE-absorption benchmark lane with BEFORE baselines + pyfixest yardstick (scenarios 7-13) by @igerber in #600
- feat(diagnostic_report): register SpilloverDiDResults routing by @igerber in #599
- perf: factorize-once + bincount MAP demeaning, max_iter 10k parity, FE-spanned regressor guard by @igerber in #601
- perf(rust): compiled MAP demeaning kernel - rayon across columns, 1.4-2.8x on FE-absorption workloads by @igerber in #603
- refactor(survey): consolidate panel-to-unit collapse (ContinuousDiD/EfficientDiD) by @igerber in #602
- docs: clarify DiD predict support contract by @shawcharles in #580
- docs(paper): finalize JOSS submission - 20 estimators, required sections, draft-pdf CI by @igerber in #604
- perf(utils): opt-in chunked demean_map dispatch + corrected solver-phase memory attribution by @igerber in #605
- perf(linalg): slim solve_ols marshalling - 15.3->7.8 GB rust-side footprint, -21% firm-panel fits, outputs preserved by @igerber in #607
- feat(synthetic_control): ADH-2015 §4 tail diagnostics (regression_weights + sparse_synthetic_control) by @igerber in #608
- Bump version to 3.6.2 by @igerber in #609
Full Changelog: v3.6.1...v3.6.2