Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1242 commits
Select commit Hold shift + click to select a range
fff687a
ci: rerun second-review fixes after shadowing repair
TheHiddenObserver Aug 5, 2026
1f8cfb9
ci: publish validated second-review fixes
TheHiddenObserver Aug 5, 2026
1419719
fix: require formula and compile execution evidence
github-actions[bot] Aug 5, 2026
399789c
ci: placeholder
TheHiddenObserver Aug 5, 2026
6a8a402
noop
TheHiddenObserver Aug 5, 2026
844f1ae
noop2
TheHiddenObserver Aug 5, 2026
0804be2
noop3
TheHiddenObserver Aug 5, 2026
32664ed
noop4
TheHiddenObserver Aug 5, 2026
f29204b
noop5
TheHiddenObserver Aug 5, 2026
d2e21e4
ci: remove second-review temporary files
TheHiddenObserver Aug 5, 2026
fff9794
ci: stage formula weight review fix
TheHiddenObserver Aug 5, 2026
345ade7
ci: rerun formula weight review fix tests
TheHiddenObserver Aug 5, 2026
a334fa6
fix: validate formula sample weights after alignment
github-actions[bot] Aug 5, 2026
105ab06
ci: remove formula-weight review workflows
TheHiddenObserver Aug 5, 2026
5e37526
ci: stage formula weight GPU matrix tests
TheHiddenObserver Aug 5, 2026
2023671
test: cover formula weight GPU device purity
github-actions[bot] Aug 5, 2026
b474c51
ci: remove formula weight GPU test workflow
TheHiddenObserver Aug 5, 2026
e519996
ci: stage GLM inference device-purity fix
TheHiddenObserver Aug 5, 2026
b836963
fix: keep GLM inference weights on device
github-actions[bot] Aug 5, 2026
779da52
ci: stage GPU predicate review fix
TheHiddenObserver Aug 5, 2026
1b6e2e7
test: repair GPU inference roundtrip predicates
github-actions[bot] Aug 5, 2026
eefbd47
ci: remove final inference review workflows
TheHiddenObserver Aug 5, 2026
4294f9d
ci: stage GLM device-purity test binding fix
TheHiddenObserver Aug 5, 2026
6c0e934
test: patch GLM device-purity binding
github-actions[bot] Aug 5, 2026
db61d9d
ci: remove final device-purity review workflow
TheHiddenObserver Aug 5, 2026
82a62c0
ci: stage weighted FISTA review fix
TheHiddenObserver Aug 5, 2026
d05d5e9
fix: use weighted centering for GLM FISTA
github-actions[bot] Aug 5, 2026
499f1a7
ci: remove weighted FISTA review workflow
TheHiddenObserver Aug 5, 2026
17e1d08
ci: stage weighted objective documentation fix
TheHiddenObserver Aug 5, 2026
f6ecf2b
docs: record weighted formula and FISTA fixes
github-actions[bot] Aug 5, 2026
bba474c
ci: remove weighted objective documentation workflow
TheHiddenObserver Aug 5, 2026
14c54c5
ci: stage weighted IRLS and compile-policy review fix
TheHiddenObserver Aug 5, 2026
a5d9149
ci: rerun weighted IRLS review fix on full CPU suite
TheHiddenObserver Aug 5, 2026
fc9f510
fix: align weighted IRLS and compile policy
github-actions[bot] Aug 5, 2026
e5ba35f
ci: remove weighted IRLS review workflows
TheHiddenObserver Aug 5, 2026
a645ce2
ci: stage IRLS objective and weighted diagnostics review fix
TheHiddenObserver Aug 5, 2026
9dede2f
fix: unify IRLS objective and weighted diagnostics
github-actions[bot] Aug 5, 2026
b44914e
ci: remove IRLS objective review workflow
TheHiddenObserver Aug 5, 2026
a5517a9
ci: stage analytic-weight inference review fix
TheHiddenObserver Aug 5, 2026
bf6ef03
ci: rerun analytic-weight review fix with migrated tests
TheHiddenObserver Aug 5, 2026
0e28ae3
ci: rerun analytic-weight fixes with corrected test import
TheHiddenObserver Aug 5, 2026
c06e394
fix: preserve analytic-weight inference contracts
github-actions[bot] Aug 5, 2026
b664d6f
ci: remove analytic-weight review workflows
TheHiddenObserver Aug 5, 2026
8080cb0
ci: stage GLM response-domain review fix
TheHiddenObserver Aug 5, 2026
0e544a3
fix: enforce GLM response domains
github-actions[bot] Aug 5, 2026
5850b96
ci: stage penalized GLM response-domain review fix
TheHiddenObserver Aug 5, 2026
73a4936
fix: validate penalized GLM response domains
github-actions[bot] Aug 5, 2026
48218e3
ci: remove GLM response-domain review workflows
TheHiddenObserver Aug 5, 2026
751cc00
ci: stage scalar GLM response-shape review fix
TheHiddenObserver Aug 5, 2026
c8d70d8
ci: rerun scalar GLM shape fix with list compatibility
TheHiddenObserver Aug 5, 2026
b7114a3
fix: enforce scalar GLM response shape
github-actions[bot] Aug 5, 2026
eac9213
ci: remove scalar GLM response-shape review workflows
TheHiddenObserver Aug 5, 2026
771f42e
ci: stage real nonempty GLM response review fix
TheHiddenObserver Aug 5, 2026
2385d4e
ci: rerun real nonempty GLM response fix before casts
TheHiddenObserver Aug 5, 2026
808457c
fix: require real nonempty GLM responses
github-actions[bot] Aug 5, 2026
9d30aa7
ci: remove real-response review workflows
TheHiddenObserver Aug 5, 2026
e3fc937
ci: stage GLM design and weight contract review fix
TheHiddenObserver Aug 5, 2026
725a9dc
fix: unify GLM design and weight contracts
github-actions[bot] Aug 5, 2026
70a8dce
ci: remove GLM design and weight review workflow
TheHiddenObserver Aug 5, 2026
fb29948
chore: stage PR87 review fix v37
TheHiddenObserver Aug 5, 2026
bca4fb5
chore: run PR87 review fix v37
TheHiddenObserver Aug 5, 2026
5d02f07
fix: harden weighted solver and HC1 contracts
github-actions[bot] Aug 5, 2026
e0bc806
chore: stage PR87 review fix v38
TheHiddenObserver Aug 5, 2026
e2a10e7
chore: run PR87 review fix v38
TheHiddenObserver Aug 5, 2026
2ba9460
fix: harden adjacent solver contracts
github-actions[bot] Aug 5, 2026
3bbbd75
chore: stage PR87 review fix v39
TheHiddenObserver Aug 5, 2026
5cade0d
chore: run PR87 review fix v39
TheHiddenObserver Aug 5, 2026
776605e
fix: preserve solver objectives and fallbacks
github-actions[bot] Aug 5, 2026
bf3c606
chore: stage PR87 review fix v40
TheHiddenObserver Aug 5, 2026
1d150de
chore: run PR87 review fix v40
TheHiddenObserver Aug 5, 2026
de85251
chore: stage PR87 review fix v41
TheHiddenObserver Aug 5, 2026
274ee28
chore: run PR87 review fix v41
TheHiddenObserver Aug 5, 2026
2bcff7f
chore: stage PR87 review fix v42
TheHiddenObserver Aug 5, 2026
758781a
chore: run PR87 review fix v42
TheHiddenObserver Aug 5, 2026
e032329
fix: align solver compatibility and backend contracts
github-actions[bot] Aug 5, 2026
2de6d7b
chore: trigger exact-head validation
TheHiddenObserver Aug 5, 2026
10861c6
chore: stage PR87 review fix v43
TheHiddenObserver Aug 5, 2026
e3804d0
chore: run PR87 review fix v43
TheHiddenObserver Aug 5, 2026
411b24b
chore: stage PR87 review fix v44
TheHiddenObserver Aug 5, 2026
e1dd662
chore: run PR87 review fix v44
TheHiddenObserver Aug 5, 2026
fae8632
fix: preserve backend failures in Newton validation
github-actions[bot] Aug 5, 2026
2837b2e
chore: stage PR87 review fix v45
TheHiddenObserver Aug 5, 2026
1e430c6
chore: run PR87 review fix v45
TheHiddenObserver Aug 5, 2026
cf68950
chore: stage PR87 review fix v46
TheHiddenObserver Aug 5, 2026
5fbb3df
chore: run PR87 review fix v46
TheHiddenObserver Aug 5, 2026
2092d0e
fix: normalize iterative solver dtype contracts
github-actions[bot] Aug 5, 2026
5e06de6
chore: stage PR87 review fix v47
TheHiddenObserver Aug 5, 2026
1493bb6
chore: run PR87 review fix v47
TheHiddenObserver Aug 5, 2026
8cb253f
fix: preserve backend linear-solve failures
github-actions[bot] Aug 5, 2026
ce7ec12
chore: stage PR87 review fix v48
TheHiddenObserver Aug 5, 2026
487894e
chore: run PR87 review fix v48
TheHiddenObserver Aug 5, 2026
ef0165e
fix: align proximal Newton trial backtracking
github-actions[bot] Aug 5, 2026
4fca0fb
chore: stage PR87 review fix v49
TheHiddenObserver Aug 5, 2026
d2a7ba0
chore: run PR87 review fix v49
TheHiddenObserver Aug 5, 2026
0ee4af7
fix: preserve Armijo index errors
github-actions[bot] Aug 5, 2026
43c53c6
chore: trigger exact-head validation
TheHiddenObserver Aug 5, 2026
44351d8
chore: add PR87 broad-exception scan
TheHiddenObserver Aug 5, 2026
dbd9d0a
chore: run PR87 broad-exception scan
TheHiddenObserver Aug 5, 2026
59349b3
chore: stage PR87 linalg fallback fixes
TheHiddenObserver Aug 5, 2026
17689da
chore: run PR87 linalg fallback fix batch
TheHiddenObserver Aug 5, 2026
927db5b
chore: correct PR87 v50 patch harness
TheHiddenObserver Aug 5, 2026
bba60e8
chore: make PR87 v50 harness section-based
TheHiddenObserver Aug 5, 2026
33cd963
fix: preserve GPU linalg infrastructure failures
github-actions[bot] Aug 5, 2026
69e0216
chore: stage PR87 CV objective fixes
TheHiddenObserver Aug 5, 2026
911191b
chore: run PR87 CV objective fix batch
TheHiddenObserver Aug 5, 2026
758fced
fix: preserve penalized CV objectives
github-actions[bot] Aug 5, 2026
a79bfa8
chore: run PR87 independent fallback audit
TheHiddenObserver Aug 5, 2026
4eae9f7
chore: stage PR87 CV numeric fallback fixes
TheHiddenObserver Aug 5, 2026
cda0475
chore: run PR87 CV numeric fallback fix batch
TheHiddenObserver Aug 5, 2026
a33584d
fix: complete penalized CV fallback contracts
github-actions[bot] Aug 5, 2026
50e0e31
chore: run verified PR87 statistical review fix
TheHiddenObserver Aug 5, 2026
85dc901
chore: adapt weighted Torch parity gate
TheHiddenObserver Aug 5, 2026
c3dcbed
chore: fix weighted Torch parity assertions
TheHiddenObserver Aug 5, 2026
35ef5f4
fix: correct weighted logistic and fallback semantics
github-actions[bot] Aug 5, 2026
4a52cea
chore: run PR87 dedicated CV review fix
TheHiddenObserver Aug 5, 2026
47d865f
fix: preserve dedicated CV backend contracts
github-actions[bot] Aug 5, 2026
110ee48
chore: run PR87 weighted CV grid review fix
TheHiddenObserver Aug 5, 2026
9f2e2fb
chore: normalize generated LogisticCV grid indentation
TheHiddenObserver Aug 5, 2026
a4c3b70
chore: repair generated LogisticCV dedent
TheHiddenObserver Aug 5, 2026
1a780a2
chore: diagnose generated LogisticCV indentation
TheHiddenObserver Aug 5, 2026
1006893
chore: normalize LogisticCV regions independently
TheHiddenObserver Aug 5, 2026
3f2f052
chore: locate LogisticCV input block structurally
TheHiddenObserver Aug 5, 2026
6014202
chore: inspect raw LogisticCV patch output
TheHiddenObserver Aug 5, 2026
b24fc52
chore: indent only generated LogisticCV grid
TheHiddenObserver Aug 5, 2026
d9248fc
fix: weight dedicated CV default grids
github-actions[bot] Aug 5, 2026
4fe3318
chore: stage auto CV routing fix
TheHiddenObserver Aug 5, 2026
3678dfd
chore: run auto CV routing review fix
TheHiddenObserver Aug 5, 2026
31bf5a3
fix: preserve auto CV backend routing
github-actions[bot] Aug 5, 2026
dc13f82
chore: trigger exact-head validation
TheHiddenObserver Aug 5, 2026
32f918b
chore: stage CV refit backend consistency fix
TheHiddenObserver Aug 5, 2026
90d7f4b
chore: run CV refit backend review fix
TheHiddenObserver Aug 5, 2026
db952da
fix: keep CV refit on selected backend
github-actions[bot] Aug 5, 2026
bba8083
chore: stage dedicated CV lifecycle fix
TheHiddenObserver Aug 5, 2026
ebdaca5
chore: run dedicated CV lifecycle review fix
TheHiddenObserver Aug 5, 2026
be619be
fix: make dedicated CV refits transactional
github-actions[bot] Aug 5, 2026
78367ce
chore: stage finite-guard CV lifecycle fix
TheHiddenObserver Aug 5, 2026
5b43e85
chore: run finite-guard CV lifecycle review fix
TheHiddenObserver Aug 5, 2026
541b083
fix: reset CV state before finite validation
github-actions[bot] Aug 5, 2026
dcdb7d8
chore: stage ElasticNet inference contract fix
TheHiddenObserver Aug 5, 2026
69e43bc
chore: run ElasticNet inference review fix
TheHiddenObserver Aug 5, 2026
64cf0d4
chore: correct ElasticNet summary test contract
TheHiddenObserver Aug 5, 2026
b44263f
fix: honor ElasticNet inference contracts
github-actions[bot] Aug 5, 2026
bcd4774
docs: correct ElasticNet wrapper contracts
TheHiddenObserver Aug 5, 2026
9c68a21
chore: stage ElasticNet documentation consistency fix
TheHiddenObserver Aug 5, 2026
a7e05ce
chore: run ElasticNet documentation review fix
TheHiddenObserver Aug 5, 2026
b09b577
chore: fix ElasticNet documentation patch anchors
TheHiddenObserver Aug 5, 2026
e3a3505
chore: trigger corrected ElasticNet documentation batch
TheHiddenObserver Aug 5, 2026
c5c91eb
docs: align ElasticNet API and inference semantics
github-actions[bot] Aug 5, 2026
69b41e2
chore: stage ElasticNet Ridge scaling fix
TheHiddenObserver Aug 5, 2026
a8a530b
chore: run ElasticNet Ridge scaling review fix
TheHiddenObserver Aug 5, 2026
3570c12
docs: correct ElasticNet Ridge alpha scaling
github-actions[bot] Aug 5, 2026
c6f42e4
chore: trigger exact-head validation
TheHiddenObserver Aug 5, 2026
d2f5756
docs: remove unverified ElasticNet performance claims
TheHiddenObserver Aug 5, 2026
094de7f
docs: remove unverified ElasticNet performance claims
TheHiddenObserver Aug 5, 2026
86ec2e1
chore: stage ElasticNet evidence documentation closeout
TheHiddenObserver Aug 5, 2026
95f0c05
chore: run ElasticNet evidence documentation closeout
TheHiddenObserver Aug 5, 2026
9d1ed43
docs: qualify ElasticNet performance evidence
github-actions[bot] Aug 5, 2026
98d8f52
chore: trigger final exact-head validation
TheHiddenObserver Aug 5, 2026
d3fba1b
fix: accept cached torch compile evidence in benchmark
TheHiddenObserver Aug 5, 2026
5349844
test: cover cached torch compile benchmark evidence
TheHiddenObserver Aug 5, 2026
cad4235
fix: require prior compiled evidence for cache reuse
TheHiddenObserver Aug 5, 2026
3950b5b
test: require prior diagnostic for compile cache reuse
TheHiddenObserver Aug 5, 2026
d72d4a2
chore: apply opt-in torch compile policy
TheHiddenObserver Aug 6, 2026
eb4117c
chore: install pytest for policy update validation
TheHiddenObserver Aug 6, 2026
d2fdc11
fix: make torch compile explicitly opt-in
github-actions[bot] Aug 6, 2026
64ea8ce
chore: close out opt-in compile policy references
TheHiddenObserver Aug 6, 2026
c313eab
docs: clarify torch compile opt-in policy
github-actions[bot] Aug 6, 2026
585e084
chore: trigger exact-head validation
TheHiddenObserver Aug 6, 2026
c2e0db6
chore: remove exact-head validation trigger
TheHiddenObserver Aug 6, 2026
71a9773
bench: add torch compile scale crossover benchmark
TheHiddenObserver Aug 6, 2026
ec10dd7
test: cover torch compile scale benchmark contract
TheHiddenObserver Aug 6, 2026
2679d15
chore: validate scale benchmark on Python 3.9
TheHiddenObserver Aug 6, 2026
801f2fe
fix: keep scale benchmark compatible with Python 3.9
github-actions[bot] Aug 6, 2026
5dc8ce1
chore: trigger exact-head scale benchmark CI
TheHiddenObserver Aug 6, 2026
728aaa3
chore: remove exact-head scale benchmark CI trigger
TheHiddenObserver Aug 6, 2026
c9e2b6e
ci: run PR87 review fix cycle
TheHiddenObserver Aug 6, 2026
9570ea9
fix: close code review correctness gaps
github-actions[bot] Aug 6, 2026
fc33b04
ci: validate PR87 review fixes without test filtering
TheHiddenObserver Aug 6, 2026
f5fec82
test: validate PR87 code review fixes
github-actions[bot] Aug 6, 2026
af2e550
ci: run PR87 review round 3 fixes
TheHiddenObserver Aug 6, 2026
0cf5049
ci: fix PR87 round 3 warning capture
TheHiddenObserver Aug 6, 2026
d51bfbb
fix: normalize validated weights and torch warm starts
github-actions[bot] Aug 6, 2026
a35fb08
ci: run PR87 review round 4 fixes
TheHiddenObserver Aug 6, 2026
2e89617
fix: make logistic refits transactional
github-actions[bot] Aug 6, 2026
b62b754
ci: run PR87 review round 5 fixes
TheHiddenObserver Aug 6, 2026
9feeb28
ci: retry PR87 review round 5
TheHiddenObserver Aug 6, 2026
944d0c3
fix: validate logistic controls and convergence
github-actions[bot] Aug 6, 2026
61f1790
ci: run PR87 review round 6 fixes
TheHiddenObserver Aug 6, 2026
67be2d4
fix: make CV scoring fallbacks explicit
github-actions[bot] Aug 6, 2026
d1c9e20
ci: run PR87 review round 7 fixes
TheHiddenObserver Aug 6, 2026
af29060
fix: validate IRLS penalty and CV step hints
github-actions[bot] Aug 6, 2026
dd3ccf4
ci: run PR87 local-full review gate
TheHiddenObserver Aug 6, 2026
86d0e9a
ci: retry PR87 local-full review gate
TheHiddenObserver Aug 6, 2026
ceeaf80
ci: retry PR87 local-full gate with exact scoring anchor
TheHiddenObserver Aug 6, 2026
9208537
ci: run exact PR87 local-full closure
TheHiddenObserver Aug 6, 2026
8208af2
ci: rerun PR87 local-full closure without trailing whitespace
TheHiddenObserver Aug 6, 2026
70dc7e3
fix: close PR87 local review gates
github-actions[bot] Aug 6, 2026
3e86473
ci: run PR87 review round 9 likelihood fix
TheHiddenObserver Aug 6, 2026
3fe5df7
ci: retry PR87 review round 9 likelihood fix
TheHiddenObserver Aug 6, 2026
be09b7d
ci: retry PR87 likelihood fix with isolated patch script
TheHiddenObserver Aug 6, 2026
6577334
fix: unify logistic likelihood diagnostics
github-actions[bot] Aug 6, 2026
148210d
ci: run PR87 review round 10 inference fix
TheHiddenObserver Aug 6, 2026
3ae9dab
fix: preserve fitted likelihood during inference
github-actions[bot] Aug 6, 2026
f85c187
ci: trigger exact-head PR87 hosted validation
TheHiddenObserver Aug 6, 2026
76f9f5e
ci: remove PR87 hosted validation trigger
TheHiddenObserver Aug 6, 2026
35b9151
chore: stage PR87 classifier review patch
TheHiddenObserver Aug 6, 2026
1a80c3b
ci: run PR87 classifier review fix
TheHiddenObserver Aug 6, 2026
e9b819e
fix: align logistic prediction contracts
github-actions[bot] Aug 6, 2026
4769fdc
chore: stage PR87 threshold API review patch
TheHiddenObserver Aug 6, 2026
82427e9
ci: run PR87 threshold API review fix
TheHiddenObserver Aug 6, 2026
c53bb23
fix: unify logistic threshold validation
github-actions[bot] Aug 6, 2026
6365199
chore: stage PR87 CV scoring review patch
TheHiddenObserver Aug 6, 2026
52abe10
ci: run PR87 CV scoring review fix
TheHiddenObserver Aug 6, 2026
e960606
ci: retry PR87 CV scoring review fix
TheHiddenObserver Aug 6, 2026
aa91939
fix: preserve CV scoring programming errors
github-actions[bot] Aug 6, 2026
d4cfa27
chore: stage PR87 follow-up review patch
TheHiddenObserver Aug 6, 2026
9900458
ci: run PR87 follow-up review fix
TheHiddenObserver Aug 6, 2026
9f9463a
fix: close logistic and CV follow-up contracts
github-actions[bot] Aug 6, 2026
32e406d
chore: stage PR87 weight residency review patch
TheHiddenObserver Aug 6, 2026
f792c6e
chore: strengthen PR87 weight residency review patch
TheHiddenObserver Aug 6, 2026
74ce82b
ci: run PR87 weight residency review fix
TheHiddenObserver Aug 6, 2026
990c504
fix: keep logistic weights device-native
github-actions[bot] Aug 6, 2026
ecbdb49
chore: stage PR87 training metric review patch
TheHiddenObserver Aug 6, 2026
811c9bf
ci: run PR87 training metric review fix
TheHiddenObserver Aug 6, 2026
9dced60
ci: retry PR87 training metric review fix
TheHiddenObserver Aug 6, 2026
43aa2cc
fix: decouple logistic training metrics
github-actions[bot] Aug 6, 2026
e84f523
chore: stage PR87 summary error review patch
TheHiddenObserver Aug 6, 2026
3e8645b
ci: run PR87 summary error review fix
TheHiddenObserver Aug 6, 2026
1107cd4
fix: narrow logistic summary metric fallback
github-actions[bot] Aug 6, 2026
ab63322
ci: trigger final PR87 hosted validation
TheHiddenObserver Aug 6, 2026
1c44fe7
ci: remove final PR87 hosted validation trigger
TheHiddenObserver Aug 6, 2026
ef3bc74
fix: remove GLM survival import cycle
TheHiddenObserver Aug 6, 2026
3cefcb7
test: cover GLM import-order independence
TheHiddenObserver Aug 6, 2026
7e0cd9c
docs: record import-cycle fix
TheHiddenObserver Aug 6, 2026
9700d2b
docs: document import-order repair
TheHiddenObserver Aug 6, 2026
9397171
docs: 补充导入顺序修复说明
TheHiddenObserver Aug 6, 2026
2494566
Merge pull request #87 from TheHiddenObserver/agent/maintenance-0.2.4…
TheHiddenObserver Aug 6, 2026
7cec132
release: add v0.2.4 notes
TheHiddenObserver Aug 6, 2026
19504dd
release: bump project version to 0.2.4
TheHiddenObserver Aug 6, 2026
6e5b6b7
release: bump package version to 0.2.4
TheHiddenObserver Aug 6, 2026
104cd06
release: finalize 0.2.4 root changelog
TheHiddenObserver Aug 6, 2026
f31ba3e
release: finalize English 0.2.4 changelog
TheHiddenObserver Aug 6, 2026
de802a8
release: finalize Chinese 0.2.4 changelog
TheHiddenObserver Aug 6, 2026
31a00cb
release: link v0.2.4 preparation PR
TheHiddenObserver Aug 6, 2026
0aeeb95
Merge pull request #88 from TheHiddenObserver/release/v0.2.4
TheHiddenObserver Aug 6, 2026
d0ee8f8
docs: rebuild development roadmap for 0.2.4
TheHiddenObserver Aug 6, 2026
f95447e
Merge pull request #89 from TheHiddenObserver/agent/rebuild-roadmap-v…
TheHiddenObserver Aug 6, 2026
8c72e94
merge: synchronize benchmark dashboard with statgpu 0.2.4
github-actions[bot] Aug 6, 2026
5f50754
chore: refresh synchronized benchmark dashboard assets
TheHiddenObserver Aug 6, 2026
c394acc
docs: synchronize benchmark dashboard navigation
TheHiddenObserver Aug 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
155 changes: 155 additions & 0 deletions .github/releases/v0.2.3.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
# statgpu 0.2.3

