Skip to content

feat: liquid glass icon pipeline, branded dev app, and dev startup fixes - #42

Merged
johnnyhuy merged 3 commits into
mainfrom
feat/liquid-glass-dev-branding
Aug 22, 2026
Merged

feat: liquid glass icon pipeline, branded dev app, and dev startup fixes#42
johnnyhuy merged 3 commits into
mainfrom
feat/liquid-glass-dev-branding

Conversation

@johnnyhuy

Copy link
Copy Markdown
Contributor

Summary

  • Fix stuck "Scanning PATH and config…" screen: dev:main compiled the preload with tsc, whose relative require output cannot load in sandboxed preloads — the preload threw, window.hoist was undefined, and silent catch {} blocks hid it. dev:main now runs the esbuild preload bundle, and the renderer's IPC refresh failures log to the console.
  • Fix liquid glass window effect: electron-liquid-glass exports a singleton instance; the code called it as a function (liquidGlass(handle, …)), which threw into a silent catch. Now uses liquidGlass.addView(...) and the ambient type declaration matches the real API.
  • Icon pipeline: npm run gen:icon compiles build/icon.icon (Icon Composer) via actool into icon.icns, Assets.car, and a flattened icon.png, keeping every derived icon in sync with the liquid glass source. Icon background aligned to the Rigging Yard canvas token #121214.
  • Branded dev app: dev now launches through a Hoist-branded bundle instead of stock Electron — Hoist.app (CFBundleName + Assets.car glass icon, ad-hoc re-signed) on macOS, Hoist.exe with rcedit-patched version strings on Windows, and a hoist hardlink on Linux. Dock/menu bar show "Hoist" with the real icon in dev.
  • Also: app.setAppUserModelId('app.hoist') on Windows.

Consequences

  • npm run dev behavior changes: first run builds node_modules/.hoist-dev/Hoist.app (macOS); fallbacks to stock Electron on any failure.
  • Dev dock icon override (app.dock.setIcon) removed so the bundle's glass icon is used.
  • Windows/Linux dev binary paths are fail-soft but untested on real hardware — worth a smoke test.

Testing

  • npm run lint, npm run typecheck, npm run catalog:check, npm test, npm run build
  • ✓ Verified locally on macOS: app boots, library scans, dock shows Hoist name + new icon, actool compile of build/icon.icon passes with Xcode 26.6

johnnyhuyand others added 3 commits August 22, 2026 23:22
refreshLibrary/refreshKeys/refreshGateways swallowed errors, leaving the
UI stuck on 'Scanning PATH and config…' when the preload fails to load.
Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>
electron-liquid-glass exports a singleton instance, not a callable;
the ambient declaration had the wrong shape so the TypeError was hidden
by the silent catch and the window glass was never applied. Also set
AppUserModelID on Windows for taskbar grouping.
Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>
- gen-icon.mjs compiles build/icon.icon via actool into icon.icns,
Assets.car, and a flattened icon.png (npm run gen:icon)
- icon background aligned to the Rigging Yard canvas token #121214
- dev-run.mjs launches dev through a Hoist-branded bundle: Hoist.app
with CFBundleName/CFBundleIconName + Assets.car on macOS, renamed
Hoist.exe (rcedit) on Windows, hoist hardlink on Linux
- dev:main now bundles the preload with esbuild after tsc; the tsc
output uses relative requires that sandboxed preloads cannot load,
which was the root cause of the stuck 'Scanning PATH' screen
Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>
@johnnyhuy
johnnyhuy enabled auto-merge (squash) August 22, 2026 13:24
@johnnyhuy
johnnyhuy merged commit 6257b90 into mainAug 22, 2026
7 checks passed
@johnnyhuy
johnnyhuy deleted the feat/liquid-glass-dev-branding branch August 22, 2026 13:24
@github-actionsgithub-actionsBot mentioned this pull request Aug 18, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@johnnyhuy