Your browser sucks, JavaScript disabled! Gunnar's console needs JavaScript and WebAssembly. Git over SSH on port 2222 does not.

nordisk/gunnar

crates/gunnar-repair/Cargo.toml

[package]
name = "gunnar-repair"
description = "The ONE implementation of gunnar's repair verbs — review_twin, recharge_from_twin, adopt_twin, fence_primary — and of the signed repair order an estate pulls from monetize"
readme = "README.md"
# 2.0.0 (2026-10-26, lane GUN-INSTALL / G-BOTH, the R5C publish): master differs from crates.io, so
# it gets its own version; a major: A28 M11 removed the order check (verify_order, accept_order,
# order_message, the `verify` feature) and M12 the vendored fleet module (cargo-semver-checks).
version = "4.0.0"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
# On the `cargo install gunnar` chain (owner order 2026-10-22).
publish = true
authors.workspace = true
repository.workspace = true

# Three callers, one code path (owner 2026-10-10, 5.4 resilience): the estate's
# boot check and order executor (gunnar-server), the local admin console
# (gunnar-ui-server, by path) and the CLI. monetize never runs a verb: it queues a
# signed order the estate pulls (`order`).
#
# The default build is PURE (serde only, no I/O, no tokio): the review, the
# refusals and the order's canonical form, so the wasm guest can link it too.
[features]
default = []
# The async pump and the verb orchestration over host traits (no runtime of its own).
pump = []
# Generic tonic helpers: the poison codec and the Bootstrap.Restore call.
grpc = ["pump", "dep:tonic", "dep:tonic-prost", "dep:prost", "dep:tokio", "dep:tokio-stream"]
# The adapters over gunnar's own generated clients (gunnar-proto + the one
# credential signer), for gunnar-cli and gunnar-server.
proto = ["grpc", "dep:gunnar-proto", "dep:gunnar-grpc", "dep:ssh-key"]
# The estate side of monetize's pull channel (`monetize.v1.Fleet`): the SHARED box pump
# (monetize-estate-side `pump`: the box key, the signed calls, the order check, the
# puller, the wire client) with gunnar's executor as its `PumpBox` (`fleet::GunnarBox`).
# No proto of its own (A28 M12): the wire is monetize-proto's.
fleet = ["grpc", "dep:monetize-estate-side", "dep:monetize-embed", "dep:monetize-proto"]

[dependencies]
serde = { workspace = true }
serde_json = { workspace = true }
tonic = { version = "0.14", default-features = false, features = ["codegen"], optional = true }
tonic-prost = { version = "0.14", optional = true }
prost = { version = "0.14", optional = true }
tokio = { version = "1", default-features = false, features = ["sync", "rt", "time"], optional = true }
tokio-stream = { version = "0.1", optional = true }
gunnar-proto = { workspace = true, optional = true }
gunnar-grpc = { workspace = true, optional = true }
ssh-key = { workspace = true, optional = true }
# **The shared box pump** (monetize 0.3.0, A3 2026-10-26; the H20 unblock; M12 2026-10-26):
# Holger's pump since P4a, `monetize_estate_side::pump` on monetize-proto's `Fleet`. gunnar-repair
# writes only its `PumpBox` (`fleet::GunnarBox`); the signed forms are monetize-embed's and the
# wire is monetize-proto's (the vendored proto/fleet.proto and build.rs are gone).
monetize-estate-side = { version = "0.3.0", default-features = false, features = ["pump"], optional = true }
monetize-embed = { version = "0.3.0", optional = true }
monetize-proto = { version = "0.3.0", optional = true }

[dev-dependencies]
tokio = { version = "1", features = ["macros", "rt-multi-thread", "sync", "time"] }
ed25519-dalek = "3"