Skip to content

Latest commit

 

History

History
39 lines (26 loc) · 1.58 KB

File metadata and controls

39 lines (26 loc) · 1.58 KB

Native Bridge Architecture

Goal

Provide a single, resilient source of truth for platform-native capabilities while keeping Electron transport thin and renderer APIs unified.

Layers

  1. Native adapters Platform-specific providers implement stable domain interfaces such as cursor telemetry or system asset discovery.

  2. Main-process services Services orchestrate adapters, own runtime state, and expose domain-level operations.

  3. Unified IPC transport Renderer code talks to a single native-bridge:invoke channel using versioned contracts.

  4. Renderer client React code should consume src/native/client.ts rather than binding directly to ad hoc Electron APIs.

Principles

  • Single source of truth: runtime-native state lives in the Electron main process.
  • Capability-first: renderer can query support before attempting native behavior.
  • Versioned contracts: requests and responses are explicit and evolve predictably.
  • Resilience: every response uses a consistent result envelope with stable error codes.

Current rollout

This repository now contains the initial scaffold:

  • shared contracts in src/native/contracts.ts
  • renderer SDK in src/native/client.ts
  • main-process state store in electron/native-bridge/store.ts
  • cursor telemetry adapter in electron/native-bridge/cursor/telemetryCursorAdapter.ts
  • domain services in electron/native-bridge/services/*
  • unified handler registration in electron/ipc/nativeBridge.ts

The legacy window.electronAPI surface still exists for backward compatibility. New native-facing features should prefer the unified bridge client.