From ede4465a158ebfc6b3fffc0d03e2f78a592eccb4 Mon Sep 17 00:00:00 2001 From: Jason Morley Date: Thu, 22 Jan 2026 15:37:32 -1000 Subject: [PATCH 1/3] fix: Address intermittent hangs when importing movies MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It looks like a now-deprecated `AVKit` export API would hang if it ever encountered an error, leading to hangs in site builds. This change adopts the new throwing API to ensure these hangs don’t occur any more. Unfortunately the export API itself seems to be entirely non-deterministic (especially on Tahoe?) and fails randomly, so now, builds will just fail instead. I guess that’s progress? 🤦 --- Sources/InContextCore/Importers/VideoImporterMac.swift | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Sources/InContextCore/Importers/VideoImporterMac.swift b/Sources/InContextCore/Importers/VideoImporterMac.swift index 09bd4a8..98cc846 100644 --- a/Sources/InContextCore/Importers/VideoImporterMac.swift +++ b/Sources/InContextCore/Importers/VideoImporterMac.swift @@ -25,6 +25,8 @@ import AVFoundation import Foundation +fileprivate let executor = ThreadExecutor() + extension VideoImporter: Importer { func process(file: File, @@ -175,7 +177,7 @@ extension VideoImporter: Importer { exportSession.outputURL = outputURL // Convert the video to the output file type and export it to the output URL. - await exportSession.export() + try await exportSession.export(to: outputURL, as: outputFileType) } } From 1cf5096b53170ff4853a7488675f9ef0a5164ee6 Mon Sep 17 00:00:00 2001 From: Jason Morley Date: Thu, 22 Jan 2026 15:40:28 -1000 Subject: [PATCH 2/3] Remove defunct code --- Sources/InContextCore/Importers/VideoImporterMac.swift | 2 -- 1 file changed, 2 deletions(-) diff --git a/Sources/InContextCore/Importers/VideoImporterMac.swift b/Sources/InContextCore/Importers/VideoImporterMac.swift index 98cc846..6b95944 100644 --- a/Sources/InContextCore/Importers/VideoImporterMac.swift +++ b/Sources/InContextCore/Importers/VideoImporterMac.swift @@ -25,8 +25,6 @@ import AVFoundation import Foundation -fileprivate let executor = ThreadExecutor() - extension VideoImporter: Importer { func process(file: File, From 16e1bb140fa3a746e1341e3f55a02cc7b6f5ad85 Mon Sep 17 00:00:00 2001 From: Jason Morley Date: Thu, 22 Jan 2026 15:41:21 -1000 Subject: [PATCH 3/3] No longer necessary to set properties --- Sources/InContextCore/Importers/VideoImporterMac.swift | 2 -- 1 file changed, 2 deletions(-) diff --git a/Sources/InContextCore/Importers/VideoImporterMac.swift b/Sources/InContextCore/Importers/VideoImporterMac.swift index 6b95944..7ef6140 100644 --- a/Sources/InContextCore/Importers/VideoImporterMac.swift +++ b/Sources/InContextCore/Importers/VideoImporterMac.swift @@ -171,8 +171,6 @@ extension VideoImporter: Importer { presetName: preset) else { throw InContextError.internalInconsistency("Failed to create export session.") } - exportSession.outputFileType = outputFileType - exportSession.outputURL = outputURL // Convert the video to the output file type and export it to the output URL. try await exportSession.export(to: outputURL, as: outputFileType)