65f975ecff
storebound 0.8.54: version in package.json and every copy, CHANGELOG 0.8.54 section
ci / gate (push) Successful in 4s
ci / ci (push) Successful in 3m57s
ci / windows (push) Successful in 7m24s
ci / linux (push) Successful in 5m57s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Successful in 31s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Successful in 32s
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Successful in 1m28s
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Successful in 1m29s
ci / dev (push) Successful in 1m11s
ci / record (push) Successful in 13s
release / promote (push) Successful in 15m1s
ci / acceptance (node20, 20, windows, Windows, node) (push) Successful in 6m29s
ci / acceptance (node22, 22, windows, Windows, node) (push) Successful in 6m4s
2026-10-26 19:16:46 +07:00
569b419fb5
storebound 0.8.53: version in package.json and every copy, CHANGELOG 0.8.53 section
ci / gate (push) Successful in 3s
ci / ci (push) Successful in 3m51s
ci / windows (push) Successful in 7m39s
ci / linux (push) Successful in 5m45s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Successful in 29s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Successful in 31s
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Successful in 1m25s
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Successful in 1m34s
ci / dev (push) Successful in 2m15s
ci / record (push) Successful in 14s
release / promote (push) Successful in 15m49s
ci / acceptance (node20, 20, windows, Windows, node) (push) Successful in 7m19s
ci / acceptance (node22, 22, windows, Windows, node) (push) Successful in 5m46s
2026-10-26 18:17:15 +07:00
8a96f38784
storebound 0.8.52: version in package.json and every copy, CHANGELOG 0.8.52 section
ci / gate (push) Successful in 7s
ci / ci (push) Successful in 2m56s
ci / windows (push) Successful in 6m32s
ci / linux (push) Successful in 5m31s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Failing after 38s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Failing after 40s
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Failing after 1m43s
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Failing after 1m42s
ci / dev (push) Failing after 5s
ci / record (push) Successful in 12s
release / promote (push) Successful in 13m9s
ci / acceptance (node20, 20, windows, Windows, node) (push) Failing after 11m6s
ci / acceptance (node22, 22, windows, Windows, node) (push) Successful in 9m32s
2026-10-26 11:08:21 +07:00
a4f43187ad
storebound 0.8.51: version in package.json and every copy, CHANGELOG 0.8.51 section
ci / gate (push) Successful in 3s
ci / ci (push) Successful in 3m14s
ci / windows (push) Successful in 8m32s
ci / linux (push) Successful in 6m12s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Failing after 30s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Failing after 33s
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Failing after 1m20s
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Failing after 1m25s
ci / dev (push) Failing after 10s
release / promote (push) Failing after 13m2s
ci / record (push) Successful in 13s
ci / acceptance (node20, 20, windows, Windows, node) (push) Failing after 7m27s
ci / acceptance (node22, 22, windows, Windows, node) (push) Failing after 9m14s
2026-10-26 10:27:48 +07:00
6521abae59
storebound 0.8.50: version in package.json and every copy, CHANGELOG 0.8.50 section
ci / gate (push) Successful in 2s
ci / ci (push) Successful in 2m38s
ci / windows (push) Successful in 7m14s
ci / linux (push) Successful in 5m42s
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 / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Successful in 1m24s
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Successful in 1m27s
ci / dev (push) Successful in 1m11s
ci / record (push) Successful in 13s
release / promote (push) Successful in 13m27s
ci / acceptance (node20, 20, windows, Windows, node) (push) Successful in 6m53s
ci / acceptance (node22, 22, windows, Windows, node) (push) Successful in 6m14s
2026-10-25 23:18:12 +07:00
343e69dcbc
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
ci / gate (push) Successful in 2s
ci / ci (push) Successful in 1m49s
ci / linux (push) Successful in 6m4s
ci / windows (push) Successful in 6m54s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Successful in 32s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Successful in 32s
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Successful in 1m32s
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Successful in 1m31s
ci / record (push) Successful in 13s
ci / dev (push) Successful in 51s
ci / acceptance (node20, 20, windows, Windows, node) (push) Successful in 6m6s
ci / acceptance (node22, 22, windows, Windows, node) (push) Successful in 5m46s
2026-10-25 22:51:32 +07:00
7922651fb4
desktop icon: the brand mark at every size (small Windows sizes were a plain S tile), each size resampled on its own, 20/30/36/40/60/72/80/96 px added for 125-200 % scaling
ci / gate (push) Successful in 3s
ci / ci (push) Successful in 2m2s
ci / linux (push) Successful in 6m5s
ci / windows (push) Successful in 6m53s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Successful in 31s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Successful in 30s
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Successful in 1m31s
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Successful in 1m29s
ci / dev (push) Successful in 31s
ci / record (push) Successful in 12s
ci / acceptance (node20, 20, windows, Windows, node) (push) Successful in 6m1s
ci / acceptance (node22, 22, windows, Windows, node) (push) Successful in 6m0s
2026-10-25 21:08:13 +07:00
2c23254a9a
storebound 0.8.49: version in package.json and every copy, CHANGELOG 0.8.49 section
ci / gate (push) Successful in 3s
ci / ci (push) Successful in 2m28s
ci / windows (push) Successful in 8m25s
ci / linux (push) Successful in 6m37s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Successful in 34s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Successful in 40s
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Successful in 1m29s
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Successful in 1m29s
ci / dev (push) Successful in 2m11s
ci / record (push) Successful in 12s
release / promote (push) Successful in 15m23s
ci / acceptance (node20, 20, windows, Windows, node) (push) Successful in 6m48s
ci / acceptance (node22, 22, windows, Windows, node) (push) Successful in 7m2s
2026-10-25 20:15:46 +07:00
1de68f0616
desktop: read StartupApproved through the registry API, no reg.exe (the security test allows no other programs)
ci / gate (push) Successful in 3s
ci / ci (push) Successful in 2m24s
ci / windows (push) Has been cancelled
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 / dev (push) Has been cancelled
ci / record (push) Has been cancelled
2026-10-25 21:11:31 +08:00
9791f066e4
desktop: autostart respects Windows Startup apps (turned off there stays off; the Run entry is no longer re-enabled on every start)
ci / gate (push) Successful in 3s
ci / ci (push) Failing after 1m40s
ci / linux (push) Successful in 5m56s
ci / windows (push) Successful in 7m15s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Successful in 44s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Successful in 45s
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 1m28s
ci / record (push) Successful in 15s
ci / dev (push) Successful in 1m52s
ci / acceptance (node20, 20, windows, Windows, node) (push) Successful in 5m49s
ci / acceptance (node22, 22, windows, Windows, node) (push) Successful in 5m31s
2026-10-24 21:13:10 +08:00
7940289272
desktop tray: card as tall as its content, card and menu open from the tray icon's edge (never over the taskbar); menu permission files
ci / gate (push) Successful in 2s
ci / ci (push) Successful in 1m33s
ci / linux (push) Successful in 7m3s
ci / windows (push) Successful in 7m48s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Successful in 34s
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Successful in 1m29s
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Successful in 1m30s
ci / record (push) Successful in 14s
ci / dev (push) Successful in 50s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Successful in 27s
ci / acceptance (node20, 20, windows, Windows, node) (push) Successful in 6m29s
ci / acceptance (node22, 22, windows, Windows, node) (push) Successful in 5m37s
2026-10-24 19:53:10 +08:00
b944bbd835
storebound 0.8.48: version in package.json and every copy, CHANGELOG 0.8.48 section
ci / gate (push) Successful in 3s
ci / ci (push) Successful in 2m49s
ci / windows (push) Successful in 6m53s
ci / linux (push) Successful in 5m32s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Successful in 29s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Successful in 30s
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Successful in 1m22s
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Successful in 1m23s
ci / dev (push) Successful in 1m10s
ci / record (push) Successful in 11s
release / promote (push) Successful in 13m18s
ci / acceptance (node20, 20, windows, Windows, node) (push) Successful in 5m55s
ci / acceptance (node22, 22, windows, Windows, node) (push) Successful in 5m29s
2026-10-24 18:17:14 +07:00
4811ad5cf2
desktop: tray menu panels and pinnable context menus
...
ci / gate (push) Successful in 2s
ci / ci (push) Failing after 1m20s
ci / linux (push) Successful in 5m48s
ci / windows (push) Successful in 6m35s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Successful in 34s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Successful in 33s
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 1m25s
ci / record (push) Successful in 12s
ci / dev (push) Successful in 1m51s
ci / acceptance (node20, 20, windows, Windows, node) (push) Successful in 5m48s
ci / acceptance (node22, 22, windows, Windows, node) (push) Successful in 5m34s
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
e100001017
desktop: boot check finds unsaved marks on the sub views; neutral next-step lines before a read
ci / gate (push) Successful in 3s
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 / dev (push) Has been cancelled
ci / record (push) Has been cancelled
2026-10-24 13:06:42 +08:00
eac6388705
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
8bcf407527
play-publish-changes: a release is ready only when the store page shows an older version; unknown reads are not determined, never a mismatch
ci / gate (push) Successful in 2s
ci / ci (push) Successful in 1m11s
ci / windows (push) Has been cancelled
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 / dev (push) Has been cancelled
ci / record (push) Has been cancelled
2026-10-24 12:12:37 +08:00
9e166bf9a3
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
9dccf357a9
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
67534f8df2
storebound 0.8.47: version in package.json and every copy, CHANGELOG 0.8.47 section
ci / gate (push) Successful in 3s
ci / ci (push) Successful in 2m39s
ci / linux (push) Successful in 3m53s
ci / windows (push) Successful in 3m37s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Successful in 28s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Successful in 30s
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Successful in 1m22s
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Successful in 1m23s
ci / record (push) Successful in 12s
release / promote (push) Successful in 14m58s
ci / acceptance (node20, 20, windows, Windows, node) (push) Successful in 5m42s
ci / acceptance (node22, 22, windows, Windows, node) (push) Successful in 5m26s
2026-10-23 16:03:29 +07:00
fe46ae6cd1
storebound 0.8.46: version in package.json and every copy, CHANGELOG 0.8.46 section
ci / gate (push) Successful in 4s
ci / ci (push) Successful in 1m57s
ci / windows (push) Successful in 3m54s
ci / linux (push) Successful in 3m20s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Successful in 28s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Successful in 29s
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 1m22s
ci / record (push) Successful in 14s
release / promote (push) Successful in 8m57s
ci / acceptance (node20, 20, windows, Windows, node) (push) Successful in 5m38s
ci / acceptance (node22, 22, windows, Windows, node) (push) Successful in 5m15s
2026-10-23 14:44:51 +07:00
c319ed8313
storebound 0.8.45: version in package.json and every copy, CHANGELOG 0.8.45 section
ci / gate (push) Successful in 4s
ci / ci (push) Successful in 2m59s
ci / linux (push) Successful in 4m11s
ci / windows (push) Successful in 3m30s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Successful in 27s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Successful in 30s
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 1m22s
ci / record (push) Failing after 2m25s
release / promote (push) Failing after 22m50s
ci / acceptance (node20, 20, windows, Windows, node) (push) Successful in 6m37s
ci / acceptance (node22, 22, windows, Windows, node) (push) Successful in 6m24s
2026-10-23 13:50:24 +07:00
eb0c71970e
Merge origin/main (0.8.44 tag)
2026-10-23 14:48:03 +08:00
3f823eb2ef
desktop tests: clippy clean (repeat_n in the tray test, unix-only time imports in ai_fix)
2026-10-23 14:47:53 +08:00
17a42fc2c9
storebound 0.8.44: version in package.json and every copy, CHANGELOG 0.8.44 section
ci / gate (push) Successful in 2s
ci / ci (push) Failing after 2m34s
ci / linux (push) Successful in 3m22s
ci / windows (push) Successful in 4m1s
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 1m22s
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Successful in 1m21s
ci / record (push) Failing after 2m23s
release / promote (push) Failing after 23m25s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Successful in 33s
ci / acceptance (node20, 20, windows, Windows, node) (push) Successful in 6m7s
ci / acceptance (node22, 22, windows, Windows, node) (push) Successful in 6m14s
2026-10-23 13:16:42 +07:00
bfe44f2c15
tray card: per-icon Phosphor imports; teaser pins the current app-privacy step 5 text
ci / gate (push) Successful in 2s
ci / ci (push) Failing after 1m12s
ci / linux (push) Successful in 4m4s
ci / windows (push) Successful in 5m28s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Successful in 27s
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Successful in 1m5s
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Successful in 1m4s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Successful in 24s
ci / record (push) Failing after 2m24s
ci / acceptance (node20, 20, windows, Windows, node) (push) Successful in 6m37s
ci / acceptance (node22, 22, windows, Windows, node) (push) Successful in 5m51s
2026-10-23 14:07:44 +08:00
8fa9153f8f
storebound 0.8.43: version in package.json and every copy, CHANGELOG 0.8.43 section
ci / gate (push) Successful in 3s
ci / ci (push) Failing after 57s
ci / windows (push) Successful in 3m50s
ci / linux (push) Successful in 3m26s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Successful in 31s
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 1m48s
ci / record (push) Failing after 2m27s
release / promote (push) Failing after 18m50s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Successful in 28s
ci / acceptance (node20, 20, windows, Windows, node) (push) Successful in 5m38s
ci / acceptance (node22, 22, windows, Windows, node) (push) Successful in 5m31s
2026-10-23 12:20:06 +07:00
f648f6b269
storebound 0.8.42: version in package.json and every copy, CHANGELOG 0.8.42 section
ci / gate (push) Successful in 3s
ci / ci (push) Failing after 1m6s
ci / linux (push) Successful in 3m24s
ci / windows (push) Successful in 4m7s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Successful in 34s
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Successful in 1m23s
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Successful in 1m25s
ci / record (push) Failing after 2m24s
release / promote (push) Failing after 18m34s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Successful in 27s
ci / acceptance (node20, 20, windows, Windows, node) (push) Successful in 5m12s
ci / acceptance (node22, 22, windows, Windows, node) (push) Successful in 5m24s
2026-10-23 11:30:53 +07:00
b08f28888a
storebound 0.8.41: version in package.json and every copy, CHANGELOG 0.8.41 section
ci / gate (push) Successful in 2s
ci / ci (push) Failing after 1m17s
ci / linux (push) Successful in 4m5s
ci / windows (push) Successful in 4m8s
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 1m26s
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Successful in 1m48s
release / promote (push) Failing after 40m10s
ci / record (push) Failing after 2m22s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Successful in 27s
ci / acceptance (node20, 20, windows, Windows, node) (push) Successful in 5m11s
ci / acceptance (node22, 22, windows, Windows, node) (push) Successful in 5m52s
2026-10-23 10:25:06 +07:00
0c34a823af
desktop reads: a card that joins a read or gets the 'read just now' answer applies it (no bus event for those: a tab opened again stayed on its skeleton); invalidate before a write's after-refresh, editor save re-reads with force
ci / gate (push) Successful in 2s
ci / ci (push) Failing after 1m12s
ci / linux (push) Successful in 4m7s
ci / windows (push) Successful in 4m8s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Successful in 28s
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Successful in 1m6s
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Successful in 1m7s
ci / record (push) Failing after 2m23s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Successful in 26s
ci / acceptance (node20, 20, windows, Windows, node) (push) Successful in 5m14s
ci / acceptance (node22, 22, windows, Windows, node) (push) Successful in 5m22s
2026-10-23 11:22:26 +08:00
ecd00ef369
Desktop: generated permissions of the tray card commands
2026-10-23 11:15:40 +08:00
f72d8ef00b
Desktop: tray mini card on left click (store status at a glance next to the tray icon; Refresh runs the main window's Refresh all)
2026-10-23 11:15:35 +08:00
0161b6daf5
desktop: one read registry for every read button: single-flight per canonical key, broad reads cover narrow keys, overlapping buttons all busy and disabled (useReadState), 20 s 'read just now' memo, quota pause on the buttons, every read through the scheduler (Check again, Import apps, account Test, Read the stores, Dependencies), writes invalidate only the reads they change; tests/read-registry.test.ts; fixtures ?blocked and window.__fakeCalls
2026-10-23 11:09:51 +08:00
170dc84cf1
Desktop: tab row measures the room inside the sticky bar's padding (the More button was clipped); editor saves skip the in-app preview (their Review step already showed the dry run)
2026-10-23 10:44:45 +08:00
731347e636
storebound 0.8.40: version in package.json and every copy, CHANGELOG 0.8.40 section
ci / gate (push) Successful in 2s
ci / ci (push) Failing after 1m9s
ci / linux (push) Successful in 4m9s
ci / windows (push) Successful in 3m40s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Successful in 27s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Successful in 29s
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Successful in 1m18s
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Successful in 1m21s
ci / record (push) Successful in 10s
release / promote (push) Successful in 22m20s
ci / acceptance (node20, 20, windows, Windows, node) (push) Successful in 5m40s
ci / acceptance (node22, 22, windows, Windows, node) (push) Successful in 5m22s
2026-10-23 08:54:55 +07:00
8a6ad61996
Desktop: tab row reserves enough room for the More menu button
ci / gate (push) Successful in 2s
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 / linux (push) Has been cancelled
ci / windows (push) Has been cancelled
ci / record (push) Has been cancelled
2026-10-23 09:54:20 +08:00
c8e5968237
Merge origin/main (0.8.39 tag)
2026-10-23 09:53:20 +08:00
dfddc453fe
Desktop: portfolio card ids show the full id as a tooltip
2026-10-23 09:50:11 +08:00
301df0ac67
Desktop: wide tables keep their first column in view while scrolling; compact table density (Settings > Appearance, Ctrl+K)
2026-10-23 09:49:47 +08:00
5be831e04a
Desktop: every write shows a styled in-app dry-run preview (command, changed rows) before the native confirm dialog; i18n house style fix for the developer id hint
2026-10-23 09:48:48 +08:00
b3e15d5f1f
Desktop: Settings search filters the sections (nav and body), Enter jumps to the first match
2026-10-23 09:47:29 +08:00
fa297983cb
Desktop: More tools gets a command search across groups and a compact list layout
2026-10-23 09:46:55 +08:00
aac04fb39a
Desktop: Reviews keyboard: J/K move, R reply, C copy, O open in the console, with a key hint
2026-10-23 09:46:09 +08:00
2e4e242251
Desktop: Prices sheet panel is one row (Export primary, Compare a sheet, rest in ...)
2026-10-23 09:45:19 +08:00
5dfb89443d
Desktop: pill tabs stay one row; tabs that do not fit go into a More menu, the active tab always stays visible
2026-10-23 09:44:43 +08:00
866089c8c4
Desktop: sidebar reader as short rows with a progress bar; one Refresh (top bar) instead of two; rolling-out tile lists versions on their own lines; cards without screenshots show live versions per store
2026-10-23 09:43:08 +08:00
721ac626ae
storebound 0.8.39: version in package.json and every copy, CHANGELOG 0.8.39 section
ci / gate (push) Successful in 3s
ci / ci (push) Failing after 1m40s
ci / windows (push) Successful in 4m27s
ci / linux (push) Successful in 3m55s
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 1m15s
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Successful in 1m19s
ci / record (push) Successful in 10s
release / promote (push) Successful in 15m19s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Successful in 27s
ci / acceptance (node20, 20, windows, Windows, node) (push) Successful in 5m23s
ci / acceptance (node22, 22, windows, Windows, node) (push) Successful in 5m18s
2026-10-23 08:39:22 +07:00
03c3e207a9
Merge origin/main (0.8.38)
2026-10-23 09:37:04 +08:00
20278c4bac
Desktop: compact hero drops its min height; app tabs fit one row at 1440 (tighter pills below 1560 px); hero screenshots only on wide windows so the pipeline labels never overlap
2026-10-23 09:32:51 +08:00
0f09ff823d
Desktop: unique option keys in editor selects (App info page error); long package names no longer push App folders cards wide
2026-10-23 09:30:22 +08:00
2b4de14e59
Desktop: account and studio secondary actions move to ... menus; one Import apps button on the home; App folders header keeps one primary action
2026-10-23 09:26:02 +08:00