Major release with Windows support, FUSE-free inspection commands, expanded testing, and significant speed up and stability fixes.
✨ New Features
Windows Support
- Windows mount support via WinFSP (
1a6580b) - Fix unmount command on Windows (
9462fd0) - Filter Windows Explorer system file probes in FUSE operations (
61b1758)
New Commands
read— FUSE-free file extraction (949ca9f)write— copy files into Amiga filesystem images (e4fabb5)lsandverify— FUSE-free filesystem inspection (428b3fe)hash— FUSE-free file content verification (39ad6b2)doctor— environment diagnostics (1908335)inspect— added JSON output mode (0466d1b)unmountcommand and new daemon mount mode (5f5aa0c)
🐛 Bug Fixes
Handler & Startup
- Restore SFS startup compatibility (
3f2e979) - Preserve handler wait state across child runs (
85b108e) - Resume blocked child handler processes (
ebcdcfa) - Skip SFS uninhibit after format (
13c683f) - Flush formatted volumes before uninhibit (
80b5478) - Preserve main handler wait context (
9cb4bf0) - Preserve handler A6 across resumed bursts (
4ea6a82) - Stabilize blocked handler resume paths (
b503335) - Split startup reply handling and isolate reply-port wakeups (
3afa237,044b645) - Fix startup with new amitools IORequest access (
7c203f3)
Memory & Resource Leaks
- Fix memory leaks in bstr and stdpkt ring buffer reallocation (
b3859b3) - Fix read buffer leak on growth (
ea7979a) - Fix resource leak in
HandlerBridge.destroy()(3ef4505) - Free stale read buffers on crash shutdown (
3b527e0) - Idempotent teardown close paths (
8b3803e) - Split
_cleanup_bridgesync/close into independent try blocks (591deb1) - Fix block state guard and teardown shutdown ordering (
f23e21a)
Filesystem & I/O
- Fix APTR-to-BPTR conversion in
send_disk_info(d2af023) - Add trailing NUL to generated BSTRs (
4d4a0d9) - Size offset-backed images correctly (
107894e) - SCSI block bounds checking; fix READ CAPACITY overflow for >2TB images (
dee4bda) - Keep
TD_ADDCHANGEINTrequests pending (65ef6cf) - Align device
BeginIOsignatures (8ec40bd) - Fix
pr_StackBaseto use stack upper bound; fix empty list init (c987731) - Remove 256-entry cap on directory listings (
bd87046) - Clean up dead mounts after handler crashes (
f24887f)
macOS
- Keep xattrs enabled for mounted volumes on Darwin (
9a8c9f5)
⚡ Performance
- Cache packet marshalling offsets (
83aad2f) - Runtime tuning via amitools submodule update (
3f808c9)
🧪 Testing & CI
- GitHub Actions workflow for CI (
600e567) - Pytest scaffolding and unit tests for platform,
rdb_inspect,icon_parsermodules (403a437,e72cb6b,7bb3644,8eca477) - Filesystem matrix harness with timing aggregation (
a98f4a9,41f195e) - Smoke coverage: OFS, BFFS read-only, writable filesystems, format matrix, >4G images, image formats, README examples (
ea0a646,9db21cb,7b915ff,1eeecff,36e1ff4,5c6434c,b73f7ff,f293a46) - HandlerBridge integration tests, CLI help/doctor/JSON contract tests (
7efa8b7,94f5382,8b380d1) - Matrix load benchmarks (
915aeff,7e9f1b2) - Darwin mount xattr test coverage (
bcf26e1) - Disabled Windows entries staged in CI matrices (
03a3cbf)
📚 Documentation
- New
CONTRIBUTING.mddeveloper onboarding guide (f8178ae,935737d) - Testing guide (
65db277) - Refreshed performance baselines (
76d56f1) - Document mount modes (
645d3b5)
🔧 Build & Packaging
- Require amitools ≥ 0.8.0.post5 (
de370a6) publish-to-pypi: skip already-published versions (307d372)- Mark top-level Makefile targets phony (
495235a) - Allow
inspectwithout FUSE bindings (52df365) - Updated amitools submodule multiple times for ClockData, startup, and runtime fixes
New Contributors
@tbdye made lots of contributions around Windows support bug fixing and testing infrastructure.
Full Changelog: v0.4.0...v0.5.0