Temporal Worker Versioning Typescript

Hi all,
I’m looking to introduce versioning into a long-running workflow, and I’ve been exploring the patch API. One concern I have is around the possibility of needing to roll back a deployment after applying a patch. From what I understand, once a patch is deployed and the new code path is taken, rolling back to an earlier version that doesn’t include the patch could result in non-deterministic errors. Is there a recommended approach for safely handling this scenario?

Additionally, I’ve been reading about build ID–based worker versioning, but I haven’t been able to find much documentation on it. Is this feature still in beta? Where can I find documentation for this - the Temporal Worker Versioing page seems to be “comming soon”?

From the SDK, I see I can assign a buildId when creating a worker, and there’s also mention of updateBuildIdCompatibility(). How is this used? How do I register new build IDs and control which builds can process which workflows via the Typescript SDK?

Would appreciate any pointers to documentation, examples, or best practices around both patch-based and build ID–based versioning. Thanks!