proto: renumber ADR 0015 (0014 collided with PKG's), fix stale README versions

PKG landed docs/adr/0014-conformance-runs-through-ctest.md (dad88fc) and this
lane's 0014-generated-binding-changes-and-versioning.md landed in the same
integration round, both as 0014. Renumbered this one to 0015 — second merger
renumbers. Updated the two cross-references (contracts/README.md rule 4,
proto-answers-daemon-m1.md P1) and the in-file header.

Also while in contracts/README.md: the file-tree comment and the "Method
surface" heading still said v1.2.0; both now v1.4.0 to match VERSION.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012fgjnqFCS5h5L7gZTZo3rV
This commit is contained in:
2026-09-10 15:31:01 +04:00
co-authored by Claude Sonnet 5
parent 170bcfdb3e
commit dd1676bc0a
3 changed files with 5 additions and 5 deletions
+3 -3
View File
@@ -35,7 +35,7 @@ Nobody else commits here. Everybody else *generates from* here.
``` ```
contracts/ contracts/
├── VERSION # protocol semver — v1.2.0, minor-bumped from the v1.0.0 freeze ├── VERSION # protocol semver — v1.4.0, minor-bumped from the v1.0.0 freeze
├── openrpc.json # human-readable API doc (generated from schema/) ├── openrpc.json # human-readable API doc (generated from schema/)
├── schema/ ├── schema/
│ ├── envelope.schema.json # JSON-RPC 2.0 envelope + our error codes │ ├── envelope.schema.json # JSON-RPC 2.0 envelope + our error codes
@@ -67,7 +67,7 @@ subset, `fixtures/` documents the fixture shape and the placeholder rules.
"Retype → major" is about the **wire** — a field a client parses off the socket. A "Retype → major" is about the **wire** — a field a client parses off the socket. A
change that leaves the wire byte-identical but breaks a *generated binding's* source change that leaves the wire byte-identical but breaks a *generated binding's* source
API (a C++ virtual's return type, a struct name) is a **minor** bump plus a migration API (a C++ virtual's return type, a struct name) is a **minor** bump plus a migration
note — see `docs/adr/0014-generated-binding-changes-and-versioning.md`. note — see `docs/adr/0015-generated-binding-changes-and-versioning.md`.
5. **Changes arrive as a PR to `contracts/` alone**, containing: schema edit + fixtures + 5. **Changes arrive as a PR to `contracts/` alone**, containing: schema edit + fixtures +
regenerated code + `VERSION` bump. Lanes rebase onto it. This is the only synchronization regenerated code + `VERSION` bump. Lanes rebase onto it. This is the only synchronization
point in the whole project — keep it cheap and frequent rather than big and rare. point in the whole project — keep it cheap and frequent rather than big and rare.
@@ -102,7 +102,7 @@ All four carry **the same JSON-RPC 2.0 payloads**. The framing differences stop
transport layer; no method behaves differently depending on how it arrived — except that transport layer; no method behaves differently depending on how it arrived — except that
methods marked `"privileged": true` in the schema are refused over the WebSocket transport. methods marked `"privileged": true` in the schema are refused over the WebSocket transport.
## Method surface (v1.2.0 — expand only via PR) ## Method surface (v1.4.0 — expand only via PR)
### Session ### Session
| Method | Params → Result | | Method | Params → Result |
+1 -1
View File
@@ -63,7 +63,7 @@ how lanes are told to regenerate and adapt. Minor, not major: a major would make
`session.hello` refuse a client whose wire behaviour is unchanged. The rule — a `session.hello` refuse a client whose wire behaviour is unchanged. The rule — a
generated-binding API break with an unchanged wire is minor + migration note, because generated-binding API break with an unchanged wire is minor + migration note, because
`VERSION` is the protocol version, not the C++ ABI — is written up as `VERSION` is the protocol version, not the C++ ABI — is written up as
`docs/adr/0014-generated-binding-changes-and-versioning.md` (this instance is `docs/adr/0015-generated-binding-changes-and-versioning.md` (this instance is
mechanical; the ADR records the rule for the next one, which GUI will also consume mechanical; the ADR records the rule for the next one, which GUI will also consume
since it already links `velox::proto`). `kProtocolVersion` moves to `"1.4.0"` with it. since it already links `velox::proto`). `kProtocolVersion` moves to `"1.4.0"` with it.
@@ -1,4 +1,4 @@
# ADR 0014 — Versioning a generated-binding break with an unchanged wire # ADR 0015 — Versioning a generated-binding break with an unchanged wire
**Status:** accepted · **Date:** 2026-09-10 · **Lane:** PROTO **Status:** accepted · **Date:** 2026-09-10 · **Lane:** PROTO
**Prompted by:** the 1.4.0 bump (DAEMON's P1 — `HandlerResult` / `HandlerError` on the **Prompted by:** the 1.4.0 bump (DAEMON's P1 — `HandlerResult` / `HandlerError` on the