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
lstatrecursion, 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-relativefstatat(..., AT_SYMLINK_NOFOLLOW). - Changed search pagination to stop after the requested page plus one match and
addedmatchedExact/accuratehasMoresemantics. 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:e1169a397fc9dc439169be2f39bf345a2f636d2e46fdd304c6569060d60ac373bfpilot-launcher-installer.elf:7a49749132d5fb1b1b2bfd658875d0e8c21b07543bcc480198da347f361c3dae