storebound/apps/desktop/tests/fixtures/state
CRT d2ce185441 One product per machine: the CLI and the desktop app share one version, the store accounts and the app folder list
- one version: package.json's version is the desktop app's too (desktopVersion removed); tools/desktop-version.ts
  keeps the plugin manifests and the app's copies equal, desktop-release publish refuses another version, release
  order app first then npm publish; the unpublished desktop 0.1.0 candidate is noted in the docs and CHANGELOG
- storebound desktop installs (per user, no admin: macOS DMG -> /Applications or ~/Applications, Windows NSIS /S,
  Linux AppImage + .desktop with the storebound:// handler), updates an older app, notes a newer one (downgrade only
  with --force), asks once ([Y/n], --yes, exit 3 without a terminal), opens on the folder; --dry / --json / --download;
  the install steps are pure plans (cli/lib/desktop-install.ts); the version's own manifest dl/<version>/latest.json
- credentials: one store, the CLI's credential profiles in ~/.storebound/credentials; the desktop writes and reads
  them (profiles.rs, files 0600), moves old keychain accounts into profiles on first start, shows profiles the CLI
  made; precedence env > named profile > project file > default profile; config `account`, "account" in the
  project's credentials.json; storebound accounts list | import (dedup by key id / service account e-mail, key files
  copied 0600, project file keeps keystore and review contact, backup, --dry, never prints values) | use
- app folders: one list ~/.storebound/projects.json shared by the desktop (registry.rs), storebound desktop,
  apps folders | add | remove, ws init and ws without a workspace file
- desktop: notice when a folder pins another storebound version; storebound-desktop --version
- tests: version drift, desktop decisions and per-OS plans, credential precedence and import, registry (TS + Rust),
  keychain migration and profile round trip (Rust), boot check with old keychain state and the new shared state
2026-10-13 06:17:37 +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 One product per machine: the CLI and the desktop app share one version, the store accounts and the app folder list 2026-10-13 06:17:37 +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 One product per machine: the CLI and the desktop app share one version, the store accounts and the app folder list 2026-10-13 06:17:37 +08:00
shared-profiles.host.json One product per machine: the CLI and the desktop app share one version, the store accounts and the app folder list 2026-10-13 06:17:37 +08:00
shared-profiles.json One product per machine: the CLI and the desktop app share one version, the store accounts and the app folder list 2026-10-13 06:17:37 +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
shared-profiles.json     0.8 format: accounts name their credential profile (~/.storebound/credentials, shared with
                         the CLI); the apple account comes from a profile the CLI wrote; the folder pins storebound 0.6.0
The .host.json answers come after the start-up sync: D1's accounts have no keychain entry (they stay without a
profile), D3's keychain entries move into credential profiles.