Skip to content

test: add always-on JetStream integration gate - #2

Merged
ZhiXiao-Lin merged 3 commits into
mainfrom
codex/jetstream-ci-evidence
Jul 20, 2026
Merged

ZhiXiao-Lin merged 3 commits into
mainfrom
codex/jetstream-ci-evidence

Conversation

@ZhiXiao-Lin

Copy link
Copy Markdown
Contributor

Summary

  • add ordinary push and pull-request CI for formatting, strict Clippy, the feature matrix, rustdoc, and package verification
  • run the JetStream suite against the official NATS 2.11.8 image pinned by multi-architecture digest
  • make the integration entry point fail closed when JetStream is required, tighten delivery assertions, and prove redelivery after acknowledgement loss
  • fix defects exposed by the real gate: wildcard-safe durable consumer names and newest-first NATS history honoring limit
  • repair small pre-existing lint, rustdoc, and hanging-test blockers required for a green quality gate

Validation

  • cargo fmt --all -- --check
  • cargo clippy --all-targets --all-features -- -D warnings
  • cargo test --all-targets --all-features (196 unit, 29 memory integration)
  • cargo test --all-targets --no-default-features (131 unit)
  • RUSTDOCFLAGS="-D warnings" cargo doc --all-features --no-deps
  • RUSTDOCFLAGS="-D warnings" cargo test --doc --all-features (2 passed)
  • cargo package --allow-dirty
  • NATS Server 2.11.8 with A3S_EVENT_REQUIRE_NATS=1 cargo test --test nats_integration -- --nocapture --test-threads=1 (11 passed)

Issue scope

This is the first always-on JetStream evidence slice for #1. It intentionally does not close the issue: server/client restart, reconnect bounds, credential rotation, consumer-drift detection, poison-message/DLQ behavior, end-to-end metadata/schema behavior, and the full observability acceptance criteria remain for follow-up work.

Pinned image: nats:2.11.8-alpine@sha256:71092f77d707a4a81b12aca5096d6b2d2e07ad16aa57c84066940a17af74f61a.

@ZhiXiao-Lin

Copy link
Copy Markdown
Contributor Author

Review hardening added in the latest commit: JetStream history now scans the initial pending set in fixed 256-message pulls, keeps only the requested newest events, and applies one total request-timeout budget instead of sizing the client fetch buffer to the entire stream. The real JetStream ordering test now publishes 260 records so it crosses the batch boundary. Local all-feature tests (196 unit + 29 memory integration), strict Clippy, rustdoc, formatting, and diff checks pass; the hosted pinned-NATS job is the real-server evidence.

@ZhiXiao-Lin
ZhiXiao-Lin merged commit ec02e6b into main Jul 20, 2026
2 checks passed
@ZhiXiao-Lin
ZhiXiao-Lin deleted the codex/jetstream-ci-evidence branch July 20, 2026 04:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant