|
|
1ebafbd91a
|
storebound watch: store events for every app on the machine (rejected, approved, live, halted, crash threshold, reviews) to ntfy / Telegram / webhook / OS notification, loop or --once, baseline first, events.jsonl; storebound events and MCP events_recent; docs/watch.md; tests
|
2026-10-22 22:38:15 +08:00 |
|
|
|
38aee7dafb
|
Desktop: tray icon, start at logon hidden (autostart --hidden, window state never restores visible), closing hides to the tray, background signed auto-update at start and every 30 min with restart
ci / gate (push) Successful in 3s
ci / windows (push) Has been cancelled
ci / linux (push) Has been cancelled
ci / ci (push) Has been cancelled
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Has been cancelled
ci / acceptance (bun, 22, windows, Windows, bun) (push) Has been cancelled
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Has been cancelled
ci / acceptance (node20, 20, windows, Windows, node) (push) Has been cancelled
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Has been cancelled
ci / acceptance (node22, 22, windows, Windows, node) (push) Has been cancelled
ci / record (push) Has been cancelled
|
2026-10-22 05:59:41 +08:00 |
|
|
|
d5877504ee
|
storebound aab <file> --json (offline packageName / versionCode / versionName / SDKs / sha256, no config) and play release --json result for CI scripts that replace their own Play API calls
ci / gate (push) Successful in 2s
ci / ci (push) Failing after 1m30s
ci / linux (push) Failing after 1m12s
ci / windows (push) Failing after 17m12s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Has been cancelled
ci / acceptance (bun, 22, windows, Windows, bun) (push) Has been cancelled
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Has been cancelled
ci / acceptance (node20, 20, windows, Windows, node) (push) Has been cancelled
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Has been cancelled
ci / acceptance (node22, 22, windows, Windows, node) (push) Has been cancelled
ci / record (push) Has been cancelled
|
2026-10-22 03:28:46 +08:00 |
|
|
|
7e5bb5ed53
|
Bypass mode (owner opt-in, default off): storebound settings bypass on|off|status and a one-time question in init; MCP owner_step (owner-only commands, dry run first), owner-only api operations with --yes --confirm, console plans may press buttons.final; every action logged to .storebound/owner-actions.log; docs/bypass.md, agent rules, tests
|
2026-10-22 02:27:34 +08:00 |
|
|
|
a434ddbf2e
|
Windows builds and moved credentials: play build runs gradlew.bat through cmd /c and takes C:/ keystore paths as absolute (pitfall 98); check names credential paths missing on this machine and a keystore the stored password / alias do not open (keytool) (pitfall 99); play / apple build write <out>/latest.json for CI; CI install from a git clone documented
|
2026-10-22 02:10:52 +08:00 |
|
|
|
f1b8bcecdd
|
Windows: MCP entries start through cmd /c npx or bun cli/index.ts (npx.cmd and the sh launcher cannot be spawned, pitfall 94); desktop download streams with progress and fails after 60 s without data (pitfall 95); getting-started Windows note
|
2026-10-21 22:21:49 +08:00 |
|
|
|
32a0045ef7
|
docs/HANDOFF.md: what is released, the open work (desktop report view in a stash, two worktrees of other sessions, things not verified live), and the rules that matter
ci / gate (push) Successful in 2s
ci / ci (push) Successful in 1m30s
ci / linux (push) Successful in 3m37s
ci / windows (push) Successful in 3m45s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Successful in 28s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Successful in 35s
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Successful in 1m22s
ci / record (push) Successful in 10s
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Successful in 1m28s
ci / acceptance (node20, 20, windows, Windows, node) (push) Successful in 5m49s
ci / acceptance (node22, 22, windows, Windows, node) (push) Successful in 5m29s
|
2026-10-21 18:10:58 +07:00 |
|
|
|
9e1ce42fe5
|
shots: render refuses missing frames and fails on load errors; shots check errors on renders with failed loads (pitfall 93)
ci / gate (push) Successful in 2s
ci / linux (push) Has been cancelled
ci / ci (push) Has been cancelled
ci / windows (push) Has been cancelled
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Has been cancelled
ci / acceptance (bun, 22, windows, Windows, bun) (push) Has been cancelled
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Has been cancelled
ci / acceptance (node20, 20, windows, Windows, node) (push) Has been cancelled
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Has been cancelled
ci / acceptance (node22, 22, windows, Windows, node) (push) Has been cancelled
ci / record (push) Has been cancelled
|
2026-10-21 18:09:06 +07:00 |
|
|
|
55f8b7ca16
|
Screenshot guardrails: name every screenshot not COMPLETE on 409 ASSET_IN_POST_PROCESSING (submit, validate; stuck after 5 min in UPLOAD_COMPLETE), apple screenshots --repair-stuck replaces only those in place, part uploads without Expect: 100-continue (failed part deletes the reservation, one retry, never committed), storebound api --confirm <operationId> for agents' plain writes (never owner-only)
|
2026-10-21 18:08:57 +07:00 |
|
|
|
4fecf2e0b1
|
apple submit --yes submits a draft prepared with --no-submit that already holds the version and items (was 'nothing to submit'); iap-submit the same for a draft holding the asked-for items; test, pitfall 90, CHANGELOG
ci / gate (push) Successful in 2s
ci / windows (push) Has been cancelled
ci / linux (push) Has been cancelled
ci / ci (push) Has been cancelled
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Has been cancelled
ci / acceptance (bun, 22, windows, Windows, bun) (push) Has been cancelled
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Has been cancelled
ci / acceptance (node20, 20, windows, Windows, node) (push) Has been cancelled
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Has been cancelled
ci / acceptance (node22, 22, windows, Windows, node) (push) Has been cancelled
ci / record (push) Has been cancelled
|
2026-10-21 11:19:50 +07:00 |
|
|
|
6eff4b3ea3
|
desktop coverage: apple game-center, play games and games status mapped to the Game services card
|
2026-10-21 05:29:55 +07:00 |
|
|
|
b627a18990
|
apple game-center: literal API paths (query guard reads them); api coverage regenerated
|
2026-10-21 05:29:08 +07:00 |
|
|
|
803d48dab8
|
docs: game-services skill (Game Center + Play Games Services step by step), pitfall 86, commands, CHANGELOG Unreleased; adapters regenerated
|
2026-10-21 05:29:08 +07:00 |
|
|
|
73d3d2b30d
|
docs: desktop.md (coverage map, More tools tab), CHANGELOG Unreleased
ci / gate (push) Successful in 2s
ci / ci (push) Failing after 1m54s
ci / linux (push) Successful in 4m1s
ci / windows (push) Successful in 3m28s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Failing after 26s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Failing after 31s
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Failing after 1m17s
ci / record (push) Successful in 10s
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Failing after 1m20s
ci / acceptance (node20, 20, windows, Windows, node) (push) Failing after 5m13s
ci / acceptance (node22, 22, windows, Windows, node) (push) Failing after 5m36s
|
2026-10-21 05:14:24 +07:00 |
|
|
|
c56c45d7d4
|
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 |
|
|
|
32ad9147e0
|
shots record (web): frames at device pixels through Page.captureScreenshot (clip scale = dpr, long side capped at 1920, 3 requests in flight, midpoint timestamps into the ffmpeg concat); Chromium's screencast stayed at CSS size. Warnings for frames smaller than asked and under 20 frames/s; record-web browser test, pitfall 85
|
2026-10-21 03:59:39 +07:00 |
|
|
|
2c6bbb6453
|
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
ci / gate (push) Successful in 2s
ci / linux (push) Has been cancelled
ci / ci (push) Has been cancelled
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Has been cancelled
ci / acceptance (bun, 22, windows, Windows, bun) (push) Has been cancelled
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Has been cancelled
ci / acceptance (node20, 20, windows, Windows, node) (push) Has been cancelled
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Has been cancelled
ci / acceptance (node22, 22, windows, Windows, node) (push) Has been cancelled
ci / windows (push) Has been cancelled
ci / record (push) Has been cancelled
|
2026-10-21 03:14:53 +07:00 |
|
|
|
c77854f258
|
shots: app titles get the weights the templates use (variable axis, used range or static weights; font-weight warning), palette.bg as one colour or a CSS gradient string (validated; contrast guard in shots check), photo backgrounds (palette.image, shots.feature.background) with overlay and cover crop
|
2026-10-21 03:07:26 +07:00 |
|
|
|
d82be973f4
|
shots capture: signed-in web apps (shots.capture.auth request with ${cred:}/${env:} references or storageState), shots login saves a demo sign-in to .storebound/auth.json (0600), expired-session warning, secrets and cookies masked
ci / gate (push) Successful in 2s
ci / ci (push) Failing after 1m26s
ci / linux (push) Successful in 3m40s
ci / windows (push) Successful in 3m44s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Failing after 23s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Failing after 32s
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Failing after 2m13s
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Failing after 1m18s
ci / record (push) Successful in 10s
ci / acceptance (node20, 20, windows, Windows, node) (push) Failing after 5m19s
ci / acceptance (node22, 22, windows, Windows, node) (push) Failing after 5m15s
|
2026-10-20 12:41:43 +07:00 |
|
|
|
bfe7c4b417
|
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
ci / gate (push) Successful in 2s
ci / ci (push) Successful in 1m14s
ci / linux (push) Has been cancelled
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Has been cancelled
ci / acceptance (bun, 22, windows, Windows, bun) (push) Has been cancelled
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Has been cancelled
ci / acceptance (node20, 20, windows, Windows, node) (push) Has been cancelled
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Has been cancelled
ci / acceptance (node22, 22, windows, Windows, node) (push) Has been cancelled
ci / windows (push) Has been cancelled
ci / record (push) Has been cancelled
|
2026-10-20 03:29:19 +07:00 |
|
|
|
e4297e5731
|
api tables regenerated (the new creative-assets and platform commands wrap more operations)
ci / gate (push) Successful in 2s
ci / windows (push) Has been cancelled
ci / linux (push) Has been cancelled
ci / ci (push) Has been cancelled
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Has been cancelled
ci / acceptance (bun, 22, windows, Windows, bun) (push) Has been cancelled
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Has been cancelled
ci / acceptance (node20, 20, windows, Windows, node) (push) Has been cancelled
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Has been cancelled
ci / acceptance (node22, 22, windows, Windows, node) (push) Has been cancelled
ci / record (push) Has been cancelled
|
2026-10-20 03:08:37 +07:00 |
|
|
|
787704a653
|
merge origin/main (cross-store text checker); macOS platform pitfall renumbered to 79
ci / gate (push) Successful in 1s
ci / windows (push) Failing after 30s
ci / ci (push) Failing after 51s
ci / linux (push) Failing after 53s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Has been skipped
ci / acceptance (bun, 22, windows, Windows, bun) (push) Has been skipped
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Has been skipped
ci / acceptance (node20, 20, windows, Windows, node) (push) Has been skipped
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Has been skipped
ci / acceptance (node22, 22, windows, Windows, node) (push) Has been skipped
ci / record (push) Has been skipped
|
2026-10-20 03:06:16 +07:00 |
|
|
|
872585c658
|
apple creative-assets: place Header and Search Results assets once Apple approved them (the version page offers only approved assets); waiting files are reported per locale and placement with their upload date and the re-run command, in the run, --verify, validate and the report; iPhone Duo: the published API spec still has no Duo type, the note says the console takes Duo and the API does not yet
|
2026-10-20 03:04:14 +07:00 |
|
|
|
83f870f9a1
|
cross-store text: other platforms named in App Store text (2.3.10: Android, Google Play, ...) or Play text (Metadata: iOS, App Store, Game Center, ...) are refused by every text write (apple / play listing, play release / upload notes, listing set, whats-new, storebound edit, desktop editor), blockers in check / validate, scan other-platforms / play-other-platforms; listing.allowPlatformMentions for the owner's functional mentions; whats-new splits [apple] / [play] lines per store; storebound api --yes without a TTY is refused (exit 1, stderr) instead of a silent dry run; pitfalls 77, 78
ci / gate (push) Successful in 2s
ci / windows (push) Failing after 28s
ci / ci (push) Failing after 59s
ci / linux (push) Failing after 59s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Has been skipped
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Has been skipped
ci / acceptance (node20, 20, windows, Windows, node) (push) Has been skipped
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Has been skipped
ci / acceptance (node22, 22, windows, Windows, node) (push) Has been skipped
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Has been skipped
ci / record (push) Has been skipped
|
2026-10-20 02:57:25 +07:00 |
|
|
|
a599e5cb90
|
creative assets: <renders>/creative/header.* / search.* fill every language without its own file (art without words needs no copy per locale; one upload, placed per locale)
|
2026-10-19 05:47:27 +07:00 |
|
|
|
10768bc078
|
apple creative-assets: a live app without an editable version uses the live version (only approved assets are selected there; new ones upload and wait for a review of their own via --add-for-review); pitfall 76: placements read back ACTIVE live, a state the 4.5.1 spec does not list
|
2026-10-19 05:45:47 +07:00 |
|
|
|
338def4fe3
|
apple creative-assets: select Header and Search Results assets once processed (Prepare for Submission), not once approved: Apple reviews an asset only in a review submission, so 0.8.13 waited forever; upload and select in one run with a bounded processing wait; --add-for-review puts unreviewed assets into the draft review submission (never submits); --verify reads every slot back read-only (MCP apple_creative_assets_verify); a rejected file or one that failed processing twice is not re-uploaded, an archived copy is unarchived; fake commits library assets to PREPARE_FOR_SUBMISSION; pitfall 76 rewritten; apple-name check test only looks at name hints
|
2026-10-19 05:42:53 +07:00 |
|
|
|
066b099e96
|
apple creative-assets: App Store Header and Search Results (PRODUCT_PAGE_HEADER_ASSET, APP_STORE_SEARCH_RESULTS_ASSET) through the App Asset Library: local size / alpha / video checks, upload once by MD5, select only approved assets, replace on a changed file; check / validate note, MCP tool, gallery and desktop Art row, docs, pitfall 75
ci / gate (push) Successful in 2s
ci / ci (push) Failing after 1m13s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Successful in 33s
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Successful in 1m16s
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Successful in 1m20s
ci / linux (push) Successful in 4m9s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Successful in 24s
ci / acceptance (node20, 20, windows, Windows, node) (push) Has been cancelled
ci / acceptance (node22, 22, windows, Windows, node) (push) Has been cancelled
ci / windows (push) Has been cancelled
ci / record (push) Has been cancelled
|
2026-10-18 13:10:20 +07:00 |
|
|
|
f9e7af11b4
|
iPhone Duo screenshots (render, check, upload skip with console link while the API has no display type) and the medium display class as the required iPhone set, labels as in the console
ci / gate (push) Successful in 2s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Successful in 29s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Successful in 38s
ci / ci (push) Failing after 1m7s
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Successful in 1m21s
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Successful in 1m21s
ci / acceptance (node20, 20, windows, Windows, node) (push) Successful in 6m14s
ci / linux (push) Successful in 5m14s
ci / acceptance (node22, 22, windows, Windows, node) (push) Successful in 5m20s
ci / windows (push) Successful in 3m56s
ci / record (push) Successful in 10s
|
2026-10-18 13:07:15 +07:00 |
|
|
|
615122d22c
|
report: storebound report writes one shareable, self-contained readiness page (.storebound/reports/readiness-<date>.html; --md, --json, --no-open, --offline, --out) from scan, check and validate: a verdict per store (Ready to submit / N blockers / Not checked with the reason), findings per store by severity with guideline, evidence, fix and console button, the owner's compliance questions as a checklist, secrets masked; storebound.dev look, light / dark, print; desktop Checks > Report (same code path, opens through project_reveal) and its Markdown export on the same renderer; read-only MCP tool report
ci / gate (push) Successful in 2s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Successful in 30s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Successful in 30s
ci / ci (push) Has been cancelled
ci / acceptance (node20, 20, windows, Windows, node) (push) Has been cancelled
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Has been cancelled
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Has been cancelled
ci / acceptance (node22, 22, windows, Windows, node) (push) Has been cancelled
ci / linux (push) Has been cancelled
ci / windows (push) Has been cancelled
ci / record (push) Has been cancelled
|
2026-10-18 01:42:03 +08:00 |
|
|
|
4032657695
|
scan: remote config, feature flags and remote paywalls not told to review (App Review 2.3.1, Play Deceptive behavior): remote-features finding for both stores, medium, with deep links, unless the review notes mention them; check prints it as a warning, validate carries it; warn only, the templates get a commented example line; code obfuscators a low note, minify alone nothing; store-pitfalls 74
ci / gate (push) Successful in 2s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Successful in 28s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Successful in 33s
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Successful in 1m20s
ci / ci (push) Successful in 2m3s
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Successful in 1m23s
ci / acceptance (node20, 20, windows, Windows, node) (push) Has been cancelled
ci / linux (push) Has been cancelled
ci / acceptance (node22, 22, windows, Windows, node) (push) Has been cancelled
ci / windows (push) Has been cancelled
ci / record (push) Has been cancelled
|
2026-10-18 01:26:32 +08:00 |
|
|
|
241bf6a735
|
review access: guest-play apps rejected by Play as a login wall (empty name field, disabled Continue, a code link on the first screen): check warns for a Play app with a first-run gate or IAP and no reviewAccess.instructions; with guest steps the play-sign-in-details plan declares one entry without credentials, the dialog's required full-access box as the owner's step; store-pitfalls 73
ci / gate (push) Successful in 2s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Successful in 30s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Successful in 33s
ci / ci (push) Successful in 1m32s
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Successful in 1m24s
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Successful in 1m21s
ci / acceptance (node20, 20, windows, Windows, node) (push) Successful in 5m32s
ci / linux (push) Successful in 4m10s
ci / acceptance (node22, 22, windows, Windows, node) (push) Successful in 4m33s
ci / windows (push) Successful in 3m21s
ci / record (push) Successful in 9s
|
2026-10-17 12:50:06 +08:00 |
|
|
|
42835c94f1
|
neutral names in docs, tests and comments (no real app or project names)
ci / gate (push) Successful in 4s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Has been skipped
ci / ci (push) Has been cancelled
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Has been cancelled
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Has been cancelled
ci / acceptance (node20, 20, windows, Windows, node) (push) Has been cancelled
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Has been cancelled
ci / acceptance (node22, 22, windows, Windows, node) (push) Has been cancelled
ci / linux (push) Has been cancelled
ci / windows (push) Has been cancelled
ci / record (push) Has been cancelled
|
2026-10-16 06:14:02 +08:00 |
|
|
|
748da4fb49
|
play: changesNotSentForReview goes only on edits.commit (validate answers 400 "Unknown name changesNotSentForReview: Cannot bind query parameter", found by a game on 0649abe's real run): a refused commit is committed again with the parameter, a dry run's refused validate only says how the real run commits; the fake Play refuses the parameter on validate and a test asserts validate never gets it
|
2026-10-16 05:53:18 +08:00 |
|
|
|
0649abe5c4
|
play: an edit Play will not send for review (400 'set changesNotSentForReview to true', a game 1.0.1 (5) after a rejection) is validated and committed again on the same edit with changesNotSentForReview=true; dry runs validate that way and say so; prints the Publishing overview link (owner's button), records it in .storebound/ for play status; --not-sent-for-review on release / upload / rollout / listing / images and MCP / desktop; pitfall 72
|
2026-10-16 05:50:37 +08:00 |
|
|
|
d029dadda1
|
Console pages as absolute deep links: cli/lib/console-links.ts builds the URL of every App Store Connect / Play Console page from apple.appId, play.developerId and play.appId (app list / developer chooser when unknown); every plain 'App Store Connect > ...' / 'Play Console > ...' direction in cli/ and templates/ now carries it, validate / scan / declarations / release plan JSON carry url, the desktop shows an Open button; tests/console-links.test.ts guards it; AGENTS rule 11, pitfall 71
|
2026-10-15 19:55:37 +08:00 |
|
|
|
f6aac93762
|
First in-app purchases left out of a review are caught (pitfall 70): firstProductGaps in validate / release plan (blocker) and the apple submit plan (refuses to leave a never-approved first product out); apple status (WARN + firstProductGaps in --json), release status and the desktop checks warn while a version waits for or is in review without it; iap-review says 'ready, not submitted yet' instead of 'complete'
|
2026-10-15 19:31:26 +08:00 |
|
|
|
df8793b02c
|
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 |
|
|
|
3e4208e656
|
desktop: a Fix button on scan and validate findings storebound can fix itself. Findings carry action { method, args } (cli/lib/fix-actions.ts); privacy-labels runs scan.write (scan --write-only, the dialog shows the config diff), Play listing gaps play.listing, a missing App Store localization or copyright apple.listing (editable version only), the App Review contact apple.review_details; each a dry run, the native dialog, then the confirmed run. --write-only is forbidden for MCP tools; tests pin the mapping, the round trip on a fixture and that no fix reaches a submit, release or publish
|
2026-10-15 06:14:49 +08:00 |
|
|
|
f917f7e40d
|
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 |
|
|
|
b74160a73d
|
browser tests run only by hand: the suites that launch Chrome / Chromium move to tests/browser/*.browser.ts (bun test, ci, ci:quick and the Forgejo workflows never pick them up; bun run test:browser runs them); the desktop boot check leaves bun run ci (it stays in desktop-release.ts mac at release time); CI=full is gone: Forgejo's ci runs the Rust steps when the push changed a Rust input (STOREBOUND_CI_BASE=HEAD~1), no Playwright install; CONTRIBUTING
|
2026-10-15 01:25:17 +08:00 |
|
|
|
68f0ec1a9b
|
docs/pitfalls.md: rows 64-67 (the skill had them)
|
2026-10-15 01:21:13 +08:00 |
|
|
|
f6d995d3b3
|
release candidates: draft assets are read by their attachment uuid (the tag URL is 404 for drafts: the record job could not merge SHA256SUMS); the installers are scanned with the private terms in their build jobs, so the record job needs no apt tools (it spent 5 minutes installing them)
|
2026-10-15 01:18:55 +08:00 |
|
|
|
fa0fda46f9
|
release candidates: every push to main runs the full CI, the acceptance matrix and the Linux / Windows installer builds in parallel (ci.yml) and records the green result per commit as the draft rc-<sha> (green.json last); a version-only bump commit (proven file by file with the version writers) reuses its parent's CI and matrix and rebuilds only the installers; a v* tag only promotes the candidate (release.yml), fails fast on a red or missing commit; acceptance runs carry a CLI key; tools/release.ts does the whole release on the Mac (bump, CHANGELOG cut, fast gate, push, tag, Mac build + notarize in parallel with Forgejo, cached macOS acceptance, add, verify, publish with one upload of the Mac files, /Applications update, npm commands) and --rehearsal; DMG notarization runs while the app and updater bundle are checked; rehearsal channel on the VDS; docs
|
2026-10-15 00:42:50 +08:00 |
|
|
|
38a621970f
|
console Chrome never outlives its run: exit kills it, SIGINT / SIGTERM / SIGHUP close it gracefully, a detached watchdog ends it when the parent dies (SIGKILL included; a reused pid is never killed); every start ends headless orphans on storebound profiles and names orphaned windows; headless runs on macOS prefer Chromium / Chrome for Testing over Google Chrome.app (an orphan kept the owner's Chrome from opening from the Dock); console fill closes the window on errors; pitfall 68; tests
|
2026-10-15 00:28:32 +08:00 |
|
|
|
023aaddc05
|
acceptance: the app fixture carries the owner's answers (unanswered: [], its own name and copyright; template answers are refused before store writes); macOS results of 0.8.4 (123/123 on Node 20, Node 22, Bun), docs/acceptance.md regenerated
release / prepare (push) Waiting to run
release / ci (push) Blocked by required conditions
release / linux (push) Blocked by required conditions
release / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Blocked by required conditions
release / acceptance (bun, 22, windows, Windows, bun) (push) Blocked by required conditions
release / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Blocked by required conditions
release / acceptance (node20, 20, windows, Windows, node) (push) Blocked by required conditions
release / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Blocked by required conditions
release / acceptance (node22, 22, windows, Windows, node) (push) Blocked by required conditions
release / acceptance-report (push) Blocked by required conditions
release / windows (push) Blocked by required conditions
release / release (push) Blocked by required conditions
|
2026-10-14 23:56:57 +08:00 |
|
|
|
93cad15023
|
--json prints only JSON on stdout (withJsonOutput around every command: logs, tables and prompts to stderr; printJson everywhere; test runs every --json command against the fake stores and parses stdout); prices ppp compares like with like: par = the store's own US-equivalent price (Play convertRegionPrices, Apple equalizations; offline base x fx x (1 + VAT) rounded up) scaled by the PPP price level; defaults only lower, only price levels <= 0.5, World Bank high-income at par, CN at par on Apple and skipped on Play, never above par (--only-decreases, --max-ratio, --min-ratio, --max-level, --include-high-income; --floor / --ceiling kept), top-10 revenue market drops > 20 % warned (sales reports, else a static list), unchanged regions out of the sheet; price changes of existing products only with --allow-price-changes, TTY or not (a terminal yes covered them), then their own question listing each old -> new, held section in dry runs (play products, prices import, play / apple subscriptions); pitfalls 61-63; tests
|
2026-10-14 17:36:00 +08:00 |
|
|
|
b6c9523037
|
template compliance answers never reach a store: init writes unanswered (dataSafety, appPrivacy, reviewNotes, ageRating, accounts, reviewAccess), older configs are recognised by the template values; check / validate / scan block, play data-safety (also --dry), console plan / fill, apple review-details and appinfo refuse. onboard --declarations replaces them on a live app: name and copyright from the stores (a copyright with a private term is left out), the rows the code proves (scan proposal, sign-up methods from auth code and login SDKs), the rest as one owner question list. play data-safety --dry prints the answers that change (old -> new, account and deletion first) against the last uploaded CSV; pitfall 60; tests
|
2026-10-14 11:36:30 +08:00 |
|
|
|
608f9cea2f
|
site: first-party, cookieless visit stats (self-hosted Umami at storebound.dev/s/, Do Not Track respected) with events for copy buttons, desktop downloads per OS, the teaser (play, 50 %, complete) and outbound docs / git / npm links; a privacy note in the footer; docs/site-analytics.md and tools/vds/ configs to rebuild the server side; scrub allows a page's public stats website id
|
2026-10-14 11:11:24 +08:00 |
|
|
|
d8c3cc88c2
|
acceptance: macOS results of 0.8.3 from 94f61e4 (123/123 on Node 20, Node 22, Bun), docs/acceptance.md regenerated
release / prepare (push) Waiting to run
release / ci (push) Blocked by required conditions
release / linux (push) Blocked by required conditions
release / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Blocked by required conditions
release / acceptance (bun, 22, windows, Windows, bun) (push) Blocked by required conditions
release / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Blocked by required conditions
release / acceptance (node20, 20, windows, Windows, node) (push) Blocked by required conditions
release / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Blocked by required conditions
release / acceptance (node22, 22, windows, Windows, node) (push) Blocked by required conditions
release / acceptance-report (push) Blocked by required conditions
release / windows (push) Blocked by required conditions
release / release (push) Blocked by required conditions
|
2026-10-14 08:51:14 +08:00 |
|