- 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
12 lines
1.1 KiB
Text
12 lines
1.1 KiB
Text
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.
|