From c086079f9f6ca61c1fcddd579d19f703e06dc616 Mon Sep 17 00:00:00 2001 From: Brett Adams Date: Wed, 22 Jul 2026 15:29:02 +1000 Subject: [PATCH] feat(homebridge-teslemetry): same-name major hard cut over legacy package Rename the monorepo Homebridge package from @teslemetry/homebridge-teslemetry to the unscoped homebridge-teslemetry, matching the legacy npm package it supersedes, and bump to 1.0.0 (major over legacy 0.4.x) per captain ruling: same-name hard cut, no dual-maintain, no rename. Removes private: true so the package can publish, and adds a changeset documenting the breaking HomeKit service-set differences from the legacy plugin. --- .../homebridge-teslemetry-same-name-major-cut.md | 7 +++++++ AGENTS.md | 4 ++-- packages/homebridge-teslemetry/README.md | 14 +++++++------- packages/homebridge-teslemetry/package.json | 5 ++--- packages/homebridge-teslemetry/src/settings.ts | 2 +- 5 files changed, 19 insertions(+), 13 deletions(-) create mode 100644 .changeset/homebridge-teslemetry-same-name-major-cut.md diff --git a/.changeset/homebridge-teslemetry-same-name-major-cut.md b/.changeset/homebridge-teslemetry-same-name-major-cut.md new file mode 100644 index 0000000..80892a6 --- /dev/null +++ b/.changeset/homebridge-teslemetry-same-name-major-cut.md @@ -0,0 +1,7 @@ +--- +"homebridge-teslemetry": major +--- + +Publish the monorepo Homebridge plugin under the same npm name as the legacy `homebridge-teslemetry` package, superseding it with a major version (1.0.0 over legacy 0.4.x). This is a hard cut, not a parallel release - there is no dual-maintenance and no rename; going forward `homebridge-teslemetry` on npm is this package. + +**Breaking: the HomeKit service set has changed.** The legacy plugin registered 14 vehicle services and 7 energy services. This package registers 11 vehicle services and 6 energy services, and is subType-aware for services that previously collided under a shared HomeKit service type (e.g. `LockService`/`ChargePortService` both used `Service.LockMechanism`; several switches shared `Service.Switch`). Existing users upgrading from the legacy package should expect some HomeKit accessories/tiles to disappear, merge, or need re-pairing in the Home app after upgrade - this is expected, not a regression. diff --git a/AGENTS.md b/AGENTS.md index 7c3805a..eefcaa2 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -14,7 +14,7 @@ typescript-teslemetry/ │ ├── api/ # Core TypeScript/JavaScript SDK │ ├── node-red-contrib-teslemetry/ # Node-RED integration │ ├── n8n-nodes-teslemetry/ # n8n workflow integration -│ ├── homebridge-teslemetry/ # Homebridge plugin (private, not published) +│ ├── homebridge-teslemetry/ # Homebridge plugin (published to npm) │ └── iobroker.teslemetry/ # ioBroker adapter (published to npm) ├── pnpm-workspace.yaml # Workspace configuration ├── tsconfig.json # Root TypeScript config @@ -114,7 +114,7 @@ pnpm --filter node-red-contrib-teslemetry build ### 4. `homebridge-teslemetry` - Homebridge Plugin **Location**: `packages/homebridge-teslemetry/` -**Status**: Private (`"private": true`, not published to npm) +**Status**: Published to npm as `homebridge-teslemetry`, superseding the legacy hand-published package of the same name via a same-name major hard cut (v1.0.0 over legacy 0.4.x) - no dual-maintain, no rename. **Purpose**: Exposes vehicles and energy sites as HomeKit accessories via `src/vehicle-services/*` and `src/energy-services/*` service classes, each a thin adapter between a HomeKit `Service`/`Characteristic` and the corresponding `@teslemetry/api` method. diff --git a/packages/homebridge-teslemetry/README.md b/packages/homebridge-teslemetry/README.md index 0edfea8..0c5ca17 100644 --- a/packages/homebridge-teslemetry/README.md +++ b/packages/homebridge-teslemetry/README.md @@ -1,6 +1,6 @@ -# @teslemetry/homebridge-teslemetry +# homebridge-teslemetry -[![npm version](https://badge.fury.io/js/%40teslemetry%2Fhomebridge-teslemetry.svg)](https://badge.fury.io/js/%40teslemetry%2Fhomebridge-teslemetry) +[![npm version](https://badge.fury.io/js/homebridge-teslemetry.svg)](https://badge.fury.io/js/homebridge-teslemetry) [![verified-by-homebridge](https://badgen.net/badge/homebridge/verified/purple)](https://github.com/homebridge/homebridge/wiki/Verified-Plugins) Teslemetry platform plugin for Homebridge with real-time streaming for Tesla vehicles and energy site monitoring. @@ -44,13 +44,13 @@ Teslemetry platform plugin for Homebridge with real-time streaming for Tesla veh ### Via Command Line ```bash -npm install -g @teslemetry/homebridge-teslemetry +npm install -g homebridge-teslemetry ``` Or if using pnpm: ```bash -pnpm add -g @teslemetry/homebridge-teslemetry +pnpm add -g homebridge-teslemetry ``` ## Configuration @@ -171,10 +171,10 @@ cd typescript-teslemetry pnpm install # Build the package -pnpm --filter @teslemetry/homebridge-teslemetry build +pnpm --filter homebridge-teslemetry build # Watch mode for development -pnpm --filter @teslemetry/homebridge-teslemetry watch +pnpm --filter homebridge-teslemetry watch ``` ### Testing Locally @@ -186,7 +186,7 @@ pnpm link --global # In your Homebridge directory cd ~/.homebridge -pnpm link --global @teslemetry/homebridge-teslemetry +pnpm link --global homebridge-teslemetry # Run Homebridge in debug mode homebridge -D diff --git a/packages/homebridge-teslemetry/package.json b/packages/homebridge-teslemetry/package.json index f049bf6..1241ef7 100644 --- a/packages/homebridge-teslemetry/package.json +++ b/packages/homebridge-teslemetry/package.json @@ -1,8 +1,7 @@ { - "name": "@teslemetry/homebridge-teslemetry", + "name": "homebridge-teslemetry", "displayName": "Homebridge Teslemetry", - "version": "0.1.11", - "private": true, + "version": "1.0.0", "description": "Teslemetry integration for Homebridge with real-time streaming support", "author": "Teslemetry", "license": "Apache-2.0", diff --git a/packages/homebridge-teslemetry/src/settings.ts b/packages/homebridge-teslemetry/src/settings.ts index 3ddf946..8aee045 100644 --- a/packages/homebridge-teslemetry/src/settings.ts +++ b/packages/homebridge-teslemetry/src/settings.ts @@ -55,4 +55,4 @@ export interface TeslemetryPlatformConfig { * Plugin constants */ export const PLATFORM_NAME = "Teslemetry"; -export const PLUGIN_NAME = "@teslemetry/homebridge-teslemetry"; +export const PLUGIN_NAME = "homebridge-teslemetry";