Skip to content

amifuse v0.5.0

Latest

Choose a tag to compare

@reinauer reinauer released this 12 Apr 23:07
· 11 commits to main since this release

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)
  • ls and verify — FUSE-free filesystem inspection (428b3fe)
  • hash — FUSE-free file content verification (39ad6b2)
  • doctor — environment diagnostics (1908335)
  • inspect — added JSON output mode (0466d1b)
  • unmount command 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_bridge sync/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_ADDCHANGEINT requests pending (65ef6cf)
  • Align device BeginIO signatures (8ec40bd)
  • Fix pr_StackBase to 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_parser modules (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.md developer 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 inspect without 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