Changelog

All notable changes to Synapse, following Keep a Changelog.

Unreleased

v0.4.0 Latest

2026-09-12

Changed

  • **Renamed local/parameter/field `orch` to `orchestrator` for naming

Deprecated

  • `SafeOpMode.orch` retained as a deprecated alias. Subclasses that still

v0.3.1

2026-09-07

Changed

  • Published metadata refresh. POM name corrected to Synapse (was
  • Prose cleanup. Brand-name mentions removed from the Javadoc on
  • Author credit. Added a "Credits" section to the README and a

v0.3.0

2026-09-07

Changed

  • Project renamed to Synapse. The repository, Maven artifact, Java
  • Maven coordinates: com.aaravlabs:pubsub → com.aaravlabs:synapse
  • Java base package: com.aaravlabs.pubsub → com.aaravlabs.synapse
  • ProGuard rules file renamed: META-INF/proguard/pubsub.pro →
  • Hardware thread name prefix: pubsub- → synapse-
  • README rewritten with a "Why Synapse?" overview, a hardware-threading

v0.2.1

2026-09-06

Changed

  • Repackaged with the FTC SDK reference classes moved to compileOnly stubs at

v0.2.0

2026-09-06

Added

  • @SubscribedTo, @RunPeriodically, @RunnableAction, and @OnHardwareThread
  • SafeOpMode base class extending com.qualcomm.robotcore.eventloop.opmode.OpMode,
  • HardwareActions facade with run, call, callAsync, and bulkRead
  • SafeDevice<T> generic wrapper around any hardware object.
  • SafeHardwareMap thin wrapper around the FTC SDK's HardwareMap.
  • GamepadAdaptor reflection-based gamepad-to-topic publisher.
  • Two-pool executor model: separate scheduled and callback thread pools with
  • Dedicated single-threaded hardware executor for all hardware-touching code.
  • Cross-thread type normalization (double ↔ Double) so annotation-bound
  • isAssignableFrom-based publish type checks (so an Object-typed topic
  • Auto-creation of topics on first publish (a-la Heron's behavior).
  • JUnit 5 test suite of ~53 tests covering topics, subscriptions, periodic