Skip to content

Commit fdb91e2

Browse files
committed
fix: restore Xcode 16 CI compatibility
1 parent 6345cf0 commit fdb91e2

2 files changed

Lines changed: 16 additions & 10 deletions

File tree

Sources/NoturcodeApp/AppModel.swift

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -177,29 +177,29 @@ final class AppModel: ObservableObject {
177177
request.type == "terminalImagePaste" {
178178
Task { @MainActor [weak self] in
179179
guard let self else { return }
180-
let pasteSession = store.sessions.first {
180+
let pasteSession = self.store.sessions.first {
181181
$0.terminal?.uniqueID == request.terminalSessionID
182182
}
183183
do {
184-
if try await remoteImagePaste.handle(
184+
if try await self.remoteImagePaste.handle(
185185
request: request,
186-
sessions: store.sessions,
186+
sessions: self.store.sessions,
187187
progress: { [weak self] stage in
188188
guard let self, let pasteSession else { return }
189-
announcements.updateRemoteImagePaste(session: pasteSession, stage: stage)
189+
self.announcements.updateRemoteImagePaste(session: pasteSession, stage: stage)
190190
}
191191
) {
192-
sounds.play(.send)
192+
self.sounds.play(.send)
193193
}
194194
} catch {
195195
if let pasteSession {
196-
announcements.updateRemoteImagePaste(
196+
self.announcements.updateRemoteImagePaste(
197197
session: pasteSession,
198198
stage: .failed(message: error.localizedDescription)
199199
)
200200
}
201-
showStaleMessage(error.localizedDescription)
202-
sounds.play(.failed)
201+
self.showStaleMessage(error.localizedDescription)
202+
self.sounds.play(.failed)
203203
}
204204
}
205205
return Data("{\"ok\":true}".utf8)

Tests/NoturcodeCoreTests/NoturcodeCoreTests.swift

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,12 @@ final class NoturcodeCoreTests: XCTestCase {
148148
XCTAssertTrue(provider.contains("KeystrokeMonitor(connection, session_id)"))
149149
XCTAssertTrue(provider.contains("KeystrokeFilter(connection, patterns, session_id)"))
150150
XCTAssertTrue(provider.contains("Modifier.CONTROL"))
151-
XCTAssertFalse(provider.contains("connected-sessions.json"))
151+
let remotePasteStart = try XCTUnwrap(provider.range(of: " def remote_paste_sessions():"))
152+
let paneTrackingStart = try XCTUnwrap(provider.range(of: " def normalized_terminal_id(value):"))
153+
let remotePasteProvider = String(
154+
provider[remotePasteStart.lowerBound..<paneTrackingStart.lowerBound]
155+
)
156+
XCTAssertFalse(remotePasteProvider.contains("CONNECTED_SESSIONS"))
152157
XCTAssertFalse(provider.contains("BRIDGE, \"paste-image-sessions\""))
153158
XCTAssertTrue(cli.contains("terminal-id --remote-host \"$host\""))
154159
XCTAssertTrue(cli.contains("--ssh-control-path \"$control_socket\""))
@@ -177,7 +182,8 @@ final class NoturcodeCoreTests: XCTestCase {
177182
XCTAssertTrue(uploader.contains("RemoteTerminalRegistry().targets()"))
178183
XCTAssertTrue(installer.contains("Reload only the small Noturcode provider"))
179184
XCTAssertFalse(installer.contains("killall iTerm"))
180-
XCTAssertTrue(remoteDocs.contains("Image upload reuses that authenticated connection"))
185+
XCTAssertTrue(remoteDocs.contains("The `nc ssh` path reuses its OpenSSH control connection."))
186+
XCTAssertTrue(remoteDocs.contains("remote image relay through the live Unix-socket forward."))
181187
XCTAssertFalse(remoteDocs.contains("must accept a\nnon-interactive key-based SSH connection"))
182188
}
183189

0 commit comments

Comments
 (0)