From a49541934897bd5ba58b81df2547f930a7699e3c Mon Sep 17 00:00:00 2001 From: neon443 <69979447+neon443@users.noreply.github.com> Date: Fri, 4 Jul 2025 16:51:02 +0100 Subject: [PATCH 1/2] fix calling of scrollback restoration, its not done on init, but only if existing is being returned --- ShhShell/Views/Terminal/SSHTerminalDelegate.swift | 2 +- ShhShell/Views/Terminal/TerminalController.swift | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/ShhShell/Views/Terminal/SSHTerminalDelegate.swift b/ShhShell/Views/Terminal/SSHTerminalDelegate.swift index acbe0b9..b26092f 100644 --- a/ShhShell/Views/Terminal/SSHTerminalDelegate.swift +++ b/ShhShell/Views/Terminal/SSHTerminalDelegate.swift @@ -25,7 +25,7 @@ final class SSHTerminalDelegate: TerminalView, Sendable, @preconcurrency Termina applySelectedTheme() Task { - await restoreScrollback() +// await restoreScrollback() await startFeedLoop() } } diff --git a/ShhShell/Views/Terminal/TerminalController.swift b/ShhShell/Views/Terminal/TerminalController.swift index f65f5ad..e181f36 100644 --- a/ShhShell/Views/Terminal/TerminalController.swift +++ b/ShhShell/Views/Terminal/TerminalController.swift @@ -19,6 +19,9 @@ struct TerminalController: UIViewRepresentable { func makeUIView(context: Context) -> TerminalView { if let sessionID = handler.sessionID { if let existing = container.sessions[sessionID] { + Task { + await existing.terminalView.restoreScrollback() + } return existing.terminalView } } From 6ce6f5c823c20d3190fdd15038e5ff0e4cc545c3 Mon Sep 17 00:00:00 2001 From: neon443 <69979447+neon443@users.noreply.github.com> Date: Fri, 4 Jul 2025 16:57:47 +0100 Subject: [PATCH 2/2] ok its fixed, but now the scrollback restore at startup causes a biit of text to be missed --- ShhShell/Views/Terminal/SSHTerminalDelegate.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ShhShell/Views/Terminal/SSHTerminalDelegate.swift b/ShhShell/Views/Terminal/SSHTerminalDelegate.swift index b26092f..aca17a6 100644 --- a/ShhShell/Views/Terminal/SSHTerminalDelegate.swift +++ b/ShhShell/Views/Terminal/SSHTerminalDelegate.swift @@ -25,7 +25,6 @@ final class SSHTerminalDelegate: TerminalView, Sendable, @preconcurrency Termina applySelectedTheme() Task { -// await restoreScrollback() await startFeedLoop() } } @@ -34,6 +33,7 @@ final class SSHTerminalDelegate: TerminalView, Sendable, @preconcurrency Termina guard let scrollback = handler?.scrollback else { return } guard !scrollback.isEmpty else { return } + try? await Task.sleep(nanoseconds: 10_000_000) await MainActor.run { self.getTerminal().resetToInitialState() for line in scrollback {