Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
432 commits
Select commit Hold shift + click to select a range
b51e054
fix(api): surface unreadable steam libraries, credential rejections, …
vindeckyy Sep 16, 2026
38718f1
test(hardening): gate remaining manual reliability rows
vindeckyy Sep 16, 2026
d726363
chore(release): version 1.12.1, ratcheted coverage floors, synced docs
vindeckyy Sep 16, 2026
612d856
fix(importers): report unreadable steam library manifests, not just dirs
vindeckyy Sep 16, 2026
dec820c
docs: fix stale versions, contradictions, and 1.12.1 gaps from docs s…
vindeckyy Sep 16, 2026
d47c7ea
feat(windows): support Windows x86_64 with a WebView2 native host
vindeckyy Sep 19, 2026
e95117a
fix(ci): restore literal shell argv and executable test bits
vindeckyy Sep 19, 2026
0b0c175
fix(platform_compat): never signal process group 0 or 1
vindeckyy Sep 19, 2026
dbc8c3c
test(moments): keep the exact screenshot path assertion
vindeckyy Sep 19, 2026
d287204
chore(ci): print failing test output from run_windows_tests.py
vindeckyy Sep 19, 2026
ff3d129
ci: retry the npm audit endpoint instead of failing the gate
vindeckyy Sep 19, 2026
cce7257
chore(deps-dev): bump coverage from 7.16.0 to 7.16.1
dependabot[bot] Sep 19, 2026
dda44ba
chore(deps): bump puppeteer from 25.10.0 to 25.11.0 in /scripts
dependabot[bot] Sep 19, 2026
a0cb317
chore(deps-dev): bump ruff from 0.16.6 to 0.16.8
dependabot[bot] Sep 19, 2026
bfde987
docs(changelog): record the process-group signalling fix
vindeckyy Sep 19, 2026
ae1e3d9
fix: canonical state dirs, POSIX reveal, and valid def YAML
vindeckyy Sep 19, 2026
a4c91d4
fix(parity_memories): dedupe roots by canonical path
vindeckyy Sep 19, 2026
9241b61
test: hold canonical temp roots in Windows fixtures
vindeckyy Sep 19, 2026
4f9c7f7
docs(changelog): record the canonical-path fixes
vindeckyy Sep 19, 2026
47bc360
test(parity_memories): pin malformed-root handling
vindeckyy Sep 19, 2026
fb02b9d
test(platform_compat): probe a spawned child for process name and com…
Sep 19, 2026
9dbdc27
test(emulators): lint def YAML against strict-parser escapes
vindeckyy Sep 19, 2026
f902fd6
ci(windows): keep a full traceback in the failure tail
vindeckyy Sep 19, 2026
44c5103
ci(smoke): name the failing check instead of exiting silently
vindeckyy Sep 19, 2026
788cb09
feat(release): publish the compiled WebView2 host as its own asset
vindeckyy Sep 20, 2026
71d75ec
test(parity_radio): generate the fresh playlist against the wall clock
vindeckyy Sep 20, 2026
a461edd
fix(ui): unblock invisible utility dialogs and polish first-run UX
Sep 20, 2026
b583d5b
fix(setup): only suppress wizard auto-open on user-initiated dismissal
Sep 20, 2026
2b59eb8
fix(ui): persist session token, fix import filter, collapsible insights
Sep 21, 2026
12706e8
fix(ui): collapse rare media fields, hide zero activity badge
Sep 21, 2026
dd3ec9b
fix(ui): keep activity badge alive through i18n text updates
Sep 21, 2026
6448ae5
fix(ui): no-cache app statics, hide sidebar lists, drop tab-switch di…
Sep 21, 2026
9fedece
Merge pull request #41 from vindeckyy/devin/1789921882-ux-fix-batch
vindeckyy Sep 21, 2026
b7a70d5
fix(gate): apply ADR 0025 to the standalone changed-line checker
vindeckyy Sep 16, 2026
fb34a38
chore(gate): print the first failed attempt when a test is marked flaky
vindeckyy Sep 16, 2026
fc20cc8
Merge branch 'pull-40' into release/1.13.1
vindeckyy Sep 22, 2026
6b6725a
Merge branch 'pull-38' into release/1.13.1
vindeckyy Sep 22, 2026
25f1f04
Merge branch 'pull-39' into release/1.13.1
vindeckyy Sep 22, 2026
9af98ba
fix(native): repair Windows reveal-in-explorer and bridge rejection h…
vindeckyy Sep 22, 2026
585d9cd
fix(web): SSE busy signal, session reconnect leak, hidden-tab guard
vindeckyy Sep 22, 2026
168721b
fix(release): installer rollback, trust-chain tests, SDK pin, release…
vindeckyy Sep 22, 2026
f05c46f
fix(frontend): dialog wiring, setup open paths, i18n blind spots, tes…
vindeckyy Sep 22, 2026
1989022
fix(story): group by local day for timezone-aware timestamps
vindeckyy Sep 22, 2026
4a62c54
chore(release): 1.13.1 version metadata, release notes, lint fixes
vindeckyy Sep 22, 2026
2a61d87
fix(tests): probe dead plugin PID portably on Windows
vindeckyy Sep 22, 2026
f4ade54
docs: fix stale info and gaps found in 1.13.1 docs sweep
vindeckyy Sep 22, 2026
7849441
docs: fix stale info and gaps found in 1.13.1 docs sweep
vindeckyy Sep 22, 2026
214e2c3
fix(ci): restore sync setup-center open timing; restore test_plugins.…
vindeckyy Sep 22, 2026
0b25411
fix(ci): repair ui-smoke test pollution from f05c46f
vindeckyy Sep 22, 2026
6c5c551
fix(ui): hide Big Box when opening with an empty library
vindeckyy Sep 22, 2026
b82bd00
fix(ci): invalidate filter cache when setupBehavior restores games
vindeckyy Sep 22, 2026
b527663
fix(ci): reset bigBoxPlatform in gamepad loop lifecycle check
vindeckyy Sep 22, 2026
6e131b6
fix(ui): tolerate missing versions/applications in Big Box play label
vindeckyy Sep 22, 2026
47b92ca
docs(readme): CI badge matches the for-the-badge style of the other b…
vindeckyy Sep 22, 2026
345ad54
feat(plugins): freeze plugin API at v1
vindeckyy Sep 22, 2026
c360240
feat(plugins): land plugin API v1 freeze from dev line
vindeckyy Sep 22, 2026
60d4d59
fix(gamepad): unify poll loops and trap Big Box pause input
vindeckyy Sep 22, 2026
bb05278
fix(gamepad): land unified gamepad loop and Big Box pause trap fix
vindeckyy Sep 22, 2026
e5286da
feat(artwork): add undoable artwork hygiene workflow
vindeckyy Sep 22, 2026
8413f88
feat(library): add repair and duplicate merge workflows
vindeckyy Sep 22, 2026
1b651af
feat(library): land artwork doctor, repair wizard, duplicate merge
vindeckyy Sep 22, 2026
fc04f60
feat(plugins): Plugins 2.0 - trust, permissions, settings, importer, …
vindeckyy Sep 22, 2026
63a7bb2
feat(plugins): Plugins 2.0 — trust, permissions, settings, importers,…
vindeckyy Sep 22, 2026
a42e52d
docs(adr): renumber repair contracts ADR to 0051 (0050 taken by plugi…
vindeckyy Sep 22, 2026
5cf2aa8
feat(bigbox): couch-ready Big Box boot, on-screen keyboard, Steam gri…
vindeckyy Sep 22, 2026
c8658dc
feat(bigbox): couch-ready Big Box — boot flag, on-screen keyboard, St…
vindeckyy Sep 22, 2026
e7e86c1
test(arcade): update import contract for gamepad.js unification
vindeckyy Sep 22, 2026
1929049
feat(library-health): library health score with explainable deduction…
vindeckyy Sep 22, 2026
f86e104
feat(health): library health score engine, v2 API, fix queue, UI
vindeckyy Sep 22, 2026
040f56e
feat(backlog): add backlog management (F4a-F4d)
Sep 22, 2026
961f2a9
feat(backlog): backlog management — statuses, ratings, manual playtim…
vindeckyy Sep 22, 2026
6826893
feat(metadata): effortless metadata flagship — auto-scrape, chooser, …
vindeckyy Sep 22, 2026
21a68f3
feat(metadata): effortless metadata — auto-scrape, chooser, hash matc…
vindeckyy Sep 22, 2026
8fef91a
feat(dna): Game DNA search — BM25 + concept lexicon semantic search
vindeckyy Sep 22, 2026
8e3d395
feat(dna): Game DNA search — BM25 + concept lexicon
vindeckyy Sep 22, 2026
fdd22aa
test(f2): gapfill coverage for metadata/steamgrid/media/screenscraper…
Sep 22, 2026
26bd9f3
test(f2): gapfill coverage for metadata/steamgrid/media/screenscraper
vindeckyy Sep 22, 2026
fd39e75
test(coverage): fill residual backend gaps
vindeckyy Sep 22, 2026
781b4ec
test(gapfill): cover residual flagship changed lines
vindeckyy Sep 22, 2026
f205c09
refactor(hygiene): remove unreachable bounds checks in _jpeg_size
vindeckyy Sep 22, 2026
1b46656
chore(release): 1.14.0 version bump, changelog, release notes
vindeckyy Sep 22, 2026
33964f3
test(windows): platform-aware path handling in 1.14.0 tests
vindeckyy Sep 22, 2026
3df1400
test(windows): use platform-absolute path in test_resolve_artwork_path
vindeckyy Sep 22, 2026
0f0b1a8
docs: fix stale info found in repo docs sweep
vindeckyy Sep 22, 2026
1b9fcf6
fix(ci): repair ui-smoke failures — AppState TDZ, scrape-settings 400…
vindeckyy Sep 23, 2026
60ede3b
feat(gates): ratchet the whole feature surface so nothing can vanish …
vindeckyy Sep 26, 2026
5d02c8a
feat(1.14): Windows reliability contract, emulator definition channel…
vindeckyy Sep 26, 2026
dd56848
feat(1.14): Time Machine compare, Story PNG export, measured perf bas…
vindeckyy Sep 26, 2026
0648ce0
test(routes_registry): recount for the five 1.14 routes
vindeckyy Sep 26, 2026
f0437cf
fix(emulator_defs): persist the rollback ledger and keep channel defs…
vindeckyy Sep 26, 2026
9e8d1c3
feat(gates): derive frontend entry modules from index.html script tags
vindeckyy Sep 26, 2026
c5024c6
chore(contracts): regenerate baselines against post-1.14.0 routes and…
vindeckyy Sep 26, 2026
6944a0b
chore(1.14.1): relabel the pending release and renumber the ratchets ADR
vindeckyy Sep 26, 2026
ce0587b
fix(timemachine): surface incomplete baselines in compare and trim fi…
vindeckyy Sep 26, 2026
a608f60
docs(readme): drop the plan-file index entry
vindeckyy Sep 26, 2026
f605e27
fix(gates): make the ratchet's own claims true
vindeckyy Sep 26, 2026
10c1996
fix(emulator_defs): make a live install actually take effect
vindeckyy Sep 26, 2026
b9f97f0
fix(emulator_defs): refresh the extension map on install too
vindeckyy Sep 26, 2026
6d7789c
fix(import): scan for the file extensions definitions actually declare
vindeckyy Sep 26, 2026
1dc1d6c
fix(import): a cue sheet and its disc image imported as two games
vindeckyy Sep 26, 2026
ff39b77
refactor(import): drop an error guard that cannot fire
vindeckyy Sep 26, 2026
404584f
fix(import): a cue sheet's two remaining gaps
vindeckyy Sep 26, 2026
44c8276
fix(import): normalize both sides of the playlist exclusion
vindeckyy Sep 26, 2026
1675d58
fix(import): give disc sheets the platform of a file they name
vindeckyy Sep 26, 2026
b51f115
fix(dna): stop concurrent index writes colliding on one temp file
vindeckyy Sep 26, 2026
e39ca83
test(dna): cover the sync build's lost write race; drop dead sheet br…
vindeckyy Sep 26, 2026
a54d068
docs(changelog): record the sheet platform and concurrent index fixes
vindeckyy Sep 26, 2026
26078cc
test(dna): pin temp cleanup when the index rename cannot complete
vindeckyy Sep 26, 2026
ca69b24
test(dna): correct the concurrency comment to match the actual mechanism
vindeckyy Sep 26, 2026
2fde3b7
docs(changelog): drop the stale 'as the m3u path already did' clause
vindeckyy Sep 26, 2026
8186126
perf(import): parse each disc sheet once, not twice
vindeckyy Sep 26, 2026
be126f3
fix(gates): restore the exec bit on shebang scripts
vindeckyy Sep 26, 2026
865f81a
fix(smoke): date the activity fixture relative to now, not to a literal
vindeckyy Sep 26, 2026
68913a1
feat(gates): catch a lost exec bit before CI does
vindeckyy Sep 26, 2026
8ed3945
fix(ci): retry a flaky suite in the Windows runner, like the local gate
vindeckyy Sep 26, 2026
196701f
refactor(gates): make the exec-bit suffix filter testable
vindeckyy Sep 26, 2026
cb2626c
chore: ignore scratch probe output written to the repo root
vindeckyy Sep 26, 2026
2f48c3a
test(auto-import): measure the 10k-ROM budget warm and best-of-N
vindeckyy Sep 26, 2026
6ec3c8b
chore(contracts): ratchet the four new reliability rows
vindeckyy Sep 26, 2026
37ec608
test(contracts): keep the clock-coupling probe out of the repo tree
vindeckyy Sep 26, 2026
3b1a170
test(contracts): drop the now-unused TESTS_DIR constant
vindeckyy Sep 26, 2026
0280c7c
feat(1.15): finish the surface -- motion contract, theme contrast, de…
vindeckyy Sep 29, 2026
8237124
perf(1.15): record the release-tree measurement; fix card ring clipping
vindeckyy Sep 29, 2026
a01cf07
feat(bigbox): slide the stage in from the direction of travel
vindeckyy Sep 29, 2026
e5af2d8
fix(ui): break the state.js <-> library.js import cycle that fails a …
vindeckyy Sep 29, 2026
2c48f3a
chore(flathub): point the screenshots at the v1.15.0 tag
vindeckyy Sep 30, 2026
1c3f9fb
test(smoke): pin reduced motion for functional flows so Windows and L…
vindeckyy Sep 30, 2026
07cbd56
docs(release): rewrite the 1.15.0 notes in the 1.14.0 style and archi…
vindeckyy Sep 30, 2026
fc96dc0
fix(parity): honor the OPENBOX_-prefixed ScreenScraper credential ali…
vindeckyy Sep 30, 2026
004a487
docs: correct stale release claims and repair broken references
vindeckyy Sep 30, 2026
aa0b49e
feat: launch readiness, restore preview, and the 1.16 security and tr…
vindeckyy Oct 5, 2026
fc71ad3
chore(release): 1.16.0
vindeckyy Oct 5, 2026
a372f3d
docs(release): write the 1.16.0 notes in the published release format
vindeckyy Oct 5, 2026
e715e0e
test: fix three checks that only fail on CI runners
vindeckyy Oct 5, 2026
cc677b0
chore(deps): bump brace-expansion to 5.0.12 in the dev tooling lockfile
vindeckyy Oct 5, 2026
e2a8e9a
build(appimage): pin appimagetool to the tagged 1.9.1 release
vindeckyy Oct 5, 2026
4c4ffcb
docs(release): rewrite the 1.16.0 notes around what users get
vindeckyy Oct 5, 2026
26a91f1
docs(release): explain each 1.16.0 change in full
vindeckyy Oct 5, 2026
02762f3
feat(launch): launch readiness, RetroArch cores, and the 1.16.1 fixes
vindeckyy Oct 9, 2026
8c66aa4
fix(emulators): keep a per-game RetroArch core on Windows
vindeckyy Oct 9, 2026
7d989e1
test: fix the checks that only fail on Windows runners
vindeckyy Oct 9, 2026
db09622
test(emulators): cover the unrelated -L path in the core override
vindeckyy Oct 9, 2026
0d49d94
fix(resume): stamp the per-game RetroArch core on Windows
vindeckyy Oct 9, 2026
8398458
test: skip the Linux-only checks on Windows and show every failure
vindeckyy Oct 9, 2026
d6f6a30
test(emulators): run the core-definition checks on the layout each OS…
vindeckyy Oct 9, 2026
c5e63bb
docs(release): record the Windows CI results and the per-game core fix
vindeckyy Oct 9, 2026
b5ea98d
ci(release): build the AppImages in an ubuntu:22.04 container
vindeckyy Oct 9, 2026
3de0dad
ci(release): run the test suite on the host and build in the container
vindeckyy Oct 9, 2026
9793a95
ci(release): run the container build steps in bash
vindeckyy Oct 9, 2026
da810f0
docs(release): mark ADR 0065 accepted after the dry run
vindeckyy Oct 9, 2026
9da33bc
ci(release): run the attestation and publish jobs on ubuntu-24.04
vindeckyy Oct 9, 2026
f3b6b7b
docs(release): record the host smoke test and the runner move for ADR…
vindeckyy Oct 9, 2026
e99d1b2
docs(release): write the 1.16.1 notes in the published release format
vindeckyy Oct 9, 2026
1f8657d
ci(release): add a manual smoke test for a published release
vindeckyy Oct 9, 2026
bd9eb85
ci(release): set the Windows host's launch environment in the smoke test
vindeckyy Oct 9, 2026
b9926e0
ci(release): capture the Windows host's own logs in the smoke test
vindeckyy Oct 9, 2026
786bf05
ci(release): read the Windows host's data folder from openbox-game-la…
vindeckyy Oct 9, 2026
596f7ca
ci(release): keep the Windows host's output and whole data folders in…
vindeckyy Oct 9, 2026
b5eaf7a
ci(release): click past the first screen in the smoke test's native w…
vindeckyy Oct 9, 2026
a4216bb
docs(release): unwrap the 1.16.1 notes so GitHub renders them as para…
vindeckyy Oct 9, 2026
f9bbe00
docs(release): drop the Known limits section from the 1.16.1 notes
vindeckyy Oct 9, 2026
a77e706
docs(release): remove the reference to the dropped Known limits section
vindeckyy Oct 9, 2026
fbcddea
docs(release): drop the 1.16.1 notes that repeat the 1.16.0 release
vindeckyy Oct 9, 2026
f7e3a80
build(deps-dev): bump eslint from 10.10.0 to 10.12.0 in /scripts
dependabot[bot] Oct 10, 2026
77beec5
build(deps-dev): bump ruff from 0.16.8 to 0.16.10
dependabot[bot] Oct 10, 2026
0b33f7f
build(deps): bump the github-actions group across 1 directory with 6 …
dependabot[bot] Oct 10, 2026
09e2e3d
docs: update README — 1.16.1 feature section, release badge alt, redu…
Oct 12, 2026
8574f79
fix(parity): send ScreenScraper requests with the API's parameter names
vindeckyy Oct 14, 2026
b671f89
Merge pull request #53 from vindeckyy/fix/screenscraper-request-params
vindeckyy Oct 14, 2026
593c921
Merge pull request #49 from vindeckyy/dependabot/pip/master/ruff-0.16.10
vindeckyy Oct 14, 2026
2df65c6
Merge pull request #51 from vindeckyy/dependabot/github_actions/maste…
vindeckyy Oct 14, 2026
a67fd99
Merge pull request #48 from vindeckyy/dependabot/npm_and_yarn/scripts…
vindeckyy Oct 14, 2026
ee1b696
build(deps-dev): bump globals from 17.12.0 to 17.13.0 in /scripts
dependabot[bot] Oct 14, 2026
d12211a
build(deps): bump puppeteer from 25.11.0 to 25.13.0 in /scripts
dependabot[bot] Oct 14, 2026
8325612
build(deps-dev): bump cryptography from 50.0.1 to 50.0.2
dependabot[bot] Oct 14, 2026
f4dfc72
Merge pull request #46 from vindeckyy/dependabot/pip/master/cryptogra…
vindeckyy Oct 14, 2026
e8164b6
Merge pull request #50 from vindeckyy/dependabot/npm_and_yarn/scripts…
vindeckyy Oct 14, 2026
28f4991
Merge pull request #43 from vindeckyy/dependabot/npm_and_yarn/scripts…
vindeckyy Oct 14, 2026
cc46189
build(deps-dev): bump coverage from 7.16.1 to 7.16.2
dependabot[bot] Oct 14, 2026
e27af21
Merge pull request #45 from vindeckyy/dependabot/pip/master/coverage-…
vindeckyy Oct 14, 2026
b889563
feat(release): ship 1.17.0 native storefront imports, decks, price le…
vindeckyy Oct 18, 2026
66fb68d
fix(release): avoid SIGPIPE in the AppImage glibc check
vindeckyy Oct 18, 2026
79ce8a3
Merge pull request #57 from vindeckyy/release/1.17.0
vindeckyy Oct 18, 2026
8c262da
docs(release): record the 1.17.0 execution and publish
vindeckyy Oct 18, 2026
ed26c15
Merge pull request #58 from vindeckyy/docs/1.17.0-release-record
vindeckyy Oct 18, 2026
cd68469
docs(release): make the 1.17.0 release page user-facing
vindeckyy Oct 18, 2026
e653799
Merge pull request #59 from vindeckyy/docs/1.17.0-release-notes
vindeckyy Oct 18, 2026
899e86b
feat(release): implement the LaunchBox parity program
vindeckyy Oct 19, 2026
c2a78ca
feat(ui): add newcomer clarity pass and visual refresh
vindeckyy Oct 19, 2026
71bb7f8
docs: correct 1.17 changelog and parity references
vindeckyy Oct 19, 2026
269405b
fix(ci): make cross-platform gates pass
vindeckyy Oct 19, 2026
085b3e0
test(ui): seed last_played in the PowerShell smoke fixture
vindeckyy Oct 19, 2026
ba1c621
chore(release): prepare 1.18.0
vindeckyy Oct 19, 2026
02e6165
fix(appimage): make static SVG packaging optional
vindeckyy Oct 19, 2026
875df6b
docs(release): unwrap 1.18.0 notes for GitHub rendering
vindeckyy Oct 19, 2026
bc618ee
docs(release): complete 1.18.0 notes coverage
vindeckyy Oct 19, 2026
a1916e1
docs(release): explain 1.18.0 changes in user terms
vindeckyy Oct 19, 2026
86f999b
fix: redact provider tokens from backups, handle the native resume de…
Oct 20, 2026
f3cadf0
docs: correct stale claims in the 1.18.0 release documentation
Oct 20, 2026
44d15ba
fix(tests): make launch-phase argv assertion host-independent
Oct 20, 2026
f5fb224
feat(macos): add native macOS support for 1.19.0
vindeckyy Oct 27, 2026
56ae506
fix(launcher): check Python only on the web-app fallback
vindeckyy Oct 27, 2026
e18a52a
fix(scripts): update zod past the high-severity audit advisory
vindeckyy Oct 27, 2026
3603eab
test(platform): isolate macOS cases from the host platform
vindeckyy Oct 27, 2026
e6ec257
test(windows): isolate macOS assertions from the Windows host
vindeckyy Oct 27, 2026
dafdda3
fix(native-host): isolate the self test and export its data directory
vindeckyy Oct 27, 2026
3141761
test(updates): isolate macOS dispatch from the Windows host
vindeckyy Oct 27, 2026
9a71aab
test(auto-import): allow CI runners the coverage timing budget
vindeckyy Oct 27, 2026
024ae77
Revert "test(auto-import): allow CI runners the coverage timing budget"
vindeckyy Oct 27, 2026
ef9954d
debug(native-host): report why the boot child went away
vindeckyy Oct 27, 2026
b731bf3
fix(state_store): wait out an in-flight coalesced flush in flush_coal…
vindeckyy Oct 27, 2026
cda0b9f
fix(web-app): bind the loopback server without a reverse DNS lookup
vindeckyy Oct 27, 2026
80c0639
debug(ci): probe loopback reverse lookup on the macOS runner
vindeckyy Oct 27, 2026
8744fb2
chore(ci): drop the temporary macOS host debug workflow
vindeckyy Oct 27, 2026
9e37e85
fix(ci): give the gate job the time the coverage pass needs
vindeckyy Oct 27, 2026
7571387
fix(ci): give the suite runner the local gate's retry tolerance
vindeckyy Oct 27, 2026
3700062
fix(updates): keep the macOS applier's relaunch off headless runs
vindeckyy Oct 27, 2026
6947193
fix(scripts): bound every gate suite attempt
vindeckyy Oct 27, 2026
2962eeb
feat(platform): add the capability contract and Windows battery
vindeckyy Oct 28, 2026
b72db39
fix(launch): keep the gamescope and Game Mode lanes on Linux
vindeckyy Oct 28, 2026
e192bf4
fix(parity): gate Wine, Faugus, Flatpak, and storefront lanes by capa…
vindeckyy Oct 28, 2026
1c4cb2d
docs(1.19.1): record the parity sweep in the changelog and reliabilit…
vindeckyy Oct 28, 2026
fbd5dff
chore(release): bump to 1.19.1
vindeckyy Oct 28, 2026
cfee784
test(parity): cover the Linux Steam fallback and an unreadable pmset
vindeckyy Oct 28, 2026
413891e
fix(tests): pin the battery seam when the sysfs reader is under test
vindeckyy Oct 28, 2026
2407b46
docs(1.19.1): correct platform, battery, and data-path docs for macOS
vindeckyy Oct 28, 2026
f732044
feat(settings): add Buy me a coffee button to Settings > About
vindeckyy Oct 28, 2026
1353688
chore(github): add Buy me a coffee to the Sponsor button
vindeckyy Oct 28, 2026
e0d0867
chore(packaging): add AppStream donation URL
vindeckyy Oct 28, 2026
b3c4cec
docs(changelog): match the release heading and record coffee checks
vindeckyy Oct 28, 2026
efa22e3
docs(adr): record the 2.0 program decisions 0087-0101
vindeckyy Oct 30, 2026
ee0879d
feat(state): v7 envelope, portable paths, background read model, migr…
vindeckyy Oct 30, 2026
e4c7211
feat(parity): v2 API surface, plugin API v2, backup format 2, compat …
vindeckyy Oct 30, 2026
64c9091
feat(app): migrate gate with readiness and backup, facet worker, v2 r…
vindeckyy Oct 30, 2026
2c02338
chore(2.0): release workflow ARM64 lane, docs, contracts, smoke and g…
vindeckyy Oct 30, 2026
b18d9c8
fix(state): make the library commands work on Windows
vindeckyy Oct 30, 2026
d8250d5
fix(ci): run the 2.0 gates and make the perf comparison robust
vindeckyy Nov 1, 2026
a2c3738
chore(release): prepare the 2.0.0 notes and release date
vindeckyy Nov 1, 2026
e02377f
fix(ci): compare only budgeted perf metrics and unblock the platform …
vindeckyy Nov 1, 2026
da2ea71
test(ci): drop the source-text budget pin
vindeckyy Nov 1, 2026
7f1346e
fix(ci): compare the gated perf run instead of a second current run
vindeckyy Nov 1, 2026
afc0438
fix(a11y): restore context-menu focus after the menu hides
vindeckyy Nov 1, 2026
0dc79f5
fix(ci): make the baseline perf comparison advisory
vindeckyy Nov 1, 2026
3461612
docs(release): record the v2.0.0 release and the advisory perf gate
vindeckyy Nov 1, 2026
c29595c
docs(release): expand the 2.0.0 notes for users
vindeckyy Nov 1, 2026
2ebfeb7
docs: align every 2.0 claim with the implementation
vindeckyy Nov 1, 2026
e2ef346
docs(release): publish the detailed 2.0.0 notes and keep the perf gat…
vindeckyy Nov 1, 2026
c8bcd3b
test(perf): state the CI headroom in the import benchmark comment
vindeckyy Nov 1, 2026
6e991a7
chore(release): prepare 2.1.0
vindeckyy Nov 2, 2026
210a4e3
build(deps-dev): bump coverage from 7.16.2 to 7.17.0
dependabot[bot] Nov 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
67 changes: 66 additions & 1 deletion .env.example
Original file line number Diff line number Diff line change
@@ -1,8 +1,43 @@
# Put real secrets in ~/.env only (NOT in this repo).
# Copy nothing from here into tracked files.
#
# load_dotenv() drops any key that is not in env_config.ENV_KEYS, so a key set
# here but absent from that allowlist is silently ignored. Every credential key
# in this file is in that allowlist and is genuinely loaded. The process-only
# variables are in their own marked section: they are NOT in the allowlist, so
# they are read straight from the environment and must be exported instead.

# GitHub personal access token (optional, used for release API rate limits)
# GITHUB_TOKEN=
# Aliases accepted: GH_TOKEN, OPENBOX_GITHUB_TOKEN
# GH_TOKEN=
# OPENBOX_GITHUB_TOKEN=

# ---------------------------------------------------------------------
# Process-only variables: read from the environment, NOT from a .env file.
# load_dotenv() drops them, so set them by exporting before launch:
# export OPENBOX_SAFE_MODE=1
# ---------------------------------------------------------------------

# Data directory override (read at import time, so export before launch)
# OPENBOX_DATA_DIR=

# Explicit env file path, checked before the data-directory roots
# OPENBOX_ENV_FILE=

# SQLite read model (optional; self-enables at 5000+ games, explicit 0 opts out)
# OPENBOX_ENABLE_SQLITE_READ=

# Unsandboxed plugins (disables the bubblewrap sandbox entirely, even when available)
# OPENBOX_ALLOW_UNSANDBOXED_PLUGINS=

# Safe mode: disables plugin execution process-wide (library and
# library_source hooks, before_launch/after_session, events) and the webhook
# dispatcher, and reports safe_mode in the capabilities response
# OPENBOX_SAFE_MODE=

# Steam shortcut launcher override (executable used for Steam shortcut plans)
# OPENBOX_EXECUTABLE=

# Stripe secret key (optional, maintainers only; for scripts/create_stripe_donate_link.sh)
# Never commit real values. Create payment links locally; only the public donate URL goes in README.
Expand All @@ -15,11 +50,41 @@
# RetroAchievements (optional; enables RA matching and progress without the UI form)
# RETROACHIEVEMENTS_USERNAME=
# RETROACHIEVEMENTS_API_KEY=
# Aliases accepted: RA_USERNAME, OPENBOX_RA_USERNAME, RA_API_KEY, OPENBOX_RA_API_KEY, RETROACHIEVEMENTS_KEY
# RA_USERNAME=
# OPENBOX_RA_USERNAME=
# RA_API_KEY=
# OPENBOX_RA_API_KEY=
# RETROACHIEVEMENTS_KEY=

# SteamGridDB artwork provider (optional; enables artwork search, apply, and bulk matching)
# STEAMGRIDDB_API_KEY=
# Alias accepted: OPENBOX_STEAMGRIDDB_API_KEY
# OPENBOX_STEAMGRIDDB_API_KEY=

# EmuMovies (optional; licensed account required for media downloads)
# EMUMOVIES_USERNAME=
# EMUMOVIES_PASSWORD=
# Aliases accepted: OPENBOX_EMUMOVIES_USERNAME, OPENBOX_EMUMOVIES_PASSWORD
# OPENBOX_EMUMOVIES_USERNAME=
# OPENBOX_EMUMOVIES_PASSWORD=

# ScreenScraper: your account login plus a developer ID and password. The API refuses
# lookups without the developer pair, so both pairs are required (request a developer ID
# from ScreenScraper).
# SCREENSCRAPER_USER=
# SCREENSCRAPER_PASSWORD=
# SCREENSCRAPER_DEV_ID=
# SCREENSCRAPER_DEV_PASSWORD=

# Aliases accepted: OPENBOX_SCREENSCRAPER_USER, OPENBOX_SCREENSCRAPER_PASSWORD, OPENBOX_SCREENSCRAPER_DEV_ID, OPENBOX_SCREENSCRAPER_DEV_PASSWORD
# OPENBOX_SCREENSCRAPER_USER=
# OPENBOX_SCREENSCRAPER_PASSWORD=
# OPENBOX_SCREENSCRAPER_DEV_ID=
# OPENBOX_SCREENSCRAPER_DEV_PASSWORD=

# Webhooks reject plain HTTP by default. Set this only for trusted local test targets.
# OPENBOX_ALLOW_HTTP_WEBHOOKS=1
# OPENBOX_ALLOW_HTTP_WEBHOOKS=1

# Gameyfin plain HTTP is blocked by default. Set this only for trusted local servers.
# OPENBOX_ALLOW_HTTP_GAMEYFIN=1
1 change: 1 addition & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
buy_me_a_coffee: haydenopenbox
29 changes: 24 additions & 5 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,36 +7,55 @@ body:
- type: markdown
attributes:
value: |
Thanks for taking the time to report an issue. Please search [existing issues](https://github.com/vindeckyy/OpenBoxGL/issues) first. The current release is [v1.2.0](https://github.com/vindeckyy/OpenBoxGL/releases/latest).
Thanks for taking the time to report an issue. Please search [existing issues](https://github.com/vindeckyy/OpenBoxGL/issues) first. The current release is [v2.1.0](https://github.com/vindeckyy/OpenBoxGL/releases/latest).

- type: input
id: version
attributes:
label: OpenBox version
description: Release tag, AppImage version, or git commit hash
placeholder: v1.2.0
placeholder: v2.1.0
validations:
required: true

- type: input
id: library_format
attributes:
label: Library format
description: The library format and path mode shown in Settings > About, for example "7, portable". Leave it blank if the library does not open at all.
placeholder: "7, portable"
validations:
required: false

- type: dropdown
id: interface
attributes:
label: Interface
options:
- Web UI
- Native window
validations:
required: true

- type: dropdown
id: install
attributes:
label: Install method
options:
- AppImage
- Flatpak
- Source install
- Windows portable install
- macOS app bundle
validations:
required: true

- type: input
id: environment
attributes:
label: Environment
description: Distro, desktop environment, and Python version if running from source
placeholder: Fedora 42, KDE Plasma, Python 3.12
description: Operating system and version (Linux distro and desktop, Windows build, or macOS version), and Python version if running from source
placeholder: Fedora 41, KDE Plasma, Python 3.12; or macOS 15 on Apple Silicon; or Windows 11 x86_64
validations:
required: true

Expand Down Expand Up @@ -70,7 +89,7 @@ body:
id: diagnostic
attributes:
label: Diagnostic report
description: Paste the output of Settings -> Library Audit -> the diagnostic log, or the "Copy details" output from an error banner. It is redacted automatically.
description: Paste the output of Settings -> Advanced -> Copy diagnostic log, or the "Copy details" output from an error banner. It is redacted automatically.
validations:
required: false

Expand Down
34 changes: 22 additions & 12 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,17 +1,27 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
- package-ecosystem: pip
directory: /
schedule:
interval: "weekly"
open-pull-requests-limit: 5
- package-ecosystem: "npm"
directory: "/scripts"
interval: weekly
target-branch: master
labels:
- dependencies
- package-ecosystem: npm
directory: /scripts
schedule:
interval: "weekly"
open-pull-requests-limit: 5
- package-ecosystem: "pip"
directory: "/"
interval: weekly
target-branch: master
labels:
- dependencies
- package-ecosystem: github-actions
directory: /
schedule:
interval: "weekly"
open-pull-requests-limit: 5
interval: weekly
target-branch: master
labels:
- dependencies
groups:
github-actions:
patterns:
- "*"
2 changes: 1 addition & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Describe how you verified the change.

## Checklist

- [ ] I read [CONTRIBUTING.md](../CONTRIBUTING.md)
- [ ] I read [CONTRIBUTING.md](../docs/CONTRIBUTING.md)
- [ ] I updated documentation when user-facing behavior changed
- [ ] I added or updated tests when behavior changed
- [ ] I did not commit secrets, tokens, ROMs, or personal library data
Expand Down
Loading
Loading