This is all good advice RE Link which should theoretically be much more stable than Superdirt MIDI.
However, for a different perspective...
The somewhat hacky method I use involves midi clock rather than Link. You'll need an internal MIDI device (I'm on windows and I use LoopBe Internal MIDI) & set this up as a MIDI output in SuperCollider - you will need to run the code for this each time, but you can add it to your startup file if you don't want to do it manually.
(Because I use SuperCollider for a bunch of different stuff I don't have a lot going on in my startup file, instead I have a few different .sc files that I use as templates depending on what I'm up to - here's an example of one with a typical MIDI out setup).
In SC you want to do something like this (see the general SuperDirt MIDI tutorial for more detail):
Then the following (if you're using a different device you need to copy the name exactly as it appears in the post window in SC):
~midiOut = MIDIOut.newByName("LoopBe Internal MIDI", "LoopBe Internal MIDI");
Then boot SuperDirt as usual before running:
You can also adjust the latency here using:
~midiOut.latency = 0.45;
You can then use your MIDI preferences in Ableton to accept the sync data coming in from the internal device.
Now for the unpolished part
I usually run something like:
d1 "midiclock" $ midicmd "midiClock*48" # s "midi"
And then I usually use
(0.2 <~) and change the value to nudge things around until it all lines up...
Again I have a couple of standard .tidal files I use as templates with the MIDI stuff already set up. Here is an example file of me doing a lot of MIDI stuff.
The downside of this method is you can't sync tempo changes in Ableton back to Tidal, Tidal has to always be the leader. The upside is that if stuff is out of sync you can just nudge it around, which you can't really do with Link. Plus it's one less bit of software to worry about (not needing to run Carabiner). It's not very slick, but it does work.
I've used Link a lot in the past and it was particularly helpful in the pre Superdirt MIDI days since clock didn't really work with tidal-midi. Now I'm lazy and just use the MIDI clock since I tend to be syncing to hardware devices too and I find it easier to just have one set of timings to think about.