Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
712 commits
Select commit Hold shift + click to select a range
3f3d7d7
fix(solve): support singleton stencil dimensions
hechuan9 Jul 20, 2026
cb52a9e
fix(structural): preserve explicit lhs owners
hechuan9 Jul 20, 2026
a59b000
test(structural): assert orphan matching
hechuan9 Jul 20, 2026
8472695
fix(structural): preserve explicit lhs owners
hechuan9 Jul 20, 2026
04134a1
test(structural): assert orphan matching
hechuan9 Jul 20, 2026
3911b25
fix(flatten): preserve positional function arguments
hechuan9 Jul 21, 2026
dc72039
fix(solve): infer indexed function array dimensions
hechuan9 Jul 21, 2026
61c0b56
fix(solve): validate function index selector rank
hechuan9 Jul 21, 2026
8a44777
fix(solve): reject unknown function slice ranges
hechuan9 Jul 21, 2026
01482ba
docs(spec): clarify function projection scope
hechuan9 Jul 21, 2026
95aec16
test: isolate Python backend runtime probes
hechuan9 Jul 21, 2026
452c91b
fix(dae): lower proven colon-slice vector products
hechuan9 Jul 21, 2026
9050492
fix(structural): preserve explicit lhs owners
hechuan9 Jul 20, 2026
aa582d9
test(structural): assert orphan matching
hechuan9 Jul 20, 2026
a837988
fix(flatten): preserve positional function arguments
hechuan9 Jul 21, 2026
b4875d0
fix(solve): infer indexed function array dimensions
hechuan9 Jul 21, 2026
be136b6
fix(solve): validate function index selector rank
hechuan9 Jul 21, 2026
420e9cf
fix(solve): reject unknown function slice ranges
hechuan9 Jul 21, 2026
1d98051
fix(dae): lower proven colon-slice vector products
hechuan9 Jul 21, 2026
c8e8607
test: preserve Python interpreter fallback
hechuan9 Jul 21, 2026
2d0eef6
fix: declare optional empty target artifacts
hechuan9 Jul 21, 2026
0f0da6d
test: pin optional empty artifact inventory
hechuan9 Jul 21, 2026
38f89d4
fix(dae): preserve scalar colon slice scaling
hechuan9 Jul 21, 2026
180a7b4
fix(dae): require scalar conditional guards
hechuan9 Jul 21, 2026
65bf0b7
test(dae): cover builtin conditional guards
hechuan9 Jul 21, 2026
2db0dd9
fix(solve): keep unprojectable array outputs whole
hechuan9 Jul 21, 2026
b1adca1
test(solve): prove array runtime fallback
hechuan9 Jul 21, 2026
4a60f3d
docs(spec): narrow array-output invariant
hechuan9 Jul 21, 2026
a2a0c22
fix(sim): settle compact GPU initial conditions
hechuan9 Jul 21, 2026
efe6046
fix(sim): fail closed on incomplete GPU initialization
hechuan9 Jul 21, 2026
020b395
refactor(solve): prove compact GPU initialization shape
hechuan9 Jul 21, 2026
fd927af
docs(ir): describe initialization wire contract
hechuan9 Jul 21, 2026
10eb628
docs(spec): keep tensor contract within size budget
hechuan9 Jul 21, 2026
a84df82
test(diffsol): keep contact fixture compact
hechuan9 Jul 21, 2026
c150b27
fix(sim): prove GPU initialization coverage
hechuan9 Jul 21, 2026
8edfda6
test(diffsol): initialize coverage metadata
hechuan9 Jul 21, 2026
4021f4a
test(solve): initialize coverage metadata
hechuan9 Jul 21, 2026
c406f1b
test(dae): carry scheduled event provenance
hechuan9 Jul 21, 2026
179984d
fix(dae): preserve optional event provenance
hechuan9 Jul 21, 2026
3bf93ca
fix(dae): project matrix product result lanes
hechuan9 Jul 21, 2026
2559995
test(codegen): complete solve shape fixtures
hechuan9 Jul 21, 2026
9759cc5
refactor(solve): satisfy mechanical size gates
hechuan9 Jul 21, 2026
bf2eb5d
fix(dae): harden matrix product projection
hechuan9 Jul 21, 2026
5757d21
fix(dae): preserve derivative target shapes
hechuan9 Jul 21, 2026
9881fc3
fix(sim): enforce unique initialization ownership
hechuan9 Jul 21, 2026
10b95b9
fix(dae): project compound derivative targets
hechuan9 Jul 21, 2026
a4083bd
fix(sim): retain invalid range provenance
hechuan9 Jul 21, 2026
5304d38
fix(structural): preserve explicit lhs owners
hechuan9 Jul 20, 2026
c61bf1b
test(structural): assert orphan matching
hechuan9 Jul 20, 2026
fa7c475
fix(flatten): preserve positional function arguments
hechuan9 Jul 21, 2026
71c4e30
fix(solve): infer indexed function array dimensions
hechuan9 Jul 21, 2026
bd634da
fix(solve): validate function index selector rank
hechuan9 Jul 21, 2026
0f1cc81
fix(solve): reject unknown function slice ranges
hechuan9 Jul 21, 2026
26ed13a
docs(spec): clarify function projection scope
hechuan9 Jul 21, 2026
4144303
fix(dae): lower proven colon-slice vector products
hechuan9 Jul 21, 2026
e516f9d
fix(dae): preserve scalar colon slice scaling
hechuan9 Jul 21, 2026
82a9f14
fix(dae): require scalar conditional guards
hechuan9 Jul 21, 2026
cc7b206
test(dae): cover builtin conditional guards
hechuan9 Jul 21, 2026
1b4ad47
fix(solve): keep unprojectable array outputs whole
hechuan9 Jul 21, 2026
acc7aa5
test(solve): prove array runtime fallback
hechuan9 Jul 21, 2026
978fbc6
docs(spec): narrow array-output invariant
hechuan9 Jul 21, 2026
6d7dfe6
fix(dae): project matrix product result lanes
hechuan9 Jul 21, 2026
6c02ef1
fix(dae): harden matrix product projection
hechuan9 Jul 21, 2026
c983b3f
fix(dae): preserve derivative target shapes
hechuan9 Jul 21, 2026
a49daf1
fix(dae): project compound derivative targets
hechuan9 Jul 21, 2026
37344aa
chore(combo): reconcile colon-slice projection hardening
hechuan9 Jul 21, 2026
7ae2d55
fix(dae): preserve scalar residual routing
hechuan9 Jul 21, 2026
e334ccf
fix(dae): tighten scalar product projection
hechuan9 Jul 21, 2026
a714527
fix(dae): close wrapped slice projection gaps
hechuan9 Jul 21, 2026
998ece7
fix(dae): reject wrapped unknown slices
hechuan9 Jul 21, 2026
edc8e5f
fix(dae): classify projected builtin operands
hechuan9 Jul 21, 2026
fe75273
fix(solve): prove GPU initialization replay
hechuan9 Jul 21, 2026
81bc8fc
fix(dae): preserve scalar reduction boundaries
hechuan9 Jul 21, 2026
e91638b
refactor(dae): isolate binary scalarization
hechuan9 Jul 21, 2026
8ea35f3
fix(dae): preserve scalar residual routing
hechuan9 Jul 21, 2026
ca0c7a4
fix(dae): tighten scalar product projection
hechuan9 Jul 21, 2026
ea02d97
fix(dae): close wrapped slice projection gaps
hechuan9 Jul 21, 2026
335b2ae
fix(dae): reject wrapped unknown slices
hechuan9 Jul 21, 2026
3eddcfe
fix(dae): classify projected builtin operands
hechuan9 Jul 21, 2026
e8bbc5a
fix(dae): preserve scalar reduction boundaries
hechuan9 Jul 21, 2026
dfe8e0a
refactor(dae): isolate binary scalarization
hechuan9 Jul 21, 2026
9294e2f
fix(dae): project products nested in vector sums
hechuan9 Jul 21, 2026
43034f3
fix(dae): project products nested in vector sums
hechuan9 Jul 21, 2026
49c7534
fix(dae): project fixed-vector builtins in products
hechuan9 Jul 21, 2026
25b9d7e
refactor(dae): keep projection change compact
hechuan9 Jul 21, 2026
41979d2
fix(dae): keep compound product projection fail closed
hechuan9 Jul 21, 2026
5b83318
temp: validate fixed-vector matrix projection
hechuan9 Jul 21, 2026
b05fe72
fix(dae): keep compound product projection fail closed
hechuan9 Jul 21, 2026
da9d59b
fix(dae): preserve proven scalar compound terms
hechuan9 Jul 21, 2026
9dd8b4b
fix(dae): preserve proven scalar compound terms
hechuan9 Jul 21, 2026
607cb2d
fix(dae): reject proven vector scalar mismatches
hechuan9 Jul 21, 2026
0a29057
fix(dae): reject proven vector scalar mismatches
hechuan9 Jul 21, 2026
33c2ead
fix(dae): gate matrix product projection
hechuan9 Jul 21, 2026
2fb4f1c
fix(dae): unify matrix projection entry
hechuan9 Jul 21, 2026
92d8d6d
fix(dae): detect nested matrix projection candidates
hechuan9 Jul 21, 2026
aec007b
fix(dae): project compound array products
hechuan9 Jul 21, 2026
e3e6aa2
fix(dae): preserve scalar division scaling
hechuan9 Jul 21, 2026
2837aa5
fix(dae): detect arrays beneath product wrappers
hechuan9 Jul 21, 2026
841d2dd
fix(codegen): project scheduled event times
hechuan9 Jul 21, 2026
52d5ebd
fix(ci): verify OpenModelica package content
hechuan9 Jul 21, 2026
3f49c98
merge(validation): include owner PR #16 head
hechuan9 Jul 21, 2026
126c595
merge(validation): include owner PR #7 head
hechuan9 Jul 21, 2026
575e727
merge(validation): include owner PR #9 head
hechuan9 Jul 21, 2026
eafc9dc
merge(validation): include owner PR #10 head
hechuan9 Jul 21, 2026
89329ae
merge(validation): include owner PR #5 head
hechuan9 Jul 21, 2026
08f0408
merge(validation): include owner PR #6 head
hechuan9 Jul 21, 2026
dbc0001
merge(validation): include owner PR #8 head
hechuan9 Jul 21, 2026
2eaec33
merge(validation): include owner PR #12 head
hechuan9 Jul 21, 2026
e77157c
merge(validation): include owner PR #14 head
hechuan9 Jul 21, 2026
48c2d4e
Merge commit '65bf0b79437e855f80b9f7f24907f9477f73f5f8' into integrat…
hechuan9 Jul 21, 2026
94da527
Merge commit '841d2dde74356f890e7d378a65448667aa114e22' into integrat…
hechuan9 Jul 21, 2026
9b5bd83
fix(dae): keep scalar product projection lane-local
hechuan9 Jul 22, 2026
241525b
merge(validation): update owner PR #14 head
hechuan9 Jul 22, 2026
5e6b6f3
fix(solve): preserve range selection shape in assignments
hechuan9 Jul 22, 2026
af87f34
fix(structural): retain scalar slice lhs owners
hechuan9 Jul 22, 2026
a856e4e
fix(structural): retain singleton structured lhs owner
hechuan9 Jul 22, 2026
d9459b1
fix(solve): lower vector dot products in projections
hechuan9 Jul 22, 2026
8a0acaf
fix(solve): preserve range selection shape in assignments
hechuan9 Jul 22, 2026
9adb44b
fix(solve): lower vector dot products in projections
hechuan9 Jul 22, 2026
1499689
fix(solve): reject empty vector dot products
hechuan9 Jul 22, 2026
8826b8d
fix(solve): preserve declared scalar shape evidence
hechuan9 Jul 22, 2026
a2a2980
fix(solve): propagate function projection budget
hechuan9 Jul 22, 2026
94506bb
test(solve): cover direct scalar projected residual
hechuan9 Jul 22, 2026
e3cdfec
fix(solve): preserve direct scalar residual bindings
hechuan9 Jul 22, 2026
9302fdd
test(solve): cover structured local slice selector
hechuan9 Jul 22, 2026
fc0e9d9
fix(solve): route dynamic local mixed slices
hechuan9 Jul 22, 2026
a342f17
docs: define broken-main recovery review rule
hechuan9 Jul 22, 2026
bab0e93
docs: bind recovery CI to integration head
hechuan9 Jul 22, 2026
2ab376e
docs: harden recovery authorization evidence
hechuan9 Jul 22, 2026
3efb2ed
docs: align recovery policy guard
hechuan9 Jul 22, 2026
b61e154
docs: close recovery policy review gaps
hechuan9 Jul 22, 2026
eac8278
merge(validation): include owner PR #6 head
hechuan9 Jul 22, 2026
f0b2051
merge(validation): include owner PR #8 head
hechuan9 Jul 22, 2026
b2897c4
merge(validation): include owner PR #17 head
hechuan9 Jul 22, 2026
9c9c9ff
merge(validation): include owner PR #18 head
hechuan9 Jul 22, 2026
4f9395b
merge(validation): include owner PR #19 head
hechuan9 Jul 22, 2026
226c806
merge(validation): include owner PR #20 head
hechuan9 Jul 22, 2026
158c7e5
merge(validation): include owner PR #21 head
hechuan9 Jul 22, 2026
38b8906
merge(validation): include owner PR #22 head
hechuan9 Jul 22, 2026
299e0ed
merge: compose colon-slice and GPU lowering coverage
hechuan9 Jul 22, 2026
6792913
merge: compose matrix projection with GPU lowering
hechuan9 Jul 22, 2026
2d280f0
merge: compose runtime projection with array fallback
hechuan9 Jul 22, 2026
8fc9a30
test(solve): keep impure array calls whole
hechuan9 Jul 22, 2026
5527b93
test: split recovery contract assertions
hechuan9 Jul 22, 2026
d98a363
Merge recovery owner PR #1 exact head
hechuan9 Jul 22, 2026
2071980
Merge recovery owner PR #9 exact head
hechuan9 Jul 22, 2026
0b5440b
Merge recovery owner PR #10 exact head
hechuan9 Jul 22, 2026
2f4abb5
Merge recovery owner PR #16 exact head
hechuan9 Jul 22, 2026
236ce49
Merge recovery owner PR #22 exact head
hechuan9 Jul 22, 2026
2e12515
Merge recovery owner PR #7 exact head
hechuan9 Jul 22, 2026
805bb3d
Merge recovery owner PR #5 exact head
hechuan9 Jul 22, 2026
47fbf81
Merge recovery owner PR #6 exact head
hechuan9 Jul 22, 2026
09bced6
Merge recovery owner PR #8 exact head
hechuan9 Jul 22, 2026
85b48d4
Merge recovery owner PR #17 exact head
hechuan9 Jul 22, 2026
9e7e67e
Merge recovery owner PR #18 exact head
hechuan9 Jul 22, 2026
efefe7f
Merge recovery owner PR #19 exact head
hechuan9 Jul 22, 2026
4ae4082
Merge recovery owner PR #20 exact head
hechuan9 Jul 22, 2026
a414640
Merge recovery owner PR #21 exact head
hechuan9 Jul 22, 2026
c7b3bca
Merge recovery owner PR #12 exact head
hechuan9 Jul 22, 2026
3512f5e
Merge recovery owner PR #11 exact head
hechuan9 Jul 22, 2026
dc3119b
Merge recovery owner PR #13 exact head
hechuan9 Jul 22, 2026
fcfd0dd
Merge recovery owner PR #14 exact head
hechuan9 Jul 22, 2026
12daf6b
refactor: remove projection plan nesting allow
hechuan9 Jul 22, 2026
4aaf13e
ci: verify recovery integration exact head
hechuan9 Jul 22, 2026
a2af0f1
fix: accept singleton GPU initialization axes
hechuan9 Jul 22, 2026
b629662
ci: bind recovery exact head to label event
hechuan9 Jul 22, 2026
b48a91e
fix(msl): scope host load sampling by platform
hechuan9 Jul 23, 2026
dbf4eb8
fix(solve): preserve noncontiguous linsolve outputs
hechuan9 Jul 23, 2026
31dec77
Merge recovery owner PR #1 (feffa9ad194ea0c84a442e6251ada86e85be4ff5)
hechuan9 Jul 23, 2026
9f3050a
Merge recovery owner PR #9 (c8e860770da26c28575e96860e0c2f879e6cb4e9)
hechuan9 Jul 23, 2026
e163254
Merge recovery owner PR #10 (0f0da6d94b3a60a43b6a85a270c1b5ee6feade1d)
hechuan9 Jul 23, 2026
afbccb0
Merge recovery owner PR #16 (52d5ebdfa17165faef4041005e8a24ba3de15462)
hechuan9 Jul 23, 2026
955b1dc
Merge recovery owner PR #22 (5527b93574936c0140186ee7f10cfdaf392487e5)
hechuan9 Jul 23, 2026
60f47c0
Merge recovery owner PR #24 (b629662e50160238f3ed6f22f29604a56ef6990e)
hechuan9 Jul 23, 2026
6d31858
Merge recovery owner PR #28 (b48a91e1aa75d9acee95713514bbc4a5a392d73c)
hechuan9 Jul 23, 2026
a8a56d9
Merge recovery owner PR #7 (3911b256ab4a5529daba92b737372c7dbf1955ba)
hechuan9 Jul 23, 2026
36855c3
Merge recovery owner PR #5 (3f3d7d7a6b9b922e632f13413fc48d55d5acb4e2)
hechuan9 Jul 23, 2026
516d422
Merge recovery owner PR #6 (a856e4eba3c3dca745415f796957e17b199a5a9d)
hechuan9 Jul 23, 2026
e1a508a
Merge recovery owner PR #8 (5e6b6f3bb9e37a10a702d4a2d64095f2bfb1b67b)
hechuan9 Jul 23, 2026
28f8214
Merge recovery owner PR #17 (1499689986577f0c42983164e3aa8d22885a7851)
hechuan9 Jul 23, 2026
72f78f0
Merge recovery owner PR #18 (8826b8d2b11c39d6d7ed58f8b78831b6e9f3eeef)
hechuan9 Jul 23, 2026
d5082c9
Merge recovery owner PR #19 (a2a2980091e4910645ac69c5b85b4c86c11df61e)
hechuan9 Jul 23, 2026
a56d598
Merge recovery owner PR #20 (e3cdfecdaff74dbd0d05c28c0ccb3ab1aac65162)
hechuan9 Jul 23, 2026
dcdca27
Merge recovery owner PR #21 (fc0e9d9b1a0e88d6db13091714761dabdde65183)
hechuan9 Jul 23, 2026
3e5ee7c
Merge recovery owner PR #12 (8fc9a30361b4886da244f5467de6b934348e3602)
hechuan9 Jul 23, 2026
60e9eb5
Merge recovery owner PR #11 (65bf0b79437e855f80b9f7f24907f9477f73f5f8)
hechuan9 Jul 23, 2026
a5df556
Merge recovery owner corrected PR #13/#23/#25 stack (a2af0f1efe370f5c…
hechuan9 Jul 23, 2026
d59bcfc
Merge recovery owner corrected PR #14/#29 stack (dbf4eb8dc543dae7f86b…
hechuan9 Jul 23, 2026
302a0bc
fix(solve): preserve noncontiguous linsolve outputs
hechuan9 Jul 23, 2026
839215c
Merge commit 'feffa9ad194ea0c84a442e6251ada86e85be4ff5' into integrat…
hechuan9 Jul 23, 2026
71c9383
Merge commit 'c8e860770da26c28575e96860e0c2f879e6cb4e9' into integrat…
hechuan9 Jul 23, 2026
766300a
Merge commit '0f0da6d94b3a60a43b6a85a270c1b5ee6feade1d' into integrat…
hechuan9 Jul 23, 2026
7609c74
Merge commit '52d5ebdfa17165faef4041005e8a24ba3de15462' into integrat…
hechuan9 Jul 23, 2026
30debe7
Merge commit '5527b93574936c0140186ee7f10cfdaf392487e5' into integrat…
hechuan9 Jul 23, 2026
71629ff
Merge commit 'b629662e50160238f3ed6f22f29604a56ef6990e' into integrat…
hechuan9 Jul 23, 2026
3a894f5
Merge commit 'b48a91e1aa75d9acee95713514bbc4a5a392d73c' into integrat…
hechuan9 Jul 23, 2026
c4ce39e
Merge commit '3911b256ab4a5529daba92b737372c7dbf1955ba' into integrat…
hechuan9 Jul 23, 2026
324d129
Merge commit '3f3d7d7a6b9b922e632f13413fc48d55d5acb4e2' into integrat…
hechuan9 Jul 23, 2026
8d59a70
Merge commit 'a856e4eba3c3dca745415f796957e17b199a5a9d' into integrat…
hechuan9 Jul 23, 2026
106be32
Merge commit '5e6b6f3bb9e37a10a702d4a2d64095f2bfb1b67b' into integrat…
hechuan9 Jul 23, 2026
ee38c15
Merge commit '1499689986577f0c42983164e3aa8d22885a7851' into integrat…
hechuan9 Jul 23, 2026
0dc3e0d
Merge commit '8826b8d2b11c39d6d7ed58f8b78831b6e9f3eeef' into integrat…
hechuan9 Jul 23, 2026
71ef56c
Merge commit 'a2a2980091e4910645ac69c5b85b4c86c11df61e' into integrat…
hechuan9 Jul 23, 2026
f72367e
Merge commit 'e3cdfecdaff74dbd0d05c28c0ccb3ab1aac65162' into integrat…
hechuan9 Jul 23, 2026
0a065ee
Merge commit 'fc0e9d9b1a0e88d6db13091714761dabdde65183' into integrat…
hechuan9 Jul 23, 2026
5d902de
Merge commit '8fc9a30361b4886da244f5467de6b934348e3602' into integrat…
hechuan9 Jul 23, 2026
0a5d6cc
Merge commit '65bf0b79437e855f80b9f7f24907f9477f73f5f8' into integrat…
hechuan9 Jul 23, 2026
cabecf5
Merge commit 'a2af0f1efe370f5c78b21eab652f91e74316bb6d' into integrat…
hechuan9 Jul 23, 2026
81be068
Merge commit '302a0bce99c00566332b0f9ed5652aff244a29fb' into integrat…
hechuan9 Jul 23, 2026
a8c4f80
fix(solve): preserve noncontiguous linsolve outputs
hechuan9 Jul 23, 2026
bd3309e
Merge commit 'feffa9ad194ea0c84a442e6251ada86e85be4ff5' into integrat…
hechuan9 Jul 23, 2026
1df2740
Merge commit 'c8e860770da26c28575e96860e0c2f879e6cb4e9' into integrat…
hechuan9 Jul 23, 2026
9ff79b3
Merge commit '0f0da6d94b3a60a43b6a85a270c1b5ee6feade1d' into integrat…
hechuan9 Jul 23, 2026
5bb5493
Merge commit '52d5ebdfa17165faef4041005e8a24ba3de15462' into integrat…
hechuan9 Jul 23, 2026
9339365
Merge commit '5527b93574936c0140186ee7f10cfdaf392487e5' into integrat…
hechuan9 Jul 23, 2026
4c8b560
Merge commit 'b629662e50160238f3ed6f22f29604a56ef6990e' into integrat…
hechuan9 Jul 23, 2026
b515d3e
Merge commit 'b48a91e1aa75d9acee95713514bbc4a5a392d73c' into integrat…
hechuan9 Jul 23, 2026
d446159
Merge commit '3911b256ab4a5529daba92b737372c7dbf1955ba' into integrat…
hechuan9 Jul 23, 2026
a69e98d
Merge commit '3f3d7d7a6b9b922e632f13413fc48d55d5acb4e2' into integrat…
hechuan9 Jul 23, 2026
badbddd
Merge commit 'a856e4eba3c3dca745415f796957e17b199a5a9d' into integrat…
hechuan9 Jul 23, 2026
d20cf73
Merge commit '5e6b6f3bb9e37a10a702d4a2d64095f2bfb1b67b' into integrat…
hechuan9 Jul 23, 2026
081b8e0
Merge commit '1499689986577f0c42983164e3aa8d22885a7851' into integrat…
hechuan9 Jul 23, 2026
044d265
Merge commit '8826b8d2b11c39d6d7ed58f8b78831b6e9f3eeef' into integrat…
hechuan9 Jul 23, 2026
4b8ba83
Merge commit 'a2a2980091e4910645ac69c5b85b4c86c11df61e' into integrat…
hechuan9 Jul 23, 2026
b96356d
Merge commit 'e3cdfecdaff74dbd0d05c28c0ccb3ab1aac65162' into integrat…
hechuan9 Jul 23, 2026
bca33d1
Merge commit 'fc0e9d9b1a0e88d6db13091714761dabdde65183' into integrat…
hechuan9 Jul 23, 2026
e3cd0e9
Merge commit '8fc9a30361b4886da244f5467de6b934348e3602' into integrat…
hechuan9 Jul 23, 2026
546bcf4
Merge commit '65bf0b79437e855f80b9f7f24907f9477f73f5f8' into integrat…
hechuan9 Jul 23, 2026
26a2cd4
Merge commit 'a2af0f1efe370f5c78b21eab652f91e74316bb6d' into integrat…
hechuan9 Jul 23, 2026
b4bbd32
Merge commit 'a8c4f80af96212a8d4a4ce9753b5a39f8118b4a7' into integrat…
hechuan9 Jul 23, 2026
a568c87
fix(structural): preserve indexed scalar projections
hechuan9 Jul 23, 2026
540789f
fix(structural): preserve indexed scalar projections
hechuan9 Jul 23, 2026
9598401
refactor(structural): keep scalarizer within size budget
hechuan9 Jul 23, 2026
5d7839c
wip: capture matrix product projection work
hechuan9 Jul 30, 2026
7f22f83
wip: capture MSL baseline probe work
hechuan9 Jul 30, 2026
70301ee
wip: capture vector dot projection work
hechuan9 Jul 30, 2026
7ee4516
merge: preserve structural index projection idempotence WIP
hechuan9 Jul 30, 2026
ecf2cf9
wip: capture matrix product projection work
hechuan9 Jul 30, 2026
e6d7915
wip: capture MSL baseline probe work
hechuan9 Jul 30, 2026
bfb17d6
preservation-only: retain 540789f7 from wip/preserve-autonomous-overl…
hechuan9 Jul 30, 2026
692a5b3
preservation-only: retain 04134a1a from wip/preserve-function-project…
hechuan9 Jul 30, 2026
0c005fc
preservation-only: retain 1d98051e from wip/preserve-moving-deck-rca-…
hechuan9 Jul 30, 2026
803bc6d
preservation-only: retain 0a29057a from wip/preserve-matrix-combo-202…
hechuan9 Jul 30, 2026
5f4dd99
preservation-only: retain 38b8906c from integration/mechanism-fixes
hechuan9 Jul 30, 2026
76b68aa
preservation-only: retain fcfd0dd5 from integration/recovery-clean-v3…
hechuan9 Jul 30, 2026
f0f7fbf
preservation-only: retain d59bcfce from integration/recovery-v6-20260723
hechuan9 Jul 30, 2026
502ae14
preservation-only: retain 81be0689 from integration/recovery-v7-20260723
hechuan9 Jul 30, 2026
a6c6d24
preservation-only: retain 5d7839cb from fix/dae-matrix-product-projec…
hechuan9 Jul 30, 2026
39db901
preservation-only: retain 7f22f834 from wip/capture-msl-baseline-2026…
hechuan9 Jul 30, 2026
18ddb40
preservation-only: retain 70301ee1 from wip/capture-vector-dot-20260730
hechuan9 Jul 30, 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
  •  
  •  
  •  
