Skip to content

chore(main): release tender 1.0.0 - #1921

Open
copper-release[bot] wants to merge 1 commit into
mainfrom
release-please--branches--main--components--tender
Open

copper-release[bot] wants to merge 1 commit into
mainfrom
release-please--branches--main--components--tender

Conversation

@copper-release

@copper-release copper-release Bot commented Sep 16, 2026 •

Copy link
Copy Markdown
Contributor

🤖 I have created a release beep boop

1.0.0 (2026-10-22)

⚠ BREAKING CHANGES

  • connection: Tender requires RomM 5.3.0 or newer; older servers are refused at connect.

Features

  • artwork: fill only a game page's empty artwork slots and record what SteamGridDB had (#2392) (b0d7d1c), closes #1766
  • artwork: give a shortcut its SteamGridDB icon once its ROM gains an id, and record the icon like the wide grid and the logo (#2417) (baacc7e)
  • artwork: give every shortcut its SteamGridDB icon from a background job (#2182) (f3ea3a1)
  • artwork: give every shortcut its wide grid and logo from the shortcut artwork job (#2401) (5a9101b), closes #2295
  • artwork: keep an icon somebody set on the game page's first visit, and fetch the page's icon through the per-slot path (#2424) (8c7ebf4)
  • artwork: record the hero and the user's choices, and recognise an image set in Steam (#2499) (536065e), closes #2497
  • atlas: run on emu-atlas 0.22.0 and name a RetroDECK not set up (#2266) (7eb0a19), closes #2265 #2234
  • bios: judge one-of BIOS groups by region on emu-atlas 0.21.0 (#2172) (2da2b81), closes #1912 #2144
  • bios: read the BIOS state of every platform the library lists (#2475) (e516ca0), closes #2456
  • cleanup: the cleanup dialog says per game and per version what a cleanup would do (#2473) (ecb0967), closes #2432
  • collections: name standard collections without a suffix under by_label (#2033) (49d2892), closes #1833
  • connection: require RomM 5.3.0 (#2006) (c3b93f0)
  • downloads: unpack a single zip that holds a disc image (#2480) (2f13843), closes #910
  • emulators: vendor a zstd codec for the resolver where the system Python has none (#2310) (129409e), closes #1848
  • folder: give Tender its own folder, at a place the user chooses (#2487) (b4057f1), closes #2385
  • frontend: the panel runs without Decky Loader (#1932) (6f71fda), closes #1899
  • gamepage: put Tender's section on Steam's game page through a seam of its own (#1968) (449a943), closes #1944
  • host: serve the backend over a loopback HTTP and WebSocket server (#1920) (6e47c53), closes #1898
  • inject: reload steam's js context when an earlier backend's panel is still loaded (#2038) (8f53704), closes #2009
  • inject: the backend loads the panel into Steam itself (#1937) (7558291), closes #1900
  • install: one-line installer, user unit, XDG layout (#1969) (73d7771), closes #1902
  • install: run on Python 3.12, for Ubuntu 24.04 LTS and Linux Mint 22 (#2471) (7589175), closes #2467
  • install: try the new version before anything is stopped (#2138) (c4856b2), closes #2126
  • install: update an existing install and roll back when the new version does not answer (#2075) (3b5bd4b), closes #2011
  • launch: never start a game through a switched-off emulator source (#2317) (2b13f84), closes #2269
  • library: a shortcut whose version is gone from RomM stays bound to it, and its game page says so (#2428) (dde144f), closes #2407
  • library: forward each collection's in-Steam count and owner name (#1994) (25001f4), closes #1833
  • prune: load the cleanup list by itself and send its text whole (#2261) (b43c75f)
  • qam: a setting for whether Tender's Quick Access entry sits above or below Decky's (#2324) (9726857), closes #2194
  • qam: list the collection kinds with their collections beside them (#2002) (d47ef68), closes #1833 #1020
  • qam: make Data Management an inventory of what this device holds (#1977) (1098819), closes #1817
  • qam: mount Tender's panel behind its own Quick Access entry (#1946) (6af1586), closes #1942
  • qam: redraw the removed-games review so its controls are within reach (#1986) (ec9fef7), closes #1817
  • release: the tarball and its checksum ship with every release (#1975) (9ff3c06), closes #1904
  • saves: take the save directory from the resolver and follow it when it moves (#2005) (89ea4ed), closes #1660 #1811
  • settings: show an update as one block in Settings › Updates, and let Check now ask whatever the switch says (#2142) (5c504e3), closes #2123
  • toasts: raise toasts through Steam's own notification store (#1953) (259aa99), closes #1943
  • ui: the fallback page can install the update that repairs it (#2451) (a2331c1), closes #2437
  • update: announce a newer release with a toast and three dots (#2180) (46ef739), closes #2125
  • update: check for a newer release and show it in the panel (#2028) (c53ad5a), closes #2010
  • update: install the offered release from Settings › Updates, and check for one while running (#2127) (a917ecb), closes #2012
  • update: notify a failed update and show what its installer said (#2161) (5dacf4e), closes #2128
  • update: tell the user what the last update did, and count a release only with its checksum file (#2110) (fb3b8b9)

Bug Fixes

  • adoption: use these files keeps the file another version is recorded at (#2410) (fb6a65f), closes #2408
  • artwork: a SteamGridDB key can be removed, Refresh Artwork downloads anew, and a refusal says what it is (#2412) (1d889e2), closes #1044
  • artwork: the IGDB lookup for a SteamGridDB id never resolves, and the guide does not say how RomM provides the id (#2402) (7312191), closes #2336
  • atlas: close the gaps the review of the RetroDECK folder work found (#2289) (df305e5), closes #2285
  • atlas: use no root folder the resolver only assumed (#2359) (5af4649), closes #2294
  • backend: close the gaps the epic #2023 fit audit found (#2345) (a030be2), closes #2337
  • bios: take a library firmware file's platform from RomM's platform_id (#2503) (cfb7418), closes #2187 #1872
  • bios: take the BIOS verdict from the resolver, per launching emulator and per file (#2457) (710448f), closes #2190 #1883 #1803
  • call Tender by its name, not a plugin, in everything a user reads (#2245) (c705f15)
  • ci: let release-please's version bump past the docs check (#1927) (f541941)
  • cleanup: the cleanup's list shows a game gone from RomM that the library reached through a collection, or whose platform RomM no longer lists (#2445) (4976507), closes #2431
  • deps: update dependency @decky/ui to v4.13.0 (#2462) (22e4682)
  • deps: update dependency @decky/ui to v4.15.1 (#2483) (d8cc64b)
  • downloads: leave an ended download alone when a late callback lands (#2062) (f1787c7), closes #2060
  • gzip on JSON reads, refuse a conflict without a save id, count each BIOS file once (#2059) (7f3e649), closes #403 #1728 #1762
  • host: tell a stranded panel so, instead of failing quietly (#2291) (55c07f7)
  • host: unmask a websocket payload in one pass instead of per byte (#2020) (a75eab8)
  • inject: call the globals installer before loading the panel (#1965) (1c85d2c), closes #1958 #1964
  • installs: show a missing download instead of forgetting it (#2252) (fcbc26a), closes #2242
  • install: the piped run mislays the greeter and the rows, and a backend outside the service goes unnoticed (#1980) (abda748), closes #1976
  • launch: end a launch check that gets no answer in the fallback dialog (#2198) (8aafd87), closes #2173
  • launch: gate the starts the launch watcher catches by the game ID Steam reports (#2157) (fe9f4ba)
  • launch: let an observed stop overrule Steam's running-app list (#2171) (3cef99a), closes #2167
  • launch: quote the ROM path for Steam's shell (#2304) (3037e37), closes #2302
  • launch: start RetroDECK without its Wayland socket so Steam Input reaches the game in Desktop Mode (#2277) (c78c3b1), closes #2270
  • launch: tell a running game by its display status, not by Steam's running list alone (#2312) (91894bb)
  • library: a failed collection listing stops the run instead of reading as empty (#2116) (57301b5), closes #2112
  • library: a platform listing that is not a list stops the run instead of reading as empty (#2120) (e902865), closes #2118
  • library: drop the reachable_count fallback and say which syncs close the right > left window (#2083) (b47cd41), closes #2079
  • library: full-fetch a platform holding a bound row its stamp's fetch did not return (#2093) (064c1a6), closes #2084
  • library: keep a platform's stamp and revoke its skip when games it holds are unbound outside its apply (#2108) (9232cfc), closes #2094
  • library: name a batch's failed BIOS files and re-read after a partial delete (#2375) (242365b), closes #2362
  • library: put a refused platform sync write back to what is stored (#2066) (c443d6d), closes #2021
  • library: skip a collection by the platform skip's rules (#2486) (e4510b3), closes #2477
  • library: skip a platform only when its visible id set and its latest updated_at say nothing changed (#2472) (1f8f713), closes #2469
  • library: the stale removal deletes the stamp of a collection holding a game it unbinds (#2114) (d636a86), closes #2106
  • logging: record a frontend log line at the level its caller named (#1956) (b5ab0a5), closes #1954
  • panel: offer no press a stranded panel cannot carry out (#2299) (69e8256)
  • panel: the notifications-unavailable notice says a few failures are reported only by a notification (#2132) (0f62d86), closes #2130
  • qam: answer the QAM's visibility where no navigation tree exists (#1970) (4553861), closes #1948
  • qam: judge a focusable row by what Steam's nav node reads (#1972) (72a855b), closes #1930
  • qam: keep the focus ring's room in every scroll region (#1982) (5e13dc0), closes #1981
  • qam: keep the grid images count honest after a removal (#1985) (c86339f), closes #1817
  • qam: landing on Tender's Quick Access icon takes focus off the strip (#2422) (cc5b81f), closes #2418
  • qam: name the set the BIOS held ratio counts over (#1971) (0a81e75), closes #1910
  • readme: read the release badge's version from the release manifest (#1926) (79323db)
  • romm: a reply from the server or a local disk fault is never read as the server being unreachable (#2393) (269740f)
  • romm: keep credentials out of error texts, tracebacks and logs (#2495) (b15543a), closes #1184
  • saves: keep the active slot when a copy fails, and leave no partial download behind (#2514) (c1e3937), closes #2379
  • saves: sync no save at a place the resolver did not read from the emulator's own settings (#2350) (187db4f), closes #2286
  • saves: warn before leaving a version whose saves were never synced (#2500) (52c2f97), closes #1683
  • saves: write the save-slot list's state under the ROM's lock (#2376) (ea26578), closes #2361
  • services: hold every background task until it ends, and fail CI on one created outside BackgroundTasks (#2433) (c0e01cf), closes #1161
  • session: toast the migration sentence after a game exits, and nothing while save sync is off (#2489) (fa5eb9c), closes #1021
  • shortcuts: confirm a launch-options write from Steam's shortcut file when its re-read shows the old value (#2358) (a0d4601)
  • shortcuts: log what the re-read saw when a launch-options confirm fails (#2351) (0700ac5)
  • shortcuts: re-read launch options before reporting a failed confirm (#2287) (dc435b8), closes #2279
  • six small backend fixes — atomic retroarch.cfg write, 0600 settings backup, and four more (#2049) (77464c0), closes #1871 #1166 #941 #1016 #1132 #810
  • startup: the check asks the module registry, never steam's runtime state (#1947) (269671f), closes #1945
  • steam: the backend and the frontend fold collection names by one rule (#2135) (5c45843), closes #2131
  • sync: a sync that fails is reported by a toast and on the Sync page (#2122) (6a4271a), closes #2117
  • sync: prefer a version with a file and refuse to download one without (#2377) (da5c20f), closes #2196
  • sync: the preview counts collection changes by the names Steam holds (#2129) (f304c55), closes #2101
  • sync: walk RomM's list pages in id order so a concurrent scan cannot shift them (#2349) (a9b6ae3), closes #2346
  • ui: a game whose local file is missing says up front when RomM holds no file to download again (#2400) (2779956), closes #2399
  • ui: a refused restore or copy says nothing, and the slot panels' expanded state is lost or stale (#2396) (8712b60), closes #1020
  • ui: eight small fixes — the game's own BIOS answer, slow Steam entries keep their binding, Manual archive, and five more (#2053) (c6442ca)
  • ui: read what Force Full Sync clears, and catch a render failure on the game page (#2344) (a63803f), closes #1859 #1018
  • version-switch: rank the version picker's default by the default version RomM states live (#2476) (867938d), closes #743

Performance Improvements

  • build: transpile typescript per file instead of compiling the program (#2095) (bbf4fec), closes #2039
  • firmware: read the synced platforms with one query (#2326) (7f5824e), closes #2256
  • gate: run the gate's independent steps side by side (#2086) (5114375)
  • romm: read liveness probes and sibling stubs from /api/roms/{id}/simple (#2355) (a376e7d), closes #2353
  • saves: scope negotiate to the ROMs the device asks about (#2352) (f4d6034), closes #1978
  • sync: walk a collection only for the members no platform unit (762d8c1), closes #2356
  • sync: walk a collection only for the members no platform unit delivered (#2372) (762d8c1)
  • test: run the backend suite in parallel with pytest-xdist (#2063) (aacd485), closes #2039
  • test: run the frontend suite on vmForks and import jest-dom per file (#2070) (a584d9b)

This PR was generated with Release Please. See documentation.

@copper-release copper-release Bot changed the title chore(main): release tender 0.34.0 chore(main): release tender 1.0.0 Sep 16, 2026
@copper-release
copper-release Bot force-pushed the release-please--branches--main--components--tender branch from 19346fc to 4e96f4b Compare September 16, 2026 15:27
@github-actions github-actions Bot added the area:architecture Code structure, refactoring label Sep 16, 2026
@copper-release
copper-release Bot force-pushed the release-please--branches--main--components--tender branch 20 times, most recently from e42d201 to faa627c Compare September 23, 2026 10:23
@copper-release
copper-release Bot force-pushed the release-please--branches--main--components--tender branch 4 times, most recently from 33a6292 to f6f1ccb Compare September 24, 2026 10:29
@copper-release
copper-release Bot force-pushed the release-please--branches--main--components--tender branch 28 times, most recently from cd6eedc to 8c56d62 Compare October 4, 2026 07:38
@sonarqubecloud

Copy link
Copy Markdown

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment