peachsim 0.1.630 → 0.1.631

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.
Files changed (89) hide show
  1. package/cli/app-fonts.ts +23 -4
  2. package/cli/bridge-flow-runner.ts +35 -28
  3. package/cli/command-registry.ts +1 -0
  4. package/cli/commands/compat.ts +11 -60
  5. package/cli/commands/control.ts +12 -5
  6. package/cli/commands/detect.ts +289 -26
  7. package/cli/commands/inspect/core.ts +1 -1
  8. package/cli/commands/inspect.ts +4 -0
  9. package/cli/commands/maestro.ts +3 -1
  10. package/cli/commands/project-report.ts +386 -0
  11. package/cli/commands/projectReportContract.ts +42 -0
  12. package/cli/commands/report-issue.ts +38 -54
  13. package/cli/commands/setup.ts +6 -4
  14. package/cli/commands/telemetry.ts +8 -3
  15. package/cli/commands/test.ts +347 -134
  16. package/cli/main.ts +11 -1
  17. package/cli/outbound-endpoints.ts +2 -1
  18. package/cli/privacy.ts +1 -2
  19. package/cli/runtime-diagnostics.ts +51 -0
  20. package/cli/telemetry.ts +78 -7
  21. package/detox/index.ts +3 -8
  22. package/dist-lib/agent-daemon-client.cjs +1 -1
  23. package/dist-lib/agent-events.cjs +1 -1
  24. package/dist-lib/agent-identity.cjs +1 -1
  25. package/dist-lib/agent-sessions.cjs +1 -1
  26. package/dist-lib/attached-projects.cjs +1 -1
  27. package/dist-lib/auth/shared-session.cjs +1 -1
  28. package/dist-lib/backend-origin.cjs +1 -1
  29. package/dist-lib/beta.cjs +1 -1
  30. package/dist-lib/beta.mjs +1 -1
  31. package/dist-lib/bridge-constants.cjs +1 -1
  32. package/dist-lib/bridge-contract-input.cjs +1 -1
  33. package/dist-lib/bridge-contract-input.mjs +1 -1
  34. package/dist-lib/bridge-contract.cjs +1 -1
  35. package/dist-lib/bridge-contract.mjs +1 -1
  36. package/dist-lib/capture-contract.cjs +1 -1
  37. package/dist-lib/capture-contract.mjs +1 -1
  38. package/dist-lib/cli-constants.cjs +1 -1
  39. package/dist-lib/cloud-contract.cjs +1 -1
  40. package/dist-lib/cloud-contract.mjs +1 -1
  41. package/dist-lib/cloud-test-args.cjs +1 -1
  42. package/dist-lib/cloud-test-args.mjs +1 -1
  43. package/dist-lib/cloud.cjs +1 -1
  44. package/dist-lib/cloud.mjs +1 -1
  45. package/dist-lib/config.cjs +1 -1
  46. package/dist-lib/detox/index.cjs +2 -7
  47. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  48. package/dist-lib/home-paths.cjs +8 -5
  49. package/dist-lib/host/bridge-host.cjs +110 -67
  50. package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
  51. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  52. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  53. package/dist-lib/host/replacement-module-handler.cjs +1 -1
  54. package/dist-lib/host/websocket-proxy.cjs +1 -1
  55. package/dist-lib/index.cjs +5 -1
  56. package/dist-lib/jump-to-source-babel.cjs +1 -1
  57. package/dist-lib/jump-to-source-native.cjs +1 -1
  58. package/dist-lib/kotlin-host.cjs +1 -1
  59. package/dist-lib/menu.cjs +11 -1
  60. package/dist-lib/menu.mjs +11 -1
  61. package/dist-lib/metro-fingerprint-registry.cjs +1 -1
  62. package/dist-lib/metro-fingerprint-registry.mjs +1 -1
  63. package/dist-lib/metro-production-bundle.cjs +1 -1
  64. package/dist-lib/metro-production-bundle.mjs +1 -1
  65. package/dist-lib/metro.cjs +1 -1
  66. package/dist-lib/native-app-identity.cjs +1 -1
  67. package/dist-lib/native-app-identity.mjs +1 -1
  68. package/dist-lib/profiles.cjs +1 -1
  69. package/dist-lib/public-brand.cjs +1 -1
  70. package/dist-lib/react-native-host-modules.cjs +1 -1
  71. package/dist-lib/react-native-host-modules.mjs +1 -1
  72. package/dist-lib/render-mode.cjs +1 -1
  73. package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
  74. package/dist-lib/sdk.cjs +3 -1
  75. package/dist-lib/sdk.mjs +2 -1
  76. package/dist-lib/skills.cjs +589 -268
  77. package/dist-lib/swift-compile.cjs +1 -1
  78. package/dist-lib/swift-compile.mjs +1 -1
  79. package/dist-lib/swift-package.cjs +1 -1
  80. package/dist-lib/swift-package.mjs +1 -1
  81. package/dist-lib/swift-submit.cjs +1 -1
  82. package/dist-lib/swift-submit.mjs +1 -1
  83. package/dist-lib/swift.cjs +439 -167
  84. package/dist-lib/vite-swift.cjs +1 -1
  85. package/dist-lib/vite.cjs +1 -1
  86. package/package.json +2 -1
  87. package/skills/contrast/SKILL.md +1 -0
  88. package/src/home-paths.ts +11 -9
  89. package/src/menu.ts +11 -0
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.630 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.631 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
package/dist-lib/vite.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.630 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.631 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "peachsim",
3
- "version": "0.1.630",
3
+ "version": "0.1.631",
4
4
  "description": "Vite and Metro plugins, testing drivers, and SDK exports for peach.",
