Hiverra Portal v0.13.0
Release Notes: Hiverra Portal 0.13.0 & PXP 0.1.0
This release marks a major architectural milestone. The monolithic application has been decoupled into two distinct parts:
pxp(v0.1.0) — A headless, consumer-agnostic Rust library implementation of the Portal Transfer Protocol (PXP).hiverra-portal(v0.13.0) — The command-line interface wrapper for PXP.
PXP v0.1.0 (Core Engine)
PXP is now isolated as its own standalone crate, designed to allow any front-end (CLI, GUI, daemon, or mobile) to easily run transfers on the local network.
Key Highlights
- Pure Protocol Mechanics: Removed all terminal-specific side effects (
println!, interactive prompts, configuration filesystem reading). - Strongly-Typed Errors: Replaced
anyhowwith standard typed errors viathiserror(exposingPxpError), allowing programmatic recovery on transfer failures. - Abstract Progress Reporting: Exposes
TransferProgressandItemProgresstraits that caller applications implement to draw custom progress interfaces. - Abstract Conflict Resolution: Exposes a
ConflictResolvertrait to delegate filename collision policies (such as overwrite, rename, skip) back to the caller. - Zero-Configuration Discovery: Built-in UDP multicast and broadcast beacon listeners/senders.
Hiverra Portal v0.13.0 (CLI Wrapper)
The CLI binary name remains portal and behaves identically to prior versions. Under the hood, it is now a shell wrapper around the pxp engine.
Key Highlights
- Adapter Pattern Integration: Implements the
pxptraits to feed transfer metrics intoindicatifprogress bars and delegate filename collision decisions toinquire::SelectCLI prompts. - Workspace Dependency Optimization: Configured as a Cargo workspace with centralized dependencies declared at the workspace root.
- Cleaned Workspace: Removed all obsolete source files from the old structure.
Protocol Specifications (PLTP / PXP Drafts)
Formal drafts defining the application-layer Portal Transfer Protocol have been written in RFC style under the /spec folder:
- Overview — Architectural design and roles.
- Discovery — UDP beacon schema and broadcasting rules.
- Handshake — TCP session identity verification.
- Manifest — Transfer metadata packaging.
- Streaming — TAR payload serialization, virtual metadata contracts, and conflict resolution.
Packaging & Distribution
- npm via OIDC Trusted Publishing:
@hiverra/portalis now published directly from GitHub Actions using OIDC trusted publishing with signed SLSA provenance — no long-lived tokens. - Documentation: Full docs for the CLI,
pxplibrary, and protocol specs are available at portal.biuld.app/docs.
What's Changed
- fix(npm): add repository.url for provenance validation [fa75947]
- ci(release): Ensure npm >= 11.5.1 for OIDC trusted publishing [7456471]
- ci(release): Create GitHub release only after npm publishes [ea19745]
- ci(release): Support manual workflow_dispatch trigger [ee3eca0]
- ci(release): Migrate npm publishing to OIDC and a local package dir (#159) [7880784]
- fix(release): correct license RTF path after wix moved into portal-cli [fc8ffdc]
- docs(web): Point footer architect link to portfolio with UTM (#157) [2bcf52b]
- fix(release): resolve Windows MSI build after workspace restructure (#156) [cee59f0]
- build(deps): bump postcss from 8.4.31 to 8.5.23 (#154) [23ef939]
- docs(web): Update pxp library dependency instructions (#153) [aa242db]
- docs(pxp): Add TODO list for PXP protocol improvements (#153) [fa06aeb]
- docs(config): Clarify markdown usage rules in AI commit prompt (#153) [6c6cfc4]
- docs(web): Introduce CLI documentation and section icons (#153) [8451c50]
- refactor(cli): Organize documentation content (#153) [fc637a4]
- build(deps): Update Next.js dependency from 16.3.0 to 16.3.1 (#153) [fc637a4]
- docs(protocol): Add PXP protocol specification (#153) [74834c0]
- docs(library): Add pxp library overview and usage guide (#153) [74834c0]
- build(deps): Bump web application and pnpm dependencies (#153) [74834c0]
- refactor(pxp): Split PXP protocol library from Portal CLI (#151) [e2b0b85]
- build(deps): bump quinn-proto from 0.11.14 to 0.11.16 (#150) [8482da3]
- docs(changelog): manually add missing entries for PR 143 and 145 [c181dd9]
- fix(ci): grant workflow write permissions and add self-healing hash detection (#146) [c37ffc8]
- fix(ci): make changelog updater resilient to Gemini API spikes and resolve PRs (#145) [07f4872]
- ci(changelog): implement automated changelog updater workflow (#143) [39ac43a]
- docs: generate CHANGELOG.md and update installation guides (#143) [b209884]
- refactor(docs): Use native tabs instead of custom demo components (#141) [39644b3]
- fix(web): Add required text property to GitHub icon link (#139) [c9c7ec8]
- refactor(web): Migrate documentation framework from Nextra to Fumadocs (#138) [d38b4f8]
- chore(config): Consolidate repository ignore rules [68a4fc7]
- build(web): Switch web docs application to pnpm workspace [24f3f8e]
- fix(docs): Contain mobile code block layout overflow (#132) [6934b93]
Full Changelog: v0.12.0...v0.13.0