End-to-end compile of FederatedMeetup.speckdl (with the cycle-65 Transition envelope added) surfaced a real bug: the speckdl uses default-value syntax on event fields: initial_mesh_peers: List<InitialMeshPeer> = [] The default is a Speckl semantic — a state-machine init value — but the .proto wire format has no place for it. Without stripping, the type expression 'List<InitialMeshPeer> = []' was emitted verbatim as the field type, producing broken proto3 syntax that protoc rejected. Fix: parseEventBlockMultiline now strips '= <expr>' suffix from the type expression before calling parseTypeExpr. The default value is dropped (it's a Speckl semantic only; the wire format carries no default). Tests: 1 new parser test covers the federated-meetup 'initial_mesh_peers: List<InitialMeshPeer> = []' shape. All 56 tests pass (55 baseline + 1 new). tsc build clean. End-to-end verified: with this fix and the cycle-65 federated- meetup speckdl changes, the Speckl-generated .proto now compiles cleanly with 'protoc' (previously rejected). |
||
|---|---|---|
| .. | ||
| __tests__ | ||
| dist | ||
| node_modules | ||
| out/speckl-compile | ||
| specs | ||
| src | ||
| test-output | ||
| test-output-rust/TigerBeetleLedger | ||
| .gitignore | ||
| .last-build | ||
| check-dist.sh | ||
| package-lock.json | ||
| package.json | ||
| tsconfig.json | ||