This removes the old signed manifest staging flow and makes upgrades check-only notifications, while deleting dead manifest/release-key code and switching default art URLs to the GitHub raw asset pack. It also fixes oversized Discord READY handling by streaming envelope extraction instead of buffering giant frames, avoids repeated reconnect notifications, and updates host tests/build scripts to reflect the new no-install updater path.
Update the README changelog for the 0.70 test build. The notes now highlight the 32MB websocket gateway frame buffer increase, a frame draining fix, and the new invalid token notification.
- Delete stale HANDOFF.md (superseded by PRODUCTION + README + CI)
- Move findings/ into docs/research/ (incl retired-tables); fix
all cross-links (DAEMON, injecting, README, fw.h, PROGRESS_LOG)
- New docs/README.md index; new BUILDING.md (toolchain, SDK rule,
scripts, CI jobs, tests); new CONFIG.md (full key reference,
verified against cfg_defaults)
- Rewrite TROUBLESHOOTING.md from tester history (first-run flow,
nanoDNS 127.0.0.1 step, connection checklist, known issues)
- INSTALLER.md: PKG not shipped with test builds; PRODUCTION.md:
drop dead-webhook line, fix readiness note
- No PKG: install is test-build .elf via Discord
- First-run flow: delete /data/orbisRPC, run once (config + no
token), set token in SET_ME slot, re-run
- 0.60 notes: fw string parsing, pkg-zone homebrew, retro list,
show_* flags default true
- nanoDNS exception walkthrough with before/after ini + restart
- tests: link vendored sqlite amalgamation instead of system
-lsqlite3; wrapper VFS with trivial xFullPathname; unlink stale
app.db + pre-create before open (runner CANTOPEN)
- tests: free parsed values in test_json_oom_safe (LSan leak)
- ci: pin SDK via checkout+fetch-depth 0 (raw SHA is not a ref)
- README: credit SirHumza & CyberMask367, no-PKG beta payload
install, beta access via Discord
- e2e: tolerate non-UTF8 make output (errors=replace), fixes
UnicodeDecodeError that red-lined e2e contracts
- e2e: drop fast-switch/atime gates absent from this tree; skip
payload-built when no build-sdk elf (sdk-payload job gates it)
- tests: fix stale discord_build_activity arg order + home asset
cases so host unit tests and ASan pass
- ci: push-only Discord webhook notify via DISCORD_WEBHOOK_URL secret
- README: CyberMask367 credit, discord.gg/BWEyfcT7ZQ badge + support
section, beta-access note, 9.00-13.52 firmware, test-build upgrade
+ nanoDNS exception steps
changed game detection logic, resolving retro games and homebrew, new rpc style, custom options in config.json, installer is not fixed yet
Co-Authored-By: SirHumza <204067870+SirHumza@users.noreply.github.com>
The param.sfo revert shipped as a 'fix' but online verification shows
Apollo Save Tool's current main (v02.32) still ships ATTRIBUTE=32 /
CATEGORY=gde / --authinfo and is a proven universal PS4 app. So 0/gd
is probably innocent too and the real cause is still unidentified.
This commit stops overclaiming: PKG_ATTR, PKG_CATEGORY and AUTHINFO
are now make variables so either build is one flag away, the Makefile
comment records both the evidence and the counter-evidence, and the
stale 'param.sfo is the cause' claim is corrected.
Also deletes installer/font.h and scripts/genfont.py (2366 dead lines
left over from the reverted SDL reskin) and fixes a wrong deployment
path in build.sh: orbisRPC goes to /data/payloads/ for Payload Guest.
GoldHEN's own single payload slot is /data/payload.bin, a different
thing entirely.
param.sfo ATTRIBUTE 32->0 and CATEGORY gde->gd, and drop --authinfo.
These are the only values verified to launch on real hardware. The
gde/32 + authinfo combo was theory borrowed from Apollo; every build
carrying it died silently pre-logging on a real console (4/4) while
0/gd launched fine. Isolation ruled out authinfo (2 builds), the SDL
UI, and the native UI; LIBS, the object set, and all installer.c
deltas are identical or provably safe before the first log call.
param.sfo was the last variable present in 4/4 crashes and absent
from the single success.
installer.c also gains a pre-main constructor that writes a BOOT line
via raw open/write. Four builds died with install.log completely
untouched and the in-main crash handler never armed, so loader-side
death and main-side death were indistinguishable. Now: no BOOT means
the SELF never got control; BOOT without a stage means main died
before the first log.