Hiverra Portal 0.14.0
Staged receives & post-transfer conflict resolution
This release changes how the receiver handles filename collisions and interrupted transfers. Instead of pausing mid-stream to ask you about conflicts, Portal now:
- Stages incoming files into a per-transfer staging directory (
<dest>/.portal/stage/<timestamp>) as items land, then presents conflicts after the transfer finishes. - Resolves conflicts one decision at a time — overwrite, rename, or skip — applied per top-level item (a whole folder is one unit), with memoized "apply to all" answers so you don't answer the same question repeatedly.
- Recovers from cut connections: if a transfer drops mid-way, every fully-received item is reconciled into the destination automatically (
Transfer interrupted; recovered N item(s)), and only the in-flight file is lost. - Self-cleans staging: stale staging directories older than 24h are swept on the next receive, and empty
.portalparents are pruned without ever touching a concurrent transfer's files.
Other changes
- PXP library bumped to 0.2.0 (
receive_streamnow returns aStagedTransfer+reconcile()helper; conflict resolution moved out of the stream). - Docs: new CLI page for staging & conflicts, new protocol draft
draft-pxp-streaming-01(conflict deferral + partial-salvage), updated pxp library guides.
What's Changed
- feat(cli): stage received files and resolve conflicts after transfer (#161) [7bfa787]
- docs: document staged receive, post-transfer conflicts, and draft streaming-01 (#161) [7a17927]
Full Changelog: v0.13.0...v0.14.0