Skip to content

Releases: MantissaLabs/mantissa

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 28 Oct 09:12
v0.6.0
e6dd021

This release adds private registry image pulls through node Docker credentials or a secret attached to a workload. It also checks sandbox enforcement before launch and improves recovery when replicated-volume setup leaves a missing data copy.

Additionally, it reduces polling frequency to the local container engine, thus reducing cpu usage. It also focuses on dependency updates to include security patches. Secrets should be migrated from v0.5.0 to a fresh v0.6.0 cluster due to a binary format change that makes them incompatible with v0.6.0.

Breaking Changes

  • Changed encrypted secret storage and wire formats to remove plaintext hashes. Existing secret records and older nodes are incompatible. ChaCha20-Poly1305 continues to authenticate the payload and its identifiers without exposing a hash that could be used to check guessed values. Secrets need to be migrated from v0.5.0 and v0.6.0 since they use different format. 5f14ca2

  • Sandboxed Linux workloads now require Landlock ABI V3 or newer. Mantissa rejects launch when its temporary-container check cannot apply the policy. Update the helper and recreate existing sandboxed containers to apply the new enforcement and default permissions. 389e614

  • Raised the source-build requirement to Rust 1.98 or newer. Release binaries select stable Rust explicitly and build with the committed lockfile. Linux eBPF compilation still uses its separate nightly toolchain. 3e1d067, 0e71385

Added

  • Added private registry credentials through --registry-auth SECRET on task, job, and agent submissions and the optional registry_auth field in manifests and REST payloads. Explicit credentials follow placement and replacement, override node login, and never fall back to a different account after failure. Node Docker configuration supports inline credentials and credential helpers. Service and task inspection show only the secret reference. 4d2b3a4

  • Added an agent example with a replicated workspace, including a recovery check between completed runs. The Codex image now uses Debian Trixie and Codex 0.163.0 for compatibility with the updated helper. f2f55b6, 354eada

Performance and Reliability

  • Rebuilds missing initial replicated-volume data copies without removing the original Raft voters. Interrupted setup can resume, delayed bootstrap requests cannot recreate data, and each repair attempt receives a fresh failure grace period during catch-up. 373321f

  • Prevents network reconciliation from restoring a deleted network or overwriting newer settings with an older snapshot. 5d4486f

  • Reduces Docker polling during workload reconciliation and avoids container inspection for service replicas without an applicable autoscale policy. Gossip dispatch and volume sorting also avoid unnecessary copies. 8f5f462, 8654dd4, a1c111e

  • Cancels unfinished join work on shutdown so an old node instance cannot overwrite state after a restart. 0ece9c2

  • Updates Nono, runtime and TLS dependencies, OpenRaft, Redb, Cap'n Proto, networking, DNS, and cryptography libraries for security and correctness fixes. 7d1fec1, 9011c17, 9d2a033, 1dc8244, 3e1d067, 8abfa00

Install mantissa 0.6.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/MantissaLabs/mantissa/releases/download/v0.6.0/mantissa-installer.sh | sh

Download mantissa 0.6.0

File Platform Checksum
mantissa-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
mantissa-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo MantissaLabs/mantissa

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 29 Sep 20:17
v0.5.0
f54f89e

This release makes day-to-day service and task operations easier from both the CLI and REST API. Operators can inspect complete service and task state, list retained task attempts, stream logs across a service, and execute a command without first resolving a task ID.

CLI resource flags now accept readable quantities such as 500m, 512MiB, and 10GiB. Service and network operations also accept names in the places where a UUID was previously required.

This release includes breaking CLI flag and REST response changes. Mantissa v0.4.0 and v0.5.0 both advertise root schema version 1: use the bounded rolling-upgrade workflow in Node Maintenance when updating a cluster.

Breaking Changes

  • Replaced the ad hoc workload flags --cpu-millis and --memory-bytes with --cpu and --memory. Replaced volume --capacity-mb with --capacity for create, import, and expand. Manifests and REST payloads keep their existing numeric fields and units. bbd9dc0

  • Changed GET /v1/services/{selector} and /status to return the complete ServiceDetail response, and changed GET /v1/tasks/{selector} to return TaskDetail. 0ace318, f563c34

Added

  • Extended service and task protocol records with the configuration and lifecycle data required for complete inspection, service task listing, logs, and exec. 0ace318, f563c34, d3048b6

  • Added mantissa services inspect and matching complete REST inspection for active and retained stopped services. --details includes exact resource values, inactive settings, and replica assignments. 0ace318

  • Added mantissa tasks inspect with UUID, exact-name, and unique-UUID-prefix selectors, plus the matching detailed task REST response. f563c34

  • Added mantissa services tasks and GET /v1/services/{selector}/tasks to show current and retained task attempts with generation, replica, placement, and lifecycle diagnostics. d3048b6

  • Added service-wide log streaming through mantissa services logs and GET /v1/services/{selector}/logs. Log events retain template, replica, and task identity. 7aa247b

  • Added service-level command execution through mantissa services exec and GET /v1/services/{selector}/exec. Mantissa selects one running replica and reports its identity before executing the command. 0f82d4a

  • Added mantissa services list --all and REST include_stopped=true for retained stopped services. Service stop now accepts an exact name or full UUID, and network delete accepts an exact name or UUID. 0d63964, 3105e74, d37d23b

Performance and Reliability

  • Reduced service scheduling work in large deployments by making candidate selection linear, indexing coordinators once, and selecting coordinators only for final deployment batches. a2fb0fb, bd4d2cc, 70fd3ee

  • Reduced replicated-store and topology work by avoiding unnecessary MVReg allocations, using linear selective MST range matching, reusing unchanged gossip populations, and skipping known tombstone frontiers. fb35bb2, 2e0c1f2, 4a9a6bb, f852998

  • Kept network attachment startup and backend discovery linear and avoided rebuilding unchanged peer state after every update. 417c118, cc2b9c7, b04b540, 515a6b0

  • Preserved replicated-volume capacity reports when status updates overlap, preventing concurrent reports from hiding current capacity information. 170a225

Install mantissa 0.5.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/MantissaLabs/mantissa/releases/download/v0.5.0/mantissa-installer.sh | sh

Download mantissa 0.5.0

File Platform Checksum
mantissa-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
mantissa-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo MantissaLabs/mantissa

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 17 Aug 16:58
v0.4.0
51a041f

This release introduces replicated volumes: single-writer persistent storage with three copies spread across different Mantissa nodes. It is suitable for stateful workloads that could survive node and storage loss/failure.

Local volumes are still available for node-pinned data and imported host paths. Replicated volumes add an option and storage path for workloads that need one writer, automatic replica repair, retain/restore semantics, and online expansion without moving storage management outside of Mantissa.

Replicated volumes use Raft for control decisions such as writer selection and fencing, membership and capacity changes. The workload node mounts the volume through the replicated-volume driver (with ublk) and uses the selected ext4 or XFS filesystem.

This release includes breaking protocol, manifest, CLI, and REST changes for volume state and workload volume mounts. Mixed v0.3.0 and v0.4.0 clusters are not supported.

Replicated volumes also require host support for the storage driver and a reachable replicated-volume listener between storage nodes. By default that listener uses TCP 7578.

Breaking Changes

  • Added replicated-volume protocol messages, Raft group state, and durable volume control records. Older nodes do not understand the new volume state, replica membership, or storage traffic. d99d1d4, c7e12fd, 5988de0

  • Changed volume state to separate desired state from per-node reported state and to expose the retained, restoring, replacement, and capacity-expansion lifecycle needed by replicated volumes. 2497991, c386bf3, ffafe36

  • Updated workload mounting and service placement so read_write_once replicated volumes stay single-writer and services can reschedule around replica-storage availability. dd0bb31, e28ecf4, 9269381

Added

  • Added a reusable Raft core with durable group storage and authenticated TCP transport, used by each replicated volume's control plane. c7e12fd, 0b5e9e6, 99c78b4

  • Added the replicated-volume storage engine: volume identity and layout, quorum state, replica files, ublk mounting, device-mapper mounting, and ext4/XFS filesystem management. 48823cb, 64b5f9d, a3de0f5, 284ceff, d3f0b9d

  • Added replicated-volume CLI, client, REST, and manifest support for create, inspect, status, retain, restore, permanent data deletion, and online expansion. 88fd4b8, a215acf, d9d369e, 886b176, d251cdb

  • Added replicated-volume configuration and startup wiring, including storage-capacity advertisement and useful Raft lifecycle logging. 3035316, 044d561, 5f4b22f, 376e74a

