{"version":"2.1.246","anchor":"bundle-uploads-use-per-run-refs-and-clean-up-after-crashed-r","canonical_anchor":"bundle-uploads-use-per-run-refs-and-clean-up-after-crashed-r","heading":"Bundle uploads use per-run refs and clean up after crashed runs","tier":"internal","area":"Cloud Sessions","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.246\/e\/bundle-uploads-use-per-run-refs-and-clean-up-after-crashed-r","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.246","markdown":"### Bundle uploads use per-run refs and clean up after crashed runs\n\nTwo bundle uploads from the same checkout no longer clobber each other, and dead refs get swept.\n\n**What**\n\nEach cloud-session bundle upload now creates its own temporary git refs instead of two fixed ones, sweeps leftover refs that a killed run left behind, and rewrites the finished bundle to a second file with stable ref names, verified before upload. This makes two uploads from the same checkout safe to run without clobbering each other.\n\n**Details**\n\n- Refs are written with `update-ref --no-deref`; the relabelled copy is verified with `git bundle list-heads`.\n- A failed sweep is logged and does not abort the upload; a failed relabel has its own error text pointing at temp-directory space and concurrent writers.\n\n**Evidence**\n\n`check that the temporary directory has room for a second copy of the bundle and that nothing else is writing to this checkout`\n\n- Area: Cloud Sessions\n- Tier: Under the hood\n- Useful: 2\/5\n- Signal: 2\/5"}