24213 Commits
Author SHA1 Message Date
0dd334f3f4 embed: public in-process NATS+JetStream embedding surface for cloud (#24)
Add package embed — the ONE public surface for folding the Hanzo PubSub core
data plane (NATS + JetStream) into a host binary (hanzoai/cloud, HIP-0106),
mirroring iam/kms/tasks. Open() builds server.NewServer with JetStream on and
NoSigs (host owns signals), waits ReadyForConnections, and returns a handle with
ClientURL/NATS/Shutdown. Imports ONLY the self-contained, luxfi-free server
package — the same core the standalone pubsub deployment runs in prod
(--jetstream --store_dir, no consensus flags) — so a host compiles it cleanly
against its own dep set. Single-node JetStream over the file store: no
ZooKeeper/raft/etcd. The optional Quasar PQ + zapdb control plane stays in
package main (its internal/consensus adapter is pinned to the legacy
luxfi/consensus v1.22 API and is a follow-up to migrate before embedding).

Test proves a client round-trips core NATS and persists a JetStream publish.

Co-authored-by: Hanzo Dev <dev@hanzo.ai>
v2.15.1
2026-07-07 14:08:21 -07:00
zeekayandClaude Opus 4.8 1e3551982f reconcile: merge fix/consensus-bump-corona build fixes (gsl/standalone imports, raft, consensus v1.25.17 bump, OSS LICENSE/NOTICE) into main; keep self-hosted CI + brand
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
v2.15.0
2026-06-30 16:17:14 -07:00
z 86c63f411a docs(brand): add hero banner 2026-06-28 20:17:14 -07:00
z d587c0db4b chore(brand): dynamic hero banner 2026-06-28 20:17:13 -07:00
zeekay e67a5dad02 chore: restore upstream attribution + NOTICE (OSS compliance) 2026-06-21 02:14:42 -07:00
cf2937abbb ci: run on self-hosted ARC pool (hanzo-build-linux-amd64/deploy), not GitHub-hosted (#23)
Co-authored-by: zeekay <z@hanzo.ai>
2026-06-19 20:37:53 -07:00
Antje Worring ef369da19f docs: tidy LLM.md content (remove heading prefix) 2026-06-19 17:46:09 -07:00
zeekay 97cdcb9b2a pubsub: bump consensus, Corona→Corona field, fix raft
- Bump github.com/luxfi/consensus v1.22.84 → v1.25.17 (go mod tidy clean).
- Migrate internal/consensus to current quasar API: QuasarHybridConsensus→Quasar,
  HybridSignature→QuasarSig, NewQuasarHybridConsensus→NewQuasar,
  VerifyHybridSignature→VerifyQuasarSig. Signature field is .Corona (no Corona).
  Route threshold<2 (single-node/dev) to NewTestQuasar, >=2 to NewQuasar (BFT),
  matching upstream's two-constructor production-vs-test split.
- Repair botched upstream merge in server/: restore corrupted files from the
  upstream merge parent with Hanzo import paths preserved. Fixes RaftNodeCheckpoint
  redeclaration, undefined gsl/standalone/numLimitableConsumers, dropped consumer
  ack-format fields, resetStartingSeq arity, filestore IntersectGSL bool callbacks
  and fetchMsgNoCopyLocked, jetstream_cluster creatingRaftGroups/wca.State.

go build ./... green; internal tests pass.
2026-06-11 13:08:07 -07:00
zeekay 459f86a40e ringtail→corona: academic Ringtail now only in lp-220-p3q-corona 2026-06-11 10:25:58 -07:00
zeekay c5b8642425 corona→corona: academic Corona now only in lp-220-p3q-corona 2026-06-11 10:25:58 -07:00
Hanzo AI ff34d4a166 deps: bump Go to 1.26.4 across go.mod, Dockerfiles, GH Actions
Workspace-wide sync. luxfi/node already shipped on 1.26.4 in v1.30.6
(commit 121aca1fa9); this is the cross-repo catch-up.
2026-06-07 12:20:25 -07:00
Hanzo AI 30a5153086 deps: bump Go to 1.26.4 across go.mod, Dockerfiles, GH Actions
Workspace-wide sync. luxfi/node already shipped on 1.26.4 in v1.30.6
(commit 121aca1fa9); this is the cross-repo catch-up.
2026-06-07 12:20:25 -07:00
Hanzo DevandGitHub 9a7dd4c35e Merge pull request #2 from hanzoai/dependabot/github_actions/golangci/golangci-lint-action-9.2.0
Bump golangci/golangci-lint-action from 7.0.0 to 9.2.1
2026-06-04 01:33:39 -07:00
Hanzo DevandGitHub f7cb15fee3 Merge pull request #2 from hanzoai/dependabot/github_actions/golangci/golangci-lint-action-9.2.0
Bump golangci/golangci-lint-action from 7.0.0 to 9.2.1
2026-06-04 01:33:39 -07:00
Hanzo DevandGitHub 42d4b1afa9 Merge pull request #19 from hanzoai/dependabot/github_actions/anchore/sbom-action-0.23.1
Bump anchore/sbom-action from 0.22.2 to 0.24.0
2026-06-04 01:32:05 -07:00
Hanzo DevandGitHub 10dc77e58d Merge pull request #19 from hanzoai/dependabot/github_actions/anchore/sbom-action-0.23.1
Bump anchore/sbom-action from 0.22.2 to 0.24.0
2026-06-04 01:32:05 -07:00
dependabot[bot]andGitHub d244a59c77 Bump golangci/golangci-lint-action from 7.0.0 to 9.2.1
Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 7.0.0 to 9.2.1.
- [Release notes](https://github.com/golangci/golangci-lint-action/releases)
- [Commits](https://github.com/golangci/golangci-lint-action/compare/1481404843c368bc19ca9406f87d6e0fc97bdcfd...82606bf257cbaff209d206a39f5134f0cfbfd2ee)

---
updated-dependencies:
- dependency-name: golangci/golangci-lint-action
  dependency-version: 9.2.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-04 08:13:21 +00:00
dependabot[bot]andGitHub a9ebe6a7bb Bump golangci/golangci-lint-action from 7.0.0 to 9.2.1
Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 7.0.0 to 9.2.1.
- [Release notes](https://github.com/golangci/golangci-lint-action/releases)
- [Commits](https://github.com/golangci/golangci-lint-action/compare/1481404843c368bc19ca9406f87d6e0fc97bdcfd...82606bf257cbaff209d206a39f5134f0cfbfd2ee)

---
updated-dependencies:
- dependency-name: golangci/golangci-lint-action
  dependency-version: 9.2.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-04 08:13:21 +00:00
dependabot[bot]andGitHub 124e0ae791 Bump anchore/sbom-action from 0.22.2 to 0.24.0
Bumps [anchore/sbom-action](https://github.com/anchore/sbom-action) from 0.22.2 to 0.24.0.
- [Release notes](https://github.com/anchore/sbom-action/releases)
- [Changelog](https://github.com/anchore/sbom-action/blob/main/RELEASE.md)
- [Commits](https://github.com/anchore/sbom-action/compare/28d71544de8eaf1b958d335707167c5f783590ad...e22c389904149dbc22b58101806040fa8d37a610)

---
updated-dependencies:
- dependency-name: anchore/sbom-action
  dependency-version: 0.23.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-04 08:04:12 +00:00
dependabot[bot]andGitHub 198209389d Bump anchore/sbom-action from 0.22.2 to 0.24.0
Bumps [anchore/sbom-action](https://github.com/anchore/sbom-action) from 0.22.2 to 0.24.0.
- [Release notes](https://github.com/anchore/sbom-action/releases)
- [Changelog](https://github.com/anchore/sbom-action/blob/main/RELEASE.md)
- [Commits](https://github.com/anchore/sbom-action/compare/28d71544de8eaf1b958d335707167c5f783590ad...e22c389904149dbc22b58101806040fa8d37a610)

---
updated-dependencies:
- dependency-name: anchore/sbom-action
  dependency-version: 0.23.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-04 08:04:12 +00:00
Hanzo DevandGitHub 3e1265f6eb Merge pull request #11 from hanzoai/dependabot/github_actions/goreleaser/goreleaser-action-7
Bump goreleaser/goreleaser-action from 6 to 7
2026-06-03 13:16:45 -07:00
Hanzo DevandGitHub 92c1abe5eb Merge pull request #11 from hanzoai/dependabot/github_actions/goreleaser/goreleaser-action-7
Bump goreleaser/goreleaser-action from 6 to 7
2026-06-03 13:16:45 -07:00
Hanzo DevandGitHub 5b8045da29 Merge pull request #21 from hanzoai/dependabot/go_modules/github.com/nats-io/nats.go-1.50.0
Bump github.com/nats-io/nats.go from 1.48.0 to 1.50.0
2026-06-03 13:11:46 -07:00
Hanzo DevandGitHub 6202e9785e Merge pull request #21 from hanzoai/dependabot/go_modules/github.com/nats-io/nats.go-1.50.0
Bump github.com/nats-io/nats.go from 1.48.0 to 1.50.0
2026-06-03 13:11:46 -07:00
Hanzo AI a8c0cb8cb1 merge: upstream/main (preserve Hanzo brand, 753 commits) 2026-06-02 10:00:33 -07:00
Hanzo AI b5c8ffbb98 merge: upstream/main (preserve Hanzo brand, 753 commits) 2026-06-02 10:00:33 -07:00
NeilandGitHub 050df88d3f Update dependencies (#8259) 2026-06-02 15:40:46 +01:00
NeilandGitHub 965f0aa89d Update dependencies (#8259) 2026-06-02 15:40:46 +01:00
Neil Twigg f47d5a4872 Update dependencies
Signed-off-by: Neil Twigg <neil@nats.io>
2026-06-02 14:54:56 +01:00
Neil Twigg 7a7177ba1f Update dependencies
Signed-off-by: Neil Twigg <neil@nats.io>
2026-06-02 14:54:56 +01:00
NeilandGitHub e65972c73d [FIXED] Peer set desync/re-add after stream peer-remove (#8258)
An online server that gets peer-removed could automatically be re-added
to the group, since it can still respond to the leader via heartbeats,
etc. if it didn't process the meta assignment update yet.
2026-06-02 14:43:07 +01:00
NeilandGitHub 082e372def [FIXED] Peer set desync/re-add after stream peer-remove (#8258)
An online server that gets peer-removed could automatically be re-added
to the group, since it can still respond to the leader via heartbeats,
etc. if it didn't process the meta assignment update yet.
2026-06-02 14:43:07 +01:00
Maurice van Veen d80b2da1fd [FIXED] Peer set desync/re-add after stream peer-remove
Signed-off-by: Maurice van Veen <github@mauricevanveen.com>
2026-06-02 14:56:14 +02:00
Maurice van Veen 28ab325202 [FIXED] Peer set desync/re-add after stream peer-remove
Signed-off-by: Maurice van Veen <github@mauricevanveen.com>
2026-06-02 14:56:14 +02:00
NeilandGitHub 88d8da7e9a De-flake TestJetStreamConsumerPrioritized (#8255) 2026-06-02 10:19:10 +01:00
NeilandGitHub c88195d0e4 De-flake TestJetStreamConsumerPrioritized (#8255) 2026-06-02 10:19:10 +01:00
NeilandGitHub ce1ec22319 [FIXED] Filestore only stores last block when MaxMsgsPerSubject 1 (#8254)
Commit
https://github.com/nats-io/nats-server/commit/f8656fe8ea5472e7be24435017e5c7b4a27a174a
removed the `info.fblk = info.lblk` which was done by default when
hitting `info.total == 1`. This is correct, since if you'd remove the
last message in the last block, you wouldn't be able to find the first
message in the first block.

In 2.14 this fix was included with
https://github.com/nats-io/nats-server/commit/08275d90cfb844a148571e913ff7d3fc62e16a9e,
which ensures both `fblk` and `lblk` are stored in the `index.db` file.
However, since this fix was not included since 2.12.7, this had a
side-effect that the stale `fblk` was always included in `index.db`,
without it being changed to reflect latest writes (which the previous
`info.fblk = info.lblk` was in essence hiding). That would result in not
being able to find certain messages if not being written to frequently,
after a server restart that recovers from this stale index. This PR
returns that check, but only does so if `MaxMsgsPerSubject: 1`, since
only then can we be sure to do that optimization.

Also fix a bug where an update from `MaxMsgsPerSubject: -1` to `1` was
not enforced during the update.
2026-06-02 09:46:44 +01:00
NeilandGitHub 811a3e661b [FIXED] Filestore only stores last block when MaxMsgsPerSubject 1 (#8254)
Commit
https://github.com/nats-io/nats-server/commit/7efb12612b779497153a897b443c65c1cdaffcb4
removed the `info.fblk = info.lblk` which was done by default when
hitting `info.total == 1`. This is correct, since if you'd remove the
last message in the last block, you wouldn't be able to find the first
message in the first block.

In 2.14 this fix was included with
https://github.com/nats-io/nats-server/commit/52fd51af6d756cbbc630a29ca0ce820b9e25113b,
which ensures both `fblk` and `lblk` are stored in the `index.db` file.
However, since this fix was not included since 2.12.7, this had a
side-effect that the stale `fblk` was always included in `index.db`,
without it being changed to reflect latest writes (which the previous
`info.fblk = info.lblk` was in essence hiding). That would result in not
being able to find certain messages if not being written to frequently,
after a server restart that recovers from this stale index. This PR
returns that check, but only does so if `MaxMsgsPerSubject: 1`, since
only then can we be sure to do that optimization.

Also fix a bug where an update from `MaxMsgsPerSubject: -1` to `1` was
not enforced during the update.
2026-06-02 09:46:44 +01:00
Maurice van Veen 318f6d57ca De-flake TestJetStreamConsumerPrioritized
Signed-off-by: Maurice van Veen <github@mauricevanveen.com>
2026-06-02 10:39:40 +02:00
Maurice van Veen d97aa3e40e De-flake TestJetStreamConsumerPrioritized
Signed-off-by: Maurice van Veen <github@mauricevanveen.com>
2026-06-02 10:39:40 +02:00
NeilandGitHub 6c6a79b9a4 [FIXED] Stream and consumer scale down consistency (#8253)
Fix two inconsistent scale down paths:
- A stream scale down would only select online peers, producing fewer
peers if some replicas were offline.
- A consumer scale down would only scale down to the "last N" peers
where N is the replica count to scale down to. This didn't take offline
servers into account, so could scale down such that there is no quorum
for the consumer to continue.

Both paths now: keep the current leader (if possible), prefer online
peers, fall back to offline peers.
2026-06-02 09:36:26 +01:00
NeilandGitHub e88541e9fa [FIXED] Stream and consumer scale down consistency (#8253)
Fix two inconsistent scale down paths:
- A stream scale down would only select online peers, producing fewer
peers if some replicas were offline.
- A consumer scale down would only scale down to the "last N" peers
where N is the replica count to scale down to. This didn't take offline
servers into account, so could scale down such that there is no quorum
for the consumer to continue.

Both paths now: keep the current leader (if possible), prefer online
peers, fall back to offline peers.
2026-06-02 09:36:26 +01:00
Maurice van Veen c9c7f4dfc4 [FIXED] Initial MaxMsgsPerSubject update not enforced
Signed-off-by: Maurice van Veen <github@mauricevanveen.com>
2026-06-02 10:04:03 +02:00
Maurice van Veen a5a0ce5ecd [FIXED] Initial MaxMsgsPerSubject update not enforced
Signed-off-by: Maurice van Veen <github@mauricevanveen.com>
2026-06-02 10:04:03 +02:00
Maurice van Veen f063bc4ecb [FIXED] Filestore only stores last block when MaxMsgsPerSubject 1
Signed-off-by: Maurice van Veen <github@mauricevanveen.com>
2026-06-02 10:04:02 +02:00
Maurice van Veen 67a3be7195 [FIXED] Filestore only stores last block when MaxMsgsPerSubject 1
Signed-off-by: Maurice van Veen <github@mauricevanveen.com>
2026-06-02 10:04:02 +02:00
Maurice van Veen 595832db00 (2.14) [IMPROVED] Remove redundant error check in filestore
Signed-off-by: Maurice van Veen <github@mauricevanveen.com>
2026-06-02 09:17:04 +02:00
Maurice van Veen 835ef3e8dc (2.14) [IMPROVED] Remove redundant error check in filestore
Signed-off-by: Maurice van Veen <github@mauricevanveen.com>
2026-06-02 09:17:04 +02:00
Hanzo AI 7b5cf97ffb merge: ci/canonical-docker-build-1776995843 (-X theirs) 2026-06-01 18:10:33 -07:00
Hanzo AI 9819baa376 merge: ci/canonical-docker-build-1776995843 (-X theirs) 2026-06-01 18:10:33 -07:00