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
28 lines
1.4 KiB
JSON
28 lines
1.4 KiB
JSON
{
|
|
"projects": [
|
|
{ "id": "p0game0000000001", "path": "@EXAMPLES@/demo-game", "name": "demo-game", "playAccount": "0123456789abcdef", "appleAccount": "fedcba9876543210", "added": "2026-10-01T00:00:00Z" },
|
|
{ "id": "p0gone0000000002", "path": "/nonexistent/games/runner", "name": "Runner", "playAccount": "0123456789abcdef", "appleAccount": null, "added": "2026-10-02T00:00:00Z" }
|
|
],
|
|
"accounts": [
|
|
{ "id": "0123456789abcdef", "label": "Example Games Play", "kind": "play", "created": "2026-10-01T00:00:00Z", "studio": "s1" },
|
|
{ "id": "fedcba9876543210", "label": "Example Games App Store", "kind": "apple", "created": "2026-10-01T00:00:00Z", "studio": "s1" },
|
|
{ "id": "00112233445566ff", "label": "Side project", "kind": "apple", "created": "2026-10-03T00:00:00Z" }
|
|
],
|
|
"studios": [
|
|
{ "id": "s1", "name": "Example Games", "color": "emerald", "logo": null, "created": "2026-10-01T00:00:00Z" },
|
|
{ "id": "s2", "name": "Example Labs", "color": "violet", "created": "2026-10-02T00:00:00Z" }
|
|
],
|
|
"overrides": {
|
|
"pairs": [],
|
|
"unpairs": [],
|
|
"links": [],
|
|
"appStudio": [{ "key": "project:p0gone0000000002", "studio": "s2" }],
|
|
"ignored": ["account:00112233445566ff"]
|
|
},
|
|
"settings": {
|
|
"refresh": { "autoMinutes": 0, "onLaunch": false, "parallel": 4, "icons": true },
|
|
"cache": { "keepDays": 30 },
|
|
"notify": { "reviewState": true, "lowReviews": true, "crash": true },
|
|
"channel": "stable"
|
|
}
|
|
}
|