* fix(i18n): clarify account activation save-loss warning
Say that existing saves may be lost because the account ID changes,
not that the save files themselves become unusable.
* docs: clean up unused documentation
* docs: add contributor avatars to the READMEs
* fix(cheats): load TITLE_VERSION_PROCESS_HASH files
Collection dumps name files TITLE_VERSION[_PROCESS][_HASH].ext.
The old lookup either missed process-scoped names or rejected
multiple hashes, so most dumped trainers never loaded.
Parse process and hash as optional fields, prefer a process match,
and keep hashed variants when the running hash is unknown.
* feat(cheats): add git catalog sync with host mirrors
Bring back DOWNLOAD_CHEATS as a background git clone/fetch of
cheat catalogs, then reuse flatten to install flat files.
Catalog identity and GitHub/cnb.cool mirrors stay in separate
modules so a new source does not rewrite the download pipeline.
auto mirror uses cnb.cool for zh-Hans and GitHub otherwise;
explicit github/cnb skips fallback. libgit2 is an optional
submodule (v1.8.4); without it the client stays a stub.
* feat(cheats): add toolbox download UI and HTTP probe
Expose catalog download on the Game Tools page and put the
mirror picker in Preferences. Probe gstatic/miui generate_204
before clone so auto can pick GitHub or cnb.cool by reachability.
Also fix the CNB slug, rename the util CMake target so it no
longer clashes with libgit2, and keep last-error text off the
download button.
* feat(cheats): sync cheat catalogs over HTTPS zip download
Replace the git clone/fetch pipeline with a curl + miniz HTTPS
ZIP download. The engine streams one archive, extracts only the
catalog roots, and reuses flatten to install flat files, so the
libgit2 submodule and its build integration are gone.
Drop the pre-download reachability probe and the commit-SHA
parser; reachability is implied by the download itself and the
SHA only fed the old git flow. Mirror selection stays in
CheatMirrorFactory (auto: cnb.cool for zh-Hans, GitHub otherwise;
explicit github/cnb skips fallback).
curl verifies peer+host against the embedded CA bundle and now
distinguishes certificate time-skew from other verification
failures, surfacing a dedicated clock notification. Revert the
util CMake target back to "util" now that libgit2 no longer
claims that name.
* fix(daemon): stop private elfldr on stack shutdown
* fix(rest-mode): restore services and toolbox after standby #1
* feat(i18n): notify service restored after rest mode #1
* docs: credit itsplk ps5-payload-manager for rest mode resume
* chore(cheats): cheats download page UI
* fix(shellui): use RootWidget dimensions for overlay layout (#6)
* fix(i18n): localize TeeKay87 credit in cheat download entry
* fix(cheats): show downloaded file size progress
* fix(cheats): restore download confirmation
* fix(cheats): improve download status feedback
* chore(cJSON): unify JSON parsing and serialization with cJSON
* chore(cJSON): unify JSON parsing and serialization with cJSON
* fix(cheats): cancel sync when progress page closes
* chore(log): align runtime log levels
* fix(cheats): make sync cancellation responsive
* fix(cheats): restore page state after sync
* fix(cheats): notify when cancellation completes
* feat: add FTP, Docker, Remote Play, and ShadowMountPlus support (#23)
* feat: move FTP server to third_party and keep Docker
* docs: add ftpsrv to project credits
* feat: add FTP, Docker, and Remote Play support
* docs: document FTP and Remote Play
* feat: improve dependency scripts and add ShadowMountPlus
* docs: update ShadowMountPlus credits
* docs: add ShadowMountPlus config example
* i18n: normalize locale terminology and validation
* fix: launch ShadowMountPlus from memory
* fix(startup): default bundled payload autoloads off
Keep ftpsrv and ShadowMountPlus disabled when configuration is missing or predates these options. This avoids duplicate launches and conflicts with payloads users already autoload themselves, while preserving an explicit autoload=true opt-in.
* fix(shellui): add Drakmor icon for ShadowMountPlus
* fix(i18n): cache util system language before ptrace
* feat(shellui): regroup ShadowMountPlus/FTP and add cheats icons
---------
Co-authored-by: Kevin Huerta <kevinhuerta2808@gmail.com>
Drop the pairing page and the OnActivated / OnDeactivating
lifecycle hooks. Keep the Toolbox entry for offline account
activation, with a localized save-loss warning before writing
an account ID.
Drive visibility from SettingPage.OnActivated and
Application.FocusActiveScene instead of UIManager.Active plus
SceneBase.ActualVisible. Pair success now pops the page the same
way timeout does, and missing Mono methods are treated as optional
capabilities rather than disabling the whole poller.
Split the Toolbox into clearer groups (install, payloads, game tools,
monitoring, connection, system, preferences, debug, about), update
i18n/docs/tests, and wire new monitor/account icons through bootstrapper.
Rename product, namespaces, libraries, paths, and assets from Orion/orion
to Onion/onion across the tree. TCP stack-shutdown magic is now ONIO
(0x4F4E494F) to match the corrected branding.
Drop StartOption and toolbox_auto_start (UI, settings, rest-mode disable,
USB override, and startup URI launch). Always inject the toolbox into
ShellUI without navigating to debug settings or any auto-open page.
Move OnPreCreate value tables into toolbox_values, support list value=
in ps5ui, and set the selected cheats repo from settings so the control
shows the real choice.
Remove the .plugin package format and rename the stack to payload-only:
liborion_plugin → liborion_payload, IPC LAUNCH_PAYLOAD, UI payloads.xml,
and bootstrapper/util/shellui load paths under .../payloads/*.elf.
Delete dead package header validation, make_plugin_app staging, and
plugin-named lists/handlers; keep Sony Settings.Plugins resource namespace
and system_settings plugin= attributes (platform, not our format).
Introduce ps5ui::Page so cheats, plugins, remote play, and plapps UIs are
built via explicit widget calls instead of hand-written XML strings, and
cover the builder with host unit tests.