Skip to content

v0.2.0 — Method guard + retry

Choose a tag to compare

@linucs linucs released this 20 Apr 19:10
· 35 commits to main since this release

Capability-metadata release across both packages: the bridge now retries idempotent calls through cascading socket drops, and UnoQTool gains a user-defined JavaScript guard that vets each LLM invocation at the gate.

@raasimpact/arduino-uno-q-bridge@0.2.0

Added

  • Bridge.callWithOptions(method, params[], opts) — new public entry point taking { timeoutMs, idempotent }. When idempotent: true, in-flight calls that hit ConnectionError race the bridge's reconnect event against the remaining timeoutMs budget and retry — repeatedly, through cascading drop/reconnect cycles, until the call resolves or the budget runs out. Never retries on TimeoutError or non-idempotent calls. Calls that start against a known-disconnected bridge fast-fail with ConnectionError instead of waiting out the timer.

Changed

  • call() and callWithTimeout() are now thin wrappers over callWithOptions with idempotent: false. Behavior preserved for existing callers.

Full changelog: packages/bridge/CHANGELOG.md

n8n-nodes-uno-q@0.2.0

Added

  • UnoQTool — Method Guard field. Optional JavaScript body that runs at invocation time with method and params in scope and decides whether the call proceeds. Typical uses: validating LLM-supplied arguments, time-of-day gating, external-state checks. Return a string to reject — it's surfaced as structured tool output so the AI Agent feeds the message back to the LLM for self-correction. Uses n8n's jsEditor widget.
  • UnoQTool — Idempotent top-level checkbox driving the bridge's retry on mid-call ConnectionError.

Changed (minor breaking)

  • UnoQCall — Idempotent moved from Options collection to a top-level checkbox for consistency with UnoQTool. Workflows saved with options.idempotent: true pre-0.2.0 silently reset to default false on load; re-tick at the top level. No runtime error — just quiet loss of the setting.

Removed

  • safeReadOnly boolean (advisory, never enforced). Replaced by Method Guard, which vets each invocation rather than signalling a blanket per-method claim.

Full changelog: packages/n8n-nodes/CHANGELOG.md


All existing unit tests pass (26); bridge integration suite against a real UNO Q also passes (10/10). The method-guard path has been manually verified in a live n8n workflow — guard rejections reach the LLM as observations rather than as workflow errors.