From 568010b31ba109126ac38739234a0bd05e6d48dc Mon Sep 17 00:00:00 2001 From: kdletters Date: Sat, 20 Jun 2026 22:51:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B6=E5=8F=A3=E7=A7=BB=E5=8A=A8=E5=A3=B3?= =?UTF-8?q?=E5=89=AA=E8=B4=B4=E6=9D=BF=E8=AF=8A=E6=96=AD=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 移动壳剪贴板 HostBridge 失败日志只记录稳定标签 更新剪贴板失败测试避免断言原生错误对象外泄 扩展移动壳配置门禁禁止剪贴板日志打印原生 error 对象 --- apps/mobile-shell/scripts/check-config.mjs | 6 ++++++ apps/mobile-shell/src/host-bridge/bridge.test.ts | 1 - apps/mobile-shell/src/host-bridge/clipboard.test.ts | 2 -- apps/mobile-shell/src/host-bridge/clipboard.ts | 4 ++-- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/apps/mobile-shell/scripts/check-config.mjs b/apps/mobile-shell/scripts/check-config.mjs index 4c6703aef..a55063db7 100644 --- a/apps/mobile-shell/scripts/check-config.mjs +++ b/apps/mobile-shell/scripts/check-config.mjs @@ -2473,6 +2473,12 @@ for (const snippet of [ throw new Error(`mobile shell clipboard module is missing ${snippet}`); } } +if (clipboardSource.includes('console.warn(`mobile clipboard failed for ${label}`, error)')) { + throw new Error('mobile shell clipboard diagnostics must not log native error objects'); +} +if (!clipboardSource.includes('console.warn(`mobile clipboard failed for ${label}`)')) { + throw new Error('mobile shell clipboard diagnostics must use stable label-only logging'); +} if (!clipboardTestSource.includes("'猫'.repeat(100000)")) { throw new Error('mobile shell clipboard tests must cover Unicode truncation'); } diff --git a/apps/mobile-shell/src/host-bridge/bridge.test.ts b/apps/mobile-shell/src/host-bridge/bridge.test.ts index 3331a2dd7..a5d3b2515 100644 --- a/apps/mobile-shell/src/host-bridge/bridge.test.ts +++ b/apps/mobile-shell/src/host-bridge/bridge.test.ts @@ -779,7 +779,6 @@ describe('handleMobileHostBridgeMessage', () => { expect(failedResponse.error.code).toBe('host_error'); expect(warnSpy).toHaveBeenCalledWith( 'mobile clipboard failed for read.get_string', - nativeError, ); } finally { warnSpy.mockRestore(); diff --git a/apps/mobile-shell/src/host-bridge/clipboard.test.ts b/apps/mobile-shell/src/host-bridge/clipboard.test.ts index 62674f513..d0f667df8 100644 --- a/apps/mobile-shell/src/host-bridge/clipboard.test.ts +++ b/apps/mobile-shell/src/host-bridge/clipboard.test.ts @@ -77,7 +77,6 @@ describe('mobile clipboard helpers', () => { }); expect(warnSpy).toHaveBeenCalledWith( 'mobile clipboard failed for write.set_string', - nativeError, ); } finally { warnSpy.mockRestore(); @@ -163,7 +162,6 @@ describe('mobile clipboard helpers', () => { }); expect(warnSpy).toHaveBeenCalledWith( 'mobile clipboard failed for read.get_string', - nativeError, ); } finally { warnSpy.mockRestore(); diff --git a/apps/mobile-shell/src/host-bridge/clipboard.ts b/apps/mobile-shell/src/host-bridge/clipboard.ts index f49a4f1d9..f822f0def 100644 --- a/apps/mobile-shell/src/host-bridge/clipboard.ts +++ b/apps/mobile-shell/src/host-bridge/clipboard.ts @@ -9,8 +9,8 @@ import { } from '../../../../packages/shared/src/contracts/hostBridge'; import { invalidRequest, ok } from './protocol'; -function logMobileClipboardFailure(label: string, error: unknown) { - console.warn(`mobile clipboard failed for ${label}`, error); +function logMobileClipboardFailure(label: string, _error: unknown) { + console.warn(`mobile clipboard failed for ${label}`); } export async function writeMobileClipboardText(rawText: unknown) {