feat(#369): rewrite channels tab with full backend integration (#417)

* feat(#369): rewrite channels tab with full backend integration

- Add state, error, gateway_running, description to model
- Add test endpoint to API service
- Rewrite ViewModel with toggle, restart, test actions
- Rewrite screen with state badges, restart banner, test button
- Fix string resources and E2E test

* fix(#417): add missing import and fix ButtonSize API

- Add MessagingPlatformTestResult import to HermesApiService.kt
- Replace ButtonDefaults.ButtonSize.SMALL with ButtonDefaults.SmallButtonSize (correct M3 API)

* fix(#417): mark platformStateStyle as @Composable, remove Button size param
- @Composable annotation needed for MaterialTheme.colorScheme access
- Button/OutlinedButton size parameter not available in project's M3 version
- ktlint removed unused ButtonDefaults import

---------

Co-authored-by: M57 <hy4ri@users.noreply.github.com>
This commit is contained in:
M57andM57 authored and GitHub committed 2026-06-29 08:56:39 +03:00
1 parent 2ae6cce929
commit c64b025a54
7 files changed
+538 -158

No files matched your search

@@ -904,12 +904,19 @@ class E2eIntegrationTest {
@Test
fun testChannelsConfiguration_success() =
runTest {
val platform = MessagingPlatform("telegram", "Telegram", false, false, emptyList())
val platform =
MessagingPlatform(
id = "telegram",
name = "Telegram",
enabled = false,
configured = false,
envVars = emptyList(),
)
coEvery { mockApiService.getMessagingPlatforms() } returns
Response.success(
MessagingPlatformResponse(
env_path = "/tmp/.env",
gateway_start_command = "hermes gateway start",
envPath = "/tmp/.env",
gatewayStartCommand = "hermes gateway start",
platforms = listOf(platform),
),
)