Skip to main content

Releases And Pull Updates

AxiOwl separates artifact creation, publication, channel promotion, download, staging, and application. This keeps each release identifiable and lets provider integrations update independently from the core product.

Release Flow

source revision
-> platform artifacts
-> platform signatures and manifests
-> immutable publication
-> Preview or Internal channel
-> deliberate Stable promotion
-> client download and application

Publishing an artifact does not automatically make it Stable. Channel promotion is a separate decision.

Platform Entry Points

PlatformRelease entry point
Windowsrelease/Invoke-AxiOwlWindowsRelease.ps1
Linuxrelease/Invoke-AxiOwlLinuxRelease.ps1
macOSrelease/Invoke-AxiOwlMacOSRelease.ps1
Androidrelease/Invoke-AxiOwlAndroidRelease.ps1
iPhonerelease/Invoke-AxiOwlIosRelease.ps1

Windows package construction is owned by installer/windows/build-windows-msi.ps1.

Release Artifacts

ArtifactPurpose
Windows MSIInstalls core, providers, A2A, SSH, and the selected daemon runtime
Linux packageInstalls the native Linux product and branded daemon service
macOS packageInstalls the Swift desktop and bundled daemon
Android packageDelivers the Android mobile client
iPhone packageDelivers the iOS mobile client
Provider packageDelivers one isolated local provider integration revision
Component manifestIdentifies included files, ownership, sizes, and digests
Release envelopeIdentifies one immutable product release and its channel
Channel pointerSelects the release currently offered by a channel

Windows Packaging

The Windows release builds the core, eleven provider packages, A2A components, SSH support, and daemon payloads. The MSI feature map keeps provider selection and the Node/native/none daemon choice explicit.

Executable components are signed before they are packaged. The final MSI is signed after its contents are final.

Provider Packages

Provider packages have their own IDs and revisions. A package owns one provider's worker, integration assets, and install strategy. It does not own another provider's files, account, credentials, or process scope.

The current provider inventory is defined in providers/provider-package-inventory.json.

In update code, a generation means an installed provider-package revision. It does not mean AI-generated content.

Immutable Publication

Release components and package archives are published as immutable objects. Their manifests bind the expected size and digest. A release description binds those objects to one product version and channel.

Existing immutable objects are not rewritten when a channel changes.

Preview, Internal, And Stable

  • Preview makes a platform package available before Stable promotion.
  • Internal is used for the Windows provider hot-update path before Stable promotion.
  • Stable is the deliberately promoted public channel.

The channel identity is part of signed release metadata. Moving the same component bytes to another channel creates channel-specific release metadata rather than relabeling the existing record.

Client Pull Commands

axiowl update status
axiowl update check [--channel <channel>] [--endpoint <url>]
axiowl update provider status <provider-id>
axiowl update provider pull <provider-id> [--channel <channel>] [--endpoint <url>]
axiowl update provider apply <provider-id> --package-root <directory>

The client checks signed channel and release metadata, confirms component identity, and records accepted local update state before application.

Downloading a package does not grant it permission to overwrite another provider or change an unselected installer feature.

Opportunistic Update Checks

Common Create and Send workflows can launch a detached one-shot update check when the existing channel state is missing or old.

The provider operation keeps its own result. The update check does not retry the provider operation and does not automatically apply a provider package or MSI. The checker exits after publishing the current local update state.

This is event-driven pull behavior rather than an always-running polling service.

Hold And Previous Releases

A signed channel pointer can place a channel on hold. A later pointer can select a previously published immutable release while the channel sequence continues forward. The original release bytes remain unchanged.

Documentation Site

The public documentation is released separately. A push to the documentation repository's main branch invokes its GitHub Pages workflow, builds Docusaurus in GitHub, and deploys the resulting static site.

Public Release Record

A useful release record names the source revision, platform, version, artifact name, size, digest, publisher identity, channel, and promotion state. Private credentials and infrastructure identifiers remain outside public documentation.