feat(auto-update-checker): add local development mode toast notification
🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
This commit is contained in:
@@ -23,7 +23,7 @@ export function createAutoUpdateCheckerHook(ctx: PluginInput, options: AutoUpdat
|
|||||||
let hasChecked = false
|
let hasChecked = false
|
||||||
|
|
||||||
return {
|
return {
|
||||||
event: async ({ event }: { event: { type: string; properties?: unknown } }) => {
|
event: ({ event }: { event: { type: string; properties?: unknown } }) => {
|
||||||
if (event.type !== "session.created") return
|
if (event.type !== "session.created") return
|
||||||
if (hasChecked) return
|
if (hasChecked) return
|
||||||
|
|
||||||
@@ -32,23 +32,29 @@ export function createAutoUpdateCheckerHook(ctx: PluginInput, options: AutoUpdat
|
|||||||
|
|
||||||
hasChecked = true
|
hasChecked = true
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
const cachedVersion = getCachedVersion()
|
const cachedVersion = getCachedVersion()
|
||||||
const localDevVersion = getLocalDevVersion(ctx.directory)
|
const localDevVersion = getLocalDevVersion(ctx.directory)
|
||||||
const displayVersion = localDevVersion ?? cachedVersion
|
const displayVersion = localDevVersion ?? cachedVersion
|
||||||
|
|
||||||
if (showStartupToast) {
|
|
||||||
showVersionToast(ctx, displayVersion, getToastMessage(false)).catch(() => {})
|
|
||||||
}
|
|
||||||
showConfigErrorsIfAny(ctx).catch(() => {})
|
showConfigErrorsIfAny(ctx).catch(() => {})
|
||||||
|
|
||||||
if (localDevVersion) {
|
if (localDevVersion) {
|
||||||
log("[auto-update-checker] Skipped: local development mode")
|
if (showStartupToast) {
|
||||||
|
showLocalDevToast(ctx, displayVersion, isSisyphusEnabled).catch(() => {})
|
||||||
|
}
|
||||||
|
log("[auto-update-checker] Local development mode")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (showStartupToast) {
|
||||||
|
showVersionToast(ctx, displayVersion, getToastMessage(false)).catch(() => {})
|
||||||
|
}
|
||||||
|
|
||||||
runBackgroundUpdateCheck(ctx, autoUpdate, getToastMessage).catch(err => {
|
runBackgroundUpdateCheck(ctx, autoUpdate, getToastMessage).catch(err => {
|
||||||
log("[auto-update-checker] Background update check failed:", err)
|
log("[auto-update-checker] Background update check failed:", err)
|
||||||
})
|
})
|
||||||
|
}, 0)
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -172,6 +178,24 @@ async function showAutoUpdatedToast(ctx: PluginInput, oldVersion: string, newVer
|
|||||||
log(`[auto-update-checker] Auto-updated toast shown: v${oldVersion} → v${newVersion}`)
|
log(`[auto-update-checker] Auto-updated toast shown: v${oldVersion} → v${newVersion}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function showLocalDevToast(ctx: PluginInput, version: string | null, isSisyphusEnabled: boolean): Promise<void> {
|
||||||
|
const displayVersion = version ?? "dev"
|
||||||
|
const message = isSisyphusEnabled
|
||||||
|
? "Sisyphus running in local development mode."
|
||||||
|
: "Running in local development mode. oMoMoMo..."
|
||||||
|
await ctx.client.tui
|
||||||
|
.showToast({
|
||||||
|
body: {
|
||||||
|
title: `OhMyOpenCode ${displayVersion} (dev)`,
|
||||||
|
message,
|
||||||
|
variant: "warning" as const,
|
||||||
|
duration: 5000,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
.catch(() => {})
|
||||||
|
log(`[auto-update-checker] Local dev toast shown: v${displayVersion}`)
|
||||||
|
}
|
||||||
|
|
||||||
export type { UpdateCheckResult, AutoUpdateCheckerOptions } from "./types"
|
export type { UpdateCheckResult, AutoUpdateCheckerOptions } from "./types"
|
||||||
export { checkForUpdate } from "./checker"
|
export { checkForUpdate } from "./checker"
|
||||||
export { invalidatePackage, invalidateCache } from "./cache"
|
export { invalidatePackage, invalidateCache } from "./cache"
|
||||||
|
|||||||
Reference in New Issue
Block a user