Thanks Ed for the Happy Birthday killer and then for the corrected diagram. I started from the originally posted diagram; as someone who doesn't use software solvers and therefore doesn't use code strings, I wasn't aware that it was an incorrect diagram until the corrected version was posted.
I'd already started trying to solve it from the original diagram and managed 11 steps before I got stuck. Maybe it can be solved from the original diagram but it would be a lot harder; I don't think Afmob's step 1a and my step 12b, the first breakthrough moves in each of our walkthroughs, would work for it.
Here is my walkthrough for HBSS'F. I stuck to my original starting steps and have added notes where I've changed them for the corrected diagram. It's interesting to note that there are 22 Prelims, for the corrected version, which all apply to 2-cell cages; it's very unusual to have a lot of Prelims without some applying to larger cages. Just an observation; I'm happy to have a lot of 2-cell cages, they don't necessarily make puzzles easier to solve.
Originally posted with a 24(4) cage at R8C3 and a 22(4) cage at R8C6; Ed later corrected the puzzle diagram and split each of them into two 2-cell cages R8C34, R9C23 and R8C67, R9C78.Prelims
a) 13(2) cage at R1C1 = {49/58/67}, no 1,2,3
b) R1C23 = {49/58/67}, no 1,2,3
c) R1C78 = {14/23}
d) 10(2) cage at R1C9 = {19/28/37/46}, no 5
e) R23C1 = {14/23}
f) R2C34 = {19/28/37/46}, no 5
g) R2C67 = {59/68}
h) R23C9 = {29/38/47/56}, no 1
i) R4C34 = {39/48/57}, no 1,2,6
j) R4C67 = {29/38/47/56}, no 1
k) R5C34 = {69/78}
l) R5C67 = {13}
m) R6C34 = {16/25/34}, no 7,8,9
n) R6C67 = {19/28/37/46}, no 5
o) R78C1 = {18/27/36/45}, no 9
p) R78C9 = {18/27/36/45}, no 9
q) 7(2) cage in N7 = {16/25/34}, no 7,8,9
r) R8C34 = {19/28/37/46}, no 5
s) R8C67 = {49/58/67}, no 1,2,3
t) 9(2) cage at R8C8 = {18/27/36/45}, no 9
u) R9C23 = {59/68}
v) R9C78 = {18/27/36/45}, no 9
(r, s, u and v have been added after Ed corrected the puzzle diagram)
1. Naked pair {13} in R5C67, locked for R5
2. 45 rule on R12 2 outies R3C19 = 6 = [15/24/42], clean-up: no 2 in R2C1, R2C9 = {679}
3. 45 rule on R89 2 outies R7C19 = 11 = {38/47/56}, no 1,2, clean-up: no 7,8 in R8C19
4. 45 rule on R1 3 outies R2C258 = 11 = {128/137/146/236/245}, no 9, clean-up: no 4 in R1C1, no 1 in R1C9
4a. 7,8 of {128/137} must be in R2C2 -> no 7,8 in R2C58, clean-up: no 2,3 in R1C9
5. 45 rule on N1 1 outie R4C2 = 1 innie R2C3, no 5 in R4C2
6. 45 rule on N3 1 innie R2C7 = 1 outie R4C8 + 3, R4C8 = {2356}
6a. 45 rule on N3 3 innies R2C7 + R3C78 = 19 = {289/379/469/478/568}, no 1
6b. 1 in N3 only in R1C78 = {14} or 10(2) cage at R1C9 = [91] -> R2C7 + R3C78 = {289/379/478/568} (cannot be {469}, blocking cages) (no immediate eliminations)
[Alternatively cannot be {469} which clashes with R23C9]
7. 45 rule on N7 2(1+1) outies R6C2 + R8C4 = 9 = {18/27/36}/[54], no 9, no 4 in R6C2, clean-up: no 1 in R8C3
(Edited after the puzzle diagram was corrected)
8. 45 rule on N9 2(1+1) outies R6C8 + R8C6 = 13 = {49/58/67}, no 1,2,3
9. 45 rule on C1234 4 innies R1379C4 = 13 = {1237/1246/1345}, no 8,9, 1 locked for C4, clean-up: no 9 in R2C3, no 9 in R4C2 (step 5), no 8 in R6C2 (step 7), no 6 in R6C3, no 9 in R8C3
(Edited after the puzzle diagram was corrected)
10. 15(4) cage in N2 = {1239/1248/1257/1347/1356/2346}
10a. 5 of {1257/1356} must be in R1C456 (R1C456 cannot be {127/136} which clash with R1C78) -> no 5 in R2C5
10b. 6 of {1356/2346} must be in R1C456 (R1C456 cannot be {135/234} which clash with R1C78) -> no 6 in R2C5
[Alternatively the 6 can be eliminated by 45 rule on R1 2 innies R1C19 = 1 outie R2C5 + 12, max R1C19 = 17 -> max R2C5 = 5.]
11. 45 rule on C1 3 outies R258C2 = 13
11a. Min R28C2 = 5 -> max R5C2 = 8
[I had reached this stage, and got stuck, before Ed corrected the puzzle diagram.]
12. 45 rule on N7 3 innies R7C23 + R8C3 = 15 = {168/249/267/348/357} (cannot be {159} because no 1,5,9 in R8C3, cannot be {258/456} which clash with R9C23)
12a. 9 in N7 only in R7C23 + R9C23
12b. (combined cage) R7C23 + R8C3 = {249} + R9C23 = {68} clash with 7(2) cage in N7 -> R7C23 + R8C3 = {168/249/267/348/357}, no 9
13. 9 in N7 only in R9C23 = {59}, locked for R9 and N7, clean-up: no 4 in R78C1, no 6,7 in R7C9 (step 3), no 2 in 7(2) cage in N7, no 4 in R8C8, no 2,3 in R8C9, no 4 in R9C78
14. R78C1 = [72/81] (cannot be {36} which clashes with 7(2) cage), no 3,6, clean-up: no 5,8 in R7C9 (step 3), no 1,4 in R8C9
14a. Killer pair 1,2 in R23C1 and R8C1, locked for C1, clean-up: no 6 in R8C2
15. 10(2) cage at R1C9 = [73/82/91] (cannot be {46} which clashes with 7(2) cage in N7 on D/), no 4,6
15a. R2C258 (step 4) = {128/137/146/236/245}
15b. 5,6 of {146/245} must be in R2C2 -> no 4 in R2C2, clean-up: no 9 in R1C1
15c. 9 in C1 only in R456C1, locked for N4, clean-up: no 3 in R4C4, no 6 in R5C4
16. R23C9 = [74/92] (cannot be [65] which clashes with R8C9), clean-up: no 1 in R3C1 (step 2), no 4 in R2C1
16a. Naked pair {24} in R3C19, locked for R3
17. Killer pair 2,4 in R1C78 and R3C9, locked for N3, clean-up: no 8 in R1C9
17a. Naked pair {13} in R2C18, locked for R2, clean-up: no 7,9 in R2C34, no 1,3,7 in R4C2 (step 5)
17b. Killer pair 1,3 in R1C78 and R2C8, locked for N3
17c. Killer pair 1,3 in R2C8 and 7(2) cage in N7, locked for D/, clean-up: no 8 in R4C7, no 4 in R6C3
17d. 1 in N4 only in R6C23, locked for R6, clean-up: no 9 in R6C67
18. R2C258 (step 4) = {128/146/236} (cannot be {137} which clashes with R2C1, cannot be {245} which clashes with R2C5), no 5,7, clean-up: no 6,8 in R1C1
[Ed pointed out that I could have got hidden singles in R2 after this, but then I wouldn’t have found my nice step 20a.]
19. R258C2 = 13 (step 11) = {148/238/346} (cannot be {157/247} because R2C2 only contains 6,8, cannot be {256} because R8C2 only contains 1,3,4), no 5,7
19a. R2C2 = {68} -> no 6,8 in R5C2
19b. 1,3 only in R8C2 -> R8C2 = {13}, clean-up: no 3 in R9C1
20. 45 rule on R1 2 innies R1C19 = 1 outie R2C5 + 12
20a. R2C5 = {24} -> R1C19 = 14,16 = [59/79] -> R1C9 = 9, R2C8 = 1, both placed for D/, R8C2 = 3, R9C1 = 4, placed for D/, R23C1 = [32], R23C9 = [74], R8C1 = 1, R7C1 = 8, R7C9 = 3, R8C9 = 6
20b. R2C67 = [95] (hidden pair in R2), R4C8 = 2 (step 6), R1C78 = [23]
20c. Naked pair {68} in R3C78, locked for R3
[Routine clean-ups omitted from here]
21. Naked pair {58} in R56C9, locked for C9 and N6 -> R4C9 = 1, R9C9 = 2, R8C8 = 7, both placed for D\, R9C78 = [18], R3C8 = 6, R3C7 = 8, placed for D/, R5C67 = [13], R1C1 = 5, R2C2 = 8, both placed for D\, R5C5 = 6, placed for D/, R8C3 = 2, R8C4 = 8, R6C2 = 1 (step 7), R7C3 = 7, placed for D/, R7C2 = 6, R4C6 = 5, R4C7 = 6, R8C67 = [49], R7C7 = 4, placed for D\, R4C4 = 9, placed for D\, R4C2 = 4, R1C2 = 7, R1C3 = 6
and the rest is naked singles without needing to use the diagonals.