@glassly/engine 0.3.5-dev.787 → 0.3.5-dev.790

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@glassly/engine",
3
- "version": "0.3.5-dev.787",
3
+ "version": "0.3.5-dev.790",
4
4
  "description": "Glassly Engine — miniapp registry, WebView bridge, and miniapp store",
5
5
  "main": "build/index.js",
6
6
  "react-native": "src/index.ts",
@@ -97,17 +97,17 @@
97
97
  "registry": "https://registry.npmjs.org/"
98
98
  },
99
99
  "dependencies": {
100
- "@glassly/bluetooth-sdk": "0.3.5-dev.787",
101
- "@glassly/cloud-client": "0.3.5-dev.787",
102
- "@glassly/cloud-protocol": "0.3.5-dev.787",
103
- "@glassly/crust": "0.3.5-dev.787",
104
- "@glassly/miniapp": "0.3.5-dev.787",
100
+ "@glassly/bluetooth-sdk": "0.3.5-dev.790",
101
+ "@glassly/cloud-client": "0.3.5-dev.790",
102
+ "@glassly/cloud-protocol": "0.3.5-dev.790",
103
+ "@glassly/crust": "0.3.5-dev.790",
104
+ "@glassly/miniapp": "0.3.5-dev.790",
105
105
  "buffer": "^6.0.3",
106
106
  "events": "^3.3.0",
107
107
  "react-native-marked": "8.1.1",
108
108
  "semver": "^7.7.4",
109
109
  "typesafe-ts": "^1.7.1",
110
- "@glassly/llm-providers": "0.3.5-dev.787",
110
+ "@glassly/llm-providers": "0.3.5-dev.790",
111
111
  "@huggingface/jinja": "^0.5.9",
112
112
  "jsonrepair": "^3.12.0"
113
113
  },
@@ -12,9 +12,9 @@ export interface EngineReleaseMetadata {
12
12
  export const ENGINE_RELEASE_METADATA: Readonly<EngineReleaseMetadata> = Object.freeze({
13
13
  "schemaVersion": 1,
14
14
  "familyBaseVersion": "0.3.5",
15
- "releaseIdentity": "0.3.5-dev.787",
16
- "releaseSetId": "glassly-0.3.5-dev.787",
17
- "sourceCommit": "218c15398edabff283cf722a37a785d2d0360ca1",
15
+ "releaseIdentity": "0.3.5-dev.790",
16
+ "releaseSetId": "glassly-0.3.5-dev.790",
17
+ "sourceCommit": "650bb1b9e5418ef2b3d8928df39e032a61a043e3",
18
18
  "otaManifestUrl": null,
19
19
  "otaManifestSha256": null
20
20
  })
@@ -107,12 +107,13 @@ export function dispatchTouchEvent(event: TouchEvent): void {
107
107
  function routeTouchEvent(event: TouchEvent): void {
108
108
  const gesture = event.gestureName
109
109
  const claimant = localMiniappRuntime.gestureClaimant(gesture)
110
- // The Neural Band's middle finger (index 1) shares the tap names but is left
111
- // to miniapps: the engine's own double-tap behaviors are the index finger's.
112
- const osDoubleTap = gesture === "double_tap" && event.index !== 1
110
+ const doubleTap = gesture === "double_tap"
111
+ // The Neural Band's middle finger (index 1) shares the tap names. Either
112
+ // finger leaves the app on screen; the firmware dashboard is the index finger's.
113
+ const osDoubleTap = doubleTap && event.index !== 1
113
114
  const osHeadUp = gesture === "head_up"
114
115
 
115
- if (osDoubleTap) {
116
+ if (doubleTap) {
116
117
  // The app being left opts out of OS exit by registering double tap (the
117
118
  // terminal's back-to-menu). The latest claimant still receives it. Otherwise
118
119
  // the tap means "leave the app". The controller shows the bounded OS
@@ -6063,6 +6063,8 @@ class LocalMiniappRuntime {
6063
6063
  private async startInteropApp(packageName: string): Promise<boolean> {
6064
6064
  const app = this.interopApps().find((a) => a.packageName === packageName)
6065
6065
  if (!app) return false
6066
+ // Running only for its widget: start() promotes it to a normal run, as opening it on the phone does.
6067
+ if (app.widgetOnly) return useAppStatusStore.getState().start(app, {skipNavigation: true})
6066
6068
  if (app.local) {
6067
6069
  await miniappLauncher.ensureConnected(packageName)
6068
6070
  return true
@@ -6124,7 +6126,8 @@ class LocalMiniappRuntime {
6124
6126
  packageName: app.packageName,
6125
6127
  name: app.name,
6126
6128
  version: app.version ?? "",
6127
- running: app.running,
6129
+ // A provider running only for a placed widget is not a run the wearer started.
6130
+ running: app.running && !app.widgetOnly,
6128
6131
  hidden: app.hidden === true,
6129
6132
  system: isSystemMiniapp(app),
6130
6133
  compatibility,