nvrsion: Add: Increase sidebar width in Settings panel by ~30% in Sources/NucleicApp/SettingsView.swift; fix iOS app network reconnection delay on app close; update iOS Live Activity Updates to reduce unnecessary push notifications in Sync, Protocol, and Remote modules; adjust iOS notifications to recall “A session is waiting for your approval” push when approval is received on another device; adjust iOS Live Activity Updates to send updates only on transcript changes in Sources/NucleicCore/Sync/SyncHost.swift, Sources/NucleicProtocol/Sync/LiveActivity.swift, ios/NucleicRemote/NucleicRemote/LiveActivityManager.swift, and Tests/NucleicProtocolTests/LiveActivitySnapshotTests.swift.

Nucleic-Promote: 1
Co-authored-by: Nucleic <[email protected]>
This commit is contained in:
2026-07-06 12:59:11 -07:00
co-authored by Nucleic
parent 70842a2cef
commit 69efadb2d6
9 changed files with 277 additions and 12 deletions
@@ -64,6 +64,19 @@ struct NucleicSessionAttributes: ActivityAttributes {
/// The most urgent sessions, attention-first (capped, typically ≤3): the detail rows.
var lines: [SessionLine]
/// The attention-bearing fingerprint of the glance: the headline counts plus each row's
/// identity and `kind`. Deliberately EXCLUDES the mid-turn churn (files/±lines and the
/// churn-derived detail), which ticks on every transcript edit while the agent works.
/// `LiveActivityManager` gates its `activity.update` on this so the glance refreshes on a
/// status change — a session starting, finishing, needing approval/input — not on every diff
/// delta mid-turn (which would burn ActivityKit's update budget for an illegible number).
/// Mirrors the host's `LiveActivitySnapshot.attentionSignature`.
var attentionSignature: [String] {
var parts = ["run:\(runningCount)", "need:\(needsYouCount)", "appr:\(approvalCount)"]
parts.append(contentsOf: lines.map { "\($0.id):\($0.kind.rawValue)" })
return parts
}
/// The single most urgent session (drives the compact/minimal regions).
var top: SessionLine? { lines.first }
/// Whether anything needs the user (waiting session or a pending approval).