diff --git a/apps/kimi-code/src/cli/sub/web/remote-control.ts b/apps/kimi-code/src/cli/sub/web/remote-control.ts index bf0f2aac449..8fe5f8a983f 100644 --- a/apps/kimi-code/src/cli/sub/web/remote-control.ts +++ b/apps/kimi-code/src/cli/sub/web/remote-control.ts @@ -130,9 +130,7 @@ export function formatRemoteControlOutput(options: RemoteControlOutputOptions): const muted = (text: string): string => chalk.hex(darkColors.textMuted)(text); const status = (text: string): string => chalk.hex(darkColors.success)(text); const link = (url: string): string => - supportsHyperlinks() - ? toTerminalHyperlink(accent(shortRemoteControlUrl(url)), url) - : accent(url); + supportsHyperlinks() ? toTerminalHyperlink(accent(url), url) : accent(url); const docs = toTerminalHyperlink('docs', 'https://kimi.com/code/docs/remote-control'); const feedback = toTerminalHyperlink('feedback', 'https://kimi.com/code/feedback'); return [ @@ -173,17 +171,6 @@ export function formatRemoteControlStatus(status: RemoteControlStatus): string { } } -function shortRemoteControlUrl(url: string): string { - const parsed = new URL(url); - const parts = parsed.pathname.split('/'); - const deviceIndex = parts.indexOf('devices'); - const deviceId = deviceIndex >= 0 ? parts[deviceIndex + 1] : undefined; - if (deviceId !== undefined && deviceId.length > 12) { - parts[deviceIndex + 1] = `${deviceId.slice(0, 6)}…${deviceId.slice(-4)}`; - } - return `${parsed.host}${parts.join('/')}`; -} - export function buildRemoteControlUrl( deviceId: string, sessionId?: string, diff --git a/apps/kimi-code/test/cli/web/remote-control.test.ts b/apps/kimi-code/test/cli/web/remote-control.test.ts index 133f2a5680d..8329f919eca 100644 --- a/apps/kimi-code/test/cli/web/remote-control.test.ts +++ b/apps/kimi-code/test/cli/web/remote-control.test.ts @@ -83,7 +83,7 @@ describe('Remote Control output', () => { pngPath: '/tmp/example-qr.png', }; - it('keeps the full URL clickable while showing a short link and the setup contract', () => { + it('shows the full URL as the clickable link text alongside the setup contract', () => { vi.stubEnv('FORCE_HYPERLINK', '1'); const output = formatRemoteControlOutput(outputOptions); const url = outputOptions.url; @@ -91,8 +91,12 @@ describe('Remote Control output', () => { expect(output).toContain('1.'); expect(output).toContain('2.'); expect(output).toContain('3.'); - expect(output).toContain('example.test/devices/exampl…vice/'); expect(output).toContain(`\u001B]8;;${url}`); + const plain = output + .replaceAll(/\u001B\]8;;.*?\u0007/g, '') + .replaceAll(/\u001B\[[0-9;]*m/g, ''); + expect(plain).toContain(`open ${url}`); + expect(plain).not.toContain('exampl…'); expect(output).toContain('Connected to example.test'); expect(output).toContain('This device:'); expect(output).not.toContain('Manage devices');