* feat(#443): Telegram onboarding, remove platform, credential expiry, gateway command, field validation - Add Telegram onboarding wizard: start (QR), poll status, cancel, apply with allowed-user-IDs flow. Full state machine in ChannelsViewModel. - Add remove platform button with confirmation dialog (per card). - Add credential expiry display in env var config fields. - Add gateway_start_command to the offline banner with monospace hint. - Add field validation for Slack token prefixes and member IDs. - Add admin section showing env path and gateway command. - Add DELETE, POST, GET API endpoints for onboarding + remove platform + action status polling. - Extend MessagingPlatform model with envVar expiresAt, homeChannel, updatedAt fields. * fix(#443): address review feedback + fix CI compilation & ktlint - Remove duplicate getActionStatus overload (compilation blocker) - Add missing Box import in ChannelsScreen (compilation blocker) - Remove unused gatewayCommand param from AdminSection - Centralize ISO timestamp parsing with UTC timezone - Clean up WAITING phase dialog (remove redundant confirmButton) - Use LocalHermesStatusColors for semantic surfaces - Fix all ktlint violations in changed files --------- Co-authored-by: M57 <hy4ri@users.noreply.github.com>
This commit is contained in:
1 parent
b46e0ef46d
commit
9689d17be0
4 files changed
+847
-32
No files matched your search
@@ -73,6 +73,11 @@ import com.m57.hermescontrol.data.model.SkillHubUninstallRequest
|
||||
import com.m57.hermescontrol.data.model.SkillScanResponse
|
||||
import com.m57.hermescontrol.data.model.StatusResponse
|
||||
import com.m57.hermescontrol.data.model.SystemStatsResponse
|
||||
import com.m57.hermescontrol.data.model.TelegramOnboardingApplyRequest
|
||||
import com.m57.hermescontrol.data.model.TelegramOnboardingApplyResponse
|
||||
import com.m57.hermescontrol.data.model.TelegramOnboardingStartRequest
|
||||
import com.m57.hermescontrol.data.model.TelegramOnboardingStartResponse
|
||||
import com.m57.hermescontrol.data.model.TelegramOnboardingStatusResponse
|
||||
import com.m57.hermescontrol.data.model.ToggleSkillRequest
|
||||
import com.m57.hermescontrol.data.model.Toolset
|
||||
import com.m57.hermescontrol.data.model.ToolsetToggleRequest
|
||||
@@ -499,6 +504,32 @@ interface HermesApiService {
|
||||
@Path("platform_id") platformId: String,
|
||||
): Response<MessagingPlatformTestResult>
|
||||
|
||||
@DELETE("api/messaging/platforms/{platform_id}")
|
||||
suspend fun removeMessagingPlatform(
|
||||
@Path("platform_id") platformId: String,
|
||||
): Response<Unit>
|
||||
|
||||
@POST("api/messaging/telegram/onboarding/start")
|
||||
suspend fun startTelegramOnboarding(
|
||||
@Body body: TelegramOnboardingStartRequest,
|
||||
): Response<TelegramOnboardingStartResponse>
|
||||
|
||||
@GET("api/messaging/telegram/onboarding/{pairing_id}")
|
||||
suspend fun getTelegramOnboardingStatus(
|
||||
@Path("pairing_id") pairingId: String,
|
||||
): Response<TelegramOnboardingStatusResponse>
|
||||
|
||||
@POST("api/messaging/telegram/onboarding/{pairing_id}/apply")
|
||||
suspend fun applyTelegramOnboarding(
|
||||
@Path("pairing_id") pairingId: String,
|
||||
@Body body: TelegramOnboardingApplyRequest,
|
||||
): Response<TelegramOnboardingApplyResponse>
|
||||
|
||||
@HTTP(method = "DELETE", path = "api/messaging/telegram/onboarding/{pairing_id}", hasBody = false)
|
||||
suspend fun cancelTelegramOnboarding(
|
||||
@Path("pairing_id") pairingId: String,
|
||||
): Response<Unit>
|
||||
|
||||
@GET("api/env")
|
||||
suspend fun getEnvVars(): Response<Map<String, EnvVarConfig>>
|
||||
|
||||
|
||||
Reference in new issue
Block a user