* feat(#500): tap-to-reveal detail dialog for truncated cards Add shared DetailDialog composable and wire tap-to-open full metadata dialogs across Skills (installed + hub), MCP servers, Plugins, Toolsets, and Webhooks screens. Action buttons stay on the card (sticky); tapping the card body reveals untruncated description + key metadata. Refs: #500 * fix(#500): resolve compile errors from missing runtime imports + dialog scope - add missing androidx.compose.runtime.mutableStateOf/remember imports in InstalledSkillsTab + HubSkillsTab (caused 'Unresolved reference' cascade on compileDebugKotlin) - move PluginsScreen detail dialog inside the composable function scope (was nested in OrphanPluginCard -> showDetail unresolved) - DetailDialog rows type: Pair<String?,String?> -> Pair<String,String?> (key always non-null; fixes type-inference failure) - drop unnecessary safe call on non-null label Verified locally with the Android SDK: ./gradlew :app:compileDebugKotlin -> BUILD SUCCESSFUL ./gradlew :app:testDebugUnitTest -> BUILD SUCCESSFUL Refs: #500 * refactor(#500): extract toDetailRows() mappers + semantic status tones; wire SkillsScreen hub browse - add DetailRows.kt with @Composable extension mappers for Skill/HubSkill/ McpServer/PluginInfo/Toolset/WebhookSubscription -> List<DetailRow> - DetailDialog now renders status rows via LocalHermesStatusColors (review #2): SUCCESS/NEUTRAL/WARNING/ERROR/INFO tones instead of plain onSurfaceVariant - wire SkillsScreen.HubBrowseView/HubSkillCard tap -> DetailDialog (same UX as other screens) — user request - remove JVM-signature-clashing Pair overload; drop unused Color import - add detail_dialog_trust_level string (HubSkill has no version field) - verified: compileDebugKotlin + testDebugUnitTest PASS locally w/ ANDROID_HOME * fix(#500): full hub description in dialog + no name truncation - HubBrowseView (both SkillsScreen + HubSkillsTab): on card tap, fetch previewHubSkill(identifier) to get the FULL SkillContentResponse.content (search snippet was truncated); dialog shows full content once loaded, with a spinner while previewing. Falls back to snippet if no identifier. - SkillsViewModel: add hubPreviewContent/isHubPreviewing/hubPreviewError state + previewHubSkill()/clearHubPreview() (uses existing preview endpoint) - DetailDialog: title now wraps fully (removed maxLines=2 ellipsis cap) so long skill names are never cut off - verified: compileDebugKotlin PASS + ktlint clean (local ANDROID_HOME)
This commit is contained in:
11 files changed
+522
-13
No files matched your search
@@ -630,6 +630,31 @@
|
||||
<string name="plugins_show_in_sidebar">Show in sidebar</string>
|
||||
<string name="plugins_hide_from_sidebar">Hide from sidebar</string>
|
||||
|
||||
<!-- Shared detail dialog (issue #500) -->
|
||||
<string name="detail_dialog_no_info">No additional details available.</string>
|
||||
<string name="detail_dialog_category">Category</string>
|
||||
<string name="detail_dialog_source">Source</string>
|
||||
<string name="detail_dialog_version">Version</string>
|
||||
<string name="detail_dialog_status">Status</string>
|
||||
<string name="detail_dialog_description">Description</string>
|
||||
<string name="detail_dialog_tags">Tags</string>
|
||||
<string name="detail_dialog_transport">Transport</string>
|
||||
<string name="detail_dialog_label">Label</string>
|
||||
<string name="detail_dialog_url">URL</string>
|
||||
<string name="detail_dialog_command">Command</string>
|
||||
<string name="detail_dialog_args">Arguments</string>
|
||||
<string name="detail_dialog_env_vars">Environment Variables</string>
|
||||
<string name="detail_dialog_tools">Tools</string>
|
||||
<string name="detail_dialog_events">Events</string>
|
||||
<string name="detail_dialog_deliver">Deliver to</string>
|
||||
<string name="detail_dialog_prompt">Prompt</string>
|
||||
<string name="detail_dialog_skills">Skills</string>
|
||||
<string name="detail_dialog_created_at">Created</string>
|
||||
<string name="detail_dialog_error">Error</string>
|
||||
<string name="detail_dialog_status_enabled">Enabled</string>
|
||||
<string name="detail_dialog_status_disabled">Disabled</string>
|
||||
<string name="detail_dialog_trust_level">Trust Level</string>
|
||||
|
||||
<!-- McpServers Screen -->
|
||||
<string name="mcp_servers_label_transport">Transport: %1$s</string>
|
||||
<string name="mcp_servers_label_command">Command:</string>
|
||||
|
||||
Reference in new issue
Block a user