SIGN IN SIGN UP
tw93 / Pake UNCLAIMED

🤱🏻 Turn any webpage into a desktop app with one command.

0 0 42 Rust

chore: optimization audit batch (ICO, BaseBuilder, CLI errors, CI lanes)

A grab-bag of follow-ups from the project audit:

feat(icon): generate full multi-resolution Windows ICO (#1190)

ensureMultiResolutionIco re-renders user-supplied ICOs through sharp so
every Windows standard size (16/24/32/48/64/128/256) is present in the
output, and exact-size PNG frames already in the source are preserved.
Avoids the Windows shell having to downsample 256x256 to 16x16 for the
tray, which produced the blurry tray icons reported in #1190.

refactor(builders): extract env helpers from BaseBuilder

Move package-manager detection, build env, install command, Cargo
mirror toggling, and the linuxdeploy strip-error matcher into a new
bin/builders/env.ts module. BaseBuilder drops from 626 to 481 lines
and becomes pure orchestration. Tests migrate from accessing private
methods on BaseBuilder to calling the module-level functions directly.

refactor(cli): top-level error boundary with PakeError

Wrap program.action in try/catch, route user-facing failures through
a PakeError class for short messages, and only print stack traces in
debug mode. Replace the lingering process.exit(1) inside
options/index.ts with a thrown PakeError so behavior stays consistent
with the rest of the pipeline.

test: snapshot CLI options to window config contract

Extract buildWindowConfigOverrides from mergeConfig as a pure
function and snapshot it across darwin/linux/win32. Catches CLI
option drift early instead of waiting for a real build.

ci: split PR fast lane from full Tauri build

quality-and-test now runs vitest + tests/index.js --no-build on every
PR/push (about 5 minutes per OS) and only runs the full real Tauri
build on push to main or manual dispatch. Replaces the broken
hashFiles('~/.cargo/bin/cargo-hack') cache with
taiki-e/install-action so cargo-hack downloads a precompiled binary.

Plus type-gate hardening (rollup noEmitOnError: production) and Node
version doc alignment in both READMEs (>=22 recommended LTS, >=18
also works), matching package.json engines.

Co-authored-by: Cursor <cursoragent@cursor.com>
T
Tw93 committed
e87bea44f4435385b2d1e6abe701f9fdfe827478
Parent: 847154e