Skip to content

feat: route Kaufmann source via kaufmann module (Ruptela + Kamaleon) - #283

Merged
JamesReate merged 1 commit into
mainfrom
feat/kaufmann-kamaleon-routing
Jul 24, 2026
Merged

JamesReate merged 1 commit into
mainfrom
feat/kaufmann-kamaleon-routing

Conversation

@JamesReate

Copy link
Copy Markdown
Contributor

Description

Completes Option C (phase 4): routes the Kaufmann CloudEvent source through the new kaufmann module so a single connection license carries both Ruptela Smart5 and Queclink/Kamaleon telemetry, distinguished by the event ds:

  • r/… — Ruptela Smart5 (numeric IO signals) → ruptela module (unchanged historical behavior)
  • kam/… — Queclink GV58/Kamaleon, pre-decoded to VSS signals by the Kaufmann oracle → default module

Changes

  • Bump github.com/DIMO-Network/model-garagev1.0.15 (contains pkg/kaufmann).
  • internal/processors/cloudeventconvert/cloudeventconvert.go: register a contract-configured kaufmann.Module for KaufmannSource instead of the ruptela.Module. AftermarketContractAddr stays the synthetic device contract, so producer/subject DIDs are built exactly as before. Only the CloudEvent registration changes — the signal/event/fingerprint registries already route through kaufmann.Module via model-garage's register.go.

Context / rollout

  • Decision + rationale: model-garage ADR docs/adr/0001-kaufmann-connection-ds-routing.md (model-garage#265).
  • Oracle side already merged/released (kaufmann-oracle#164, v1.21.0), emitting the kam/v0/s envelope, with FLESPI_DIS_ENABLED off. No Kamaleon data reaches DIS until that flag is flipped, so this change is safe to deploy ahead of enablement.
  • Existing Ruptela (r/) behavior is unchanged and covered by a delegation regression test in model-garage.

🤖 Generated with Claude Code

Bumps model-garage to v1.0.15 and registers the new kaufmann.Module for the
Kaufmann CloudEvent source instead of a ruptela.Module. The Kaufmann connection
now carries two telemetry families on one connection, routed by the event ds:

  - "r/..."   Ruptela Smart5 (numeric IO signals) -> ruptela module (unchanged)
  - "kam/..." Queclink/Kamaleon, pre-decoded to VSS by the oracle -> default module

Only the CloudEvent registration changes; AftermarketContractAddr stays the
synthetic device contract, so producer/subject DIDs are built exactly as before.
The signal/event/fingerprint registries already route through kaufmann.Module via
model-garage's register.go.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AG3mKHCnSqgDoSQb8upJq4
@JamesReate
JamesReate merged commit 7a15c3e into main Jul 24, 2026
8 checks passed
@JamesReate
JamesReate deleted the feat/kaufmann-kamaleon-routing branch July 24, 2026 01:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant