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
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
3dc3104bbc
scrub: /Users/Shared is the system shared folder, not a home path
2026-10-26 20:17:46 +07:00
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
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
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
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
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
9947ea1639
dev channel VDS publisher: send a User-Agent (Cloudflare refuses urllib's default with 403)
2026-10-23 23:17:05 +08:00
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
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
7345de2f7c
Desktop boot check: quota row match as plain text
2026-10-23 10:47:39 +08:00
2638b90046
Desktop boot check: the reader's quota row uses the short wording
2026-10-23 10:46:49 +08:00
f052831fea
Desktop boot check: the dry-run preview is accepted whenever it shows, also during waits
2026-10-23 10:44:54 +08:00
83bb9a621e
Desktop boot check: say why a tab could not be opened
2026-10-23 10:36:38 +08:00
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
5b7b16ac08
Desktop boot check: accept the in-app dry-run preview before the native confirm
2026-10-23 10:25:26 +08:00
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
d717ceb4cd
package: ship declarations (dist/types, the "types" condition) and a Node JS entry for 'storebound'; Bun keeps the .ts source. 0.8.5 exported only cli/lib/config.ts, so tsc (next build, vue-tsc, tsc --noEmit) failed on a scaffolded storebound.config.ts and broke a Next app's build; a test type-checks the template against the packed entry under bundler / node16 / nodenext without @types/node. check fails on the template's own placeholders (Example Studio, bare example.com URLs and addresses)
2026-10-15 05:49:05 +08:00
77f141e223
release: a cancelled parent run is not a failure (a version-only child runs everything instead of stopping at the gate); a queued run gets 20 min before 'no ci run'; release.ts --resume continues a release that stopped after its push (the history rewrite re-pushed every old tag, their release.yml runs took the runners and cancelled 0.8.5's parent)
2026-10-15 02:31:15 +08:00