statgpu 0.2.3 is a substantial survival-analysis release. It completes the first major Cox proportional-hazards implementation phase, expands Cox model selection and penalized estimation, and hardens numerical, inference, and packaging behavior across the supported NumPy, CuPy, and PyTorch backends.

## Highlights

- Complete CoxPH support for **Breslow, Efron, and Exact ties**.
- Delayed entry and `(start, stop]` counting-process data.
- Shared-coefficient stratified Cox models with stratum-specific baselines.
- Subject-aware repeated-row handling and `Surv(start, stop, event)` formula input.
- Extended `CoxPHCV` scoring, fold construction, diagnostics, and final refitting.
- Hardened L1, L2, Elastic Net, SCAD, and MCP penalized Cox estimation.
- Universal `py3-none-any` wheel validated on Linux, Windows, and macOS.

## CoxPH Phase 1 completion

### Tie handling and risk sets

`CoxPH` now supports all three primary tie methods:

- `ties="breslow"`;
- `ties="efron"`;
- `ties="exact"`.

The implementation uses shared NumPy, CuPy, and Torch-CUDA risk-set primitives for the partial-likelihood objective, gradient, information matrix, and baseline estimation. Exact tied-event partitions use backend-native dynamic programming rather than a CPU-only implementation.

### Delayed entry, start-stop rows, and stratification

