Commit graph

14 commits

Author SHA1 Message Date
CRT
deb218943c ci workflow: CI=full on the command itself (the runner's CI=true overrode the workflow env, so the desktop Rust tests and clippy were skipped on pushes that did not touch src-tauri) 2026-10-13 03:02:17 +08:00
CRT
54c3bbac2c ci workflow: Playwright browser cache keyed by playwright-core's browsers.json (the repo has no bun.lock, the key was empty) 2026-10-13 02:57:18 +08:00
CRT
56591f4118 ci on Linux: --no-sandbox for the Chromium storebound starts itself as root on Linux or in a container (sandboxArgs; Chromium refuses root without it), never on macOS / Windows / a normal user; workflow caches Playwright's browsers; capture-web prints the capture's stderr when a run fails 2026-10-13 02:51:48 +08:00
CRT
187911320b desktop workflow: start the AppImage and the deb under Xvfb; the UI must reach the sidecar (host.log), no error lines 2026-10-13 02:09:58 +08:00
CRT
5e1357116d fast ci: task graph runner, sharded tests balanced by recorded durations, ci:quick (typecheck + related tests + scrub), Rust only when src-tauri / sidecar build changed, event waits instead of sleeps 2026-10-12 05:05:26 +08:00
CRT
bd3ab20e1d Desktop: never a blank window (frozen-prototype fix, error screens, logs, state migration, boot check)
The signed release showed only its background colour and never started the sidecar. Tauri's freezePrototype
freezes Object.prototype before the bundle runs; d3-color and d3-format (under the visx charts) assign
`constructor` / `toString` on plain objects while loading, which throws on a frozen prototype, so the bundle
stopped before React drew anything. The saved state was not the cause.

- build/freeze-safe.ts: Vite plugin that rewrites those assignments in dependencies into a helper that defines
  the property when the frozen prototype would refuse it
- error boundaries for the window, each screen and each app tab (Copy details, Reload, Reset saved state with a
  backup); public/boot.js shows the same panel when the bundle fails or the window stays empty
- logs/host.log (start, saved state, sidecar start/stop, panics) and logs/webview.log (log_webview), rotated,
  home as ~, keys, tokens and e-mail addresses replaced
- state.json `version` 2 with an explicit 1 -> 2 migration (original kept as state.json.v1.bak), per-entry
  tolerant parsing, partial settings keep their fields, unreadable files kept aside
- folders that are gone: "Folder not found" with Locate... (project_locate) / Remove; portfolio reads skip them
- tools/desktop-boot-check.ts: the built window with the release CSP and the frozen prototype, a mocked host from
  the state fixtures (empty, D1 with folders gone, D3) and the real sidecar, through every screen; in bun run ci,
  the Forgejo CI workflow and the macOS release
2026-10-11 09:36:34 +08:00
CRT
bddebcc8fa docs: Windows runner on the VDS (Server 2022 eval in a KVM VM, CRT user level, windows:host); desktop.yml comments 2026-10-11 06:59:02 +08:00
CRT
b4e219a5e2 ci workflow: skip pull requests from forks on the self-hosted runner 2026-10-11 06:18:42 +08:00
CRT
0b52c4ab40 docs: runner setup done (Forgejo Actions, VDS runner, ci.yml); desktop.yml without verbose bundling 2026-10-11 06:15:00 +08:00
CRT
e86bcec37c desktop.yml: preset the bun sidecar's rpath so linuxdeploy's patchelf does not corrupt it in the AppImage 2026-10-11 05:52:50 +08:00
CRT
1e564613c2 desktop.yml: NO_STRIP for linuxdeploy (strip removes the bun sidecar's payload) 2026-10-11 05:48:33 +08:00
CRT
69477c67bb desktop.yml: verbose Linux bundling (linuxdeploy output in the log) 2026-10-11 05:43:56 +08:00
CRT
d030cca19e Forgejo Actions: ci.yml (bun run ci incl. desktop Rust tests and clippy on push/PR to main) and desktop.yml on the VDS runner (cache, FORGEJO_PATH, Windows job only on a manual run with windows ticked) 2026-10-11 05:33:15 +08:00
CRT
c0bae1ee31 Desktop release pipeline: privacy scan of every artifact, path-free builds, macOS universal app + DMG (Developer ID + notarization or an ad-hoc -unsigned preview) with self-tests of the exact artifacts, signed latest.json, Forgejo workflow for Linux and Windows, root-owned publish step for storebound.dev 2026-10-11 05:16:59 +08:00