mirror of
https://github.com/AstrBotDevs/AstrBot
synced 2026-07-17 01:49:15 +08:00
* fix: patch pip distlib finder for frozen electron runtime * fix: use certifi CA bundle for runtime SSL requests * fix: configure certifi CA before core imports * fix: improve mac font fallback for dashboard text * fix: harden frozen pip patch and unify TLS connector * refactor: centralize dashboard CJK font fallback stacks * perf: reuse TLS context and avoid repeated frozen pip patch * refactor: bootstrap TLS setup before core imports * fix: use async confirm dialog for provider deletions * fix: replace native confirm dialogs in dashboard - Add shared confirm helper in dashboard/src/utils/confirmDialog.ts for async dialog usage with safe fallback. - Migrate provider, chat, config, session, platform, persona, MCP, backup, and knowledge-base delete/close confirmations to use the shared helper. - Remove scattered inline confirm handling to keep behavior consistent and avoid native blocking dialog focus/caret issues in Electron. * fix: capture runtime bootstrap logs after logger init - Add bootstrap record buffer in runtime_bootstrap for early TLS patch logs before logger is ready. - Flush buffered bootstrap logs to astrbot logger at process startup in main.py. - Include concrete exception details for TLS bootstrap failures to improve diagnosis. * fix: harden runtime bootstrap and unify confirm handling - Simplify bootstrap log buffering and add a public initialize hook for non-main startup paths. - Guard aiohttp TLS patching with feature/type checks and keep graceful fallback when internals are unavailable. - Standardize dashboard confirmation flow via shared confirm helpers across composition and options API components. * refactor: simplify runtime tls bootstrap and tighten confirm typing * refactor: align ssl helper namespace and confirm usage
32 lines
745 B
TypeScript
32 lines
745 B
TypeScript
import { inject } from 'vue'
|
|
|
|
export type ConfirmDialogOptions = {
|
|
title?: string
|
|
message?: string
|
|
}
|
|
|
|
export type ConfirmDialogHandler = (options: ConfirmDialogOptions) => Promise<boolean>
|
|
|
|
export type ConfirmDialogCandidate = ConfirmDialogHandler | null | undefined
|
|
|
|
export function useConfirmDialog(): ConfirmDialogHandler | undefined {
|
|
return inject<ConfirmDialogHandler | undefined>('$confirm', undefined)
|
|
}
|
|
|
|
export async function askForConfirmation(
|
|
message: string,
|
|
candidate?: ConfirmDialogCandidate
|
|
): Promise<boolean> {
|
|
const confirmDialog = candidate ?? undefined
|
|
|
|
if (confirmDialog) {
|
|
try {
|
|
return await confirmDialog({ message })
|
|
} catch {
|
|
return false
|
|
}
|
|
}
|
|
|
|
return window.confirm(message)
|
|
}
|