@homebridge-plugins/homebridge-eufy-security 4.6.0-beta.24 → 4.6.0-beta.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.claude/CLAUDE.md CHANGED
@@ -153,9 +153,9 @@ Typical flow: **planner** -> **developer** -> **qa**. Use **architect** for expl
153
153
 
154
154
  For issue triage, use the `support` skill with an issue number (e.g. `/support 423`). For the full triage reference, see `.github/prompts/diag-triage.prompt.md`. For adding new device types, use the `new-device-support` skill. Key points:
155
155
 
156
- - Diagnostics archives are encrypted (RSA-4096 + AES-256-GCM); decrypt with `node scripts/decrypt-diagnostics.mjs <file>.tar.gz.enc`
156
+ - Diagnostics archives are encrypted (RSA-4096 + AES-256-GCM); decrypt with `node scripts/decrypt-diagnostics.mjs <file>.tar.gz`
157
157
  - Always check archive completeness before analysis -- missing runtime logs means the plugin wasn't running
158
- - Check if debug mode is enabled (`enableDetailedLogging`); if disabled, ask the user to enable it and re-export
158
+ - When diagnostics are incomplete or debug is disabled, ask the user to upgrade to the latest [beta](https://github.com/homebridge-plugins/homebridge-eufy-security/wiki/Special-Version-(BETA---RC---HKSV)) and follow the [Basic Troubleshooting](https://github.com/homebridge-plugins/homebridge-eufy-security/wiki/Basic-Troubleshooting) steps to enable Detailed Logging, reproduce the issue, and re-export diagnostics
159
159
  - Narrow down whether the issue is in `homebridge-eufy-security` (accessory registration, HomeKit mapping, config handling) or in `eufy-security-client` (device discovery, property events, P2P, push notifications)
160
160
  - If the environment indicates HOOBS: label `hoobs` + `wontfix` and close -- HOOBS is not supported
161
161
 
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const LIB_VERSION = "4.6.0-beta.24";
1
+ export const LIB_VERSION = "4.6.0-beta.26";
2
2
  //# sourceMappingURL=version.js.map
@@ -1213,8 +1213,7 @@ class UiServer extends HomebridgePluginUiServer {
1213
1213
  const encryptedBuffer = encryptDiagnostics(fileBuffer);
1214
1214
 
1215
1215
  this.pushEvent('diagnosticsProgress', { progress: 90, status: 'Returning encrypted archive' });
1216
- const encFilename = archiveName + '.enc';
1217
- return { buffer: encryptedBuffer, filename: encFilename };
1216
+ return { buffer: encryptedBuffer, filename: archiveName };
1218
1217
  } catch (error) {
1219
1218
  this.log.error('Error while generating diagnostics archive: ' + error);
1220
1219
  throw error;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "displayName": "Homebridge Eufy Security",
3
3
  "name": "@homebridge-plugins/homebridge-eufy-security",
4
- "version": "4.6.0-beta.24",
4
+ "version": "4.6.0-beta.26",
5
5
  "description": "Control Eufy Security from homebridge.",
6
6
  "type": "module",
7
7
  "license": "Apache-2.0",
@@ -1,18 +1,18 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  /**
4
- * Decrypt and extract an encrypted diagnostics archive (.enc) produced by the plugin.
4
+ * Decrypt and extract an encrypted diagnostics archive produced by the plugin.
5
5
  *
6
6
  * Usage:
7
- * node decrypt-diagnostics.mjs <encrypted-file.enc> [private-key.pem]
7
+ * node decrypt-diagnostics.mjs <encrypted-file.tar.gz> [private-key.pem]
8
8
  *
9
9
  * If the private key is omitted, the script looks for it in the keys/
10
10
  * directory next to itself (keys/diagnostics_private.pem).
11
11
  *
12
- * The archive is decrypted and extracted into a folder next to the .enc file,
12
+ * The archive is decrypted and extracted into a folder next to the input file,
13
13
  * named after the archive (e.g. diagnostics-2026-03-02-11-25-31/).
14
14
  *
15
- * File format of the .enc file:
15
+ * File format (the .tar.gz is actually encrypted, not a plain gzip):
16
16
  * [4 bytes] – magic: "DIAG"
17
17
  * [1 byte] – format version (currently 0x01)
18
18
  * [8 bytes] – creation timestamp (BigUInt64BE, ms since Unix epoch)
@@ -51,7 +51,7 @@ function main() {
51
51
  const args = process.argv.slice(2);
52
52
 
53
53
  if (args.length < 1) {
54
- console.error('Usage: node decrypt-diagnostics.mjs <encrypted-file.enc> [private-key.pem]');
54
+ console.error('Usage: node decrypt-diagnostics.mjs <encrypted-file.tar.gz> [private-key.pem]');
55
55
  process.exit(1);
56
56
  }
57
57
 
@@ -176,8 +176,7 @@ function main() {
176
176
  // Determine output directory next to the .enc file
177
177
  const encDir = path.dirname(encFile);
178
178
  const baseName = path.basename(encFile)
179
- .replace(/\.tar\.gz\.enc$/, '')
180
- .replace(/\.enc$/, '');
179
+ .replace(/\.tar\.gz(?:\.enc)?$/, '');
181
180
  const outDir = path.join(encDir, baseName);
182
181
 
183
182
  // --- Safety: inspect tar contents before extracting (piped via stdin, no temp file) ---