protocol: add canonical Phase 3A contract sources
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
# VerseVDI Protocol repository guidance
|
||||
|
||||
This repository is the sole source of the VerseVDI Phase 3 wire contract. It
|
||||
contains OpenAPI, JSON Schema, Protobuf, registries, fixtures, and generated
|
||||
language bindings. It contains no Connection Server business policy,
|
||||
database/auth implementation, provider credentials, or media implementation.
|
||||
|
||||
## Source and generation rules
|
||||
|
||||
- Edit `schemas/`, `openapi/`, `proto/`, `registries/`, and `fixtures/` only as
|
||||
protocol sources. Never hand-edit `gen/`; run `python3 tools/generate.py`.
|
||||
- `VERSION` and `compatibility.json` are the version authority. Current, N-1,
|
||||
and N-2 fixtures must remain executable.
|
||||
- `make verify` runs schema/fixture checks, Protobuf lint/descriptor checks,
|
||||
the historical-descriptor breaking check, deterministic generation, Go tests,
|
||||
and native conformance runners.
|
||||
- Generated output must be byte-for-byte clean after a second generation.
|
||||
- `gen/protobuf/phase3a-baseline.binpb` is a generated historical descriptor used
|
||||
only by Buf breaking checks; regenerate it from an approved baseline tag,
|
||||
never by hand.
|
||||
- The Connection Server consumes generated Go types through adapters; it does
|
||||
not own a competing wire schema.
|
||||
|
||||
## Scope boundaries
|
||||
|
||||
Phase 3A covers control, authorization, resources, broker session actions,
|
||||
gateway-only grants/manifests, resumable control events, registered control
|
||||
datagrams, and bounded text clipboard. It does not implement a gateway,
|
||||
provider transport, video/audio forwarding, file transfer, or a second auth or
|
||||
datastore path.
|
||||
|
||||
## Git and release safety
|
||||
|
||||
Keep private Gitea work and public-source boundaries explicit. Preserve dirty
|
||||
work from other owners. Do not push, merge, publish, or change release
|
||||
credentials unless the task separately authorizes it. A local immutable
|
||||
candidate tag is allowed only after matching Go/Rust/Swift fixture hashes and
|
||||
clean-checkout evidence; it is not a publication.
|
||||
Reference in New Issue
Block a user