Fixed

  • Added replica recovery and replacement so a replicated volume can rebuild a missing copy on another eligible node after failures. 5dd0147, baf4349, ab17c12

  • Protected replicated volumes during node drains and cluster splits. Mantissa waits for replica copies during drain and rejects splits that would divide a volume's current voters or data copies. 24f1dfe, d260470

  • Kept replicated-volume state recoverable across restarts and stale status updates by reopening Raft groups, repairing public status from local Raft state, and rejecting stale store batches atomically. c166ae4, 31f9202, e56f832

  • Fixed service and topology edge cases around slot reconciliation, chained merge dependencies, and handoffs observed through divergent health views. fe45f87, 84e1fb4, 1f74bc1

  • Updated Linux TC attachment handling for newer kernels and upgraded the embedded Redb dependency. cbc68d1, b573252

Tests and Tooling

  • Enabled ublk in the Lima development nodes and added replicated-volume lifecycle, recovery, restart, split, PostgreSQL, REST, and fuzz coverage. 51ece0f, 7c0f052, 0954e73

Install mantissa 0.4.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/MantissaLabs/mantissa/releases/download/v0.4.0/mantissa-installer.sh | sh

Download mantissa 0.4.0

File Platform Checksum
mantissa-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
mantissa-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo MantissaLabs/mantissa

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 20 Jul 15:57
v0.3.0
2fc00f9

This release focuses on reliable cluster split and merge operations, service recovery after topology changes, faster synchronization and safer volume deletion.

In v0.2.0, split and merge operations were sent directly to the nodes that were reachable at the time. An offline node or a lost message could leave part of the cluster on an older view.

v0.3.0 makes these operations durable and repairable through normal cluster synchronization. Nodes that miss a transition can catch up after reconnecting or restarting. This release includes breaking Cap'n Proto changes for cluster operations, workloads, and volumes.

v0.3.0 also reduces wasted work in the Merkle Search Tree synchronization path, which was sending full page ranges containing unchanged values. It now only sends and synchronizes changed keys and values within those page ranges by sending and comparing row digests. This reduces network traffic and improves synchronization efficiency.

Mixed v0.2.0 (or below) and v0.3.0 clusters are not supported.

Breaking Changes

  • Changed the split and merge protocol to use stable operation IDs and explicit dependencies. Operations are now stored before they run and spread through cluster synchronization instead of direct operation relay RPCs. d89b948, d8a0ce1, a662c2a

  • Extended the workload protocol with replica and replacement information, plus a status query used during service handoffs. 8e5be9a, 5f6d5e2

  • Changed volume deletion to use durable lifecycle markers. The old volume removal event is no longer supported. 8256954

Fixed

  • Made split and merge operations recover after lost messages, restarts, and offline nodes. Returning nodes can retrieve the operation and move to their assigned cluster view. d89b948, 3efc84d

  • Added durable asynchronous submission for cluster operations. Commands return once the operation is queued, while --wait can be used to wait for its local completion. d8a0ce1

  • Improved convergence for queued and rapidly submitted cluster operations across split views. a662c2a

  • Protected transition keys and operation history until nodes have had enough time to recover them. Missing merge key data can also be repaired by another available key holder. f628ff9, 9cfe8d1

  • Improved service recovery after split and merge. Services now reconcile locally after a merge, wait for the new cluster view to settle, and preserve valid replacement tasks during handoff. dfa994b, c0216f5, 8e5be9a

  • Prevented stale writes from restoring a volume after it was deleted. Recreating a volume with the same name now starts a new generation that is isolated from older state. 8256954

  • Prevented late split progress from overwriting newer cluster names across views. a9df9e2

Performance and Convergence

  • Reduced replicated-state churn by skipping writes that do not change service progress, workloads, task specifications, scheduler state, or stored values. 9cd6187, 0484234, b3cbcec

  • Reduced synchronization work by requesting only changed key ranges and limiting the amount of repair work performed in each pass. 68cb340, d283451, 0c9dfbc

  • Improved workload repair by prioritizing nodes that hold the missing data while keeping repair hints bounded. 657e83f, ee1dab1