The public Cox interface now supports:

- delayed entry;
- `(start, stop]` counting-process rows;
- repeated rows belonging to the same subject;
- shared coefficients with stratum-specific baseline hazards;
- formula input through `Surv(start, stop, event)`.

Formula-driven NA removal now keeps entry, cluster, strata, subject, response, and design arrays aligned.

### Inference and baseline prediction

For Breslow and Efron fits, model-based, HC0, HC1, and cluster covariance are supported where the requested data configuration is eligible. Exact ties currently support model-based covariance only; unsupported robust-covariance requests fail explicitly instead of silently changing behavior.

Cox numerical stability has been strengthened through centered risk-set moments and log-domain baseline prediction. Singular information matrices are rejected rather than returning misleading zero standard errors.

Baseline prediction requires `compute_inference=True`. The conventional Breslow baseline estimator is used after coefficient fitting, including when coefficients were fitted with Efron or Exact ties.

## CoxPHCV completion

`CoxPHCV` held-out partial likelihood now supports:

- Breslow, Efron, and Exact ties;
- delayed entry and start-stop data;
- strata;
- subject-grouped folds, so repeated rows from one subject remain in one fold;
- device-native held-out scoring;
- convergence- and failure-aware candidate diagnostics;
- selected-penalty refitting on the complete dataset.

