From 08645f16505ea6579f44cf2ba04b3d4501ad93e8 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Sun, 31 May 2026 01:35:42 +0100 Subject: [PATCH] Render dashboard detail text --- README.md | 4 ++++ Sources/EVEViewController.mm | 21 +++++++++++++++++---- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 2a3d498..7a354a2 100644 --- a/README.md +++ b/README.md @@ -99,6 +99,10 @@ Eve renders and edits dashboard trees natively; each provider owns accepted state and command handling. Eve is the operator's hand on the scene graph, not a second compositor and not a remote WebKit runtime. +The broker includes a native VoidBot tab/provider. Eve renders its CTB rail, +agent status cards, and selected Face state detail from the same VoidBot +`swarm-state.json` projection used by the web dashboard. + ## Build Shape The project is a Theos-style iOS application: diff --git a/Sources/EVEViewController.mm b/Sources/EVEViewController.mm index 0a8a09a..1a84451 100644 --- a/Sources/EVEViewController.mm +++ b/Sources/EVEViewController.mm @@ -620,10 +620,23 @@ static int64_t EVEHostTimeNowNs(void) { UILabel *label = (UILabel *)[view viewWithTag:1001]; if ([label isKindOfClass:UILabel.class]) { - label.text = [NSString stringWithFormat:@"%@\n%@ %@", - node[@"label"] ?: nodeId, - node[@"kind"] ?: @"source", - node[@"health"] ?: @""]; + NSString *detail = [node[@"detail"] isKindOfClass:NSString.class] ? node[@"detail"] : @""; + if (detail.length > 0) { + label.text = [NSString stringWithFormat:@"%@\n%@ %@\n%@", + node[@"label"] ?: nodeId, + node[@"kind"] ?: @"source", + node[@"health"] ?: @"", + detail]; + label.font = [UIFont monospacedSystemFontOfSize:10.0 weight:UIFontWeightMedium]; + label.numberOfLines = 6; + } else { + label.text = [NSString stringWithFormat:@"%@\n%@ %@", + node[@"label"] ?: nodeId, + node[@"kind"] ?: @"source", + node[@"health"] ?: @""]; + label.font = [UIFont monospacedSystemFontOfSize:12.0 weight:UIFontWeightMedium]; + label.numberOfLines = 3; + } } }