@@ -288,13 +288,6 @@ public struct MenuBarView: View {
288288 self . meetingDetector = model. meetingDetector
289289 }
290290
291- // Height available on screen below the menu bar, minus the pinned footer (~72 px) and
292- // a small margin so the panel never sits flush against the Dock or screen edge.
293- private var scrollableMaxHeight : CGFloat {
294- let screenHeight = NSScreen . main? . visibleFrame. height ?? 600
295- return max ( 200 , screenHeight - 160 )
296- }
297-
298291 public var body : some View {
299292 VStack ( spacing: 0 ) {
300293 // Pinned top — banners and status header always visible
@@ -363,32 +356,29 @@ public struct MenuBarView: View {
363356 . padding ( . horizontal, 6 )
364357 . padding ( . vertical, 4 )
365358
366- // Recent Transcripts — scrollable only if the list can outgrow the
367- // available space. Capped so the panel never extends past the
368- // screen edge regardless of how many jobs are present .
359+ // Recent Transcripts — rendered directly (no ScrollView) so the
360+ // section expands to show all rows naturally, matching the approach
361+ // used for action rows above. recentTranscripts is already capped at 3 .
369362 if !queueStore. recentTranscripts. isEmpty {
370363 HeardTheme . Paper. borderSoft. frame ( height: 0.5 )
371364
372- ScrollView {
373- VStack ( alignment: . leading, spacing: 0 ) {
374- Text ( " Recent Transcripts " )
375- . font ( . system( size: 10 , weight: . bold) )
376- . kerning ( 0.5 )
377- . foregroundStyle ( HeardTheme . Paper. mute)
378- . padding ( . horizontal, 14 )
379- . padding ( . vertical, 4 )
365+ VStack ( alignment: . leading, spacing: 0 ) {
366+ Text ( " Recent Transcripts " )
367+ . font ( . system( size: 10 , weight: . bold) )
368+ . kerning ( 0.5 )
369+ . foregroundStyle ( HeardTheme . Paper. mute)
370+ . padding ( . horizontal, 14 )
371+ . padding ( . vertical, 4 )
380372
381- VStack ( alignment: . leading, spacing: 1 ) {
382- ForEach ( queueStore. recentTranscripts) { job in
383- JobRow ( job: job, model: model)
384- }
373+ VStack ( alignment: . leading, spacing: 1 ) {
374+ ForEach ( queueStore. recentTranscripts) { job in
375+ JobRow ( job: job, model: model)
385376 }
386377 }
387- . padding ( . horizontal, 6 )
388- . padding ( . bottom, 4 )
389- . frame ( maxWidth: . infinity, alignment: . leading)
390378 }
391- . frame ( maxHeight: scrollableMaxHeight)
379+ . padding ( . horizontal, 6 )
380+ . padding ( . bottom, 4 )
381+ . frame ( maxWidth: . infinity, alignment: . leading)
392382 }
393383
394384 // Pinned bottom — always reachable
0 commit comments