diff --git a/docs/release-control/v6/internal/subsystems/deployment-installability.md b/docs/release-control/v6/internal/subsystems/deployment-installability.md index ee2616ec5..950d122a8 100644 --- a/docs/release-control/v6/internal/subsystems/deployment-installability.md +++ b/docs/release-control/v6/internal/subsystems/deployment-installability.md @@ -1846,7 +1846,8 @@ persistence. The rc.11 corrective set extends that boundary to token creation, agent-install issuance, and agent-removal revocation; corrects version-specific Anthropic cost estimates; merges complete cross-source disk identities; retains uniquely resolved dismissed TrueNAS SMART risk; and stabilizes narrow alert -investigation plus shared chart interaction. It also checkpoints active-state +investigation, shared chart interaction, and responsive inline View preferences. +It also checkpoints active-state recovery synchronously after durable lifecycle failure and prevents any Pulse host interface from satisfying an external dead-man signal. The changes since `v6.4.0-rc.6` add the canonical `alert_fired` diff --git a/docs/releases/RELEASE_NOTES_v6.4.0-rc.11.md b/docs/releases/RELEASE_NOTES_v6.4.0-rc.11.md index bd5a57853..21af9d223 100644 --- a/docs/releases/RELEASE_NOTES_v6.4.0-rc.11.md +++ b/docs/releases/RELEASE_NOTES_v6.4.0-rc.11.md @@ -1,6 +1,6 @@ # Pulse v6.4.0-rc.11 Release Notes -`v6.4.0-rc.11` follows the alerting improvements in rc.10 with corrective reliability work for credentials, AI cost controls, storage identity, and narrow-screen incident investigation. +`v6.4.0-rc.11` follows the alerting improvements in rc.10 with corrective reliability work for credentials, AI cost controls, storage identity, and everyday investigation controls. ## What's improved @@ -8,7 +8,7 @@ - **Accurate Anthropic budgets** - Current Opus and Haiku versions use version-specific first-party rates, so stale estimates no longer stop Patrol early or understate current Haiku usage. - **Stronger disk identity and risk** - PVE and agent observations of the same RAID volume merge across normalized serial/WWN forms, while dismissed TrueNAS SMART alerts continue to flag uniquely identified disks with critical hardware evidence. - **Safer recovery and watchdog isolation** - Alert lifecycle failures checkpoint recoverable active state without deadlocking, and external dead-man targets fail closed when DNS or a literal address points to any Pulse host interface. -- **More stable incident investigation** - Mobile-width alert timelines keep context and actions together, shared history charts expose readable numeric axes, and grouped charts synchronize hover timestamps. +- **More stable incident investigation** - Mobile-width alert timelines keep context and actions together, history charts expose readable axes and synchronized hover times, and View preferences expand inline without covering tables. - **Durable alert lifecycles** - Alert history and active state now rebuild from the event log after restarts, with persisted identities migrated automatically and false all-clear states prevented during hydration. - **Better notification control** - Alerts can be snoozed individually, maintenance can recur by scope, escalation repeats can target specific destinations, delivery routes can filter by severity, and informational events remain distinct from warnings. - **Earlier capacity warnings** - Rolling metric windows and predictive storage forecasts surface sustained pressure and likely exhaustion before a single threshold breach becomes an outage. diff --git a/docs/releases/V6_CHANGELOG_v6.4.0-rc.11.md b/docs/releases/V6_CHANGELOG_v6.4.0-rc.11.md index 25488b1fb..fb44258af 100644 --- a/docs/releases/V6_CHANGELOG_v6.4.0-rc.11.md +++ b/docs/releases/V6_CHANGELOG_v6.4.0-rc.11.md @@ -19,6 +19,7 @@ This changelog describes the changes since `v6.4.0-rc.10`. The candidate also re - Alert-lifecycle append failures synchronously checkpoint a lock-independent active-state recovery projection, while an epoch guard prevents overlapping stale checkpoints from clearing degraded state. - Dead-man configuration and dial-time DNS validation reject every address assigned to the Pulse host and fail closed when local-interface enumeration is unavailable. - Alert investigation on narrow layouts uses a dedicated timeline dialog, while shared history charts synchronize hover timestamps and retain readable axes. +- Remembered table View preferences expand in a responsive inline disclosure with consistent controls instead of a floating panel over the monitored resources. - The append-only event log is the authority for alert history and active lifecycle reconstruction, including restart recovery, acknowledgement, resolution, suppression, notification, and migration evidence. - Alert identities and persisted history migrate to canonical resource keys, while active state uses durable atomic snapshots and ordered recovery. - Escalation and delivery decisions are destination-specific, repeated holds are coalesced, and destination updates persist before the active runtime changes. @@ -36,6 +37,7 @@ This changelog describes the changes since `v6.4.0-rc.10`. The candidate also re - Failed durable lifecycle writes no longer risk losing current active alerts or resurrecting alerts resolved before restart, and stale periodic checkpoints cannot overwrite the failure snapshot. - A watchdog hostname or private-LAN address that resolves back to Pulse can no longer masquerade as an external progress signal. - Mobile alert timelines remain scroll-stable, selected incident history revalidates correctly, chart axis labels remain readable, and grouped hover timestamps stay aligned. +- View preferences and the nested column selector no longer clip, cover table content, or leave mismatched controls on narrow and desktop layouts. - Alert hydration no longer exposes a false all-clear state before persisted incidents are restored. - Restart recovery, history queries, and mock alert timelines preserve lifecycle order, observation time, and complete incident evidence. - Fresh rolling-window metric data remains authoritative, including when older samples or counter resets are present. diff --git a/scripts/installtests/build_release_assets_test.go b/scripts/installtests/build_release_assets_test.go index ab588aef8..99954a150 100644 --- a/scripts/installtests/build_release_assets_test.go +++ b/scripts/installtests/build_release_assets_test.go @@ -897,6 +897,7 @@ func TestCurrentPrereleasePacketTracksInstallMetadata(t *testing.T) { "Safer governed actions", "Safer recovery and watchdog isolation", "external dead-man targets fail closed when DNS or a literal address points to any Pulse host interface", + "View preferences expand inline without covering tables", "Existing Pulse Mobile iOS build 12 and Android versionCode 9 remain compatible", "The new `alert_fired` push uses the already-supported `view_alert` action", "not Authenticode-signed", @@ -922,6 +923,7 @@ func TestCurrentPrereleasePacketTracksInstallMetadata(t *testing.T) { "Docker lifecycle results distinguish command acceptance from independently observed post-action state", "Alert-lifecycle append failures synchronously checkpoint a lock-independent active-state recovery projection", "Dead-man configuration and dial-time DNS validation reject every address assigned to the Pulse host", + "Remembered table View preferences expand in a responsive inline disclosure", "Email, ntfy, and mobile push presentation preserve informational priority instead of elevating non-warning events to warning treatment.", "Windows signing decision: prereleases publish checksum- and detached-signature-verified Windows agents without Authenticode", "Mobile decision: `existing-mobile-build-compatible`",