5
5
  "author": "Tamagui LLC",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -330,6 +330,7 @@
330
330
  "peach-engine": "workspace:*",
331
331
  "typescript": "7.0.2",
332
332
  "vite": "^8.2.2",
333
+ "json5": "^2.2.3",
333
334
  "yaml": "^2.8.3"
334
335
  }
335
336
  }
@@ -54,6 +54,7 @@ automation, inspecting the render tree, and managing sims.
54
54
  | `peach close` | close a connected sim |
55
55
  | `peach setup` | configure optional local conveniences |
56
56
  | `peach compat` | check package compatibility |
57
+ | `peach project-report` | print local project and toolchain metadata |
57
58
  | `peach report-issue` | send an explicitly approved compatibility report |
58
59
  | `peach desktop` | launch or install the desktop companion |
59
60
  | `peach daemon` | manage the recommended background bridge service |
package/src/home-paths.ts CHANGED
@@ -263,8 +263,7 @@ export function readPrivacyPreferences(): PrivacyPreferences {
263
263
  return {
264
264
  productAnalytics: typeof productAnalytics === 'boolean' ? productAnalytics : false,
265
265
  crashReports: typeof crashReports === 'boolean' ? crashReports : false,
266
- configured:
267
- typeof productAnalytics === 'boolean' && typeof crashReports === 'boolean',
266
+ configured: typeof productAnalytics === 'boolean',
268
267
  }
269
268
  }
270
269
 
@@ -279,15 +278,18 @@ export function writePrivacyPreferences(
279
278
  })
280
279
  }
281
280
 
282
- // stable per-machine anonymous telemetry id. every signed-out cli used to
283
- // report as the single literal distinct_id 'anonymous-cli', which merged all
284
- // first-run users into one posthog person and made "a new user's login hung"
285
- // impossible to see. created lazily on first use, persisted in config.json.
281
+ // created only after explicit consent, alongside the privacy preferences.
286
282
  export function readOrCreateAnonymousId(): string {
287
- const existing = readSharedConfig().anonymousId
288
- if (typeof existing === 'string' && existing.trim()) return existing
283
+ const existing = readSharedConfig().settings?.anonymousId
284
+ if (
285
+ typeof existing === 'string' &&
286
+ /^anon-cli-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/.test(
287
+ existing,
288
+ )
289
+ )
290
+ return existing
289
291
  const created = `anon-cli-${randomUUID()}`
290
- writeSharedConfig({ anonymousId: created })
292
+ writeSharedConfig({ settings: { anonymousId: created } })
291
293
  return created
292
294
  }
293
295
 
package/src/menu.ts CHANGED
@@ -81,6 +81,7 @@ export interface SootSimMenuState {
81
81
  developmentMode: boolean
82
82
  showBezels: boolean
83
83
  showTouches: boolean
84
+ slowAnimations: boolean
84
85
  showMenuBar: boolean
85
86
  showRail: boolean
86
87
  solidWindow: boolean
@@ -379,6 +380,16 @@ function debugMenu(state: SootSimMenuState): SootSimMenuDef {
379
380
  return {
380
381
  label: 'Debug',
381
382
  items: [
383
+ {
384
+ label: 'Slow Animations',
385
+ type: 'checkbox',
386
+ checked: state.slowAnimations,
387
+ accelerator: 'Shift+Alt+S',
388
+ action: 'toggle-slow-animations',
389
+ browserAccelerator: true,
390
+ showInShortcutDocs: true,
391
+ },
392
+ { type: 'separator' },
382
393
  // both toggles are stateful in the browser, where the open state lives
383
394
  // in the same document. electron's menu process cannot see it, so it
384
395
  // keeps the plain (stateless) items rather than a permanently