Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
364 commits
Select commit Hold shift + click to select a range
70421ea
q-window-stencil-check: exclude the accumulator test, with the reason
oshaughnessy-junior Sep 5, 2026
8201b44
Merge remote-tracking branch 'origin/rift_O4d' into claude/ci-roster-…
oshaughn Sep 5, 2026
b3e0123
Merge resolution notes: floors re-measured, and two claims corrected
oshaughn Sep 5, 2026
ec2dde1
Merge remote-tracking branch 'origin/claude/ci-roster-verify' into cl…
oshaughn Sep 5, 2026
32b3a63
Address the adversarial review: the tests could not fail, and one all…
oshaughnessy-junior Sep 5, 2026
e39afa1
Merge the #251 review fixes, and correct the roster numbers they inva…
oshaughn Sep 5, 2026
eedf7a8
Merge pull request #256 from oshaughnessy-junior/claude/noloop-rho-sq…
oshaughnessy-junior Sep 5, 2026
5ee2439
Gate test_backends_lowlevel.py: roster-verify caught its reason false…
oshaughn Sep 5, 2026
a3ae32b
Merge rift_O4d again, re-measure, and fix a silent no-op in this gate…
oshaughn Sep 6, 2026
2fe3ceb
core-unit-check: raise the floors to match the tests that are actuall…
oshaughnessy-junior Sep 6, 2026
ffd909e
Explain the runner/CIT count gap before someone raises the floor into it
oshaughn Sep 6, 2026
42a3ca0
joint_anglemarg_peaklocal: the module docstring contradicted itself
oshaughnessy-junior Sep 6, 2026
964cb4e
Add opt-in reflected Q time pregrid
oshaughn Sep 6, 2026
9a6ef84
Harden reflected Q pregrid failover and phase handling
oshaughn Sep 6, 2026
7a42bf0
Release pregrid OOM traceback state
oshaughn Sep 6, 2026
a969453
Merge pull request #258 from oshaughnessy-junior/claude/core-unit-flo…
oshaughn Sep 6, 2026
974172b
Merge pull request #259 from oshaughnessy-junior/rift_O4d_joint_phi_s…
oshaughnessy-junior Sep 6, 2026
f2837fd
Classify Q pregrid in LISA drift ledger
oshaughn Sep 6, 2026
552d84b
Merge pull request #261 from oshaughnessy-junior/codex/q-reflected-pr…
oshaughnessy-junior Sep 6, 2026
54cab12
Merge rift_O4d (#258/#259): the measured floors do not move
oshaughn Sep 6, 2026
f659425
Merge rift_O4d again -- 77 commits in a day, and the same file confli…
oshaughn Sep 6, 2026
9c8ebdb
jax_ile: handle the conventional Q pregrid flag
oshaughn Sep 6, 2026
d5a95b4
Merge pull request #262 from oshaughnessy-junior/codex/post261-valida…
oshaughnessy-junior Sep 6, 2026
7bf739a
Merge remote-tracking branch 'origin/rift_O4d' into claude/ci-roster-…
oshaughn Sep 6, 2026
dd64113
Rebuild the outside bound so the localized regime can actually be acc…
oshaughnessy-junior Sep 6, 2026
afe7b08
test-roster-verify: three predicates that reported verification they …
oshaughn Sep 6, 2026
0fec4c3
Merge pull request #251 from oshaughnessy-junior/claude/ci-roster-verify
oshaughnessy-junior Sep 6, 2026
795d752
External review P1: the prior pilot is unbiased for Z, not a bound on it
oshaughn Sep 6, 2026
899a25e
Gate: floor 453, read off the collection after the two review tests
oshaughn Sep 6, 2026
dc6eede
Adversarial review: the new outside bound was not a bound
oshaughnessy-junior Sep 6, 2026
f76d69d
Wire phi-local, with the distance axis as a seam rather than a rule
oshaughnessy-junior Sep 6, 2026
4ecc035
Adversarial review: the artifact label, and a chunk that meant 1e6 li…
oshaughnessy-junior Sep 6, 2026
266fbe1
Add bounded JAX all-axis peak-local prototype
oshaughn Sep 6, 2026
182590b
Merge pull request #264 from oshaughnessy-junior/rift_O4d_joint_phi_o…
oshaughnessy-junior Sep 6, 2026
0d9b652
Merge pull request #265 from oshaughnessy-junior/rift_O4d_joint_phi_l…
oshaughnessy-junior Sep 6, 2026
c570099
Merge remote-tracking branch 'origin/rift_O4d' into codex/jax-four-ax…
oshaughn Sep 6, 2026
3d99300
Gate all-axis peak-local JAX tests
oshaughn Sep 6, 2026
71fcbf7
Stop the jax gate OOM: the peak is RETENTION, not any one test
oshaughnessy-junior Sep 6, 2026
3c54cd9
Validate peak-local time reconstruction with two guards
oshaughn Sep 6, 2026
e63b63e
Prototype U,V/Q multi-peak JAX marginalization
oshaughn Sep 6, 2026
6b28fa5
CI: enroll JAX multipeak planner tests
oshaughn Sep 6, 2026
913e728
Add UVQ-guided empirical peak-local enrichment
oshaughn Sep 6, 2026
70b3e39
Merge pull request #269 from oshaughnessy-junior/rift_O4d_joint_phi_t…
oshaughn Sep 6, 2026
e70dc55
Execute exact reserve after all-axis decline
oshaughn Sep 6, 2026
2000358
Retain valid base cover for negligible enrichment modes
oshaughn Sep 6, 2026
c09e65b
Stabilize off-lattice all-axis mode refinement
oshaughn Sep 7, 2026
e870788
Address automated review findings for PR #270
Sep 7, 2026
8a988ea
Add fixed-shape device-side all-axis planning
oshaughn Sep 7, 2026
a91c813
Merge rift_O4d a third time; the batchmode option that made CI red is…
oshaughn Sep 7, 2026
6abc8e1
Bound omitted time mass before device mode search
oshaughn Sep 7, 2026
ac28233
Skip inactive device optimizer lanes
oshaughn Sep 7, 2026
bec19ad
Merge pull request #245 from oshaughnessy-junior/claude/jax-is-jitter…
oshaughnessy-junior Sep 7, 2026
a85aedf
Reuse optimizer work across nested all-axis plans
oshaughn Sep 7, 2026
0497268
Batch all-axis optimizer within fixed memory
oshaughn Sep 7, 2026
2001582
Keep optimizer packing indices int32 on CUDA
oshaughn Sep 7, 2026
f285870
Remove optimizer batching after real regressions
oshaughn Sep 7, 2026
9da1d56
Add aggregate empirical error budget
oshaughn Sep 7, 2026
39c7d63
Classify empty peak-local plans as discovery declines
oshaughn Sep 7, 2026
93126be
Make exact reserve time-safe
oshaughn Sep 7, 2026
5688a1a
Certify cropped bandlimited reserve
oshaughn Sep 7, 2026
ff286eb
jax_ile: accept either packed order of the (2,+-2) pair under phase m…
oshaughn Sep 7, 2026
8ac71dd
Merge remote-tracking branch 'origin/rift_O4d' into codex/pr270-merge
oshaughn Sep 7, 2026
ce07c88
jax_ile: wire the validated reflected Q time pregrid (opt-in)
oshaughnessy-junior Sep 7, 2026
1274d5e
test: cover the two SEAMS, not just the library
oshaughnessy-junior Sep 7, 2026
750ca04
Merge pull request #270 from oshaughnessy-junior/codex/jax-uvq-multipeak
oshaughnessy-junior Sep 7, 2026
de66ef0
test: three guards that a mutation sweep showed were unexercised
oshaughnessy-junior Sep 7, 2026
7edd768
Merge gh/rift_O4d (#270 multipeak planner) into the phase-marg mode-o…
oshaughn Sep 7, 2026
53d0322
DESIGN 9.7: plain register, numbers in tables
oshaughnessy-junior Sep 7, 2026
9debf3a
DESIGN 9.7: quote the measured 3.2e-5, not a rounded zero
oshaughnessy-junior Sep 7, 2026
61a7a7c
test-jax: EXPECTED_TESTS 461 -> 480, read off the job's own collectio…
oshaughnessy-junior Sep 7, 2026
54162ca
Correct three docstring claims that did not match the code
oshaughnessy-junior Sep 7, 2026
d81ab1b
test: retarget the separable-u guard at the hoisted owner
oshaughnessy-junior Sep 7, 2026
38ef9e6
Merge pull request #272 from oshaughnessy-junior/claude/jax-phase-mod…
oshaughnessy-junior Sep 7, 2026
f9ec664
Merge gh/rift_O4d (#270 multipeak, #272 phase-marg mode order) into t…
oshaughn Sep 7, 2026
6e637be
jax phi regions: a full-circuit window is one region, not a rounding …
oshaughnessy-junior Sep 7, 2026
c3d7378
Review P2: a declared factor with no metadata skipped every check
oshaughn Sep 7, 2026
b74a2ce
test: the pregrid x mode-permutation path, and two inert guards
oshaughnessy-junior Sep 7, 2026
6445539
phi region planner: emit a covering window whole instead of splitting…
oshaughn Sep 7, 2026
b820092
Merge pull request #274 from oshaughnessy-junior/claude/jax-q-time-pr…
oshaughnessy-junior Sep 7, 2026
c0de980
Merge gh/rift_O4d (#274 Q time-pregrid) into the phi-region branch
oshaughnessy-junior Sep 7, 2026
490e03e
Correct four overstated claims, and make the new test's second guard …
oshaughnessy-junior Sep 7, 2026
b87e2e7
Address automated review findings for PR #276
Sep 7, 2026
be96c3a
Merge pull request #275 from oshaughnessy-junior/claude/phiregion-jaxver
oshaughnessy-junior Sep 7, 2026
3305895
Merge rift_O4d (#270 multipeak planner, #272, #274) into the four-axi…
oshaughnessy-junior Sep 7, 2026
3b4091e
multipeak_planner: import the shared host primitives from all_axis_pe…
oshaughnessy-junior Sep 7, 2026
fb73177
Merge rift_O4d (#275 phi-region) into the four-axis peak-local branch
oshaughnessy-junior Sep 7, 2026
83fb997
Merge pull request #268 from oshaughnessy-junior/codex/jax-four-axis-…
oshaughnessy-junior Sep 7, 2026
4fb3e40
Merge gh/rift_O4d: drop the jax half, which landed as #275
oshaughn Sep 7, 2026
923a1f1
Report a planner fault separately from a budget decline
oshaughnessy-junior Sep 7, 2026
e313da7
test-integrate: raise the joint peak-local collection gate 36 -> 37
oshaughn Sep 7, 2026
3016701
Merge the session-router gate's commit: the same 36 -> 37 collection …
oshaughn Sep 7, 2026
1f421ba
all_axis_peaklocal: reserve may carry its own coarser check rule
oshaughnessy-junior Sep 7, 2026
d80d8a6
jax ILE: opt-in --direct-marginalization-policy auto (four-axis compo…
oshaughnessy-junior Sep 7, 2026
628788e
Merge pull request #276 from oshaughnessy-junior/claude/phi-region-wr…
oshaughnessy-junior Sep 7, 2026
8f0d0a9
policy: fail closed on unwarranted rows; refuse the policy outside it…
oshaughnessy-junior Sep 7, 2026
2103596
all_axis_peaklocal: charge each paired error term once, as the max ov…
oshaughnessy-junior Sep 7, 2026
f9d1757
policy: trapezoid refined reserve rules, escalation ceiling 32, revie…
oshaughnessy-junior Sep 7, 2026
a14aec9
Merge pull request #278 from oshaughnessy-junior/claude/jax-direct-ma…
oshaughnessy-junior Sep 7, 2026
b279d80
Keep the multi-peak record a 13-tuple; report faults on a logger
oshaughn Sep 7, 2026
c5dc3f6
multipeak planner: bound the Newton step without losing ascent
oshaughn Sep 7, 2026
0247f48
Merge pull request #279 from oshaughnessy-junior/claude/mpplanner-fix
oshaughnessy-junior Sep 7, 2026
bfd6044
Merge rift_O4d (#278, #279) into the fallback-visibility branch
oshaughnessy-junior Sep 7, 2026
1e9d5f6
policy follow-ups: boundary-maximum decline, production operating poi…
oshaughnessy-junior Sep 8, 2026
85cebc5
Merge rift_O4d (#279 multipeak Newton step) into the policy follow-ups
oshaughnessy-junior Sep 8, 2026
15b7732
Merge pull request #277 from oshaughnessy-junior/claude/multipeak-fal…
oshaughnessy-junior Sep 8, 2026
ccd0c64
Merge rift_O4d (#277 multipeak fallback visibility) into the policy f…
oshaughnessy-junior Sep 8, 2026
c51389e
Merge pull request #280 from oshaughnessy-junior/claude/policy-followups
oshaughnessy-junior Sep 8, 2026
3cc95ac
Add pipeline/asimov wiring for the Q_lm time-stencil option family
oshaughnessy-junior Sep 8, 2026
843f35e
pseudo_pipe/asimov: make the JAX ILE driver selectable
oshaughnessy-junior Sep 8, 2026
2eec9d4
CI: make test-run.sh exercise NoLoop explicitly; add tier-2 precommit…
oshaughnessy-junior Sep 8, 2026
a972851
ILE: make --psi-marginalization reachable on the scalar likelihood path
oshaughnessy-junior Sep 8, 2026
d6f9cf3
jax_ile: fix angle-marg buffer cap refusing on jax 0.9.2's empty pool
oshaughnessy-junior Sep 8, 2026
21f1873
jax_ile: make --distance-gh-nodes a real CLI flag; warn instead of si…
oshaughnessy-junior Sep 8, 2026
a41abd4
mcsamplerGPU: survive odeint's float probe in cdf_inverse; wire ILE t…
oshaughnessy-junior Sep 8, 2026
cbc6e30
jax_ile: probe-allocate before reading the anglemarg buffer cap's dev…
oshaughnessy-junior Sep 8, 2026
07dfc29
jax_ile: enable bandlimited time quadrature for distance marginalization
oshaughnessy-junior Sep 8, 2026
1ab7ef3
Merge rift_O4d into codex/jax-cache-transfer
oshaughnessy-junior Sep 8, 2026
284b5df
mcsamplerGPU: probe the pdf with a float first; wire t_ref cdf_inv in…
oshaughnessy-junior Sep 8, 2026
0199594
Merge pull request #281 from oshaughnessy-junior/claude/pipeline-time…
oshaughnessy-junior Sep 8, 2026
cb88cae
Merge pull request #283 from oshaughnessy-junior/claude/ci-noloop-pat…
oshaughnessy-junior Sep 8, 2026
05c173e
Merge pull request #287 from oshaughnessy-junior/claude/mcsamplergpu-…
oshaughnessy-junior Sep 8, 2026
a1c6730
Refuse --use-jax-ile with --use-osg and --lisa-known-sky (BLOCKER fix)
oshaughnessy-junior Sep 8, 2026
dfab73b
Merge pull request #282 from oshaughnessy-junior/claude/pipeline-jax-…
oshaughnessy-junior Sep 8, 2026
bfd74bb
ILE psi marginalization: fix overflow, prior mass, and the exported p…
oshaughnessy-junior Sep 8, 2026
9ba6b25
Merge rift_O4d (#283, #287) and re-measure the JAX collection floor
oshaughnessy-junior Sep 8, 2026
e10e824
policy: make the four-axis controller's row loop batchable
oshaughnessy-junior Sep 8, 2026
8167de4
Merge pull request #285 from oshaughnessy-junior/claude/jax-anglemarg…
oshaughnessy-junior Sep 8, 2026
5c2b13c
Classify --psi-marginalization in the LISA drift ledger and JAX manifest
oshaughnessy-junior Sep 8, 2026
f3cc09a
Merge pull request #284 from oshaughnessy-junior/claude/ile-psi-margi…
oshaughnessy-junior Sep 8, 2026
587bf45
jax_ile/samplers: guard the core relative import for standalone loading
oshaughnessy-junior Sep 8, 2026
536be84
policy: record that row batching does not pay, and keep the default at 1
oshaughnessy-junior Sep 8, 2026
abccd89
test: skip the flowMC driver test where flowMC is not installed (CI j…
oshaughnessy-junior Sep 8, 2026
017332e
policy: record the four-tier batched bound in the design note
oshaughnessy-junior Sep 8, 2026
45922e1
jax_ile driver: fix --distance-gh-nodes CLI-vs-env priority BLOCKER
oshaughnessy-junior Sep 8, 2026
70c56e3
WIP jax_ile: endpoint certificate off on the distmarg refinement; dri…
oshaughnessy-junior Sep 8, 2026
8d43ded
Land #214: persistent JAX compilation cache, with the label fixed
oshaughn Sep 8, 2026
c2e5b2b
Close five mutation survivors on the #214 cache guards
oshaughn Sep 8, 2026
5cd676e
Merge rift_O4d (#280 policy follow-ups, #281-#287) into the row-batch…
oshaughnessy-junior Sep 8, 2026
88c7b6c
Merge pull request #214 from oshaughnessy-junior/codex/jax-cache-tran…
oshaughnessy-junior Sep 8, 2026
44b7295
q_time_pregrid: DAG-build + driver-parity tests, PRECOMMIT.md numbers…
oshaughnessy-junior Sep 8, 2026
5493cd4
test-jax.sh: say how to tell an environment red from a branch red
oshaughn Sep 8, 2026
faf7ac1
CI: record the jax stack jax-ile-check actually resolved
oshaughn Sep 8, 2026
fff286d
Merge junior/rift_O4d into claude/jax-knobs-reachable-and-warn
oshaughnessy-junior Sep 8, 2026
6d409f7
q_time_pregrid: exact abbreviation matching, single-sourced factor set
oshaughnessy-junior Sep 8, 2026
c3890ea
Merge pull request #293 from oshaughnessy-junior/claude/jax-drift-gat…
oshaughnessy-junior Sep 8, 2026
ff9ff74
Merge pull request #291 from oshaughnessy-junior/claude/followup-281-…
oshaughnessy-junior Sep 8, 2026
0b870b8
policy: fix the single-row batch path and make the batch ledger truthful
oshaughnessy-junior Sep 8, 2026
b146b66
policy: forward the pre-cap candidate count to the ledger
oshaughnessy-junior Sep 8, 2026
7135846
policy: name the pair count for what it is, and record the scope trap
oshaughnessy-junior Sep 8, 2026
6e3f586
driver: --direct-marginalization-reserve-time-refine-max is not a fre…
oshaughnessy-junior Sep 8, 2026
f1fe364
policy: expose all four terms behind decline_capacity
oshaughnessy-junior Sep 8, 2026
3b3c981
Merge remote-tracking branch 'gh/rift_O4d' into claude/four-axis-marg…
oshaughnessy-junior Sep 8, 2026
553ea25
Merge junior/rift_O4d (post #291, #293) into claude/jax-knobs-reachab…
oshaughnessy-junior Sep 8, 2026
42abaff
jax_ile: reduce the peak-local phi scan into its carry
oshaughn Sep 8, 2026
d84597c
Merge pull request #290 from oshaughnessy-junior/claude/four-axis-mar…
oshaughnessy-junior Sep 8, 2026
7b70a3a
test-jax: raise the collection floor to 588 for the added test
oshaughn Sep 8, 2026
f3b68c6
jax ILE: classify the direct-marginalization branch before sampling
oshaughnessy-junior Sep 8, 2026
4a4608a
jax ILE: import jnp, and expose the policy's plan-sizing knobs
oshaughnessy-junior Sep 8, 2026
6688779
jax ILE: expose the SMC importance-sampling evidence size
oshaughnessy-junior Sep 8, 2026
d510a57
jax ILE: expose the policy's enrichment and two-guard tolerances
oshaughnessy-junior Sep 8, 2026
b8cc38d
jax ILE: report the policy's plan-sizing and tolerance knobs
oshaughnessy-junior Sep 8, 2026
72cb2d5
jax ILE: have the probe report its per-row values
oshaughnessy-junior Sep 8, 2026
2065033
jax ILE: driver-seam tests for the policy observability and plan knobs
oshaughnessy-junior Sep 8, 2026
2731c41
jax ILE: pair the probe's per-row value with its disposition
oshaughnessy-junior Sep 8, 2026
d1b789b
jax ILE: say what --direct-marginalization-max-starts is not
oshaughnessy-junior Sep 8, 2026
964695d
WIP tests/docs/roster for the endpoint-certificate change
oshaughnessy-junior Sep 8, 2026
d797792
Merge junior/rift_O4d into claude/jax-bandlimited-distmarg
oshaughnessy-junior Sep 8, 2026
495c054
jax ILE: give the note one return arity, and pin it
oshaughnessy-junior Sep 8, 2026
6656e58
jax ILE: refuse a negative SMC IS count; check the probe's parameter …
oshaughnessy-junior Sep 8, 2026
8e928ca
jax_ile: endpoint certificate off on the distance-marginalized refine…
oshaughnessy-junior Sep 8, 2026
98a4b2f
jax ile: switch the endpoint gap off on the 6-D field; refuse narrow …
oshaughnessy-junior Sep 8, 2026
4bba1be
policy: withdraw the batching cost claim from the artifacts users read
oshaughnessy-junior Sep 8, 2026
b817410
CI: shard jax-ile-check three ways; the suite outgrew its 60-minute cap
oshaughnessy-junior Sep 8, 2026
0b85b80
test_limit_distance_jax: pin --limit-distance inside the implemented …
oshaughnessy-junior Sep 8, 2026
b22a038
Merge rift_O4d (d84597c2) into the peak-local phi-scan branch
oshaughn Sep 9, 2026
c38ee8b
CI: merge the shard env into the step's existing env block
oshaughnessy-junior Sep 9, 2026
3689e34
Merge junior/claude/jax-bandlimited-distmarg (8e928cabf) into claude/…
oshaughnessy-junior Sep 9, 2026
21772f5
Merge pull request #294 from oshaughnessy-junior/policy-inflight-probe
oshaughnessy-junior Sep 9, 2026
0c8fa73
Merge PR #297 into rift_O4d_yolo_20260908 (YOLO integration)
oshaughnessy-junior Sep 9, 2026
5fc6b22
Merge PR #298 into rift_O4d_yolo_20260908 (YOLO integration)
oshaughnessy-junior Sep 9, 2026
f24dfb8
Merge PR #295 into rift_O4d_yolo_20260908 (YOLO integration)
oshaughnessy-junior Sep 9, 2026
9ade7ad
Merge PR #299 into rift_O4d_yolo_20260908 (YOLO integration)
oshaughnessy-junior Sep 9, 2026
4f4e08d
Merge PR #286 into rift_O4d_yolo_20260908 (YOLO integration)
oshaughnessy-junior Sep 9, 2026
28d97ee
test-jax.sh: EXPECTED_TESTS=705, measured on the YOLO integration merge
oshaughnessy-junior Sep 9, 2026
573d326
test-jax.sh: hold a shard to its own collection count, not the whole-…
oshaughnessy-junior Sep 9, 2026
affdfa4
policy: preset the local-plan capacities instead of declining into th…
oshaughnessy-junior Sep 9, 2026
43918b2
Merge pull request #302: YOLO integration 2026-09-08 (#286, #295, #29…
oshaughnessy-junior Sep 9, 2026
ee959a5
jax_ile: label the bandlimited fixtures by network SNR; record why th…
oshaughnessy-junior Sep 9, 2026
430f3e4
Merge rift_O4d into claude/policy-preset-resolution
oshaughnessy-junior Sep 9, 2026
f30b6a0
CI: raise the collection floor to the measured 712
oshaughnessy-junior Sep 9, 2026
92d3da3
policy: keep the shipped capacities; expose the knobs, do not move th…
oshaughnessy-junior Sep 9, 2026
272c6ba
driver: restore seven options my slice edit deleted
oshaughnessy-junior Sep 9, 2026
f1e8118
Merge pull request #303 from oshaughnessy-junior/claude/jax-bandlimit…
oshaughnessy-junior Sep 9, 2026
0907b6a
policy: adopt the approved operating point (256, 128) and a 1e-2 budget
oshaughnessy-junior Sep 9, 2026
c065402
Merge pull request #301 from oshaughnessy-junior/claude/policy-preset…
oshaughnessy-junior Sep 9, 2026
a2fea5c
anglemarg: table-level psi-Laplace reserve, extracted not rewritten
oshaughnessy-junior Sep 9, 2026
901371a
policy: choose the (local, reserve) pair from analysis, before any ro…
oshaughnessy-junior Sep 9, 2026
ef013f0
policy: reserve_scheme on PolicyConfig, and the local cover leads the…
oshaughnessy-junior Sep 9, 2026
31e987d
policy: sigma_f must be the TIMING bandwidth, not the RMS frequency
oshaughnessy-junior Sep 9, 2026
c61d330
policy: size on the NARROW bandwidth; my central-moment change was th…
oshaughnessy-junior Sep 9, 2026
029e445
policy: mark the node budget provisional -- it failed a direct test
oshaughnessy-junior Sep 9, 2026
9e63157
gate: my three test files were unrun, and the floor was assigned five…
oshaughnessy-junior Sep 9, 2026
47265b3
policy: withdraw the sqrt(2); raw IS exact for the integrand
oshaughnessy-junior Sep 9, 2026
03de369
driver: announce the (local, reserve) pair before any row is evaluated
oshaughnessy-junior Sep 9, 2026
4c3227c
driver: derive the policy flag defaults from PolicyConfig, not from c…
oshaughnessy-junior Sep 9, 2026
1493790
gate: floor 729 -> 731, re-measured after the two default guards
oshaughnessy-junior Sep 9, 2026
bcfdbb6
DESIGN: the pair-selection rule, which bandwidth, and what the budget…
oshaughnessy-junior Sep 9, 2026
4c62767
driver: --help quoted five defaults the flags no longer use
oshaughnessy-junior Sep 9, 2026
8178e35
gate: the rebase reintroduced a second EXPECTED_TESTS, and it won
oshaughnessy-junior Sep 9, 2026
cf8eee5
policy: the reserve roster is a property of the data, and an unwired …
oshaughnessy-junior Sep 9, 2026
4b0a0e5
driver: read the identity from where it was already measured
oshaughnessy-junior Sep 9, 2026
9248892
anglemarg: check the response model before building any table, and te…
oshaughnessy-junior Sep 9, 2026
73585a1
driver: derive the two defaults #301 added, and rebase onto merged ri…
oshaughnessy-junior Sep 9, 2026
7448cb9
DESIGN: name the tolerance the refine table was read against
oshaughnessy-junior Sep 9, 2026
1a4fedb
policy: record the refine measurement without a verdict, since the to…
oshaughnessy-junior Sep 9, 2026
56e607d
Add combined slow-rotation frequency-response ILE
oshaughnessy-junior Sep 9, 2026
1ecbb26
driver: the pair the analysis chose must be the pair that runs
oshaughnessy-junior Sep 9, 2026
13b6476
Port combined detector response to JAX ILE
oshaughnessy-junior Sep 9, 2026
e27df78
Keep compound JAX runtime checks out of per-PR CI
oshaughnessy-junior Sep 9, 2026
56bb68c
Merge pull request #305 from oshaughnessy-junior/claude/policy-reserv…
oshaughnessy-junior Sep 9, 2026
c8de92a
jax_ile policy: peak-local-in-time reserve (reserve scheme peaklocal)
oshaughnessy-junior Sep 9, 2026
4dbb847
Merge pull request #304 from oshaughnessy-junior/claude/policy-peaklo…
oshaughnessy-junior Sep 9, 2026
120d632
Merge remote-tracking branch 'junior/rift_O4d' into codex/combined-sl…
oshaughnessy-junior Sep 9, 2026
1edcf58
Merge pull request #307 from oshaughnessy-junior/codex/combined-slowr…
oshaughnessy-junior Sep 9, 2026
8e6fe72
likelihood: build the finite-size response coefficients per block, no…
oshaughnessy-junior Sep 9, 2026
6fdd15a
Update distance wiring count for combined response
oshaughnessy-junior Sep 9, 2026
88586cc
Merge pull request #309 from oshaughnessy-junior/codex/combined-respo…
oshaughnessy-junior Sep 9, 2026
4bb7a11
ILE precompute: batch the mode cross terms instead of looping over pairs
oshaughnessy-junior Sep 9, 2026
66a42df
jax_ile: psi-Laplace reserve kernel was called with the exact kernel'…
oshaughnessy-junior Sep 9, 2026
60c4f0e
jax_ile: reach the four-axis multipeak controller from the driver
oshaughn Sep 9, 2026
02b2960
Merge branch 'rift_O4d' of https://github.com/oshaughnessy-junior/res…
oshaughn Sep 9, 2026
684b7e3
Merge pull request #312 from oshaughnessy-junior/claude/laplace-reser…
oshaughnessy-junior Sep 9, 2026
350b571
Merge rift_O4d (684b7e3e, with #312) into claude/angle-marg-multipeak…
oshaughnessy-junior Sep 9, 2026
336f861
Merge pull request #313 from oshaughnessy-junior/claude/angle-marg-mu…
oshaughnessy-junior Sep 9, 2026
b3e2efa
Merge pull request #311 from oshaughnessy-junior/claude/precompute-cr…
oshaughnessy-junior Sep 9, 2026
b79d1c1
jax_ile: size the peak-local locator's angular search from the amplitude
oshaughnessy-junior Sep 9, 2026
90f2c5b
Merge pull request #315 from oshaughnessy-junior/claude/peaklocal-loc…
oshaughnessy-junior Sep 9, 2026
da25cf0
DESIGN: fold in the three-seed A/B table
oshaughnessy-junior Sep 9, 2026
771e633
Merge rift_O4d into claude/finite-response-vectorize
oshaughnessy-junior Sep 9, 2026
0f5cd14
Merge pull request #310 from oshaughnessy-junior/claude/finite-respon…
oshaughnessy-junior Sep 9, 2026
7e651c3
jax ile: add value-only adaptive-volume sampling
oshaughnessy-junior Sep 10, 2026
9d93d16
jax av: preserve device-native integration state
oshaughnessy-junior Sep 10, 2026
67a8d1b
jax av: add phase-rotated sampling coordinates
oshaughnessy-junior Sep 10, 2026
57bea92
jax av: fix bounded seed and distance-marginalized dispatch
oshaughnessy-junior Sep 10, 2026
98c3aa9
ci: gate JAX adaptive-volume tests
oshaughnessy-junior Sep 10, 2026
cc2917b
Merge remote-tracking branch 'junior/rift_O4d' into codex/jax-av
oshaughnessy-junior Sep 10, 2026
12f2c3e
ci: support current NumPy numerics
oshaughnessy-junior Sep 10, 2026
5e55d03
Merge pull request #319 from oshaughnessy-junior/codex/jax-av
oshaughnessy-junior Sep 10, 2026
c7f7844
Resolve rift_O4d release-note conflict
oshaughn Sep 11, 2026
c8f14c2
Merge pull request #320 from oshaughnessy-junior/codex/pr-191-conflict
oshaughnessy-junior Sep 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
107 changes: 105 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -301,6 +301,47 @@ jobs:
- name: Census every test file against the CI roster
run: python .travis/test-ci-roster.py

roster-verify-check:
needs: install
runs-on: ubuntu-latest
# Companion to ci-roster-check, and the answer to a gap that job cannot close: it enforces
# that every ungated test file carries a REASON, but not that the reason is TRUE. That was
# not hypothetical -- the roster asserted "skips cleanly without them" for two jax_gp files
# while one ERRORED without jax and the other had no guard at all (PR #248), and it carried
# two OPTDEP entries whose prose said "unverified on a runner" / "belongs in another job"
# when both in fact collect and pass completely. A reason nobody re-checks is prose, which
# is the thing this whole census exists to stop being mistaken for coverage.
#
# So each status now has a falsifiable predicate and this job runs it: LEGACY must fail to
# import, HANDRUN must collect nothing, EXPENSIVE must collect but pass nothing without
# RIFT_RUN_EXPENSIVE, and OPTDEP must name its dependencies (`needs:<mod>`) which
# requirements.txt must not install. See .travis/test-roster-verify.py for what is
# deliberately NOT checked and why.
#
# SEPARATE from ci-roster-check on purpose: that one is stdlib-only with no `needs: install`
# and must stay that way, so it still reports when the install matrix is broken. This one
# imports RIFT. ~3.5 min measured on CIT (52 entries, one pytest collection each).
timeout-minutes: 25
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
cache: 'pip'
cache-dependency-path: requirements.txt
- name: Enable symlink
run: sudo ln -sf $(which python3) /usr/bin/python
- name: Install dependencies
run: |
python -m pip install --upgrade pip --break-system-packages
python -m pip install -r requirements.txt --break-system-packages
python -m pip install coverage pytest --break-system-packages
python -m pip install --editable . --break-system-packages
- name: Verify each roster reason still holds
env:
OMP_NUM_THREADS: 1
run: python .travis/test-roster-verify.py

core-unit-check:
needs: install
runs-on: ubuntu-latest
Expand All @@ -320,8 +361,12 @@ jobs:
# pattern, so the marker's SCOPE_GLOBS check -- the half that makes a marker fail-closed --
# would have nothing to scope over. The census job above is what keeps this set honest.
#
# Python 3.10 to match the sibling numpy jobs. timeout-minutes is a runaway backstop, an
# order of magnitude above the 49 s measured on CIT, not a budget.
# Python 3.10 to match the sibling numpy jobs. timeout-minutes is a runaway backstop,
# not a budget -- but the margin is no longer large: the gate measures 350 s on CIT
# (was 49 s when this comment first claimed 'an order of magnitude'), because the
# per-file collection loop spawns one RIFT-importing interpreter per manifest entry and
# grows with the manifest. 20 min is ~3.4x that, not 20x. Re-measure before adding
# many more files, and see .travis/test-core-units.sh for the breakdown.
timeout-minutes: 20
steps:
- uses: actions/checkout@v4
Expand Down Expand Up @@ -393,6 +438,15 @@ jobs:
jax-ile-check:
needs: install
runs-on: ubuntu-latest
# Sharded 2026-09-08: the suite outgrew the 60-minute cap below. Only the
# execute step splits; the FILES manifest, the collection floor against
# EXPECTED_TESTS and the deselect-resolution check run in full in every
# shard, so a shard cannot go green on a partial view. Raise `shard` to
# add capacity; the split is round-robin by index in test-jax.sh.
strategy:
fail-fast: false
matrix:
shard: [1, 2, 3]
# test/jax/ was run by NOTHING in this workflow until this job landed (the file had
# zero matches for "jax"), and two real defects survived a month each behind that
# gap. See .travis/test-jax.sh for why the gate counts tests instead of just
Expand Down Expand Up @@ -456,11 +510,46 @@ jobs:
python -m pip install --upgrade pip --break-system-packages
python -m pip install -r requirements.txt coverage pytest "jax[cpu]" numpyro --break-system-packages
python -m pip install --editable . --break-system-packages
# WHY THIS EXISTS. jax is installed UNPINNED above, so this job's stack is
# whatever pip resolved the day it ran, and no developer environment
# necessarily has that version. Without a record, a red gate six weeks old
# cannot be reproduced -- you cannot even tell which jax produced it. Two
# failures during the #214 landing were chased locally before a
# pristine-base control showed they were the environment, not the branch
# (issue #292). The gate prints jax and numpyro; this captures the rest,
# jaxlib and lal included.
- name: Record the resolved jax stack
run: |
python -m pip freeze > pip-freeze-jax-ile.txt
echo "== resolved stack (full list in the jax-ile-resolved-stack artifact) =="
# importlib.metadata, not a grep of pip freeze: freeze reports a URL
# rather than a version for anything not installed from PyPI, so the
# grep prints a wheel path in exactly the environments someone is most
# likely to be comparing against.
python -c "
import importlib.metadata as md
for n in ('jax', 'jaxlib', 'numpyro', 'numpy', 'scipy', 'numba', 'lal'):
try:
print('%-10s %s' % (n, md.version(n)))
except Exception:
print('%-10s (absent)' % n)
"
- name: Run jax_ile CPU regression gate
env:
JAX_PLATFORMS: cpu
OMP_NUM_THREADS: 1
JAX_GATE_SHARDS: 3
JAX_GATE_SHARD: ${{ matrix.shard }}
run: bash .travis/test-jax.sh
# always(): a FAILING gate is the case the record is for, so it must upload
# after a red run too, not only after a green one.
- name: Upload the resolved jax stack
if: always()
uses: actions/upload-artifact@v4
with:
name: jax-ile-resolved-stack
path: pip-freeze-jax-ile.txt
if-no-files-found: warn

# CPU ONLY. GitHub runners have no GPU and no cupy, so this lane cannot
# exercise the cupy branch of RIFT/likelihood/SphericalHarmonics_gpu.py -- the
Expand Down Expand Up @@ -715,6 +804,20 @@ jobs:
bash .travis/test-run.sh
bash .travis/test-run-alts.sh
bash .travis/test-build.sh
- name: Run ILE executable selection tests (--use-jax-ile / --ile-exe)
# Full subprocess DAG builds against the same reference ini/coinc as
# test-build.sh, so the pseudo_pipe CLI wiring is what is exercised:
# --use-jax-ile and --ile-exe land in ILE.sub/ILE_puff.sub/ILE_extr.sub,
# and --use-jax-ile is refused at DAG-build time with --calmarg-envelope-directory.
run: |
python -m pytest -q MonteCarloMarginalizeCode/Code/test/test_jax_ile_selectable.py
- name: Run q-time-pregrid DAG-build test (--internal-ile-q-time-pregrid-factor)
# Full subprocess DAG build against the same reference ini/coinc, same reason as
# the step above (PR #281 follow-up review, MAJOR #1): asserts
# --internal-ile-q-time-pregrid-factor 8 lands in ILE.sub, ILE_extr.sub, and
# ILE_puff.sub, not only in helper_ile_args.txt / args_ile.txt.
run: |
python -m pytest -q MonteCarloMarginalizeCode/Code/test/test_q_time_pregrid_dag.py
- name: Upload test logs on failure
if: failure()
uses: actions/upload-artifact@v4
Expand Down
47 changes: 47 additions & 0 deletions .travis/PRECOMMIT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# CI tiers

`.github/workflows/ci.yml` gates every push/PR with ~22 jobs. That is already large, and
covering every backend and hardware corner in it would grow it without bound: no GitHub
runner has a GPU, and the JAX suite already costs real time. This tiers the existing suite;
nothing here removes or shortens a job.

## Tier 1 -- fast CI, every push/PR (unchanged)

Everything in `ci.yml` runs automatically: install, help-check, import-check,
dependency-compat-check, sim-manager-check, integrator-gate-accounting-check,
q-window-stencil-check, ci-roster-check, roster-verify-check, core-unit-check, slowrot-check,
jax-ile-check, lisa-check, calmarg-check, integration-check, asimov-integration,
rimsky-integration, test-run, container-dep-canary, container-swig-canary, docs. Plus
`.gitlab-ci.yml`'s default pipeline (coord/integrate/posterior/run/run-alts/build).

RECOMMENDATION for RO'S: `jax-ile-check` runs on every push, and its cost argues for tier 2 or
a schedule instead. `.travis/test-jax.sh:494` measures the gated 139-test baseline at 13m53s
(833s), against a 60-minute timeout; the suite has since grown to 577 tests
(`.travis/test-jax.sh:766`). `test_angle_marg_exact.py` (36 tests, excluded from this gate at
`.travis/test-jax.sh:484`) does not add to that per-push cost; run it by hand per the comment
there. Moving `jax-ile-check` to a nightly schedule would return the 833s to every push, since
nothing else in tier 1 imports jax. This PR leaves it in place: moving a job is a behavior
change and belongs in its own PR.

## Tier 2 -- strongly recommended before merging into rift_O4d, by hand on a GPU/big node

No GitHub runner has a GPU, so these either never run, or run a cupy-less CPU parity check
that cannot see a real device. Run `.travis/precommit-recommended.sh` before merging
anything touching the ILE likelihood, the NoLoop stencils, calibration marginalization, or
the JAX driver:

- `RIFT/likelihood/test_q_window_interp_gpu.py`, `test_noloop_gpu_stencils.py` (real cupy)
- `.travis/test-calmarg-gpu.sh` (fused calibration CUDA kernels)
- `test/jax/test_angle_marg_exact.py`, and the full `.travis/test-jax.sh`
- `test/expensive_before_merging/` (`RIFT_RUN_EXPENSIVE=1`)

The script exits 1 when cupy/CUDA or the jax stack is absent; it does not skip.

## Tier 3 -- scheduled or manual only

`.gitlab-ci.yml`'s `gpu_integration` job: a real GPU runner, running `test-integrate.sh` +
`test-calmarg-gpu.sh` + `test-lisa-gpu.sh` under CUDA. Its `rules:` block
(`.gitlab-ci.yml:180-184`) has two branches: web-triggered `when: manual`, and
`$CI_PIPELINE_SOURCE == "schedule"` with `when: on_success`. So it also runs automatically on a
scheduled pipeline. A nightly `jax-ile-check` would belong on the same schedule if RO'S takes
the tier-1 recommendation above.
Loading
Loading