chore(app): clarify browser bridge naming

- Rename window-api to browser-bridge to describe the app-to-browser test hook boundary
- Rename the chat transport hook to exposeChatTransportOverride and window.openPencil.setChatTransport
This commit is contained in:
Danila Poyarkov 2026-05-06 10:43:15 +03:00
parent 8ec70330b4
commit 8719274cc9
6 changed files with 12 additions and 12 deletions

View file

@ -1116,7 +1116,7 @@ const noDirectOpenPencilWindowInternals = {
context.report({
node,
message:
'Do not access window.__OPEN_PENCIL* directly. Use src/app/window-api.ts or tests/helpers/store.ts instead.'
'Do not access window.__OPEN_PENCIL* directly. Use src/app/browser-bridge.ts or tests/helpers/store.ts instead.'
})
}
}

View file

@ -19,8 +19,8 @@ import {
unsplashAccessKey
} from '@/app/ai/chat/storage'
import { createChatSessionManager } from '@/app/ai/chat/transports'
import { exposeChatTransportOverride } from '@/app/browser-bridge'
import { getActiveEditorStore } from '@/app/editor/active-store'
import { setOpenPencilTransportFactorySetter } from '@/app/window-api'
const activeTab = ref<'design' | 'code' | 'ai'>('design')
@ -40,7 +40,7 @@ const chatSession = createChatSessionManager({
registerAIChatEffects(chatSession.markTransportDirty)
if (IS_BROWSER) {
setOpenPencilTransportFactorySetter((factory) => {
exposeChatTransportOverride((factory) => {
chatSession.setOverrideTransport(factory)
})
}

View file

@ -4,7 +4,7 @@ import type { EditorStore } from '@/app/editor/session/create'
export interface OpenPencilWindowAPI {
store?: EditorStore
setTransport?: (factory: () => ChatTransport<UIMessage>) => void
setChatTransport?: (factory: () => ChatTransport<UIMessage>) => void
openFile?: (path: string) => Promise<void>
}
@ -23,10 +23,10 @@ export function setOpenPencilStore(store: EditorStore) {
windowApi().store = store
}
export function setOpenPencilTransportFactorySetter(
setTransport: (factory: () => ChatTransport<UIMessage>) => void
export function exposeChatTransportOverride(
setChatTransport: (factory: () => ChatTransport<UIMessage>) => void
) {
windowApi().setTransport = setTransport
windowApi().setChatTransport = setChatTransport
}
export function setOpenPencilOpenFileHandler(openFile: (path: string) => Promise<void>) {

View file

@ -1,8 +1,8 @@
import { useFileDialog } from '@vueuse/core'
import { setOpenPencilOpenFileHandler } from '@/app/browser-bridge'
import { openFileInNewTab } from '@/app/tabs'
import { isTauri } from '@/app/tauri/env'
import { setOpenPencilOpenFileHandler } from '@/app/window-api'
import { IS_BROWSER } from '@/constants'
const fileDialog = useFileDialog({ accept: '.fig,.pen', multiple: false, reset: true })

View file

@ -4,10 +4,10 @@ import { BUILTIN_IO_FORMATS, IORegistry } from '@open-pencil/core/io'
import { readFigFile } from '@open-pencil/core/io/formats/fig'
import type { SceneGraph } from '@open-pencil/core/scene-graph'
import { setOpenPencilStore } from '@/app/browser-bridge'
import { setActiveEditorStore } from '@/app/editor/active-store'
import { createEditorStore } from '@/app/editor/session'
import type { EditorStore } from '@/app/editor/session'
import { setOpenPencilStore } from '@/app/window-api'
export interface Tab {
id: string

View file

@ -27,12 +27,12 @@ test.afterAll(async () => {
async function injectMockTransport(page: Page) {
await page.evaluate(() => {
const setTransport = window.openPencil?.setTransport
if (!setTransport) throw new Error('Transport override not available')
const setChatTransport = window.openPencil?.setChatTransport
if (!setChatTransport) throw new Error('Transport override not available')
let msgCounter = 0
setTransport(() => ({
setChatTransport(() => ({
async sendMessages({
messages
}: {