Commit graph

126 commits

Author SHA1 Message Date
CRT
1c64320b65 desktop-release: a fixed release tool left uncommitted for release --resume does not make the build dirty 2026-10-29 20:19:21 +07:00
CRT
0ea7292164 release --resume: a fixed tools/desktop-release.ts may be uncommitted too 2026-10-29 20:18:52 +07:00
CRT
02435de966 desktop-release: sign by key path only (a TAURI_SIGNING_PRIVATE_KEY in the env made the signer refuse both) 2026-10-29 20:18:51 +07:00
CRT
96ec7ba60f desktop-release: sign by key path only (a TAURI_SIGNING_PRIVATE_KEY in the env made the signer refuse both) 2026-10-29 20:18:51 +07:00
CRT
3dc3104bbc scrub: /Users/Shared is the system shared folder, not a home path 2026-10-26 20:17:46 +07:00
CRT
c247b7e54a release --resume: skip the desktop publish when the version is already live (a second run re-signs and the server never replaces a published file) 2026-10-26 16:52:29 +07:00
CRT
05d0e227a1 release: the dev-channel job never gates a release; desktop-dev retries the live dev latest.json on 5xx 2026-10-26 11:05:08 +07:00
CRT
5b6e0992ca desktop: boot check finds unsaved marks on the sub views; neutral next-step lines before a read 2026-10-24 13:06:42 +08:00
CRT
0ef27cf2e4 desktop: five sections by job (Release, Store page, Revenue, Players, Health), Game services view, sidebar by attention
- app view: 12 tabs become 5 sections, each with a header (what it is for, the one next step from state
  already read) and its sub views in a segmented control; 1-5 jump, Ctrl+Shift+[ ] cycle, Ctrl+K and the
  context menu list sections and sub views; old tab ids, section and section/sub links all resolve
- Players > Game services (games only): both stores, one row per leaderboard / achievement with its
  languages and each store's state, Game Center locale map, Play API-disabled state with the console plan
- games status --json: items, localeMap, playApiDisabled; inspect summary: games
- sidebar: apps grouped by attention / in progress / live / not on a store, one status line each, studio
  filter, workspace as a footer icon row
