Two controllers could both act (issue 204), a reconcile's report could overtake the apply after it and the digest decided (issue 267), and a grant could make a second writer of a machine's report. - The lease (internal/lease, ADR 0229): mesh-controller_lease key `holder`, 15 s age, renewed every 5 s by compare-and-set; the epoch is the revision it was taken at. The gate is the clock (stops 3 s before expiry); a refused renewal is a loss and the process exits; a holder that stops gives it back. serve takes it before asserting the bus. Epochs kept in the store (migration 0068 controller_epoch) as a floor: a bucket raised from nothing is compacted past it. Unleased (no epoch, S12 urgent) only when nobody holds it and the bus will not let it be written. A shell command acts under the holder's epoch, or its own lease when none. - Declarations carry `epoch` inside the signed envelope, only to a machine whose latest account carried a report_sequence (mesh-host #35); would-send is composed with the epoch last sent. Allot and the send both pass the gate. - Reports: contract in internal/link/order.go (epoch, sequence, report_sequence, older_than, refused_older). Accounts kept by epoch, then sequence, then report sequence; older refused, counted; unordered reports keep the digest rule. Plans by compare-and-set on a revision, with epoch. Conditions and calls carry the epoch and are not written off the lease. - S12 and S13 (naming the writer by epoch) watched, D5 run; reset of the bucket said. Writers table compiled in and enforced in PermissionsFor; the controller no longer publishes mesh.control.>. A contract per consumed kind, and the empty-on-error lint over the repository. - mesh-host pinned to its main with the epoch in the validator (D1 validates the envelope as sent). Needs mesh-host's genesis lock with the lease grant (mesh-host PR) for TestTheInstallersFirstUserListIsWhatTheControllerWouldCompose.
87 lines
2.8 KiB
Plaintext
87 lines
2.8 KiB
Plaintext
# github.com/jackc/pgpassfile v1.0.0
|
|
## explicit; go 1.12
|
|
github.com/jackc/pgpassfile
|
|
# github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761
|
|
## explicit; go 1.14
|
|
github.com/jackc/pgservicefile
|
|
# github.com/jackc/pgx/v5 v5.10.0
|
|
## explicit; go 1.25.0
|
|
github.com/jackc/pgx/v5
|
|
github.com/jackc/pgx/v5/internal/iobufpool
|
|
github.com/jackc/pgx/v5/internal/pgio
|
|
github.com/jackc/pgx/v5/internal/sanitize
|
|
github.com/jackc/pgx/v5/internal/stmtcache
|
|
github.com/jackc/pgx/v5/pgconn
|
|
github.com/jackc/pgx/v5/pgconn/ctxwatch
|
|
github.com/jackc/pgx/v5/pgconn/internal/bgreader
|
|
github.com/jackc/pgx/v5/pgproto3
|
|
github.com/jackc/pgx/v5/pgtype
|
|
github.com/jackc/pgx/v5/pgxpool
|
|
# github.com/jackc/puddle/v2 v2.2.2
|
|
## explicit; go 1.19
|
|
github.com/jackc/puddle/v2
|
|
github.com/jackc/puddle/v2/internal/genstack
|
|
# github.com/klauspost/compress v1.20.0
|
|
## explicit; go 1.25
|
|
github.com/klauspost/compress/flate
|
|
github.com/klauspost/compress/internal/le
|
|
github.com/klauspost/compress/internal/regmask
|
|
# github.com/nats-io/nats.go v1.54.0
|
|
## explicit; go 1.26.0
|
|
github.com/nats-io/nats.go
|
|
github.com/nats-io/nats.go/encoders/builtin
|
|
github.com/nats-io/nats.go/internal/parser
|
|
github.com/nats-io/nats.go/internal/syncx
|
|
github.com/nats-io/nats.go/jetstream
|
|
github.com/nats-io/nats.go/micro
|
|
github.com/nats-io/nats.go/util
|
|
# github.com/nats-io/nkeys v0.4.16
|
|
## explicit; go 1.25.0
|
|
github.com/nats-io/nkeys
|
|
# github.com/nats-io/nuid v1.0.1
|
|
## explicit
|
|
github.com/nats-io/nuid
|
|
# github.com/novox/mesh-host v0.0.0 => git.novox.be/novox/mesh-host v0.0.0-20261006095519-3e80b7ae325e
|
|
## explicit; go 1.26.0
|
|
github.com/novox/mesh-host/internal/declaration
|
|
github.com/novox/mesh-host/validate
|
|
# golang.org/x/crypto v0.57.0
|
|
## explicit; go 1.26.0
|
|
golang.org/x/crypto/acme
|
|
golang.org/x/crypto/acme/autocert
|
|
golang.org/x/crypto/bcrypt
|
|
golang.org/x/crypto/blake2b
|
|
golang.org/x/crypto/blowfish
|
|
golang.org/x/crypto/curve25519
|
|
golang.org/x/crypto/internal/alias
|
|
golang.org/x/crypto/internal/poly1305
|
|
golang.org/x/crypto/nacl/box
|
|
golang.org/x/crypto/nacl/secretbox
|
|
golang.org/x/crypto/salsa20/salsa
|
|
# golang.org/x/net v0.58.0
|
|
## explicit; go 1.25.0
|
|
golang.org/x/net/dns/dnsmessage
|
|
golang.org/x/net/idna
|
|
# golang.org/x/sync v0.23.0
|
|
## explicit; go 1.26.0
|
|
golang.org/x/sync/semaphore
|
|
# golang.org/x/sys v0.48.0
|
|
## explicit; go 1.26.0
|
|
golang.org/x/sys/cpu
|
|
# golang.org/x/text v0.42.0
|
|
## explicit; go 1.26.0
|
|
golang.org/x/text/cases
|
|
golang.org/x/text/internal
|
|
golang.org/x/text/internal/language
|
|
golang.org/x/text/internal/language/compact
|
|
golang.org/x/text/internal/tag
|
|
golang.org/x/text/language
|
|
golang.org/x/text/runes
|
|
golang.org/x/text/secure/bidirule
|
|
golang.org/x/text/secure/precis
|
|
golang.org/x/text/transform
|
|
golang.org/x/text/unicode/bidi
|
|
golang.org/x/text/unicode/norm
|
|
golang.org/x/text/width
|
|
# github.com/novox/mesh-host => git.novox.be/novox/mesh-host v0.0.0-20261006095519-3e80b7ae325e
|