github ItsBlurf/BFpilot v0.4.2-test
BFpilot v0.4.2 Test Build

pre-release17 hours ago

BFpilot v0.4.2 Test Build

Every item below is an actual change after the v0.4.1 tag. Unchanged
v0.4.1 packaging and retained safeguards are intentionally not presented as
v0.4.2 features.

Changes since v0.4.1

File-manager hardening (e8786b4)

  • Added built-in creation and editing for common UTF-8 text/source/config files,
    with a 5 MiB limit, mode preservation, optimistic version-conflict detection,
    and same-directory atomic replacement.
  • Added preservation of an existing UTF-8 BOM and dominant LF, CRLF, or CR
    newline convention when saving through the browser editor.
  • Added recursive drag-and-drop folder enumeration through the browser WebKit
    entry API; v0.4.1 did not recursively walk dropped directories.
  • Switched copy, move, and delete UI actions from query-string GET requests to
    bounded form POST bodies.
  • Changed file overwrite so the existing destination remains in place until
    the staged replacement is complete; v0.4.1 unlinked it before copying.
  • Added prevalidated staged merging when a copied directory already exists,
    including file/directory conflict rejection.
  • Added physical lstat recursion, checked path joins, same-device fences,
    no-follow source reopen with inode/device validation, a 64-level depth cap,
    and first-error abort behavior to recursive copy/delete preparation.
  • Extended the mutation gate to uploads and text edits and closed the race
    between regular transfer jobs and archive extraction.
  • Added nanosecond-qualified upload/copy staging names to avoid same-second
    collisions.
  • Added warnings before writes to common ShadowMountPlus scan locations.

Transfer-performance refresh (e00627b)

  • Doubled the download buffer from v0.4.1's 1 MiB to 2 MiB and added 16 KiB
    alignment to both the download buffer and the existing 2 MiB upload buffer.
  • Raised the requested download send buffer from 2 MiB to 4 MiB and added
    effective accepted-socket receive/send buffer logging.
  • Added a two-slot pipeline for regular files at least 64 MiB: two aligned
    8 MiB slots overlap source reads with one ordered writer. v0.4.1 used one
    serial 8 MiB copy buffer.
  • Added coarse 256 MiB writeback checkpoints to sustained uploads, file copies,
    and large ZIP member extraction.
  • Converted the existing ZIP buffers to 16 KiB-aligned allocations and added
    sequential volume-read hints plus periodic output checkpoints.
  • Changed directory listing metadata to no-follow parent-relative lookup and
    changed index crawling to parent-relative fstatat(..., AT_SYMLINK_NOFOLLOW).
  • Changed search pagination to stop after the requested page plus one match and
    added matchedExact/accurate hasMore semantics. v0.4.1 scanned the rest
    of the index after reaching the page limit.
  • Added copy-mode/checkpoint/device telemetry and per-stage upload/download
    timing, alignment, error, and throughput telemetry.
  • Added a write-guarded 512 MiB PS5 hardware harness that verifies the uploaded
    file, downloaded file, and local-copy SHA-256 before cleaning only its unique
    test directory.

Test-build warning

The refreshed payloads pass host regressions, PS5 cross-compilation with
-Werror, ELF header/import/dependency validation, UI JavaScript parsing, and
the performance/stability contract checks. The console was unavailable on port
5905 for this update, so this exact build has not completed the PS5 hardware
throughput/error ladder. Back up important data, test a small operation first,
and do not stack other debug/file-manager payloads while evaluating it.

Implementation rationale and the hardware matrix are in
docs/PERFORMANCE_STABILITY.md. The upstream adoption/rejection rationale is
in docs/UPSTREAM_FILE_MANAGER_COMPARISON.md.

SHA-256

  • bfpilot.elf: e1169a397fc9dc439169be2f39bf345a2f636d2e46fdd304c6569060d60ac373
  • bfpilot-launcher-installer.elf: 7a49749132d5fb1b1b2bfd658875d0e8c21b07543bcc480198da347f361c3dae

Don't miss a new BFpilot release

NewReleases is sending notifications on new releases.