- boot check opens places like a person (section, then sub view)
2026-10-24 13:06:42 +08:00
CRT
29a9683ab7 dev channel: Apache serves /desktop/dev/latest.json; the VDS publisher lists releases without the draft filter (it hid the dev drafts) 2026-10-23 23:46:03 +08:00
CRT
9947ea1639 dev channel VDS publisher: send a User-Agent (Cloudflare refuses urllib's default with 403) 2026-10-23 23:17:05 +08:00
CRT
39b2f73ad7 desktop dev update channel: every push to main builds dev bundles (<next patch>-dev.<UTC>), the VDS signs and publishes dev/latest.json (newest 5); app channel setting stable|dev, background updater at start / 15 min / resume / channel switch, deferred while in use, no downgrade, autostart rewritten on every start, card shows version and channel 2026-10-23 23:14:08 +08:00
CRT
4933279987 gen-api: module names with forward slashes on Windows too (the tables were stale on Linux CI) 2026-10-23 13:13:03 +08:00
CRT
7345de2f7c Desktop boot check: quota row match as plain text 2026-10-23 10:47:39 +08:00
CRT
2638b90046 Desktop boot check: the reader's quota row uses the short wording 2026-10-23 10:46:49 +08:00
CRT
f052831fea Desktop boot check: the dry-run preview is accepted whenever it shows, also during waits 2026-10-23 10:44:54 +08:00
CRT
83bb9a621e Desktop boot check: say why a tab could not be opened 2026-10-23 10:36:38 +08:00
CRT
8106d7c9a2 Desktop boot check: tabs opened like a person (the More menu when a tab is not in the row); the fake host answers window dry runs like the Rust host (dryRun forced), art.pull preview dry run 2026-10-23 10:31:40 +08:00
CRT
5b7b16ac08 Desktop boot check: accept the in-app dry-run preview before the native confirm 2026-10-23 10:25:26 +08:00
CRT
2f25f76377 Desktop boot check: scroll live art tiles one by one and wait for each lazy thumbnail 2026-10-22 23:58:45 +08:00
CRT
8cd4ecd63b Desktop boot check: v2 markup (scan finding guideline pill, catalog screen root, lazy live thumbnails scrolled into view) 2026-10-22 23:47:29 +08:00
CRT
5bfbcefffa release: a staged npm publish is reported with what happened on 0.8.25 / 0.8.26 (published on its own ~10 min later, nothing to approve): check dist-tags first 2026-10-22 02:50:12 +08:00
CRT
2598c4953a doctor: build dependencies (JDK with the version the project needs, Android SDK command-line tools, CocoaPods, Node, Bun, bundletool), too-old status, doctor --install <tool> --yes runs the package-manager command (never sudo); desktop Dependencies shows too old; gen-flags works on Windows paths 2026-10-22 02:21:26 +08:00
CRT
a8a889fb35 release: a staged npm publish found on the retry is reported as waiting for the maintainer's approval instead of failing after 5 minutes 2026-10-22 02:17:28 +08:00
CRT
567d6ca181 gen-flags: Args.required reads are flags too (edit --ops, privacy-manifest --ios, apple listing --version were refused as unknown options); play games client listAll (no false flags) 2026-10-21 05:29:08 +07:00
CRT
dc6bb088a1 desktop coverage: every CLI command mapped to its window place (cli/lib/desktop-coverage.ts), docs/desktop-coverage.md generated from it, guard test fails on a gap or an unjustified not-for-desktop 2026-10-21 05:14:16 +07:00
CRT
f5e7b907a9 acceptance: storebound api --yes without a terminal is refused (exit 1, nothing sent) since the TTY rule; the cell still expected a silent dry run and turned every acceptance job red 2026-10-21 04:01:41 +07:00
CRT
ef3c66e8f0 release: the Linux / Windows updater signatures are made on the VDS (desktop-release add-remote, vds-key; tools/vds-sign.ts); the Mac no longer downloads those installers, verifies each returned .sig over its BLAKE2b-512 digest before publishing; release.ts --sign-local keeps the old path 2026-10-21 03:14:53 +07:00
CRT
9ab64bcbdf apps folders add adds the folder (template note, refusals with reasons); MCP: .mcp.json never spawns a missing plugin path (sh fallback to PATH, npx), mcp/serve skip the self-update, spawned handshake test; store build minimums in one dated table: Play target API 36 and App Store Xcode 26 / SDK 26 blocked in scan, validate, play upload/release, apple upload; pitfalls 81-83 2026-10-20 12:15:00 +07:00
CRT
7c04a0653b desktop boot check: match the submit dry run by its fields, not the exact JSON (the call carries platform since the macOS support; 0.8.14's Mac build stopped on it) 2026-10-20 03:29:59 +07:00
CRT
e59539fec8 shots: Mac App Store screenshots (mac size, APP_DESKTOP to the macOS version), a landscape layout (Mac window or bare; Mac, Play Chromebook, Play tablets), safe margins in every template checked by shots check from the render's layout boxes, a contact sheet timeout that scales with images, sizes and load; pitfall 80 2026-10-20 03:29:19 +07:00
CRT
30488c512d release: the desktop typecheck runs before the tag (0.8.14's Mac build stopped on an unused variable after the tag); a staged npm publish (409 previously staged) waits for the maintainer's approval instead of 5 minutes of polling; cross-store: drop the unused variable 2026-10-20 03:16:23 +07:00
CRT
3e4015b686 ci: the background acceptance jobs start after the Linux and Windows installer builds (0.8.13's Windows installer waited behind six acceptance jobs on the one Windows runner); release: an npm deprecation already set by an earlier npm-publish run (422) is not an error 2026-10-18 13:38:26 +07:00
CRT
0b32df57f0 desktop-release: tauri only signs; the app is notarized with notarytool directly (up to 3 tries, later ones without S3 acceleration) and stapled, because the upload inside tauri bundle was cut off twice for 0.8.12 with no retry 2026-10-18 02:43:59 +08:00
CRT
d2ae0fa765 release: one release at a time (a lock with the pid in ~/.storebound-releases/release.lock): two runs once built into the same target folder and both failed 2026-10-18 02:32:44 +08:00
CRT
ddb813576e desktop-release: notarization retries go by notarytool's status, not its exit code (0.8.12's aborted upload exited without an error), up to 3 tries, the later ones with --no-s3-acceleration 2026-10-18 02:24:34 +08:00
CRT
88078f1d7e desktop-release: a DMG notarization upload cut off before Apple had it (abortedUpload) is submitted once more 2026-10-18 02:11:54 +08:00
CRT
9bfc107415 release-candidate: the background test jobs (ci, acceptance) never gate a candidate; only the installer builds and the record count (0.8.12 stopped on a red ci job) 2026-10-18 01:45:37 +08:00
CRT
6d95ea00f5 agent rules: every check, rule, template line, message and desktop view covers both stores and every surface 2026-10-18 01:31:17 +08:00
CRT
9ba97b7e29 release: candidate downloads go through Cloudflare first (the direct route to the origin was throttled per connection: one AppImage took 20+ min there, 3 MB/s through Cloudflare), the origin only as a fallback; a heartbeat logs the bytes every 30 s 2026-10-17 15:59:44 +08:00
CRT
d6070cc185 release: when the published version is still missing from the registry after 2 minutes, publish once more (0.8.10's publish answered 0 and left nothing) 2026-10-16 07:48:55 +08:00
CRT
9059b2b32a background tests: ci.yml runs the CI and the acceptance matrix on every push again but nothing waits for them (the gate no longer waits for the parent's run, which a release's own bump push cancels; the record job needs only the installers); tools/ci-status.ts reports main's newest test run and release.ts prints a red one as a warning 2026-10-16 07:17:19 +08:00
CRT
b6c4beaada release: the CHANGELOG cut is checked before any version copy changes, and in the dry run (an empty Unreleased left every copy bumped and the next run refused 'not newer') 2026-10-16 06:34:51 +08:00
CRT
cba4660777 release-candidate: a candidate whose jobs were only cancelled (a newer push to main cancels the older run) says so and gives the tag move + --resume line instead of 'red: fix it' 2026-10-16 05:54:14 +08:00
CRT
ead5da4ab3 release: npm publish + deprecate run by themselves with a granular access token from ~/.storebound-keys/npm-token (0600; npm reads it through a temporary userconfig, never argv, logs or the checkout); bun tools/release.ts npm-token saves it once from the clipboard, npm-publish publishes this checkout's version 2026-10-15 20:13:42 +08:00
CRT
9d41fcdc50 no CI, no acceptance runs (the owner's decision): Forgejo's ci and acceptance jobs are off (if: false), the record job needs only the Linux / Windows installers; release.ts skips ci:quick, the macOS acceptance matrix and its report (TESTS = false); build, signing, notarization, privacy scans and verify stay 2026-10-15 19:58:47 +08:00
CRT
e7e26db4aa acceptance: a cell's timeout grows with the machine's load (like tools/ci.ts) and a cell that only timed out runs once more, marked; a release failed on two cells that take 3 s alone, at load 95 on 10 cores 2026-10-15 19:57:17 +08:00
CRT
1c35a625e1 build-node: TypeScript's own script runs under Bun (node_modules/.bin/tsc is a .exe / .cmd shim on Windows: the Windows acceptance cell packed nothing on dc387f6) 2026-10-15 06:36:24 +08:00
CRT
d72b199645 ci: the acceptance jobs run bun install before packing (prepack builds the package's declarations with the pinned TypeScript; without node_modules npm pack failed and every acceptance cell went red on 5ed787a); build-node names the missing install instead of a bare ENOENT 2026-10-15 06:33:01 +08:00
CRT
04647c079e package: CommonJS projects get their own declarations (dist/types-cjs; node16 / nodenext refused an ESM-only .d.ts from a CJS file, TS1541); the package-types test covers ES module and CommonJS projects under bundler / node16 / nodenext / node10 and loads the package with import() and require() under Node; pitfall 69 2026-10-15 06:01:33 +08:00