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; + } } }