Full-data cache identities, fold validation, cloneability, repeated fitting, pickling, and failed-refit state cleanup were hardened.

Requested two-stage or successive-halving controls currently execute one deterministic exhaustive full-precision candidate pass. This avoids repeated complete-grid fitting without pretending that unsafe screening has occurred.

## Penalized Cox and grouped penalties

Penalized Cox estimation was hardened for:

- L1;
- L2;
- Elastic Net;
- SCAD;
- MCP.

The unidentified Cox intercept was removed, Cox-specific SCAD/MCP warm starts were corrected, and Torch Efron value, gradient, and Hessian paths remain native rather than routing through CuPy.

`PenalizedCoxPHModel` remains an estimation-only API in this release. Passing `compute_inference=True` raises `NotImplementedError` explicitly.

Public Group Lasso and Adaptive Group Lasso behavior now follows the generic loss-gradient and exact group-proximal implementation consistently across supported backends.

## Reliability and API hardening

This release also improves:

- failed-fit and failed-refit state resets;
- singular-information handling;
- censoring- and tie-correct concordance semantics;
- device-label grouping without accidental coercion;
- independence from optional statsmodels for robust Cox covariance;
- CV cache identity and candidate eligibility;
- one-shot `cv_splits` iterator reuse across repeated fit, clone, reconstruction, and pickle.

