Cool. After reading your README, the "post-part" hook is the most interesting part for me. Chunk-level hooks make it easier to plug into things like rclone or other workflows. As you mentioned, the single .rapel-state.json file tracks all chunk metadata. Does that state also pin the origin file identity while resuming, so it can detect if the remote file changed between sessions?
Thanks for pointing it out, README is outdated, .rapel-state.json is not being used anymore, as the current state is now calculated from the chunk files downloaded. It doesn't detect remote file changes.