| .. |
|
accounts.rs
|
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 |
|
ai_fix.rs
|
desktop AI fix: kill only the agent's own process group with killpg (never pgid <= 1 or our own group) instead of the external kill command; a Forgejo ci run of bc85dab died of SIGTERM in the middle of these tests
|
2026-10-15 19:45:00 +08:00 |
|
cache.rs
|
Desktop host: studios, account studio and checks, store app lists per account, store-only app targets, pairing / link / ignore overrides, settings (refresh, cache age, notifications, channel), cache info, data folder, notifications, reset
|
2026-10-11 03:58:07 +08:00 |
|
commands.rs
|
desktop: Fix with AI on scan findings that need a code change (aiFix: true, AI_FIX_RULES). The host (src-tauri/src/ai_fix.rs) runs the owner's local Claude Code headless in the app folder with Read / Edit / Write / Grep / Glob only (Bash, web tools, sub-agents disallowed) and a prompt it builds from the finding's fields; it refuses while the folder has uncommitted files, streams progress, times out after 10 min with a heartbeat, kills the process group on Cancel or exit, and records the run's changed files so Undo restores exactly those; the window shows the diff with Keep / Undo and rescans. Without claude the button copies the prompt (Copy for AI). Only the claude binary, git and kill / taskkill are started there (tests/security.rs); tests/ai_fix.rs covers the prompt, dirty-tree refusal, undo scope, timeout and cancel
|
2026-10-15 06:26:29 +08:00 |
|
commands_list.rs
|
desktop: Fix with AI on scan findings that need a code change (aiFix: true, AI_FIX_RULES). The host (src-tauri/src/ai_fix.rs) runs the owner's local Claude Code headless in the app folder with Read / Edit / Write / Grep / Glob only (Bash, web tools, sub-agents disallowed) and a prompt it builds from the finding's fields; it refuses while the folder has uncommitted files, streams progress, times out after 10 min with a heartbeat, kills the process group on Cancel or exit, and records the run's changed files so Undo restores exactly those; the window shows the diff with Keep / Undo and rescans. Without claude the button copies the prompt (Copy for AI). Only the claude binary, git and kill / taskkill are started there (tests/security.rs); tests/ai_fix.rs covers the prompt, dirty-tree refusal, undo scope, timeout and cancel
|
2026-10-15 06:26:29 +08:00 |
|
confirm.rs
|
Desktop app shell (apps/desktop): Tauri 2 + React 19 around the storebound sidecar
|
2026-10-11 01:57:33 +08:00 |
|
downloads.rs
|
Desktop host: offline read cache (SQLite), job ids for progress and cancel, parallel live portfolio, project init, verified ffmpeg / Chrome for Testing downloads into app data
|
2026-10-11 03:34:46 +08:00 |
|
lib.rs
|
desktop: Fix with AI on scan findings that need a code change (aiFix: true, AI_FIX_RULES). The host (src-tauri/src/ai_fix.rs) runs the owner's local Claude Code headless in the app folder with Read / Edit / Write / Grep / Glob only (Bash, web tools, sub-agents disallowed) and a prompt it builds from the finding's fields; it refuses while the folder has uncommitted files, streams progress, times out after 10 min with a heartbeat, kills the process group on Cancel or exit, and records the run's changed files so Undo restores exactly those; the window shows the diff with Keep / Undo and rescans. Without claude the button copies the prompt (Copy for AI). Only the claude binary, git and kill / taskkill are started there (tests/security.rs); tests/ai_fix.rs covers the prompt, dirty-tree refusal, undo scope, timeout and cancel
|
2026-10-15 06:26:29 +08:00 |
|
logs.rs
|
Desktop: never a blank window (frozen-prototype fix, error screens, logs, state migration, boot check)
|
2026-10-11 09:36:34 +08:00 |
|
main.rs
|
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 |
|
policy.rs
|
store art from the live stores: storebound art pull (App Store screenshot sets and previews per locale and display type from imageAsset.templateUrl at the original size, the App Store icon from the newest build or the public artwork; per Play language icon, feature graphic, phone / 7" / 10" / TV / Wear screenshots as the =s0 originals checked against Play's sha256) into store/renders with pulled.json (sha256, store, URL host, store checksum); upsert (a re-run changes nothing, differing local files kept unless --force, the upload's file of a slot compared: Play .jpg, App Store .png, the App Store icon as a picture); onboard runs it; apple screenshots / previews and play images see unchanged pulled files as the store's own; check: render sources are notes with pulled art; local renders check: pulled files pass, store-empty sets not demanded; art live / thumb / replace; desktop Store art tab: live thumbnails per store, language and set (same / differs / not pulled), Pull from stores, store-only apps read-only, Replace with a file (image_pick, art.replace) in the lightbox and the art editor; boot check store art case; tests/art-pull.test.ts; console parity 76 rows (57 complete, 19 with the reason); store-screenshots skill (pull first for live apps), pitfall 59
|
2026-10-14 05:25:37 +08:00 |
|
profiles.rs
|
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 |
|
registry.rs
|
Onboarding live apps without owner questions for what the stores and the code prove: storebound onboard imports the live products and subscriptions with USD / base prices (catalog diff clean), contact values, the App Review contact and demo account (credentials.json, masked), sign-in for review from Apple's review detail and auth code, and the account deletion page from the app's site; App Store keywords count characters (live fields up to 265 bytes accepted); validate accepts the 6.5-inch iPhone set and Play's default-language graphics fallback; Play Reporting API off gives the project's enable link and apps list falls back to local apps; accounts default <profile>; store-only apps (apps add --store --app-id) shown read-only in the desktop (pitfalls 43-52)
|
2026-10-13 07:25:01 +08:00 |
|
selftest.rs
|
Desktop D5 app: --self-test (sidecar handshake, no window) for release smoke tests; Settings > Updates checks and installs signed updates after a native dialog; storebound://open?path= adds or selects an app folder after asking
|
2026-10-11 05:16:59 +08:00 |
|
sidecar.rs
|
Desktop: never a blank window (frozen-prototype fix, error screens, logs, state migration, boot check)
|
2026-10-11 09:36:34 +08:00 |
|
store.rs
|
Desktop: never a blank window (frozen-prototype fix, error screens, logs, state migration, boot check)
|
2026-10-11 09:36:34 +08:00 |
|
updates.rs
|
Desktop D5 app: --self-test (sidecar handshake, no window) for release smoke tests; Settings > Updates checks and installs signed updates after a native dialog; storebound://open?path= adds or selects an app folder after asking
|
2026-10-11 05:16:59 +08:00 |
|
workspace.rs
|
desktop reads everything by itself: one background read scheduler (4 per store, starts spaced per account, App Store Connect X-Rate-Limit slows it below 20 % and pauses at 100 left, backoff with jitter on 429 / RESOURCE_EXHAUSTED, visible app first, one read per key), per-method TTLs over the saved reads, Settings auto-read (on) and interval (15 min, paused while hidden), Refresh all, a refresh icon and 'read 3 min ago' / 'couldn't refresh' per card, writes invalidate, status line with progress and quota; quota reaches the window through ToolResult.quota (cli/lib/quota.ts); Health top issues open with versions, sample stack (health --issue / --signature, read health_issue), Open in Play Console, Copy for AI and likely-cause hints (cli/lib/crash-hints.ts); tests/scheduler.test.ts, tests/quota-crash-hints.test.ts, boot check auto-read case
|
2026-10-13 23:37:39 +08:00 |