## Installation and platform support

Base CPU installation:

```bash
pip install statgpu==0.2.3
```

CUDA extras:

```bash
pip install "statgpu[gpu11]==0.2.3"
pip install "statgpu[gpu12]==0.2.3"
```

PyTorch backend:

```bash
pip install "statgpu[torch]==0.2.3"
```

The published wheel is a pure-Python `py3-none-any` artifact. The exact release wheel is clean-installed and exercised on Ubuntu, Windows, and macOS using Python 3.11, including a CPU `LinearRegression.fit/predict` smoke test and public Cox imports. The broader regression suite covers Python 3.9–3.12 on Ubuntu.

The cross-platform wheel validation establishes CPU-wheel portability. It does not add Apple MPS support. CUDA execution still requires a compatible NVIDIA driver/runtime and the matching CuPy or PyTorch package.

Optional Cython CPU accelerators are not embedded in the universal wheel. Their `.pyx`/`.pxd` sources remain in the source distribution for local builds.

## Validation

The final reviewed implementation head for the CoxPH Phase 1 work is:

```text
f05a44ad363b46612e956e137e2f00d040765acb
```

Hosted workflow #960 passed documentation, static, full CPU, and Python 3.9–3.12 regression jobs. The complete CPU suite reported **1881 passed and 662 skipped**.

