Commit graph

510 commits

Author SHA1 Message Date
CRT
513c33330d serve: every CLI area for the desktop app (prices.current, project.declarations / listing_text / renders / render, import.fastlane for a new folder; owner.prices_import, owner.ppo_start / stop)
prices export --json reads the current prices without writing; inspect --declarations gives Data safety, the App
Privacy answers it suggests, app info, export compliance and App Review details with every question only the owner
can answer; play data-safety keeps the uploaded CSV in .storebound/ so changes since the upload show (Play cannot read
the form back); shots gallery --json carries the renders folder; inspect --render returns one render as a data: URL
from inside the renders folder only.
2026-10-11 07:40:59 +08:00
CRT
8db506a5a6 site: hero demo ends Store forms on the key Data safety rows, no bottom gaps in any scene (logs and checklist take the spare height), narrow 2-column hero drops the skipped pre-flight row 2026-10-11 07:37:18 +08:00
CRT
d26244fdc9 store-locales: verify App Store and Play codes against the official lists (2026-10-11), drop zu, aliases for the 2025 languages, tests 2026-10-11 07:37:18 +08:00
CRT
bddebcc8fa docs: Windows runner on the VDS (Server 2022 eval in a KVM VM, CRT user level, windows:host); desktop.yml comments 2026-10-11 06:59:02 +08:00
CRT
b4e219a5e2 ci workflow: skip pull requests from forks on the self-hosted runner 2026-10-11 06:18:42 +08:00
CRT
0b52c4ab40 docs: runner setup done (Forgejo Actions, VDS runner, ci.yml); desktop.yml without verbose bundling 2026-10-11 06:15:00 +08:00
CRT
6c91aad0e1 privacy-scan: a partial upstream path in a container's compressed bytes is left to the full check of the unpacked file 2026-10-11 06:09:49 +08:00
CRT
576e8a8f46 privacy-scan: allow GTK 3's upstream icon export paths (exact prefixes) that linuxdeploy bundles into the AppImage 2026-10-11 06:04:44 +08:00
CRT
466742207e privacy-scan: AppImage squashfs found at the end of the ELF runtime (the runtime contains the magic too); a generic home (/root) is not a term. tools test: 30s timeout (detectTools runs every version command) 2026-10-11 05:59:40 +08:00
CRT
e86bcec37c desktop.yml: preset the bun sidecar's rpath so linuxdeploy's patchelf does not corrupt it in the AppImage 2026-10-11 05:52:50 +08:00
CRT
1e564613c2 desktop.yml: NO_STRIP for linuxdeploy (strip removes the bun sidecar's payload) 2026-10-11 05:48:33 +08:00
CRT
69477c67bb desktop.yml: verbose Linux bundling (linuxdeploy output in the log) 2026-10-11 05:43:56 +08:00
CRT
94c542f95f Sidecar leak check: skip a generic build home (/root in a CI container is a substring of the bun runtime itself); privacy-scan still checks every home 2026-10-11 05:38:41 +08:00
CRT
d030cca19e Forgejo Actions: ci.yml (bun run ci incl. desktop Rust tests and clippy on push/PR to main) and desktop.yml on the VDS runner (cache, FORGEJO_PATH, Windows job only on a manual run with windows ticked) 2026-10-11 05:33:15 +08:00
CRT
1637765c6f Merge desktop-d5: desktop release pipeline, updater, privacy gate, storebound desktop
# Conflicts:
#	CHANGELOG.md
2026-10-11 05:25:54 +08:00
CRT
fc538e1dde Desktop release: Developer ID gates on the exact artifacts (every binary inside out: Developer ID, hardened runtime, timestamp, no sandbox or get-task-allow; spctl exec/open and stapler on the app, the app in the DMG and in the updater bundle, the DMG); notarization key from ASC_KEY_ID / ASC_ISSUER_ID / ASC_P8 too 2026-10-11 05:18:41 +08:00
CRT
e63cb5bff7 docs: desktop release (keys, privacy gate, signing, runners, hosting, publish); downloads page site/desktop/ 2026-10-11 05:17:00 +08:00
CRT
c0bae1ee31 Desktop release pipeline: privacy scan of every artifact, path-free builds, macOS universal app + DMG (Developer ID + notarization or an ad-hoc -unsigned preview) with self-tests of the exact artifacts, signed latest.json, Forgejo workflow for Linux and Windows, root-owned publish step for storebound.dev 2026-10-11 05:16:59 +08:00
CRT
10423ae915 storebound desktop: open the desktop app (with the current app folder) or show the download for this system; --download saves it to ~/Downloads after checking SHA-256 and the minisign signature, never installs 2026-10-11 05:16:59 +08:00
CRT
c68ef8acd0 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
CRT
1a8d817cb2 Desktop D5: one desktop version (package.json desktopVersion) checked in CI; updater public key; NSIS per user with the WebView2 bootstrapper 2026-10-11 05:16:59 +08:00
CRT
3807604c6f site: bump asset version 2026-10-11 05:16:03 +08:00
CRT
c4f54f77ed site: hero ticker boxes stay hidden until their first row appears 2026-10-11 05:16:03 +08:00
CRT
72dda418ea Merge fastlane-import: storebound import fastlane
# Conflicts:
#	CHANGELOG.md
2026-10-11 05:06:15 +08:00
CRT
de681dd967 import fastlane: config, App Store and Play listings, languages and screenshot frames from a fastlane setup
storebound import fastlane [--dir] [--out] [--profile] [--dry] (MCP import_fastlane, dry run by default) reads
Appfile / Deliverfile plain option lines, deliver and supply metadata and screenshots, and writes
storebound.config.ts, store/appstore.md, store/listing.md, the Play icon and feature graphics, and frames with a
folder capture source. App Store and Play language codes are paired (cli/lib/store-locales.ts). Existing files are
never overwritten (.imported copies with a diff hint); keys, team ids, the review contact and demo account are only
named in the report. Fixture tests/fixtures/fastlane-sample, skill migrate-from-fastlane, README and CHANGELOG.
2026-10-11 04:57:03 +08:00
CRT
44e64cf9c6 apps / health / catalog / validate: fixes from a read-only run against live store accounts
- API error bodies on one line (errorBody): Google and App Store Connect pretty-print errors, which hid
  SERVICE_DISABLED from the Play account check (reported permission instead of api-disabled), broke tables
  and turned serve's apps.list error into a JSON fragment
- apps list: failure says the reason and the fix (same words as apps check)
- newest App Store version by createdDate, iOS first (the API groups versions by platform); all versions
  read so no platform is missed; per-app reads four at a time
- apps check (apple): team app count from meta.paging.total with a one-app read
- Play Money without units (prices under 1.00) read as 0.xx, not NaN (catalog diff, subscription diffs)
- health: App Store Connect 404 for perfPowerMetrics / diagnosticSignatures means no field data yet;
  Play vitals behind a disabled Reporting API say so with the fix
- validate: gracRatingClassificationNumber optional, socialMediaAgeRestricted only when socialMedia is yes,
  socialMedia unanswered is a warning
- tests with sanitized recorded responses (tests/store-real-shapes.test.ts)
2026-10-11 04:50:26 +08:00
CRT
0e4c392b48 site: bump asset version 2026-10-11 04:36:50 +08:00
CRT
f0a3923a4f site: hero demo explains each scene in plain words (headline, outcome, by hand); pre-flight becomes a checklist of what check verified, with fixes and the green re-check; scenes hold their final frame 2026-10-11 04:36:50 +08:00
CRT
f106ec4423 Merge desktop-d3: studios and accounts, store import, pairing, ignore list, settings, confirm-gated writes 2026-10-11 04:33:03 +08:00
CRT
15c32d5711 Desktop: portfolio table fits with store-only markers (tighter cells, smaller sparkline) 2026-10-11 04:30:26 +08:00
CRT
c3454e352d docs: desktop D3 (studios, accounts, store-only apps, owner actions, writes) and R&D note on a fastlane importer and a RevenueCat adapter 2026-10-11 04:26:57 +08:00
CRT
ba58895d3a Desktop D3 writes in the window: push listing text, upload graphics, screenshots and previews, render jobs, catalog sync and price export, Play rollout share / halt / resume / complete and iOS phased release controls, TestFlight What to Test, internal groups and testers, reply editor with approve and send; every one a dry run, a native dialog, then the real run 2026-10-11 04:25:53 +08:00
CRT
f47c00bed0 D3 writes: owner actions (Play rollout share / halt / resume / complete, iOS phased release, send one approved reply) answer the command's confirmation only with a verified host token; reviews reply edits a draft; native dialog names owner actions; token binding tests for every write the window offers 2026-10-11 04:19:47 +08:00
CRT
7b2cc8da0a Desktop D3 UI: studios and store accounts (health checks with fixes, import apps), one card per app across studios (automatic iOS / Android pairing, manual pair / unpair, links, studio moves), store-only apps read-only, ignore list, portfolio search / studio filter / sort / grouping, collapsible studio sidebar, complete Settings, notifications, fixtures with 3 studios and 5 accounts 2026-10-11 04:15:30 +08:00
CRT
e058d09683 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
CRT
4511b5e2c6 site: bump asset version 2026-10-11 03:54:03 +08:00
CRT
c2cb428413 check: name the missing file and the fix instead of a raw ENOENT; clearer demo account message; hero shows the new output 2026-10-11 03:54:03 +08:00
CRT
53f9e6dd75 CLI: storebound apps list | check (apps on a store account, account health with fixes); serve apps.list, account.check and store-only apps through a generated config 2026-10-11 03:53:52 +08:00
CRT
1248bb0b3b site: hero demo shows real CLI output in four scenes (screenshots, pre-flight, store forms, icons); demos gain dataSafety and an icon artwork 2026-10-11 03:50:16 +08:00
CRT
0ce0c51ff6 ci: build the host sidecar before the desktop Rust tests (clean checkouts) 2026-10-11 03:45:24 +08:00
CRT
6e58f74b65 Merge desktop: storebound Desktop D0-D2 (Tauri app, serve --stdio, doctor, sidecars) 2026-10-11 03:36:27 +08:00
CRT
2ef0769730 Desktop D2 UI: design system, portfolio, release timeline, catalog parity, listings, health, reviews, TestFlight, checks, command palette, toasts, first-run guide, en + tr with i18n check, 7:1 theme check, dev fixture mode and screenshot harness 2026-10-11 03:34:47 +08:00
CRT
95b7cf7ced 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
CRT
0ace432e87 CLI for desktop D2: doctor, inspect --icon / --listings, reviews drafts / approve, init --dry from embedded templates, iOS phased release share, playwright as optional peer (sidecar bundles playwright-core) 2026-10-11 03:34:45 +08:00
CRT
f5bca70c60 README: npm badge and link at the top 2026-10-11 03:15:51 +08:00
CRT
e371defa8d site: redesigned hero with animated agent session, How it works as a five-step stepper, two-column FAQ accordion 2026-10-11 03:00:39 +08:00
CRT
665fb1ab0f site: version the CSS and JS links so the CDN serves fresh files 2026-10-11 02:48:43 +08:00
CRT
7ae19bf5cb site: opaque sticky header, overflow-x clip so sticky never detaches 2026-10-11 02:46:21 +08:00
CRT
8dabcb31c2 site: How it works in six steps, a first session example, teaser video, who it's for, FAQ 2026-10-11 02:27:32 +08:00
CRT
94d2f3d6ca Desktop: adapt to 0.5.0 (app.platforms, subscriptions, catalog diff), Dependencies polish, ~ for the home folder
- inspect reports platforms, subscription ids and the catalog each store should sell; app identity
  and parity follow app.platforms and per-item platforms; catalog.diff joins the JSON methods
- Portfolio: one Platforms column, compact catalog, paths truncated and shown with ~; the confirm
  dialog and run logs show ~ instead of the home folder
2026-10-11 02:15:48 +08:00