feat: surface /api/status memory+disk pressure on connect/status screens (#903) (#908)

Co-authored-by: M57 <hy4ri@users.noreply.github.com>
This commit is contained in:
M57andM57 authored and GitHub committed 2026-08-15 13:00:08 +03:00
1 parent 2746d39c7f
commit 85087c70c7
9 files changed
+402 -1

No files matched your search

@@ -8,6 +8,8 @@ data class StatusResponse(
val active_sessions: Int? = null,
val auth_required: Boolean? = null,
val gateway_platforms: Map<String, PlatformStatus?>? = null,
val memory: MemoryPressureStatus? = null,
val disk: DiskPressureStatus? = null,
)
@Serializable
@@ -15,3 +17,35 @@ data class PlatformStatus(
val state: String? = null,
val error_code: String? = null,
)
/**
* Host memory-pressure rollup from `GET /api/status` (backend NS-656).
* Advisory only — deliberately NOT folded into the endpoint's `overall`
* verdict. `pressure` is `ok` | `elevated` | `critical` | `unknown`;
* `unknown` means the sample could not be read (or is stale), NOT "fine".
*/
@Serializable
data class MemoryPressureStatus(
val pressure: String? = null,
val gateway_rss_mb: Int? = null,
val system_total_mb: Int? = null,
val system_available_mb: Int? = null,
val swap_used_mb: Int? = null,
val sampled_at: String? = null,
val last_boot_unclean: Boolean? = null,
val last_boot_suspected_oom: Boolean? = null,
val boot_id: String? = null,
)
/**
* Host disk-usage rollup from `GET /api/status` (backend NS-656).
* Same advisory semantics as [MemoryPressureStatus]: coarse MB numbers
* plus a `pressure` enum, never a liveness verdict.
*/
@Serializable
data class DiskPressureStatus(
val pressure: String? = null,
val total_mb: Int? = null,
val free_mb: Int? = null,
val used_percent: Double? = null,
)