The exact-head physical-GPU promotion artifact records:

- schema 3;
- 134/134 checks passed;
- zero child and nested return codes;
- empty gate-failure arrays;
- clean source state before and after execution;
- SHA-256 `bd4058450def691dd29e9d78853534016c6da70c33192a97dc312d95cbe5d76d`.

Physical-GPU evidence: https://gist.github.com/TheHiddenObserver/afdcad86a243e68a918d852b92e984a4

No universal GPU speedup claim is made. Performance depends on problem size, backend, hardware, tie method, and synchronization costs.

## Upgrade notes and known limits

- Python 3.9 or newer is required.
- Exact ties do not currently provide robust or cluster covariance.
- `PenalizedCoxPHModel` inference is not implemented in 0.2.3.
- Baseline prediction requires inference-enabled fitting.
- Two-stage and successive-halving CoxPHCV controls currently use the documented exhaustive single-pass safety strategy.
- Apple MPS is not currently a statgpu device backend.

## Full change history

- Main implementation: https://github.com/TheHiddenObserver/statgpu/pull/80
- Release preparation: https://github.com/TheHiddenObserver/statgpu/pull/86
- Full comparison: https://github.com/TheHiddenObserver/statgpu/compare/v0.2.2...v0.2.3
- Repository changelog: https://github.com/TheHiddenObserver/statgpu/blob/master/CHANGELOG.md
113 changes: 113 additions & 0 deletions .github/releases/v0.2.4.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
# statgpu 0.2.4

