-
Notifications
You must be signed in to change notification settings - Fork 1
feat(desktop): Windows x64 build and runtime support (#273) #423
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
81352c8
3896b6b
314c43b
0b09bdb
905755c
0980655
1e008c6
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -184,7 +184,7 @@ If it runs in a terminal, it runs on Superset | |
|
|
||
| | Requirement | Details | | ||
| |:------------|:--------| | ||
| | **OS** | macOS (Windows/Linux untested) | | ||
| | **OS** | macOS / Windows x64 (preview, this fork) / Linux (untested) | | ||
| | **Runtime** | [Bun](https://bun.sh/) v1.0+ | | ||
| | **Version Control** | Git 2.20+ | | ||
| | **GitHub CLI** | [gh](https://cli.github.com/) | | ||
|
|
@@ -194,7 +194,41 @@ If it runs in a terminal, it runs on Superset | |
|
|
||
| ### Quick Start (Pre-built) | ||
|
|
||
| **[Download Superset for macOS](https://github.com/superset-sh/superset/releases/latest)** | ||
| - **macOS**: [Download Superset for macOS](https://github.com/superset-sh/superset/releases/latest) (upstream) | ||
| - **Windows x64** *(preview, this fork)*: [Latest MocA-Love/superset release](https://github.com/MocA-Love/superset/releases/latest) — pick the `Superset-*-x64.exe` NSIS installer. Windows support is a rolling preview; see the [Windows known limitations](#windows-preview-known-limitations) below. | ||
|
|
||
| ### Windows preview: known limitations | ||
|
|
||
| Windows builds are a rolling preview tracked in issue [#273](https://github.com/MocA-Love/superset/issues/273). The app launches and the core workspace / terminal / chat flow works, but the following fork features are not yet on par with macOS: | ||
|
|
||
| - **Agent wrapper (`~/.superset/bin` PATH injection)** — not yet generated on Windows. Agents (Claude Code / Codex / Gemini / cursor-agent / Copilot) still work via their global hook configs (`~/.claude/settings.json`, `~/.codex/hooks.json`, `~/.gemini/settings.json`, `~/.cursor/hooks.json`) but Superset-side PATH overrides for managed binaries are skipped. | ||
| - **GitHub Copilot CLI project hooks** — `.github/hooks/superset-notify.json` is auto-synced by the bash wrapper on Unix only. On Windows, place the hook file manually until the wrapper is ported to PowerShell. | ||
| - **Mica / Acrylic** — applied via `BrowserWindow.setBackgroundMaterial('mica')`; Windows 10 and pre-22H2 Windows 11 show the opaque fallback. | ||
| - **Auto-install on quit** — the fork checks GitHub API for updates on Windows like on macOS, but there's no NSIS auto-install-on-quit flow yet; clicking "Install" opens the release page for manual download. | ||
| - **Dev-mode deep-link** — `superset://` protocol is registered at install time via NSIS + `app.setAsDefaultProtocolClient`. Dev-mode (running `bun run dev` from source) does not register the protocol on Windows. | ||
|
|
||
| ### Building Windows locally | ||
|
|
||
| ```powershell | ||
| # Enable long paths (run once per machine; opens a UAC prompt). | ||
| git config --global core.longpaths true | ||
|
|
||
| git clone https://github.com/MocA-Love/superset.git | ||
| cd superset | ||
|
|
||
| # Skip lifecycle scripts; native modules are materialized by the postinstall .mjs. | ||
| bun install --frozen --ignore-scripts | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🌐 Web query:
💡 Result: No, bun install --frozen (without the -lockfile suffix) does not work in Bun 1.x. Only --frozen-lockfile is supported. Official Bun documentation explicitly describes --frozen-lockfile as the flag for reproducible installs that fail if package.json disagrees with bun.lock (sources 2, 4, 14, 18). CLI help and configuration reference it as --frozen-lockfile or frozenLockfile = true in bunfig.toml (sources 14, 18, 19). No official sources mention --frozen alone. All GitHub issues and discussions use --frozen-lockfile exclusively (sources 1, 3, 9, 10, 62, 63). Searches for --frozen without -lockfile yield no supporting evidence. Citations:
Bun の公式ドキュメントによると、 🤖 Prompt for AI Agents |
||
|
|
||
| cd apps/desktop | ||
| $env:SUPERSET_WORKSPACE_NAME = 'superset' | ||
| bun run install:deps | ||
| bun run compile:app | ||
| bun run build:browser-mcp | ||
| bun run package -- --publish never --win | ||
|
Comment on lines
+219
to
+227
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
# Inspect the scripts referenced and where browser-mcp output is staged.
fd -t f 'package.json' apps/desktop --max-depth 2 -x cat {}
echo "---"
rg -n "build:browser-mcp|browser-mcp|superset-browser-mcp" apps/desktop -g '!**/node_modules/**' -C2
echo "---"
# Inspect electron-builder config to see if browser-mcp bin is included in extraResources/files
fd -t f 'electron-builder*' apps/desktop --max-depth 2 -x cat {}Repository: MocA-Love/superset Length of output: 40617 🌐 Web query:
💡 Result: The --frozen-lockfile flag for bun install ensures reproducible installs by using the exact package versions specified in bun.lock. If package.json dependencies disagree with the lockfile, Bun exits with an error without updating the lockfile. Usage: bun install --frozen-lockfile This is equivalent to bun ci. Commit bun.lock to version control for CI/CD use. Configuration in bunfig.toml: [install] frozenLockfile = true Note: Some users report issues in monorepos or after lockfile migrations (e.g., binary to text format in Bun 1.2+), often fixed by running bun install first and committing updates. Official docs recommend it for production reproducibility, as in Docker: RUN bun install --frozen-lockfile. Citations:
220行の 修正前後- bun install --frozen --ignore-scripts
+ bun install --frozen-lockfile --ignore-scriptsビルド順序(compile:app → build:browser-mcp → package)は正しく設定されています。 🤖 Prompt for AI Agents |
||
| # Output: apps/desktop/release/*.exe + *.exe.blockmap + latest.yml | ||
| ``` | ||
|
|
||
| The Windows NSIS build is also available via GitHub Actions → **Build Desktop App** → *Run workflow* on `MocA-Love/superset`, which produces the same artifacts without needing a Windows machine. | ||
|
|
||
| ### Build from Source | ||
|
|
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
artifact_retention_daysのデフォルト値が workflow_call (30) と workflow_dispatch (14) で食い違っています意図的であれば問題ありませんが、手動実行と呼び出し実行でリテンション期間が変わるのは混乱のもとなので、揃えるかコメントで理由を明記しておくとよいです。
🤖 Prompt for AI Agents