Skip to content

v0.2.0

@jgoppert jgoppert tagged this 02 Jul 03:21
Land the protocol decisions recorded in ROADMAP.md (analysis in
REVIEW.md). Synapse is pre-adoption, so this revises the wire format in
one pass with no backward-compatibility shims.

Schemas:
- Layered frame conventions: raw sensor topics carry sensor-native
  conventions (GnssFix course/yaw clockwise from north); estimates and
  commands are strictly REP-0103; quaternion is Hamilton, body-FLU to
  world-ENU, and the only attitude representation (AttitudeEuler
  removed).
- Core semantics in-schema: Severity, CommandResultCode, GnssFixType,
  battery enums, MissionState, GeoAltitudeFrame, ReferenceFrame, CmdId,
  and bit-flags enums for every validity mask; flags bitmasks replace
  sentinels everywhere.
- Right-sizing: GnssFix gains receiver time, vertical velocity,
  used/visible satellites with ushort-mm saturating accuracies;
  16 battery cells; deci-amp currents; centi-volt pack voltage;
  VehicleHealth drops error-counter fossils; LocalPositionEstimate
  gains reset counters; commands drop confirmation counters.
- New fbs/telemetry.fbs (GcsStatus low-rate aggregate) and
  fbs/transfer.fbs (mission/parameter queryable request/reply set);
  optical-flow and mocap topics join TopicId and the union; MotorOutput
  and log.fbs removed (logging moves to MCAP with .bfbs schemas); math
  types move to synapse.types.

Keys and catalog:
- synapse/v1/{topic,cmd,meta,live} key spaces with instance segments
  for multi-instance sensors and deployment namespace prefixes.
- Catalog v2: payload sizes computed from struct layout, scope,
  encoding, multi-instance flags, and the command service table with
  CmdId ids and fully qualified types.
- parse_key helpers in Rust/Python/JS/C sharing one canonical grammar,
  exercised by runtime smoke tests in all four languages via the new
  fast `xtask check` command (doc-comment validation, unit-suffix lint,
  TopicId/union/CmdId consistency, struct size report).

Packaging and CI:
- PyPI trusted publishing, tag/PACKAGE_VERSION guard (tags only),
  C++ archive CMake target, Zephyr module.yml in the C archive,
  rustfmt/clippy/check gates in CI, .editorconfig; version 0.2.0.

Signed-off-by: James Goppert <james.goppert@gmail.com>
Assets 2
Loading