* feat(toolsets): per-toolset config/env/provider/post-setup management (#782) * fix(toolsets): per-entry toolset name for shared detail ViewModel (#782) NavDisplay uses the activity-level ViewModelStoreOwner, so class-keyed viewModel{} returns the same ToolsetDetailViewModel for every detail entry; the constructor-captured name froze the first-opened toolset into all entries (on-device: every toolset showed web's providers, no further /config calls after the first). The screen now drives setToolset(name) + loadConfig() per entry, and setToolset resets per-toolset state (config, revealed secrets, running post-setup) so nothing bleeds across toolsets. * style(toolsets): single-line scrollable tool chip strip (#782) A wrapping FlowRow stacked chips vertically for toolsets with many tools (web etc.), ballooning card height — especially on large font scales. Chips now sit on one horizontally scrollable row. * chore(toolsets): drop stray terminal-noise line from chip strip change --------- Co-authored-by: M57 <hy4ri@users.noreply.github.com>
This commit is contained in:
1 parent
d9f437939a
commit
fe79ff42b4
9 files changed
+1558
-16
No files matched your search
@@ -107,6 +107,13 @@ 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.ToolsetConfigResponse
|
||||
import com.m57.hermescontrol.data.model.ToolsetEnvUpdateRequest
|
||||
import com.m57.hermescontrol.data.model.ToolsetEnvUpdateResponse
|
||||
import com.m57.hermescontrol.data.model.ToolsetPostSetupRequest
|
||||
import com.m57.hermescontrol.data.model.ToolsetPostSetupResponse
|
||||
import com.m57.hermescontrol.data.model.ToolsetProviderSelectRequest
|
||||
import com.m57.hermescontrol.data.model.ToolsetProviderSelectResponse
|
||||
import com.m57.hermescontrol.data.model.ToolsetToggleRequest
|
||||
import com.m57.hermescontrol.data.model.UpdateCheckResponse
|
||||
import com.m57.hermescontrol.data.model.UpdateCronJobRequest
|
||||
@@ -407,6 +414,30 @@ interface HermesApiService {
|
||||
@Body body: ToolsetToggleRequest,
|
||||
): Response<Unit>
|
||||
|
||||
// ── Per-toolset management (issue #782) ────────────────────────────
|
||||
@GET("api/tools/toolsets/{name}/config")
|
||||
suspend fun getToolsetConfig(
|
||||
@Path("name") name: String,
|
||||
): Response<ToolsetConfigResponse>
|
||||
|
||||
@PUT("api/tools/toolsets/{name}/provider")
|
||||
suspend fun selectToolsetProvider(
|
||||
@Path("name") name: String,
|
||||
@Body body: ToolsetProviderSelectRequest,
|
||||
): Response<ToolsetProviderSelectResponse>
|
||||
|
||||
@PUT("api/tools/toolsets/{name}/env")
|
||||
suspend fun saveToolsetEnv(
|
||||
@Path("name") name: String,
|
||||
@Body body: ToolsetEnvUpdateRequest,
|
||||
): Response<ToolsetEnvUpdateResponse>
|
||||
|
||||
@POST("api/tools/toolsets/{name}/post-setup")
|
||||
suspend fun runToolsetPostSetup(
|
||||
@Path("name") name: String,
|
||||
@Body body: ToolsetPostSetupRequest,
|
||||
): Response<ToolsetPostSetupResponse>
|
||||
|
||||
@GET("api/plugins/hermes-achievements/achievements")
|
||||
suspend fun getAchievements(): Response<AchievementsResponse>
|
||||
|
||||
|
||||
Reference in new issue
Block a user