Alice can easily circumvent being defrauded by choosing a timelock (between Alice and Bob) < timelock between You and Alice.
As i have mentioned in my example:
Then, based on this you are going to create a HTLC with a timelock. This basically says 'I (you) pay X btc to Alice if she finds the secret R during the next Y blocks. If not, the funds return to me'.
Afterwards Alice (using the same hash) creates a HTLC with Bob where she pays Bob X (- fee) btc. The HTLC basically says 'I (Alice) pay X btc to Bob if he finds the secret R during the next Y-1 blocks. If not, the funds return to me'.
Ah, that's spot on! Haven't noticed this part. Very cool.