Skip to content

Hiverra Portal v0.13.0

Choose a tag to compare

@github-actions github-actions released this 16 Aug 23:30

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:

  1. pxp (v0.1.0) — A headless, consumer-agnostic Rust library implementation of the Portal Transfer Protocol (PXP).
  2. 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 anyhow with standard typed errors via thiserror (exposing PxpError), allowing programmatic recovery on transfer failures.
  • Abstract Progress Reporting: Exposes TransferProgress and ItemProgress traits that caller applications implement to draw custom progress interfaces.
  • Abstract Conflict Resolution: Exposes a ConflictResolver trait 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 pxp traits to feed transfer metrics into indicatif progress bars and delegate filename collision decisions to inquire::Select CLI 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/portal is now published directly from GitHub Actions using OIDC trusted publishing with signed SLSA provenance — no long-lived tokens.
  • Documentation: Full docs for the CLI, pxp library, 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