5833776a4b
analytics and reports for a collector: store-only configs, --json snapshot, App Usage and Play install stock numbers, per-day sales ranges for both stores
2026-10-26 10:20:27 +07:00
2c5e30090f
credential broker: Play tokens from POST /api/google/token (cached, single flight, local key fallback), grants and APIs per package in validate, Play write preflight, apps check and the desktop Accounts view; Google 403 names the API or grant, no retry
2026-10-25 22:51:32 +07:00
304407e523
apple signing: App Group association fails early under automatic signing too (API capability + newest profile, steps and deep link, exit before the archive); console plan/verify apple-app-group
2026-10-25 22:35:36 +07:00
6782ac6078
api tables: regenerate for the new Play listing calls
2026-10-24 19:49:26 +08:00
5236f002f1
desktop: tray menu panels and pinnable context menus
...
The tray's right-click menu is drawn by the app: one tree from tray.rs
(stable submenu keys), one frameless always-on-top menu-N window per
panel rendered by tray-menu.html with the design system, placed inside
the monitor's work area. A pure panel book keeps transient and pinned
panels apart; pinned panels (pin button, Ctrl+click, middle click) are
draggable, step aside from each other and are saved in state.json
(menuPins) and restored at start. tray_update pushes the tree to the
open panels, which update in place; closed panels are destroyed. The
native menu, rendered from the same tree, stays as the fallback and on
Linux. Only menu-* windows get the menu_* commands (menu.json).
In-app context menus get the same behaviour through a pure menu stack
(ui/menu-stack.ts): pin a menu, tear off a submenu, pinned panels
survive the next menu, are draggable and re-read their entries from
live sources so data changes update them in place.
Also drops a stray diff3 marker line from CHANGELOG.md.
2026-10-24 13:44:08 +08:00
445ab1adbc
apple signing: every signable target (extensions, App Group check), build keychain unlock over SSH, api confirm docs
2026-10-24 13:07:58 +08:00
634d5dd71d
generated API tables refreshed for the macOS build upload
2026-10-24 12:23:52 +08:00
8084104a4d
desktop coverage entry for shots copy
2026-10-24 12:16:49 +08:00
fb1609cba7
upload --pre-check/--evidence, shots copy translate, game-center --locale-map, play games API-disabled hint
2026-10-24 12:16:48 +08:00
4e2ffd6b3d
generated API tables refreshed for the play-publish-changes form
2026-10-24 12:01:37 +08:00
1bb43fd4a0
play managed publishing: console plan/verify play-publish-changes, ready-to-publish items in play status, desktop hint
2026-10-24 11:56:07 +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
8f69a27709
desktop install: stop the running app by exact path, check the installed exe's real version, verify it opened
2026-10-23 15:57:32 +07:00
a01c78aa20
generated API tables and flags refreshed for the play products clamp (Forgejo ci failed on stale api tables)
2026-10-23 15:56:36 +07:00
487e138f9d
watch: ingest sink (--notify ingest) posting events to a push ingest endpoint
2026-10-23 15:30:18 +08:00
84efa4e913
desktop coverage: place for the status command
2026-10-23 14:14:02 +08:00
f03a83bf3d
Merge origin/main (0.8.42 tag, not published); API tables regenerated
2026-10-23 13:15:34 +08:00
021c0eef5a
Regenerate the API tables with forward slashes
2026-10-23 13:13:45 +08:00
2e888a01cc
docs/ship-step.md, pitfall 110 (pipeline exit 7 and double uploads), CHANGELOG Unreleased
2026-10-23 13:13:28 +08:00
54451c87c8
Regenerate the API tables (wrapped.gen.ts, api-coverage.md); 0.8.41 notes move to Unreleased
2026-10-23 12:29:24 +08:00
78c541f2b8
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
9a907d87e5
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
2026-10-22 05:59:41 +08:00
256e8e33ad
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
2026-10-22 03:28:46 +08:00
9bd17c401d
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
73d308164d
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
0ac3cd02b0
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
e5dffb5533
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
2026-10-21 18:10:58 +07:00
88d1b58f1f
shots: render refuses missing frames and fails on load errors; shots check errors on renders with failed loads (pitfall 93)
2026-10-21 18:09:06 +07:00
00756e6908
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
4d70be3404
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
2026-10-21 11:19:50 +07:00
dd9e059036
desktop coverage: apple game-center, play games and games status mapped to the Game services card
2026-10-21 05:29:55 +07:00
d427b5c4a4
apple game-center: literal API paths (query guard reads them); api coverage regenerated
2026-10-21 05:29:08 +07:00
93d7f8a5fc
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
eebb3a830b
docs: desktop.md (coverage map, More tools tab), CHANGELOG Unreleased
2026-10-21 05:14:24 +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
dda21d2570
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
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
3a11682a37
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
e1e4e05237
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
2026-10-20 12:41:43 +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
74101edeca
api tables regenerated (the new creative-assets and platform commands wrap more operations)
2026-10-20 03:08:37 +07:00
9db7180eb9
merge origin/main (cross-store text checker); macOS platform pitfall renumbered to 79
2026-10-20 03:06:16 +07:00
c2f34c62f3
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
edabbec874
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
2026-10-20 02:57:25 +07:00
3542b897c8
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
c03291e7f7
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
183579449c
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
e5369090fa
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
2026-10-18 13:10:20 +07:00
3381673ae6
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
2026-10-18 13:07:15 +07:00
af349b3db1
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
2026-10-18 01:42:03 +08:00