agent-phone 0.1.0

Minimal sync RPC between two AI agents (Rust port of @p-vbordei/agent-phone). Self-custody keys, Noise-framework handshake, DID-bound WebSocket.
Documentation
# Contributing to agent-phone (Rust)

Thanks for your interest. This port exists to track the [TypeScript reference](https://github.com/p-vbordei/agent-phone). The most useful contributions are bug fixes, conformance tightening, and documentation improvements that keep the port in lockstep with the spec.

## Getting set up

```bash
git clone https://github.com/p-vbordei/agent-phone-rs
cd agent-phone-rs
cargo test
cargo fmt --all -- --check
cargo clippy --all-targets --all-features -- -D warnings
```

The full test suite (21 tests across 6 files + 1 doctest harness) runs in under a second.

## Wire-format contract — read this first

Any change to `src/noise.rs`, `src/frame.rs`, or `src/envelope.rs` **must** keep `c4_frame_determinism` passing. That test reads `vectors/c4.json`, which is the shared hex vector pinned by the [TS conformance suite](https://github.com/p-vbordei/agent-phone/tree/main/conformance). If you change byte-level behaviour, you've broken interop with every other port — open an issue first so the spec can move with you.

Same goes for the Ed25519→X25519 derivation in `src/did.rs`. The construction is `SHA-512(seed)[0..32]` + RFC 7748 clamp; this is *not* HKDF, *not* BIP-32. See [docs/architecture.md](docs/architecture.md) for why.

## Filing issues

Useful issue reports include:
- A failing `cargo test` invocation, ideally one that fits in a single `#[tokio::test]`.
- The TS reference's behaviour on the same input (link to a TS test or `bun examples/demo.ts` output).
- Rust toolchain version (`rustc --version`) and OS.

## Pull requests

- Run `cargo fmt`, `cargo clippy --all-targets --all-features -- -D warnings`, and `cargo test` locally before opening.
- Keep diffs focused. Cross-cutting refactors are easier to review (and easier to mirror to the Python port) as separate PRs.
- New features need a test. Behavioural changes need both a test and a `CHANGELOG.md` entry.
- Be ready to mirror anything substantive to [`agent-phone-py`]https://github.com/p-vbordei/agent-phone-py.

## License

By contributing you agree your contributions are licensed under Apache-2.0, matching the rest of the project.