mirror of
https://github.com/stablyai/orca.git
synced 2026-10-03 08:02:12 +00:00
The split silently dropped jira.searchUsers and runtimeEnvironments.retryControlConnection. Neither failed typecheck: the bridge modules carried no satisfies annotation and the composed api object was unannotated, so a missing key was only a runtime TypeError in the renderer. Annotates each module against PreloadApi, the type window.api is already declared as, so the contract supplies the shape rather than a parallel copy. Deleting jira.searchUsers now fails with TS2741 naming the key. Turning this on surfaced 106 places where a bridge locally annotated Promise<unknown> or unknown[] over a contract that declares concrete types -- the bridge was erasing types the renderer relied on. Those annotations are gone. Also exposes app.awaitBeforeUnloadCheckpoint, which was declared and called but never actually on the bridge, so the lazy-chunk recovery reload optional-chained to a no-op and navigated without joining the checkpoint. The missing key was caught by the new annotation rather than by hand.
37 lines
1.2 KiB
TypeScript
37 lines
1.2 KiB
TypeScript
import { ipcRenderer } from 'electron'
|
|
import type { WorktreeSetupLaunch } from '../../shared/worktree/launch-types'
|
|
import type { ExecutionHostId } from '../../shared/execution-host'
|
|
import type { PreloadApi } from '../api-types'
|
|
|
|
export const hooksApi = {
|
|
check: (args: { repoId: string; hostId?: ExecutionHostId }) =>
|
|
ipcRenderer.invoke('hooks:check', args),
|
|
|
|
inspectSetupScriptImports: (args: { repoId: string; hostId?: ExecutionHostId }) =>
|
|
ipcRenderer.invoke('hooks:inspectSetupScriptImports', args),
|
|
|
|
createIssueCommandRunner: (args: {
|
|
repoId: string
|
|
worktreePath: string
|
|
command: string
|
|
}): Promise<WorktreeSetupLaunch> => ipcRenderer.invoke('hooks:createIssueCommandRunner', args),
|
|
|
|
readIssueCommand: (args: {
|
|
repoId: string
|
|
hostId?: ExecutionHostId
|
|
}): Promise<{
|
|
status?: 'ok' | 'error'
|
|
localContent: string | null
|
|
sharedContent: string | null
|
|
effectiveContent: string | null
|
|
localFilePath: string
|
|
source: 'local' | 'shared' | 'none'
|
|
}> => ipcRenderer.invoke('hooks:readIssueCommand', args),
|
|
|
|
writeIssueCommand: (args: {
|
|
repoId: string
|
|
content: string
|
|
hostId?: ExecutionHostId
|
|
}): Promise<void> => ipcRenderer.invoke('hooks:writeIssueCommand', args)
|
|
} satisfies PreloadApi['hooks']
|