Files
ps5upload/engine/Cargo.toml
T
PhantomPtrandClaude Opus 5.5 76016015c7 PS5Upload v5.36.0 (#336)
* feat(pkg): choose which drive install packages are kept on

Uploaded packages always went to internal storage
(/user/data/ps5upload/pkg_library), which fills the console's own drive.
The Volumes screen now lets you mark a drive "Use for packages"; new
packages are staged under <drive>/ps5upload/pkg_library on it.

- Per console, remembered on this device. Internal stays the default.
- Falls back to internal storage, with a notice, when the chosen drive
  isn't connected.
- The package library lists packages on every drive; rows show the drive.
- The folder chain on the drive is created one level at a time.
- The External Packages scan skips a drive's ps5upload/ folder, so staged
  packages aren't listed twice.

Hardware (Phat, FW 5.10): Star Wars Racer Revenge base+patch staged on
/mnt/ext0 installed, patched 01.00->01.02 and launched in 2 of 3 trials
(80 MB/s); the first stalled after the header read and is covered by the
daemon-recycle fix that follows. Internal control: 1/1.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(install): recycle the installer daemon after a stalled delivery

A console-path install that stalls leaves the daemon's loopback job
"serving" until Sony reads every byte, which never happens, so every later
install was refused as "an install is already in progress" until the
daemon restarted, although the failure told the user to retry.
Measured on the Phat (FW 5.10). A stalled daemon-served install now stops
the daemon the same way a wedged stream refusal already did, and the next
install's ensure brings up a fresh one.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* PS5Upload v5.36.0

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 14:18:45 -07:00

50 lines
1.6 KiB
TOML

[workspace]
members = [
"crates/ftx2-proto",
"crates/ps5upload-core",
"crates/ps5upload-lab",
"crates/ps5upload-engine",
"crates/ps5upload-pkg",
"crates/ps5upload-fpkg",
"crates/ps5upload-tests",
"crates/ps5upload-bench",
]
resolver = "2"
[workspace.package]
edition = "2021"
license = "GPL-3.0-or-later"
version = "5.36.0"
[workspace.dependencies]
anyhow = "1.0"
# "multipart" is for the backport library import (fakelibs_api.rs): users pick
# library files and upload them as one set. Same crate, just the extractor.
axum = { version = "0.8", features = ["multipart"] }
blake3 = "1"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
thiserror = "2.0"
tokio = { version = "1", features = ["rt-multi-thread", "macros", "signal", "fs", "io-util"] }
tokio-stream = { version = "0.1", features = ["sync"] }
tower-http = { version = "0.7", features = ["cors"] }
uuid = { version = "1", features = ["v4"] }
# Speed up debug builds: thinner debug info on macOS, more parallelism.
[profile.dev]
split-debuginfo = "unpacked"
# Same for the release engine binary — not a shipped bundle, so trade a
# little size for faster link times.
[profile.release]
debug = false
# Vendored `unrar` with a one-line bounds fix in the volume-change callback.
# Upstream 0.5.8 reads ~8 KB out of a much smaller buffer on every volume
# transition, which aborts debug builds on any multi-part .rar and is a
# latent out-of-bounds read in release. 0.5.8 is the latest release, so
# there is nothing upstream to take. See third_party/unrar/README.md and
# docs/unrar-upstream-bug.md.
[patch.crates-io]
unrar = { path = "../third_party/unrar" }