erebyx-sdk 0.1.1

Rust SDK for EREBYX — persistent AI memory across every AI you use. Encrypted in transit (TLS 1.3) and at rest with envelope encryption (server-held master KEK at v0.1.1); per-user zero-knowledge encryption in v0.2.
Documentation
# Contributing to erebyx-sdk

Thanks for your interest. The Rust SDK is a thin client over the EREBYX memory substrate — pull requests for ergonomics, retries, observability, and platform compatibility are welcome.

By contributing, you agree your contributions are licensed under [Apache-2.0](LICENSE-APACHE-2.0).

---

## Sign-off (DCO)

Every commit must be signed off using the [Developer Certificate of Origin](https://developercertificate.org/):

```bash
git commit -s -m "your message"
```

The DCO bot will block PRs without sign-off.

---

## Local dev setup

```bash
git clone https://github.com/ProjectErebyx/erebyx-sdk.git
cd erebyx-sdk
cargo build
cargo test
```

Required toolchain:
- Rust 1.75 or later (`rustup install stable`)
- `cargo fmt` + `cargo clippy` components

---

## Test commands

```bash
cargo test                                                    # unit + integration (uses wiremock)
cargo fmt --check                                             # formatting
cargo clippy --all-targets --all-features -- -D warnings      # lint (zero warnings)
cargo doc --no-deps                                           # confirm docs build
```

All four must pass before a PR is reviewed.

---

## Commit conventions

Follow [Conventional Commits](https://www.conventionalcommits.org/):

```
feat(client): add streaming search
fix(circuit): reset breaker on first success after half-open probe
docs(readme): clarify hint semantics
chore(deps): bump reqwest to 0.12.5
```

Types we use: `feat`, `fix`, `docs`, `chore`, `refactor`, `test`, `perf`.

Subject in imperative mood, ≤72 chars. Body explains *why*, not *what*.

---

## Pull request template

When you open a PR, include:

1. **What changed** — one paragraph
2. **Why** — the user-visible problem this fixes
3. **How verified**`cargo test` output, sample program, repro steps
4. **Risk surface** — backward-compat / breaking-change assessment for the public API

Public-API changes (`lib.rs`, `types.rs`, `error.rs`) require an extra reviewer.

---

## Scope

The SDK surfaces the v0.1.1 cognitive verbs: `restore_identity`, `load_context`, `save`, `search`, `wrap_up`. All EREBYX processing — memory understanding, recall, organization, encryption — lives in the closed-source `erebyx-os` engine. Client-side issues — connection handling, error types, builder ergonomics, async behavior, `X-Erebyx-Hint` parsing, circuit breaker tuning — are in scope here.

Out of scope: anything that would require a substrate change. File those as issues on `erebyx-os` instead.

---

## Bug reports

Open a [GitHub Issue](https://github.com/ProjectErebyx/erebyx-sdk/issues). Include:

- `cargo --version` + Rust version
- OS + target triple
- `erebyx-sdk` version
- Minimum reproducer (a `main.rs` we can `cargo run`)
- Full error output

---

## Security disclosures

Don't open public issues for security findings. See [SECURITY.md](SECURITY.md).

---

**Built by EREBYX, LLC** — `https://erebyx.com`