docs: add build/manual-testing guide, fix stale M0 stub claims in headers
- docs/building.md: explains what each CMake preset (dev, m1-dev, m2-dev, server-release) is actually for, and how to build voicecat-server + vccli for manual testing. Linked from CLAUDE.md's doc index. - core/include/voicecat.h, core/src/voicecat.cpp, core/src/protocol/protocol.h, server/src/main.cpp: doc-header comments still claimed M0-skeleton/stub behavior (VC_ERR_NOT_IMPLEMENTED everywhere, "prints what it would do", protobuf codegen "commented") that M1-M3 made real. Updated to describe current behavior, with the dev-preset stub fallback noted explicitly where it still applies.
This commit is contained in:
@@ -8,8 +8,13 @@
|
||||
* Design: docs/architecture.md §4. Everything here is async + event-driven — calls return
|
||||
* immediately and results/state changes arrive via the vc_callbacks.on_event callback.
|
||||
*
|
||||
* STATUS: M0 skeleton. Implementations live in core/src and currently return
|
||||
* VC_ERR_NOT_IMPLEMENTED. The shapes below are the contract to build against.
|
||||
* STATUS: real, behind VOICECAT_HAS_NET (the `m1-dev`/`server-release` presets — vcpkg deps
|
||||
* on; see docs/building.md). As of M3, control plane, voice, multi-stream, device
|
||||
* enumeration, VAD/PTT, and stereo playback all work for real via core/src/core/client.cpp.
|
||||
* The no-deps `dev` preset still links a stub vc_client that returns VC_ERR_NOT_IMPLEMENTED
|
||||
* for everything below `connect`, purely to keep that skeleton build green. webrtc AEC/NS/AGC
|
||||
* remains an inert passthrough regardless of preset (no Windows/MSVC port upstream —
|
||||
* docs/voice.md §8/§11, PROGRESS.md).
|
||||
*/
|
||||
#ifndef VOICECAT_H
|
||||
#define VOICECAT_H
|
||||
|
||||
@@ -6,7 +6,10 @@
|
||||
* request_id ↔ response, and dispatches to handlers. Media frames do NOT come through here
|
||||
* (they use the fixed binary header in voice.md §2).
|
||||
*
|
||||
* STATUS: M0 stub — protobuf codegen is wired in CMake (commented) and turned on in M1.
|
||||
* STATUS: real. Protobuf codegen is on (core/CMakeLists.txt) for VOICECAT_HAS_NET builds
|
||||
* (`m1-dev`/`server-release`); FrameCodec below is fully implemented and used by both the
|
||||
* client (net/transport.h) and the server (conn_session.cpp). See protocol/envelope.h for the
|
||||
* Envelope-level encode/decode that sits on top of this.
|
||||
*/
|
||||
#ifndef VOICECAT_PROTOCOL_PROTOCOL_H
|
||||
#define VOICECAT_PROTOCOL_PROTOCOL_H
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
/*
|
||||
* voicecat.cpp — C ABI implementation (M0 skeleton).
|
||||
* voicecat.cpp — C ABI implementation.
|
||||
*
|
||||
* Lifecycle (create/destroy) and trivial accessors are real. Everything that needs a
|
||||
* subsystem (net/crypto/codec/protocol/session/audio) returns VC_ERR_NOT_IMPLEMENTED for
|
||||
* now and is the work of M1+ (see AGENTS.md / docs/roadmap.md).
|
||||
* Lifecycle (create/destroy) and trivial accessors are always real. Everything else below
|
||||
* just delegates to vc_client (core/src/core/client.cpp): under VOICECAT_HAS_NET
|
||||
* (`m1-dev`/`server-release` — see docs/building.md) that's the real M1–M3 implementation;
|
||||
* under the no-deps `dev` preset, client.cpp's `#else` branch returns VC_ERR_NOT_IMPLEMENTED
|
||||
* for all of it, to keep that skeleton build green.
|
||||
*/
|
||||
#include "voicecat.h"
|
||||
|
||||
@@ -48,7 +50,7 @@ vc_client* vc_client_create(const vc_config* cfg, vc_callbacks cb) {
|
||||
|
||||
void vc_client_destroy(vc_client* c) { delete c; }
|
||||
|
||||
/* ── Everything below delegates to the (stub) client. ─────────────────────── */
|
||||
/* ── Everything below delegates to vc_client (real or stub, per preset above). ───────── */
|
||||
|
||||
vc_result vc_connect(vc_client* c, const char* host, uint16_t port) {
|
||||
if (c == nullptr || host == nullptr) return VC_ERR_INVALID_ARG;
|
||||
|
||||
Reference in New Issue
Block a user