Commit Graph
150 Commits
Author SHA1 Message Date
lobo 43968b3b7a test(import): wait for the URL without the store list 2026-10-01 08:30:24 +02:00
lobo f01ad03f6e feat(import): bookmarklet for store pages
Build, Test & Push Frontend / quality-check (push) Successful in 22s
Build, Test & Push Frontend / docker (push) Successful in 25s
2026-09-30 15:59:05 +02:00
lobo c6d76b4cb5 fix(session): keep the hash on the login round trip 2026-09-30 15:59:05 +02:00
lobo 8e31eafc06 feat(import): read the exports of GOG Galaxy, Grouvee, HowLongToBeat and Playnite 2026-09-30 15:59:05 +02:00
lobo 89d0b29698 refactor: item 29 cleanup
F16 F17 F18 F19 F20 F21: import polling backs off and pauses in a hidden tab, one date format module, fake timers in the import tests, error codes instead of raw messages, one safe storage wrapper, dead code.
2026-09-30 15:00:47 +02:00
lobo aa5832225d refactor(import): move the import parts to components/import
Build, Test & Push Frontend / quality-check (push) Successful in 23s
Build, Test & Push Frontend / docker (push) Successful in 33s
2026-09-30 08:46:51 +02:00
lobo 28ff6eae52 refactor(settings): one card per section
The name field takes its value from the page's own load, not from the user context: the context can still be empty when the form mounts.
2026-09-30 08:46:51 +02:00
lobo 6da612bebd refactor(dashboard): load in useDashboardData, welcome and most played cards 2026-09-30 08:46:51 +02:00
lobo 05f4ca42e5 refactor(game-detail): load in useGame, hero and achievements cards 2026-09-30 08:46:51 +02:00
lobo 628920a006 feat(backlog): save only the changed fields 2026-09-30 07:57:52 +02:00
lobo 9ddc50f819 fix: abort old loads, stale sync state, warn before unsaved edits are lost 2026-09-30 07:51:09 +02:00
lobo cbafa3d540 refactor(session): one session store for login, logout and 401 2026-09-30 07:36:08 +02:00
lobo 2a22789435 test: data router, one render helper, fetchRoutes in every test 2026-09-29 16:15:50 +02:00
lobo d0ea9e900d refactor(frontend): lint, one session guard, one request helper, one user context 2026-09-29 15:40:55 +02:00
lobo 111ab1e200 fix(import): readable dropdowns in dark mode, select all and none 2026-09-29 15:10:41 +02:00
lobo 24a98062ee refactor(limits): server limits in one file, own texts for unknown errors
Build, Test & Push Frontend / quality-check (push) Successful in 19s
Build, Test & Push Frontend / docker (push) Successful in 27s
2026-09-29 14:48:28 +02:00
lobo f605917874 fix(settings): keep the language and save settings one after the other 2026-09-29 13:27:31 +02:00
lobo 14dd59f9e0 feat(import): add the import page, multi-select add and the favorite platform 2026-09-29 10:20:54 +02:00
lobo aa9e83e0cb feat(tiles): let users arrange the dashboard and profile tiles
Build, Test & Push Frontend / quality-check (push) Successful in 18s
Build, Test & Push Frontend / docker (push) Successful in 28s
2026-09-28 15:03:16 +02:00
lobo b55fcfec92 feat(profile): let users design their public profile 2026-09-28 14:20:14 +02:00
lobo a5458b3f86 feat(game): play confetti for finished games 2026-09-28 13:36:36 +02:00
lobo 09e1f767d8 docs(readme): describe the local setup 2026-09-28 13:07:40 +02:00
lobo 78ba0700c8 feat(library): add the merge duplicate dialog
Build, Test & Push Frontend / quality-check (push) Successful in 18s
Build, Test & Push Frontend / docker (push) Successful in 24s
2026-09-28 11:25:45 +02:00
lobo 01ae372b2d feat(dashboard): show admin hints and add the hints admin page
Build, Test & Push Frontend / quality-check (push) Successful in 18s
Build, Test & Push Frontend / docker (push) Successful in 25s
2026-09-28 10:07:49 +02:00
lobo 6601277961 feat(library): add the game data correction dialog
Build, Test & Push Frontend / quality-check (push) Successful in 17s
Build, Test & Push Frontend / docker (push) Successful in 25s
2026-09-28 09:31:39 +02:00
lobo afe00ceae9 feat(admin): add the admin users page and view as
Build, Test & Push Frontend / quality-check (push) Successful in 17s
Build, Test & Push Frontend / docker (push) Successful in 28s
2026-09-27 12:18:10 +02:00
lobo 46587dfb5c feat(settings): let users delete their account
Build, Test & Push Frontend / quality-check (push) Successful in 16s
Build, Test & Push Frontend / docker (push) Successful in 26s
2026-09-27 11:46:22 +02:00
lobo cfceca5e5e feat(settings): show the build version of each service
Build, Test & Push Frontend / quality-check (push) Successful in 15s
Build, Test & Push Frontend / docker (push) Successful in 27s
2026-09-27 10:27:01 +02:00
lobo 9d1c7bb40d feat(stats): add stats page and pile trend
Build, Test & Push Frontend / quality-check (push) Successful in 15s
Build, Test & Push Frontend / docker (push) Successful in 22s
Show the stat groups on /stats, the pile trend on the dashboard card,
one switch per group in the settings, and the shared groups on the
public profile.
2026-09-27 07:16:10 +02:00
lobo 83bbc2730d feat(library): ask whether a game is finished
Build, Test & Push Frontend / quality-check (push) Successful in 15s
Build, Test & Push Frontend / docker (push) Successful in 23s
2026-09-26 19:00:57 +02:00
lobo 011711fe4f feat(library): hide and unhide games
Build, Test & Push Frontend / quality-check (push) Successful in 16s
Build, Test & Push Frontend / docker (push) Successful in 22s
2026-09-26 12:27:58 +02:00
lobo 42ed0afe51 feat(images): report broken covers and achievement icons
Build, Test & Push Frontend / quality-check (push) Successful in 15s
Build, Test & Push Frontend / docker (push) Successful in 22s
2026-09-26 12:07:47 +02:00
lobo ca75e6a530 feat(settings): link the Steam account through Steam
Build, Test & Push Frontend / quality-check (push) Successful in 16s
Build, Test & Push Frontend / docker (push) Successful in 25s
A Steam card in the settings links, verifies or unlinks the Steam
account through "Sign in through Steam". After the way back the page
shows the outcome and refreshes the session, so Core gets the new
Steam ID at once. Registration and settings no longer ask for a typed
Steam ID.
2026-09-26 11:20:04 +02:00
lobo 23ab5a91e7 feat(picker): add the speedrun mood and the speedrun.com link
Build, Test & Push Frontend / quality-check (push) Successful in 15s
Build, Test & Push Frontend / docker (push) Successful in 23s
"What to play next" gets a Speedrun mood. The game detail links the
game's speedrun.com page when Core found one with verified runs; only
https://www.speedrun.com/ links are shown.
2026-09-26 10:39:10 +02:00
lobo b0c78d8dca docs(readme): add the architecture overview
Build, Test & Push Frontend / quality-check (push) Successful in 14s
Build, Test & Push Frontend / docker (push) Successful in 24s
2026-09-26 07:37:44 +02:00
lobo fa1bd59509 feat(play-next): pick games by mood 2026-09-26 07:37:16 +02:00
lobo 7d9cf907fc feat(security): enforce the Content Security Policy
The report-only run showed no violation in production.
2026-09-26 07:15:14 +02:00
lobo c52c5e02d2 feat(ui): add the ToBePlayed logo and name
Build, Test & Push Frontend / quality-check (push) Successful in 14s
Build, Test & Push Frontend / docker (push) Successful in 22s
The logo is a traced SVG whose colors follow the accent color;
violet shows it as designed. Favicon, PWA and Apple icons use
it with fixed colors. The header and landing page say
ToBePlayed instead of Game Log. Below 380 px the header shows
only the logo, and the home link keeps its name for screen
readers.
2026-09-26 07:05:57 +02:00
lobo 25d2f0d0bd fix(ui): stop old translations and page shrink on Android
Build, Test & Push Frontend / quality-check (push) Successful in 14s
Build, Test & Push Frontend / docker (push) Successful in 26s
The translation files get a content version in their URL, so a
browser that cached an old file loads the new one. On touch
screens the scroll lock of menus and selects no longer adds a
right margin: Android Chrome reported one and the whole page
became narrower.
2026-09-26 06:29:57 +02:00
lobo 6edb53162e feat(security): add a report-only CSP and security headers
Build, Test & Push Frontend / quality-check (push) Successful in 14s
Build, Test & Push Frontend / docker (push) Successful in 23s
nginx.conf is now an nginx template, so connect-src takes
AUTH_HOST and API_HOST from the container env. The image
sets both to empty by default, so nginx still starts
without them. Report-only until production shows no
violation. Also nosniff, Referrer-Policy and
Permissions-Policy.
2026-09-25 15:47:23 +02:00
lobo f8e6c2c970 feat(pwa): make the app installable
Manifest, gamepad icon (also the new favicon, instead of
the Vite logo), iOS meta tags and the tab title
ToBePlayed. No service worker, so a deploy never meets
an old cached bundle. The title bar color follows
light and dark mode. The README also lists adding a
game by name.
2026-09-25 15:32:55 +02:00
lobo 444b03acee feat(library): search IGDB and add games by hand
Build, Test & Push Frontend / quality-check (push) Successful in 13s
Build, Test & Push Frontend / docker (push) Successful in 23s
2026-09-25 14:37:21 +02:00
lobo d9a39dda22 feat(auth): use the cookie session and refresh on 401
The token is no longer stored; a tbp_session flag remembers the
login. apiFetch renews the session once on a 401 and sends the
request again. Parallel requests and other tabs share one refresh,
because Auth revokes the session when a refresh token is used twice.
Only a 401 from the refresh ends the session; a 502 or no network
shows the normal error.
2026-09-25 13:45:08 +02:00
lobo 5ff8d48c53 refactor(auth): send login token through apiFetch
Build, Test & Push Frontend / quality-check (push) Successful in 13s
Build, Test & Push Frontend / docker (push) Successful in 23s
All authenticated calls now use apiFetch, and only utils/auth.js
touches the stored token. The cookie login can then change these two
files instead of every page.
2026-09-25 11:29:14 +02:00
lobo 085fcf15a4 feat(achievements): dashboard card, library badge, 100 % hint and profile stats 2026-09-25 10:13:31 +02:00
lobo 2efdf64675 feat(play-next): page that picks the next backlog game 2026-09-25 09:29:15 +02:00
lobo 8dcd03f219 feat(registration): show the wait time after too many attempts 2026-09-25 09:06:30 +02:00
lobo 2cacc88844 docs: rewrite the readme with screenshots for the public showcase
Build, Test & Push Frontend / quality-check (push) Successful in 15s
Build, Test & Push Frontend / docker (push) Successful in 26s
2026-09-25 08:22:56 +02:00
lobo 83494519f9 feat(dashboard): pick the banner game or turn the banner off
Build, Test & Push Frontend / quality-check (push) Successful in 13s
Build, Test & Push Frontend / docker (push) Successful in 24s
2026-09-24 15:35:48 +02:00
lobo 23e502bf5b feat(dashboard): Steam avatar and a banner from the most played game 2026-09-24 15:27:33 +02:00