fix(desktop): resolve renderer assets relative to BASE_URL

Absolute public asset paths (/apple-touch-icon.png, /ds-assets/...) work
under the dev server but break in the packaged app, where the renderer is
loaded from file://.../index.html and a leading slash resolves to the
filesystem root -> broken onboarding provider icon and backdrop image on
macOS. Prefix these with import.meta.env.BASE_URL so they resolve next to
the bundled index.html in both dev and packaged builds.
This commit is contained in:
Brooklyn Nicholson
2026-05-30 01:40:42 -05:00
parent 861b63228c
commit 6e3f50a3a8
2 changed files with 5 additions and 2 deletions
+2 -1
View File
@@ -21,6 +21,7 @@ const BLEND_MODES = [
] as const
type BlendMode = (typeof BLEND_MODES)[number]
const assetPath = (path: string) => `${import.meta.env.BASE_URL}${path.replace(/^\/+/, '')}`
export function Backdrop() {
const [controlsOpen, setControlsOpen] = useState(false)
@@ -99,7 +100,7 @@ export function Backdrop() {
alt=""
className="w-auto min-w-dvw object-cover"
fetchPriority="low"
src="/ds-assets/filler-bg0.jpg"
src={assetPath('ds-assets/filler-bg0.jpg')}
style={{
height: `${statue.scale}dvh`,
objectPosition: statue.objectPosition,
@@ -108,6 +108,8 @@ const PROVIDER_DISPLAY: Record<string, { order: number; title: string }> = {
'qwen-oauth': { order: 5, title: 'Qwen Code' }
}
const assetPath = (path: string) => `${import.meta.env.BASE_URL}${path.replace(/^\/+/, '')}`
const FLOW_SUBTITLES: Record<OAuthProvider['flow'], string> = {
pkce: 'Opens your browser to sign in, then continues here',
device_code: 'Opens a verification page in your browser — Hermes connects automatically',
@@ -333,7 +335,7 @@ function FeaturedProviderRow({
>
<div className="min-w-0">
<div className="flex items-center gap-2">
<img alt="" className="size-5 shrink-0 rounded" src="/apple-touch-icon.png" />
<img alt="" className="size-5 shrink-0 rounded" src={assetPath('apple-touch-icon.png')} />
<span className="text-base font-semibold">{providerTitle(provider)}</span>
{loggedIn ? (
<ConnectedTag />