statgpu 0.2.4 is a maintenance and correctness release focused on reliable estimator contracts across NumPy, CuPy, and PyTorch. It hardens generalized linear models, direct and cross-validated linear-model wrappers, solver dispatch, analytic-weight handling, finite-input validation, and Torch compilation behavior. The release does not introduce a new model family; it makes existing public APIs safer, more consistent, and easier to diagnose.

## Highlights

- Corrected arbitrary-link Binomial IRLS and direct `LogisticRegression` weighting, likelihood, convergence, and prediction contracts.
- Made `RidgeCV`, `ElasticNetCV`, `LogisticRegressionCV`, and unified penalized cross-validation failure-safe and backend-consistent.
- Added backend-native finite-value, shape, response-domain, and analytic-weight validation without unnecessary full GPU-to-CPU copies.
- Removed silent or over-broad numerical fallbacks that could hide CUDA OOM, device, indexing, contract, or programming errors.
- Corrected solver/penalty compatibility so smooth solvers reject non-smooth objectives instead of optimizing only part of the declared problem.
- Kept internal Torch execution eager by default while preserving explicit, observable `torch.compile` opt-in modes.
- Improved scikit-learn cloning, tags, nested `set_params`, transactional refits, formula alignment, and fresh-interpreter import stability.

## Logistic regression and GLM correctness

Binomial IRLS now uses the correct Fisher weights, working response, and Bernoulli line-search objective for arbitrary supported links. Warm starts, analytic weights, and quadratic penalties are normalized and validated on the selected backend, device, and dtype before numerical work.

Direct `LogisticRegression` now enforces strict binary responses and finite controls, clears stale fitted state before every refit, reports non-convergence explicitly, and uses the registered numerically stable logistic objective for fitted log-likelihood diagnostics across NumPy, CuPy, and Torch. Likelihood, AIC, BIC, pseudo-R², and convergence diagnostics remain available independently of covariance inference.

Hard predictions use integer dtype on every backend. Single-column responses no longer trigger accidental broadcasting, and non-finite decision thresholds are rejected. Confusion-matrix metrics remain available for one-class targets, while ROC-AUC and average precision retain their explicit class-support requirements. Analytic weights stay device-native on CuPy and Torch paths rather than being copied wholesale to NumPy solely for CPU inference bookkeeping.

GLM sample weights now follow one analytic-weight convention across fitting, ridge scaling, line search, pseudo-loglikelihood, information criteria, dispersion, and sandwich covariance. Globally rescaling analytic weights does not change fitted parameters or reported diagnostics. Formula sample weights are aligned only after Patsy determines the retained rows, including device-native Torch and CuPy alignment.

## Cross-validation and estimator behavior

Dedicated `RidgeCV`, `ElasticNetCV`, and `LogisticRegressionCV` fits are transactional: every fit attempt clears stale state, candidate selections are not published until the final full-data refit succeeds, and `device="auto"` keeps the backend selected during cross-validation for the final refit.

Default Logistic and Elastic Net regularization grids incorporate analytic weights and satisfy integer-weight row-replication equivalence. Validation scoring preserves the estimator's declared loss instead of silently substituting MSE for non-Gaussian objectives. Optional optimized scoring and Lipschitz recovery are narrow and visible; programming errors, shape errors, CUDA OOM, and device failures remain fatal.

`ElasticNet` and `ElasticNetCV` now expose the maintained post-fit inference contract directly. With `compute_inference=True`, inference is run only after the selected penalty parameters are refit on the full dataset; fold models remain estimation-only. The public documentation also reflects the shared average-loss scaling under which `ElasticNet(alpha, l1_ratio=0)` matches `Ridge(alpha)`.

Estimator constructor values are retained separately from normalized runtime attributes so legacy and current scikit-learn clone checks work. Nested `set_params`, fitted-state invalidation, public tags, and finite-input wrappers follow transactional behavior.

## Solver and backend safety

The solver matrix now treats Elastic Net and other proximal penalties as non-smooth. Newton, L-BFGS, and L-BFGS-B reject unsupported non-smooth combinations instead of optimizing only the smooth portion of the objective. The previous Euclidean-prox Newton shortcut was removed because it did not solve the required Hessian-metric proximal subproblem. Direct non-smooth proximal-Newton requests now emit a visible warning and use backend-native FISTA.

Newton-family Armijo backtracking suppresses only recognized numeric-domain trial failures. Linear solves fall back to least squares only for genuine rank failures. CUDA OOM, device, index, input-contract, and unrelated runtime failures propagate to the caller instead of being converted into misleading numerical recovery.

Warm starts for FISTA, Newton-family methods, L-BFGS-family methods, and ADMM follow the preprocessed design backend, device, and dtype. ADMM's legitimate Cholesky fallback is initialized correctly, and L-BFGS-B preserves feasible directions and backend-native bounds.

