storebound/apps/desktop/tests/fixtures/state
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
..
d1-missing-folders.host.json Desktop: never a blank window (frozen-prototype fix, error screens, logs, state migration, boot check) 2026-10-11 09:36:34 +08:00
d1-missing-folders.json Desktop: never a blank window (frozen-prototype fix, error screens, logs, state migration, boot check) 2026-10-11 09:36:34 +08:00
d3-full.host.json Desktop: never a blank window (frozen-prototype fix, error screens, logs, state migration, boot check) 2026-10-11 09:36:34 +08:00
d3-full.json Desktop: never a blank window (frozen-prototype fix, error screens, logs, state migration, boot check) 2026-10-11 09:36:34 +08:00
empty.host.json Desktop: never a blank window (frozen-prototype fix, error screens, logs, state migration, boot check) 2026-10-11 09:36:34 +08:00
empty.json Desktop: never a blank window (frozen-prototype fix, error screens, logs, state migration, boot check) 2026-10-11 09:36:34 +08:00
README.txt Desktop: never a blank window (frozen-prototype fix, error screens, logs, state migration, boot check) 2026-10-11 09:36:34 +08:00

Saved state fixtures (state.json as the desktop host reads it), used by
  - src-tauri/tests/state.rs: migration of every old format to the current one
  - tools/desktop-boot-check.ts: the built window booted against each, with a mocked host and the real sidecar
@EXAMPLES@ is replaced with the repo's examples/ folder (folders that exist); /nonexistent/... folders are missing.
empty.json               no file content yet (fresh install)
d1-missing-folders.json  desktop D1 format (projects + accounts only, no version) with two folders that are gone
d3-full.json             D3 format without version: studios, accounts in studios, overrides, settings, one folder
                         that exists and one that is gone