Install mantissa 0.3.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/MantissaLabs/mantissa/releases/download/v0.3.0/mantissa-installer.sh | sh

Download mantissa 0.3.0

File Platform Checksum
mantissa-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
mantissa-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo MantissaLabs/mantissa

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 08 Jul 11:34
v0.2.0
1ae3738

This release fixes critical node leave, convergence, and cleanup issues found after v0.1.0.

In v0.1.0, if a node left the cluster without first being drained, the control plane could keep stale state for that node. Survivors could continue trying to reschedule or communicate with the missing node, networking state and eBPF maps could remain stale, and the load-balancer could still point at replicas hosted by the node that left.

v0.2.0 fixes those abrupt leave paths. Draining before leaving is still the cleaner path because the leaving node can remove its own remaining runtime state, but an undrained leave should no longer break control-plane convergence.

This release also includes a breaking Cap'n Proto session-bootstrap protocol change for typed ticket and credential rejection classification. Mixed v0.1.0 and v0.2.0 clusters are not supported.

Upgrade with a hard cutover to that new version, or use v0.2.0 directly if you are just getting started with Mantissa.

Breaking Changes

  • Changed peer session bootstrap RPCs to return typed accepted/rejected results instead of surfacing expected membership/authentication refusals as generic Cap'n Proto errors. Rejections now carry stable codes for unknown tickets, unregistered peers, inactive local membership, invalid credentials, issuer mismatches, and unknown issuers. 72103e4

Fixed

  • Made node leave convergence idempotent. Duplicate leave tombstones delivered through direct broadcast, gossip, or anti-entropy no longer rewrite peer rows or perturb peer MST roots, while still allowing metadata repair and sync wakeups. 41fa553

  • Stopped registry session bootstrap for peers that have converged to left membership. Stale tickets are evicted when peers reject them as unknown, unregistered, or inactive. a9fb0d3

  • Quiesced cached registry contact paths after peer leave. Survivors now drop cached sessions/capabilities for left peers, and nodes that left stop reusing cached capabilities to surviving peers. c9a331c

  • Added retry backoff for repeated rejected session bootstrap attempts, reducing post-leave session churn while preserving cross-view metadata probes needed for split/merge convergence. 773580e

  • Fixed stale cluster node-count metadata after split/leave flows by ensuring replacement count records sort after the observed row they replace. f13e369

  • Tightened same-millisecond cluster node-count conflict resolution so survivor leave-derived counts can beat stale counts from peers that left. 773580e

  • Retired stale service tasks owned by left peers so cleanup no longer retries impossible remote stops forever after clean leave. 25912c4

  • Rescheduled service replicas away from nodes that explicitly left the cluster. e0f7c40

  • Retired network runtime rows for left peers, including peer-state and attachment rows, so replicated network state no longer keeps left nodes active. 359406c

  • Pruned stale Linux VXLAN FDB entries after peer leave by reading bridge-family FDB state and deleting obsolete forwarding entries. 0fad2ef

  • Preserved secret master-key reconciliation wakeups so split/merge adoption does not stall when the final required key row arrives while the reconciler is already busy. ef6beaf

  • Preserved rollout diagnostics when stale readiness waiters observe a restored / previous service generation after rollback. 486af62

Performance and Convergence

  • Coalesced immediate topology sync wakeups so bursty join/leave events do not spawn overlapping one-shot sync tasks. Additional wakeups during an active pass are folded into at most one follow-up pass. 0afa25e

  • Reused cached peer snapshots for member-count computation and published node-count rows. 0afa25e

Install mantissa 0.2.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/MantissaLabs/mantissa/releases/download/v0.2.0/mantissa-installer.sh | sh

Download mantissa 0.2.0

File Platform Checksum
mantissa-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
mantissa-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo MantissaLabs/mantissa

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 01 Jul 13:03
v0.1.0
7a4a0c6

Install mantissa 0.1.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/MantissaLabs/mantissa/releases/download/v0.1.0/mantissa-installer.sh | sh

Download mantissa 0.1.0

File Platform Checksum
mantissa-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
mantissa-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo MantissaLabs/mantissa

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>