Thanks Ed for your comments and simplifications.
Prelims
a) R1C34 = {69/78}
b) R12C5 = {69/78}
c) R12C6 = {16/25/34}, no 7,8,9
d) R12C7 = {16/25/34}, no 7,8,9
e) R23C4 = {18/27/36/45}, no 9
f) R45C3 = {39/48/57}, no 1,2,6
g) R4C56 = {18/27/36/45}, no 9
h) R56C4 = {17/26/35}, no 4,8,9
i) R7C23 = {18/27/36/45}, no 9
j) R7C89 = {29/38/47/56}, no 1
k) R8C23 = {18/27/36/45}, no 9
l) R9C12 = {18/27/36/45}, no 9
m) 10(3) cage at R3C8 = {127/136/145/235}, no 8,9
n) 13(4) cage at R5C6 = {1237/1246/1345}, no 8,9
1. 45 rule on N1 2 outies R4C14 = 1 innie R1C3 + 7, min R1C3 = 6 -> min R4C14 = 13, no 1,2,3 in R4C14
2. 45 rule on N3 1 innie R3C7 = 1 outie R4C8 + 4, R3C7 = {56789}, R4C8 = {12345}
3. 45 rule on R9 2 outies R8C89 = 16 = {79}, locked for R8 and N9, clean-up: no 2,4 in R7C89, no 2 in R8C23
3a. 9 in R9 only in R9C3456, locked for 36(6) cage at R8C8 -> R8C8 = 7
3b. 7 in R9 only in R9C12 = {27}, locked for R9 and N7
3c. R8C9 = 9 -> R9C89 = 7 = {16/34}, no 5,8
3d. Killer pair 3,6 in R7C89 and R9C89, locked for N9
3e. 2 in N9 only in R78C7, locked for C7, clean-up: no 5 in R12C7
3f. 2 in N9 only in R78C7, CPE no 2 in R7C6
3g. R7C23 = {18/45} (cannot be {36} which clashes with R7C89), no 3,6
3h. Killer pair 5,8 in R7C23 and R7C89, locked for R7
4. 45 rule on N7 1 innie R9C3 = 1 outie R6C1 + 1, no 1,6,9 in R6C1, no 1 in R9C3
5. 45 rule on C12 3 innies R378C2 = 19 = {469/478/568} (cannot be {289/379} because 2,7,9 only in R3C2), no 1,2,3, clean-up: no 8 in R7C3, no 6,8 in R8C3
5a. 7,9 of {469/478} only in R3C2 -> no 4 in R3C2
6. 45 rule on C89 1 outie R5C7 = 1 remaining innie R6C8 + 4, R5C7 = {56789}, no 6 in R6C8
7. 38(7) cage at R8C5 must contain 7 in R5C5 + R6C56 + R7C6, CPE no 7 in R45C6, clean-up: no 2 in R4C5
8. Hidden killer pair 1,4 in R789C7 and R9C89 for N9, R9C89 contains one of 1,4 -> R789C7 must contain one of 1,4
8a. Killer pair 1,4 in R12C7 and R789C7, locked for C7
9. 45 rule on N3 3 innies R3C789 = 14 = {158/167/239/257} (cannot be {149/356} which clash with R12C7, cannot be {248/347} because 10(3) cage at R3C8 cannot be {24}4/{34}3), no 4 in R3C789
10. 45 rule on N2 3 innies R1C4 + R3C56 = 14 = {149/158/239/248/257/347} (cannot be {167} which clashes with R12C5, cannot be {356} which clashes with R12C6), no 6, clean-up: no 9 in R1C3
10a. R1C4 = {789} -> no 7,8,9 in R3C56
10b. 7 in C6 only R67C6, locked for 38(7) cage at R8C5, no 7 in R56C5
11. 45 rule on N23 2 outies R4C78 = 1 innie R1C4 + 3
11a. Min R1C4 = 7 -> min R4C78 = 10, R4C78 must contain one of 6,7,8,9 -> R4C7 = {6789}
12. 45 rule on N236 1 innie R1C4 = 2 outies R5C6 + R7C7 + 3
12a. Max R5C6 + R7C7 = 6, no 6 in R5C6
13. 45 rule on C1234 2 innies R9C34 = 1 outie R7C5, IOU no 8 in R9C3, clean-up: no 7 in R6C1 (step 4)
14. 17(3) cage at R6C1 = {269/359/368/458}, no 1
14a. 1 in N7 only in R78C3, locked for C3
14b. 1 in N7 only in R7C23 = [81] or R8C23 = [81] (locking cages) -> 8 in R78C2, locked for C2 and N7
14c. 8 in R78C2 -> R378C2 (step 5) = {478/568}, no 9
14d. 17(3) cage = {458} can only be [845] -> no 4 in R68C1, clean-up: no 5 in R9C3 (step 4)
15. 45 rule on N4 3 innies R4C1 + R6C13 = 18 = {279/369/468/567} (cannot be {378/459} which clash with R45C3
15a. 2,3 of {279/369} must be in R6C1 -> no 2,3 in R6C3
16. 2 in C3 only in R23C3, locked for N1
16a. 22(4) cage at R2C3 contains 2 = {2479/2569/2578} (cannot be {2389} because R3C2 only contains 5,6,7), no 3
17. 17(3) cage at R6C1 (step 14) = {269/359/368/458}
17a. R4C1 + R6C13 (step 15) = {369/468/567} (cannot be {279} which clashes with 17(3) cage + R9C1, killer ALS block), no 2, 6 locked for N4, clean-up: no 3 in R9C3 (step 4)
17b. R6C1 = {358} -> no 5,8 in R4C1 + R6C3
17c. R4C1 + R6C13 = {369} must be [639] (cannot be [936] which clashes with 17(3) cage = {359}) -> no 9 in R4C1
[Ed suggested that the eliminated of [927] in step 17a and [936] in step 17c are blocking cages.]
18. 1,3 in N1 only in 30(6) cage at R1C1 = {134589/134679} (cannot be {135678} which clashes with R1C3 and/or R3C2), 9 locked for N1
19. R4C14 = R1C3 + 7 (step 1), min R1C3 = 6 -> min R4C14 = 13, max R4C1 = 7 -> min R4C4 = 6
20. 22(4) cage at R2C3 (step 16a) = {2479/2569/2578}
20a. 9 of {2569} must be in R4C4 -> no 6 in R4C4
21. 45 rule on N1 3(2+1) outies R1C4 + R4C14 = 22
[I could have used this 45 a lot earlier, but it wasn’t useful then.]
21a. Max R14C4 = 17 -> no 4 in R4C1
21b. 30(6) cage at R1C1 (step 18) = {134679} (only remaining combination, cannot be {134589 because R4C1 only contains 6,7), no 5,8, 4 locked for N1
21c. Caged X-Wing for 7 in 30(6) cage and R9C12, no other 7 in C12
21d. 15(4) cage at R4C2 = {1239/1248}, no 5
21e. 8 in C1 only in R56C1, locked for N4, clean-up: no 4 in R45C3
[Step 21 simplified.]
22. R9C3 = 1 outie R6C1 + 1 (step 4)
22a. R4C1 + R6C13 (step 15) = {369/468/567}
22b. 7 of {567} must be in R6C3 (R6C13 cannot be [56] which clashes with R6C1 + R9C3 = [56], IOD clash) -> no 6 in R6C3
22c. R4C1 = 6 (hidden single in N4), clean-up: no 3 in R4C56
22d. 30(6) cage at R1C1 = {134679}, 7 locked for N1, clean-up: no 8 in R1C4
[Cracked. The rest is fairly straightforward.]
23. R1C4 + R4C14 = 22 (step 21), R4C1 = 6 -> R14C4 = 16 = {79}, locked for C4, clean-up: no 2 in R23C4, no 1 in R56C4
23a. R23C4 = {18/45} (cannot be {36} which clashes with R56C4), no 3,6
23b. R1C4 + R3C56 (step 10) = {239/257/347} (cannot be {149} which clashes with R23C4), no 1
24. 17(3) cage at R6C1 (step 14) = {359/458}
24a. 4,9 only in R7C1 -> R7C1 = {49}
24b. 3 in N7 only in R8C13, locked for R8
25. R378C2 = {568} (hidden triple in C2), no 4, clean-up: no 5 in R78C3
26. 45 rule on N2 2 outies R34C7 = 1 innie R1C4 + 7
26a. R1C4 = {79} -> R34C7 = 14,16 = [59/68/79] (cannot be [97] which clashes with R14C4 = [97]) -> R3C7 = {567}, R4C7 = {89}, clean-up: no 4,5 in R4C8 (step 2)
26b. 8,9 in N3 only in 24(4) cage at R1C8 = 89{16/25/34}, no 7
[Ed has suggested to me that it's not really cracked until after step 26a.]
27. 7 in N3 only in R3C79, locked for R3
27a. R3C789 (step 9) = {167/257}, no 3
27b. Killer pair 5,6 in R3C2 and R3C789, locked for R3, clean-up: no 4 in R2C4
27c. R1C4 + R3C56 (step 23b) = {239/347}, 3 locked for R3 and N2, clean-up: no 4 in R12C6
27d. 4 in N2 only in R3C456, locked for R3
28. R3C1 = 9 (hidden single in R3), R7C1 = 4, R7C3 = 1 -> R7C2 = 8, R8C123 = [563], R6C1 = 8 (cage sum), R9C3 = 9, clean-up: no 3 in R7C89
28a. Naked pair {56} in R7C89, locked for R7 and N9 -> R7C47 = [32], clean-up: no 5 in R56C4, no 1 in R9C89 (step 3c)
28b. Naked pair {34} in R9C89, locked for R9 and N9
28c. Naked pair {18} in R89C7, locked for C7, clean-up: no 6 in R12C7
28d. Naked pair {34} in R12C7, locked for C7 and N3
29. R4C7 = 9 -> R14C4 = [97] -> R1C3 = 6, R45C3 = [57], clean-up: no 6 in R2C5, no 1 in R2C6, no 4 in R4C5, no 2,4 in R4C6
[I had, of course, noticed from the start that 15(2) cage at R1C3 and 15(2) cage at R1C5 must have different combinations -> CPE no 6 in R1C6 but that didn’t lead to anything then.
Just realised that I forgot about some clean-ups in R5C7 and R6C8 using step 6, which would have made things slightly shorter.]
29a. Naked pair {78} in R12C5, locked for C5 and N2, clean-up: no 1 in R23C4
29b. R23C4 = [54]
29c. Naked pair {23} in R3C56, locked for R3 and N2, R4C7 = 9 -> R3C7 = 7 (cage sum)
29d. R23C3 = [28], R3C2 = 5
29e. Naked pair {16} in R3C89, locked for N3, R4C8 = 3 (cage sum), R9C8 = 4
30. R7C7 = 2 -> 13(4) cage at R5C6 = {1246} (only remaining combination) -> R6C7 = 6, R5C6 = 4, R6C8 = 1
31. R6C3 = 4, R7C45 = [39] -> R8C4 = 1 (cage sum)
and the rest is naked singles.