From a38a83b2d94e6b724e0af61e4f8af7173556e6be Mon Sep 17 00:00:00 2001 From: Andrew Blakeslee Moore Date: Mon, 6 Jul 2026 22:08:41 -0700 Subject: [PATCH] Push Notification Live Activity Redundancy Nucleic-Session: 73687ED9-C11C-438C-832B-979332B73893 Co-authored-by: Nucleic --- NucleicRemote/NucleicRemote/LiveActivityManager.swift | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/NucleicRemote/NucleicRemote/LiveActivityManager.swift b/NucleicRemote/NucleicRemote/LiveActivityManager.swift index 9b368ec..36400cf 100644 --- a/NucleicRemote/NucleicRemote/LiveActivityManager.swift +++ b/NucleicRemote/NucleicRemote/LiveActivityManager.swift @@ -356,10 +356,13 @@ final class LiveActivityManager { /// Project a wire summary into the widget's self-contained row model. private static func line(for s: WireSessionSummary) -> NucleicSessionAttributes.SessionLine { - // Carry the approval id/risk only for a session actually awaiting approval — that's the row - // the glance renders inline Allow/Deny on (`ApproveFromActivityIntent`). Other states leave - // it nil so the row stays a plain deep-link tap. - let approvalID = s.status == .awaitingApproval ? s.firstApprovalID?.rawValue : nil + // Carry the approval id/risk only for a session awaiting a *tool approval* — the row the + // glance renders inline Allow/Deny on (`ApproveFromActivityIntent`). An `AskUserQuestion` + // block (pendingQuestionCount set) is excluded: it needs an answer selection the glance can't + // collect, so it deep-links to the app's picker card, like the notification path. Other states + // leave it nil so the row stays a plain deep-link tap. + let approvalID = (s.status == .awaitingApproval && s.pendingQuestionCount == nil) + ? s.firstApprovalID?.rawValue : nil return NucleicSessionAttributes.SessionLine( id: s.sessionID.rawValue, title: s.title.isEmpty ? s.projectName : s.title,