Files
Termind/Frameworks/TermindDomain/Sessions/SSHShellIntegrationEvent.swift
T
Kaede Akino e457e9af98 fix(multiplexer): preserve session ownership and safe shell startup
Detach managed sessions when native mobile windows are discarded, retain
live reopen references, and fence ordinary startup commands by input and
session generation. Handle noexec helpers, isolate tmux discovery locale,
and count only verified live contexts against the journal limit.

Move actual shell execution coverage into the hostless framework suite.
Validation: 76 focused macOS tests passed; iOS multiplexer regressions
passed with the inherited hosted-test artwork failure still present.
2026-10-17 09:50:37 +08:00

26 lines
973 B
Swift

import Foundation
public nonisolated enum SSHShellIntegrationEvent: Sendable {
case runtime(TerminalRuntimeUpdate)
/// Ordinary PTY startup completed without hooks; this grants no runtime context capabilities.
case ordinaryStartupUnavailable(ticket: SSHOrdinaryStartupTicket?)
case available(shell: String, systemInfo: RemoteSystemInfo?, homeDirectory: String?)
case systemInfo(RemoteSystemInfo)
case homeResolutionUnavailable
case promptReady
case commandStarted(String)
case commandFinished(Int32, duration: TimeInterval?)
case draft(String)
}
/// A single connection/input epoch, revalidated by the transport before fallback submission.
public nonisolated struct SSHOrdinaryStartupTicket: Sendable, Equatable {
public let generation: UUID
public let inputRevision: UInt64
public init(generation: UUID, inputRevision: UInt64) {
self.generation = generation
self.inputRevision = inputRevision
}
}