29 changes: 29 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,3 +65,32 @@ If `net_added_lines` is positive, add:
- [ ] No `#[allow(clippy::...)]` added outside generated code.
- [ ] Every commit signed off (`git commit -s`); no `Co-Authored-By` for AI.
- [ ] External material (if any) attributed and Apache-2.0 compatible.

## Authorized Broken-Main Recovery (optional)

<!-- Leave blank for normal PRs. Use only for an Explicitly authorized ClimaMind Rumoca broken-main recovery batch. -->

- `authorization_ref` (durable validation integration PR body or maintainer-controlled GitHub artifact):
- `authorized_by` (ClimaMind Rumoca repository maintainer):
- `batch_id`:
- Authorized ordered `owner_prs`:
- `target_branch` / baseline `head_sha`:
- RFC 3339 UTC `expires_at`:
- Owner PR / final `head_sha`:
- Independent technical review / reviewed `head_sha`:
- Owner mechanism test / tested `head_sha`:
- Recovery-rule PR / final `head_sha`:
- Integration PR / `head_sha`:
- Hosted CI workflow / `head_sha`:
- [ ] Authorization exists, matches this merge, and is unexpired.
- [ ] `authorized_by` is a ClimaMind Rumoca maintainer; this task's explicit authorization is sufficient, with no additional maintainer or approval.
- [ ] Recovery is inactive and fails closed if `expires_at` passed, every authorized owner PR landed, or target `main` has all required CI green.
- [ ] Evidence is bound to the owner final head and recorded in order; merge only after all required hosted CI is green on the integration head.
- [ ] Evidence order is recorded without skipping: authorization verification; independent technical review on final owner `head_sha`; passing owner mechanism test on that same `head_sha`; exact-head integration; hosted CI green on the integration head; then merge. No later step occurs before its predecessor.
- [ ] Every listed final owner head, including the recovery-rule PR head, is a Git ancestor of the integration head; no cherry-pick, patch-id, squash, or content-equivalent substitute.
- [ ] Recorded target baseline `head_sha` is a Git ancestor of the integration head.
- [ ] Integration history = target baseline + listed exact owner histories + signed merge commits only; no integration-only production, test, spec, workflow, baseline, validator, tolerance, fixture, or content commit.
- [ ] Every integration merge commit has exactly one `Signed-off-by` trailer and no `Co-Authored-By` trailer.
- [ ] CI workflow head = integration head.
- [ ] Any owner, baseline, or integration head change fails closed; rebuild and rerun affected evidence and CI.
- [ ] Draft, validation-only, never merge.
184 changes: 184 additions & 0 deletions .github/scripts/msl-nix-closure.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
#!/usr/bin/env bash
set -euo pipefail

