Skip to content

Conductor Runner 0.0.1-beta.6

Pre-release
Pre-release

Choose a tag to compare

@conductorcicd conductorcicd released this 08 Oct 05:37

Runner beta release

Version: 0.0.1-beta.6. Tag: v0.0.1-beta.6.
Public repository: https://github.com/ConductorCI/runner.

Beta.6 gives every executed action a five-line Pool/Runner/Step/Task/Version
header, one succeeded/failed/cancelled result line, and a final Finished: <Task>
record. The JavaScript host and SDK expose ctx.setResult so handlers can supply
result detail without duplicating terminal output. Runner timeouts, cancellation
and output failures take precedence over a handler's reported success. Host health
is sampled at each task; persistent warning kinds are annotated once per job.

The manager now explains commands and maintenance outcomes, discovers its own
installation folder for everyday commands, and prints a readable update summary.
Scripts that consume check-update JSON must add --json. Install and uninstall
still require an explicit --target; services and PATH are managed separately.
Custom packages using ctx.setResult must require runner beta.6 or later. Built-in
shell packages retain an older-host fallback and their beta.4 minimum requirement.

Beta.5 batches adjacent plain output, retries transient delivery failures during
execution, and preserves the observed child exit code when log delivery fails.
The service journal records the closing result even when the API cannot accept
the footer. The application companion change recovers missing closing summaries
from durable step status and refreshes an open log view when its job ends.
This is a compatible bug fix: built-in task minimum versions remain beta.4 and
the task log protocol and manifest schema versions do not change. Publish a new
immutable prerelease, reconcile the application pin, and upgrade the API/frontend
and runner before claiming the corrected behavior is live.

Beta.4 added runner-owned headers, author identity and final task messages for
all actions, with acknowledged attempt sequences and a sealed output drain.
Read task log boundaries for the protocol, failure
limits and coordinated API rollout.

Beta.3 changed the pre-release worker contract to runner throughout the CLI,
configuration, package metadata, API routes, services and SDK. Use it with the
matching Conductor API/database/frontend/MCP maintenance cutover. Existing beta
tags and assets remain immutable.

Worker and manager binaries are conductor-runner and
conductor-runner-manager. Sources live in cmd/conductor-runner/ and the other
matching command directories. The private Go module and packages use runner
names. Built-in task packages declare minRunnerVersion: 0.0.1-beta.4.

Coordinated upgrade

Stop old API admissions and workers after accepted work settles. Apply the
application runner-terminology migration, deploy its matching API, frontend and
MCP, then install this runner release. Update service commands, local config and
environment names. Re-register when an old identity/configuration layout remains.
The old manager cannot discover the renamed /api/v1/runners/updates endpoint;
this release requires a manual cutover. Custom task archives must use
minRunnerVersion. User scripts that referenced previous worker environment
names need corresponding edits.

Job manifest formats 2 through 5 and portable bundle schema 2 retain their
structural versions. Their worker-named fields now use runner terminology; old
API/worker pairs are not supported across this cutover. Do not weaken version,
signature, hash, or capability checks to mix incompatible releases.

Portable release

Run tools/scripts/ci/Invoke-RunnerUnitTests.ps1, then build from a clean commit
with tools/scripts/runner/Build-Distribution.ps1 -Target All. While developing,
use -AllowDirtySource and do not publish those dirty-source artifacts.

The release contains Windows ZIP bundles and Linux/macOS tar.gz bundles for
amd64 and arm64, six managers, twelve SHA-256 sidecars, SHA256SUMS and
release-manifest.json. Node and its license are included in every bundle.

Publish the 26 files directly under dist/ as GitHub prerelease assets. Verify
the manifest source commit is the tagged commit, sourceDirty is false, and all
asset digests match. Keep generated distributions and credentials out of Git.

Native MSI/pkg/deb/rpm packages require native validation and signing identities
from native-release-checklist.md; portable cross-builds do not prove them.

Approval and publication

Use ConductorCI for release orchestration. A release job requires a Windows
runner with the pinned Go and Node toolchains and vulnerability scanner. Run the
canonical runner gate, build all six targets from the exact clean source commit,
then invoke tools/scripts/runner/Publish-GitHubRelease.ps1. The publisher verifies
all 26 asset digests before publishing the prerelease. Pass PromoteLatestApproved
only after explicit approval. ConductorCI pipeline setup is deferred; no automatic
publication trigger is configured in this repository.

Version tags (such as v0.0.1-beta.3) and published assets are immutable.
latest-approved is a lightweight, movable tag for the most recently approved
release commit. It moves only after verified publication, with an explicit lease
that prevents overwriting a concurrent promotion. An approved beta remains a
prerelease; the approval tag does not change its compatibility or channel.

Consumers should resolve latest-approved to the immutable version tag and use
that version's release assets. Source pins and installation manifests must
record the exact version/commit rather than pinning the movable alias.

The publisher uses GitHub REST release IDs for draft creation and binary uploads.
Interrupted draft uploads reuse assets with matching size and digest. Published
assets are immutable; CI-only fixes after a release require a new version for
a subsequent release from a different source commit.