The public import surface is also more robust. `CoxPartialLikelihoodLoss` is exposed lazily, removing a package-initialization cycle between `statgpu.glm_core`, survival losses, and linear-model imports. GLM internals and `LogisticRegression` can now be imported in either order in a fresh interpreter.

## Torch compile policy

Internal iterative Torch kernels remain eager when `STATGPU_TORCH_COMPILE_MODE` is unset, `auto`, or `disable`. Compilation is enabled only when users explicitly select `default` or `reduce-overhead`.

Compile construction and runtime decisions remain observable through diagnostics. Only the known CUDA Graph overwritten-output lifecycle failure becomes a permanent eager fallback for the affected callable; unrelated runtime failures remain visible. Benchmarks on the tested RTX 4090 workload did not establish a universal end-to-end speedup, so this release makes no fixed GPU acceleration or compile-performance claim.

## Installation and platform support

Base CPU installation:

```bash
pip install statgpu==0.2.4
```

CUDA extras:

```bash
pip install "statgpu[gpu11]==0.2.4"
pip install "statgpu[gpu12]==0.2.4"
```

PyTorch backend:

```bash
pip install "statgpu[torch]==0.2.4"
```

The official wheel remains a pure-Python `py3-none-any` artifact built with `STATGPU_NO_EXT=1`. Release-package validation builds and checks the wheel and source distribution, clean-installs the sdist on Ubuntu, and installs the same wheel artifact in fresh Ubuntu, Windows, and macOS environments. Optional Cython sources remain available in the sdist for local builds.

Cross-platform CPU-wheel validation does not add Apple MPS support. CUDA execution still requires a compatible NVIDIA driver/runtime and the matching CuPy or PyTorch package.

## Validation

The implementation delivered by pull request #87 completed repeated review-fix cycles with no unresolved critical, high, or in-scope medium findings.

Hosted validation on the final implementation head reported:

- complete CPU suite: 2239 passed and 719 skipped;
- static and documentation contracts: passed;
- Python 3.9, 3.10, 3.11, and 3.12 regression jobs: passed;
- scikit-learn 1.2.2, 1.3.2, and latest compatibility jobs: passed;
- release-note and release-package validation: passed;
- clean sdist installation and Ubuntu, Windows, and macOS wheel smoke tests: passed.

Physical NVIDIA validation covered the unchanged numerical runtime:

- RTX 4090 with PyTorch 2.8.0+cu128: selected Torch compile/CUDA Graph matrix passed 9/9, and LogisticRegression/IRLS runtime assertions passed;
- Tesla P100-SXM2-16GB with CuPy 13.6.0: LogisticRegression/IRLS runtime assertions passed.

The focused 0.2.4 release pull request changes version metadata, changelog organization, and release documentation only. The final release tag must be created from the validated release-PR merge commit according to `RELEASING.md`.

## Upgrade notes and known limits

- Code that relied on unsupported smooth-solver/non-smooth-penalty combinations may now receive an explicit error or visible FISTA delegation instead of a silently incomplete optimization.
- Hard logistic predictions are integer-valued; downstream code should not rely on floating label dtype.
- Invalid or non-finite thresholds and malformed scalar GLM responses now fail before solver or fold dispatch.
- `device="auto"` cross-validation paths preserve the selected backend for final refitting, which may differ from prior accidental backend drift.
- Torch compilation is opt-in. Unset and `auto` modes remain eager, and performance must be benchmarked on the target workload.
- Exact-tie Cox robust or cluster covariance and `PenalizedCoxPHModel` inference remain unsupported as documented for 0.2.3.
- Apple MPS is not a supported statgpu device backend.
- PyPI artifacts are immutable; a publication failure after partial upload requires a new patch version rather than replacing files.

## Full change history

- Main implementation and review-fix work: https://github.com/TheHiddenObserver/statgpu/pull/87
- Release preparation: https://github.com/TheHiddenObserver/statgpu/pull/88
- Comparison with the previous release: https://github.com/TheHiddenObserver/statgpu/compare/v0.2.3...v0.2.4
- Repository changelog: https://github.com/TheHiddenObserver/statgpu/blob/master/CHANGELOG.md
- Release procedure: https://github.com/TheHiddenObserver/statgpu/blob/master/RELEASING.md
45 changes: 45 additions & 0 deletions .github/workflows/maintenance-compatibility.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Maintenance compatibility

on:
push:
branches: [master]
pull_request:
branches: [master]

permissions:
contents: read

jobs:
sklearn-compatibility:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
sklearn_spec:
- scikit-learn==1.2.2
- scikit-learn==1.3.2
- scikit-learn
steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v5
with:
python-version: "3.11"

- name: Install compatibility environment
run: |
python -m pip install --upgrade pip
python -m pip install "numpy<2" scipy pytest packaging pandas patsy "${{ matrix.sklearn_spec }}"
python -m pip install -e . --no-deps

- name: Validate maintenance benchmark syntax
run: |
python -m py_compile dev/benchmarks/benchmark_torch_compile_maintenance.py

- name: Run maintenance regressions
run: |
python -m pytest \
dev/tests/test_maintenance_024_025.py \
dev/tests/test_legacy_sklearn_integration.py \
dev/tests/test_second_full_review.py::TestEstimatorCloneAndFeatureSelectionBackend::test_all_default_public_estimators_clone \
-q --tb=short
Loading
Loading