From ae0b0cc49b6e54902d76da2707e9619c9e6bcc02 Mon Sep 17 00:00:00 2001 From: imccyu <276526105+imccyu@users.noreply.github.com> Date: Mon, 27 Jul 2026 11:46:39 +0800 Subject: [PATCH] Fix lint findings and calibrate the seat trigger to the figma mock - unused SessionId import and an unnecessary assertion in ui-model - two over-length fake-api lines split - trigger chrome calibrated against figma 313:14108's ToggleButton (13/20 medium secondary at 28px; chevron in label-caption = the mock's #ADB2B8; the mock's leading icon is invisible there, so the seat has none, and its 'High' effort text has no wire concept to render) --- packages/client/connection/tests/fake-api.ts | 3 ++- packages/client/runtime/tests/fake-api.ts | 3 ++- packages/client/ui-model/src/client/index.ts | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/client/connection/tests/fake-api.ts b/packages/client/connection/tests/fake-api.ts index 580224060b..c46f8161cf 100644 --- a/packages/client/connection/tests/fake-api.ts +++ b/packages/client/connection/tests/fake-api.ts @@ -104,7 +104,8 @@ export class FakeApiClient implements IApiClient { // Payloads stay `unknown` (lint-lane note above); response rows are the real // wire shapes so cases can program catalogs and skill lists without casts. onCommandList: (payload: unknown) => Promise> = () => Promise.resolve(ok({ commands: [] })) - onCommandExecute: (payload: unknown) => Promise> = () => Promise.resolve(ok({ matched: false })) + onCommandExecute: (payload: unknown) => Promise> = + () => Promise.resolve(ok({ matched: false })) onSkillList: (payload: unknown) => Promise> = () => Promise.resolve(ok({ skills: [] })) readonly commands: IApiClient['commands'] = { diff --git a/packages/client/runtime/tests/fake-api.ts b/packages/client/runtime/tests/fake-api.ts index 6e0f0df2ef..61a1f34983 100644 --- a/packages/client/runtime/tests/fake-api.ts +++ b/packages/client/runtime/tests/fake-api.ts @@ -127,7 +127,8 @@ export class FakeApiClient implements IApiClient { // wire shapes so cases can program requires-bearing catalogs and dual-address // skill lists without casts. onCommandList: (payload: unknown) => Promise> = () => Promise.resolve(ok({ commands: [] })) - onCommandExecute: (payload: unknown) => Promise> = () => Promise.resolve(ok({ matched: false })) + onCommandExecute: (payload: unknown) => Promise> = + () => Promise.resolve(ok({ matched: false })) onSkillList: (payload: unknown) => Promise> = () => Promise.resolve(ok({ skills: [] })) readonly commands: IApiClient['commands'] = { diff --git a/packages/client/ui-model/src/client/index.ts b/packages/client/ui-model/src/client/index.ts index f25b32d5f8..83bcf9ba31 100644 --- a/packages/client/ui-model/src/client/index.ts +++ b/packages/client/ui-model/src/client/index.ts @@ -10,7 +10,7 @@ * inline error) without forking the state. */ import type { ModelTarget, SessionModels } from '@deepseek-ai/dsh-client-connection/client' -import type { ClientContext, SessionId } from '@deepseek-ai/dsh-client-runtime/client' +import type { ClientContext } from '@deepseek-ai/dsh-client-runtime/client' import type { CommandServiceContract, SelectOption } from '@deepseek-ai/dsh-client-ui-command/client' // Type-only: pulls the ui-conversation SlotMap merge (the input.model seat). import type {} from '@deepseek-ai/dsh-client-ui-conversation/client' @@ -109,7 +109,7 @@ export function apply(ctx: ClientContext): void { scope.effect(() => scope.slots.register({ name: 'conversation.input.model', inject: (sessionId): ModelSelectInjected => { - const directory = models.directoryFor(sessionId as SessionId) + const directory = models.directoryFor(sessionId) return { directory: directory.store, load: () => { directory.load().catch(() => { /* surfaced on the store */ }) },