readonly archive_name=closure.nar
readonly manifest_name=manifest
readonly -a manifest_fields=(version commit system out_path archive_sha256)
readonly -a required_binaries=(
msl_tests
rumoca-worker
rumoca-sim-worker
rumoca-msl-tools
)
declare -a cleanup_paths=()

cleanup() {
if ((${#cleanup_paths[@]})); then
rm -f -- "${cleanup_paths[@]}"
fi
}
trap cleanup EXIT

die() {
echo "msl-nix-closure: $*" >&2
exit 1
}

require_inputs() {
local commit=$1
local system=$2
[[ $commit =~ ^[0-9a-fA-F]{40}$ ]] || die "invalid Git commit: $commit"
[[ $system =~ ^[a-zA-Z0-9._+-]+$ ]] || die "invalid Nix system: $system"
}

manifest_value() {
local manifest=$1
local key=$2
local -a values
mapfile -t values < <(
awk -v key="$key" 'index($0, key "=") == 1 { print substr($0, length(key) + 2) }' "$manifest"
)
[[ ${#values[@]} -eq 1 && -n ${values[0]} ]] || die "invalid manifest field: $key"
printf '%s\n' "${values[0]}"
}

verify_executables() {
local out_path=$1
local manifest=${2-}
local binary path actual expected
for binary in "${required_binaries[@]}"; do
path="$out_path/bin/$binary"
[[ -f $path && -x $path ]] || die "missing required executable: $binary"
if [[ -n $manifest ]]; then
expected=$(manifest_value "$manifest" "binary_${binary}_sha256")
[[ $expected =~ ^[0-9a-f]{64}$ ]] || die "invalid executable checksum: $binary"
actual=$(sha256sum "$path" | awk '{ print $1 }')
[[ $actual == "$expected" ]] || die "required executable checksum mismatch: $binary"
fi
done
}

pack() {
[[ $# -eq 4 ]] || die "usage: $0 pack OUT_LINK ARTIFACT_DIR COMMIT SYSTEM"
local out_link=$1
local artifact_dir=$2
local commit=$3
local system=$4
local out_path archive manifest paths_file archive_tmp binary
local -a closure_paths

require_inputs "$commit" "$system"
command -v nix-store >/dev/null || die "nix-store is required"
command -v sha256sum >/dev/null || die "sha256sum is required"
[[ -e $out_link ]] || die "missing realized MSL output: $out_link"
out_path=$(realpath "$out_link")
[[ $out_path == /* && $out_path != *[[:space:]]* ]] || die "invalid Nix output path: $out_path"
verify_executables "$out_path"

mkdir -p "$artifact_dir"
archive="$artifact_dir/$archive_name"
manifest="$artifact_dir/$manifest_name"
paths_file="$artifact_dir/closure-paths.tmp"
archive_tmp="$archive.tmp"
rm -f "$archive" "$manifest" "$paths_file" "$archive_tmp"
cleanup_paths=("$paths_file" "$archive_tmp" "$archive" "$manifest")

nix-store --query --requisites "$out_path" > "$paths_file" ||
die "failed to query Nix requisites"
grep -Fxq "$out_path" "$paths_file" || printf '%s\n' "$out_path" >> "$paths_file"
LC_ALL=C sort -u -o "$paths_file" "$paths_file"
mapfile -t closure_paths < "$paths_file"
[[ ${#closure_paths[@]} -gt 0 ]] || die "Nix requisites closure is empty"
for out_path in "${closure_paths[@]}"; do
[[ $out_path == /* && $out_path != *[[:space:]]* ]] ||
die "invalid path in Nix requisites closure: $out_path"
done
nix-store --export "${closure_paths[@]}" > "$archive_tmp" ||
die "failed to export Nix requisites closure"
[[ -s $archive_tmp ]] || die "exported Nix closure archive is empty"
mv "$archive_tmp" "$archive"

{
echo 'version=1'
echo "commit=$commit"
echo "system=$system"
echo "out_path=$(realpath "$out_link")"
echo "archive_sha256=$(sha256sum "$archive" | awk '{ print $1 }')"
for binary in "${required_binaries[@]}"; do
echo "binary_${binary}_sha256=$(sha256sum "$(realpath "$out_link")/bin/$binary" | awk '{ print $1 }')"
done
} > "$manifest"
rm -f "$paths_file"
cleanup_paths=()
}

restore() {
[[ $# -eq 4 ]] || die "usage: $0 restore ARTIFACT_DIR OUT_LINK COMMIT SYSTEM"
local artifact_dir=$1
local out_link=$2
local expected_commit=$3
local expected_system=$4
local archive="$artifact_dir/$archive_name"
local manifest="$artifact_dir/$manifest_name"
local version commit system out_path expected_sha actual_sha paths_file path
local expected_manifest_lines
local -a closure_paths

require_inputs "$expected_commit" "$expected_system"
command -v nix-store >/dev/null || die "nix-store is required"
command -v sha256sum >/dev/null || die "sha256sum is required"
[[ -f $manifest ]] || die "missing manifest: $manifest"
[[ -f $archive ]] || die "missing closure archive: $archive"
expected_manifest_lines=$((${#manifest_fields[@]} + ${#required_binaries[@]}))
[[ $(wc -l < "$manifest") -eq $expected_manifest_lines ]] ||
die "invalid manifest structure"

version=$(manifest_value "$manifest" version)
commit=$(manifest_value "$manifest" commit)
system=$(manifest_value "$manifest" system)
out_path=$(manifest_value "$manifest" out_path)
expected_sha=$(manifest_value "$manifest" archive_sha256)
[[ $version == 1 ]] || die "unsupported manifest version: $version"
require_inputs "$commit" "$system"
[[ $out_path == /* && $out_path != *[[:space:]]* ]] || die "invalid Nix output path: $out_path"
[[ $expected_sha =~ ^[0-9a-f]{64}$ ]] || die "invalid archive checksum"
[[ $commit == "$expected_commit" ]] || die "commit mismatch: expected $expected_commit, got $commit"
[[ $system == "$expected_system" ]] || die "system mismatch: expected $expected_system, got $system"
actual_sha=$(sha256sum "$archive" | awk '{ print $1 }')
[[ $actual_sha == "$expected_sha" ]] || die "archive checksum mismatch"

nix-store --import < "$archive" || die "Nix closure import failed"
[[ -e $out_path ]] || die "imported Nix output is missing: $out_path"
paths_file=$(mktemp)
cleanup_paths=("$paths_file")
nix-store --query --requisites "$out_path" > "$paths_file" ||
die "failed to query imported Nix requisites"
mapfile -t closure_paths < "$paths_file"
[[ ${#closure_paths[@]} -gt 0 ]] || die "imported Nix requisites closure is empty"
for path in "${closure_paths[@]}"; do
[[ -e $path ]] || die "imported Nix requisite is missing: $path"
done
verify_executables "$out_path" "$manifest"

if [[ -e $out_link && ! -L $out_link ]]; then
die "refusing to replace non-symlink output: $out_link"
fi
rm -f "$out_link"
ln -s "$out_path" "$out_link"
rm -f "$paths_file"
cleanup_paths=()
}

case ${1-} in
pack)
shift
pack "$@"
;;
restore)
shift
restore "$@"
;;
*)
die "usage: $0 {pack|restore} ..."
;;
esac
Loading