diff --git a/Sources/KanbanCode/ChannelShareController.swift b/Sources/KanbanCode/ChannelShareController.swift index 1d9faf4..7564b0d 100644 --- a/Sources/KanbanCode/ChannelShareController.swift +++ b/Sources/KanbanCode/ChannelShareController.swift @@ -230,12 +230,11 @@ final class ChannelShareController { } private static func drainStderr(_ handle: FileHandle, tag: String) { - Task.detached { + DispatchQueue.global(qos: .utility).async { while true { let data = handle.availableData if data.isEmpty { return } if let s = String(data: data, encoding: .utf8) { - // Keep share-related diagnostics quiet unless debugging. FileHandle.standardError.write(Data("\(tag) \(s)".utf8)) } } @@ -243,7 +242,7 @@ final class ChannelShareController { } private static func drainStdout(_ handle: FileHandle, tag: String) { - Task.detached { + DispatchQueue.global(qos: .utility).async { while true { let data = handle.availableData if data.isEmpty { return } diff --git a/Sources/KanbanCode/ListBoardView.swift b/Sources/KanbanCode/ListBoardView.swift index a2ded9e..f16b235 100644 --- a/Sources/KanbanCode/ListBoardView.swift +++ b/Sources/KanbanCode/ListBoardView.swift @@ -61,7 +61,7 @@ struct ListBoardView: View { private func scrollView(proxy: ScrollViewProxy) -> some View { ScrollView { - LazyVStack(alignment: .leading, spacing: 0, pinnedViews: [.sectionHeaders]) { + LazyVStack(alignment: .leading, spacing: 0) { channelsSection ForEach(sections, id: \.column) { section in sectionView(for: section) @@ -350,7 +350,7 @@ private struct ListBoardSectionView: View { onReorderCard: onReorderCard )) } else { - LazyVStack(spacing: 4) { + VStack(spacing: 4) { ForEach(section.cards) { card in if dragState.reorderTargetId == card.id && dragState.reorderAbove { ReorderIndicator()