Push Notification Live Activity Redundancy

Nucleic-Session: 73687ED9-C11C-438C-832B-979332B73893
Co-authored-by: Nucleic <[email protected]>
This commit is contained in:
2026-07-06 22:08:41 -07:00
co-authored by Nucleic
parent aa7b7e6717
commit a38a83b2d9
@@ -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,