Skip to content

Add Windows support: NSIS installer, immersive title bar, CI#38

Open
SpookySandwich wants to merge 2 commits into
minghinmatthewlam:mainfrom
SpookySandwich:windows-port
Open

Add Windows support: NSIS installer, immersive title bar, CI#38
SpookySandwich wants to merge 2 commits into
minghinmatthewlam:mainfrom
SpookySandwich:windows-port

Conversation

@SpookySandwich

@SpookySandwich SpookySandwich commented Jun 2, 2026

Copy link
Copy Markdown

Adds Windows support

  • To work with Windows control, the menu bar is moved to top menu bar
  • Added installer to ci
  • A different scroll bar to replace the rectangular scroll bar from Windows
  • Fixes the bug where the console window flashes when there is pi extension installs
  • Caps .message__content grid so wide code blocks don't scroll the transcript sideways

Code changes are done by AI. Please let me know of any issues and I will take a look.
screenshot
install

Packaging
- electron-builder: win NSIS target (x64 + arm64), icon.ico, **/*.exe asar
  unpack; package:win scripts. Skip @electron/rebuild on Windows (node-pty
  ships win32 N-API prebuilds; from-source rebuild fails on its bundled
  winpty), leaving mac/Linux build behavior unchanged.
- CI: build the installers on every PR (ci.yml) and upload them on every tag
  (release.yml). Unsigned (no Authenticode cert).

App behavior (Windows-gated; macOS/Linux unchanged)
- Immersive title bar: titleBarStyle "hidden" + Window Controls Overlay
  (transparent background, theme-synced glyphs); drop the menu bar; add a
  topbar menu button with a native popup menu and a right-click edit menu.
- Render the sidebar toggle last and mark the composer/model-selector menus
  no-drag so the topbar drag region doesn't swallow their clicks.
- Suppress console-window flashes: default windowsHide on child_process spawns
  (covers the pi runtime's package install) and on our git calls.
- ms-settings:notifications deep link; cmd.exe default integrated shell; thin
  scrollbars.
.message__content is a grid whose column defaulted to min-width:auto, so a wide
code block expanded the column instead of letting the <pre overflow:auto> scroll
internally — stretching the whole transcript horizontally. Cap the column to the
container (minmax(0,1fr)) and wrap long tokens. Not Windows-specific (macOS just
hid the overflow behind overlay scrollbars).
@vercel

vercel Bot commented Jun 2, 2026

Copy link
Copy Markdown

@SpookySandwich is attempting to deploy a commit to the dev Team on Vercel.

A member of the Team first needs to authorize it.

Sign up for free to 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