Merge remote-tracking branch 'origin/main' into slice-1-webrtc-loopback
# Conflicts: # README.md
This commit is contained in:
52
README.md
52
README.md
@@ -8,47 +8,35 @@ or its architecture.
|
||||
> technical builder uses to stand up a contact center* — and re-aims it at a category AI is
|
||||
> actively disrupting, instead of a PBX category UCaaS already ate.
|
||||
|
||||
## Slice 1 dev loop (WebRTC media loopback)
|
||||
|
||||
> Build prerequisite: install libopus (the `opus` crate links it via FFI):
|
||||
> ```bash
|
||||
> sudo apt-get install -y libopus-dev # Debian/Ubuntu
|
||||
> # Fedora: sudo dnf install -y opus-devel
|
||||
> # macOS: brew install opus
|
||||
> ```
|
||||
> This is the one system dependency in slice 1. Opus is FFI per PORT_PLAN
|
||||
> §7's "🦀 Core (FFI)" disposition — the codec surface Rust doesn't need
|
||||
> to re-implement.
|
||||
|
||||
Run the server:
|
||||
## Quickstart
|
||||
|
||||
```bash
|
||||
# Prereqs: Rust (rustup), libopus dev headers (libopus-dev / opus-devel / brew install opus)
|
||||
cargo run
|
||||
# listening on http://0.0.0.0:8080
|
||||
```
|
||||
|
||||
Open a browser to `http://localhost:8080/`, click "Start call", grant
|
||||
microphone permission. Speak — you should hear yourself back within
|
||||
~200 ms (no perceptible delay). Click "Hang up" to tear down; server
|
||||
logs `Closing → Closed`.
|
||||
Open <http://localhost:8080/> → click "Start call" → grant mic → hear yourself echo.
|
||||
Full walkthrough + troubleshooting: **[`docs/QUICKSTART.md`](docs/QUICKSTART.md)**.
|
||||
|
||||
Verbose tracing:
|
||||
> **Status:** Slice 1 (WebRTC media loopback) is the active build target. The workspace is
|
||||
> landing task-by-task on the `slice-1-webrtc-loopback` branch. Design:
|
||||
> [`docs/superpowers/specs/2026-06-28-slice-1-webrtc-loopback-design.md`](docs/superpowers/specs/2026-06-28-slice-1-webrtc-loopback-design.md).
|
||||
> Implementation plan:
|
||||
> [`docs/superpowers/plans/2026-06-28-slice-1-webrtc-loopback.md`](docs/superpowers/plans/2026-06-28-slice-1-webrtc-loopback.md).
|
||||
|
||||
```bash
|
||||
RUST_LOG=rutster=debug cargo run
|
||||
```
|
||||
## Documentation
|
||||
|
||||
### Slice 1 "done" checklist (spec §6.5)
|
||||
|
||||
On a clean checkout:
|
||||
1. `cargo test --all` passes.
|
||||
2. `cargo fmt --check` passes.
|
||||
3. `cargo clippy -- -D warnings` passes.
|
||||
4. `cargo deny check` passes.
|
||||
5. `cargo run` + browser manual e2e: speak → hear echo within ~200 ms.
|
||||
6. Hang-up button triggers `Closing → Closed` in server logs.
|
||||
7. Every stub crate compiles; its doc-comment names its scheduled step.
|
||||
8. `LEARNING.md` indexes at least 5 "to learn X, read Y" pointers.
|
||||
| Doc | For when you want to… |
|
||||
|---|---|
|
||||
| [`docs/QUICKSTART.md`](docs/QUICKSTART.md) | Run it in 5 minutes |
|
||||
| [`docs/DEVELOPMENT.md`](docs/DEVELOPMENT.md) | Iterate on the codebase (workspace layout, per-crate testing, dev loop) |
|
||||
| [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) | Understand the fused per-call vertical + composable platform + agent tap |
|
||||
| [`docs/PORT_PLAN.md`](docs/PORT_PLAN.md) | See every Asterisk subsystem mapped to a disposition (capability checklist, not template) |
|
||||
| [`docs/adr/`](docs/adr/) | Load-bearing architecture decisions |
|
||||
| [`AGENTS.md`](AGENTS.md) | Project orientation for any agent (human/AI/hybrid) working in the repo |
|
||||
| [`CONTRIBUTING.md`](CONTRIBUTING.md) | Trunk-based dev workflow, CI gates, commit style, review checklist |
|
||||
| [`LEARNING.md`](LEARNING.md) | Index of "to learn concept X, read file Y" (learner-facing codebase) |
|
||||
|
||||
## Why it exists
|
||||
|
||||
|
||||
Reference in New Issue
Block a user