@ai-ecoverse/slicc-bios 1.51.4 → 1.51.6

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/README.md CHANGED
@@ -617,6 +617,8 @@ Limits:
617
617
 
618
618
  A nudge first sends the old worker `{ streams: 'mine' }` and waits for its answer (2 s at most), which makes sure it is running. It then sends the waiting worker `{ activate: 'now' }`. `sw.js` takes that message only from a window client and only with nothing else in it, and does nothing but call `self.skipWaiting()` again. Activation still waits until the old worker has no work, so a half-read download keeps holding it, and *Seven updated* still shows after 10 s.
619
619
 
620
+ **A slow live stream doesn't hold it (#710).** Chromium leaves an updated worker `installed` while the old one streams a slow, live response, such as a dev server's live-reload SSE that sends an event a second, or a long poll. A download the tab keeps pulling doesn't hold it: Chromium activates the update, and the old worker finishes the download. So the old worker acts only once a new worker has been waiting 5 s, which an update with nothing holding it never does (with the nudge, it activates in about 3 s). It notes when it first sees the waiting worker, on that worker's `statechange`, when a stream opens and when a tab asks for its streams. Then it ends every stream it serves that is at least 5 s old, so a load during an update is never touched. An event stream (`text/event-stream`) ends cleanly, so an `EventSource` reconnects by itself, to the new worker. A `fetch()` reader of an event stream sees the same clean end, as when its server closes the connection: the worker can't tell it from an `EventSource`, and an error would close an `EventSource` for good, since Chromium reports it to the page as an abort. Anything else ends with an error (`sw: seven updated, so <path> stopped`), so a reader knows it didn't get everything. The cut ends every stream 5 s old, in every tab, so a download that wasn't holding anything fails too if it runs while another stream holds an update. It can be fetched again. Nothing happens while a worker is only installing, so an install that fails cuts nothing. The update is active about 5 s after it's `installed`, before *Seven updated* could show. A stream that nobody reads any more is the exception (#699): Chromium lets the old worker go only once the reader takes more, so a half-read download still holds the update, and *Seven updated* names it after 10 s.
621
+
620
622
  ## Certified packages
621
623
 
622
624
  Seven certifies a gated package (slicc-kernel, slicc-cdp, slicc-audio, slicc-capture, slicc-clipboard, slicc-jsh, mcpcat, and the `wasi-*`, `wasix-*`, `wasm-*` and `py-*` packages) by its integrity: a version is certified when [`src/packages/certs.json`](src/packages/certs.json) (the historic list, with its recorded `exception`s) or one of the lockfiles seven ships (the base set, `/opt/agent`, Tailscale and the catalog's projects) carries it with that integrity. `src/seed/layer.js`'s `certifiedSet()` reads that union in the page, and a user's or a project's install that needs anything else is refused, except an optional catalog package that passes [the gate](#optional-packages), with the dependencies it pins exactly, so a user's own add of a catalog package passes or fails as the panel's Install does. homescoop's certification exceptions apply to every version there, a `certs.json` or lockfile match included, and when they can't be read the version is refused. A pin on main is certified because it reached main through the merge queue, where every integration test ran on it, and because `pins.test.mjs` checks every gated pin is its own repository's release from main. `test/integration/pins.test.mjs` checks the union covers every gated pin with its integrity (Tailscale's project included), and fails when a pinned package's `engines.slicc-kernel` or kernel peer range isn't met by the pinned kernel.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-ecoverse/slicc-bios",
3
- "version": "1.51.4",
3
+ "version": "1.51.6",
4
4
  "description": "Slim loader that boots SLICC into OPFS and serves the UI from there",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -51,7 +51,7 @@
51
51
  "devDependencies": {
52
52
  "@ai-ecoverse/slicc": "1.49.27",
53
53
  "@ai-ecoverse/slicc-browsers": "1.18.16",
54
- "@ai-ecoverse/slicc-cdp": "1.42.2",
54
+ "@ai-ecoverse/slicc-cdp": "1.42.3",
55
55
  "@ai-ecoverse/slicc-shared-web": "2.13.3",
56
56
  "@ai-ecoverse/slicc-spectrum": "1.107.2",
57
57
  "@ai-ecoverse/slicc-vault": "1.17.0",
@@ -11,7 +11,7 @@
11
11
  "@ai-ecoverse/slicc-capture": "1.4.1",
12
12
  "@ai-ecoverse/slicc-kernel": "1.168.1",
13
13
  "@ai-ecoverse/slicc-spectrum": "1.107.2",
14
- "@ai-ecoverse/wasi-fnox": "1.40.0-1",
14
+ "@ai-ecoverse/wasi-fnox": "1.41.0-1",
15
15
  "@ai-ecoverse/wasi-pnpm": "12.9.1-21",
16
16
  "@ai-ecoverse/wasm-bash": "5.3.0-23",
17
17
  "@ai-ecoverse/wasm-coreutils": "9.12.0-15",
@@ -155,9 +155,9 @@
155
155
  }
156
156
  },
157
157
  "node_modules/@ai-ecoverse/wasi-fnox": {
158
- "version": "1.40.0-1",
159
- "resolved": "https://registry.npmjs.org/@ai-ecoverse/wasi-fnox/-/wasi-fnox-1.40.0-1.tgz",
160
- "integrity": "sha512-/1c/ueKiqih0NfgQdQ96Re/LKYQx6vWz31Od7V3YWAgvAxGr9+BBfWhseM/VP7+bUzSPw0ZmD+CqAQ/vJhihog==",
158
+ "version": "1.41.0-1",
159
+ "resolved": "https://registry.npmjs.org/@ai-ecoverse/wasi-fnox/-/wasi-fnox-1.41.0-1.tgz",
160
+ "integrity": "sha512-76b3bd5lKTbKtCXIHklOLU0nrKQvKqw3r7gyotZQrjSj5HuJ3YxUODViOIav5cxGH+u/C45/Fo9S97tshlOEeg==",
161
161
  "license": "MIT",
162
162
  "engines": {
163
163
  "slicc-kernel": ">=1.83.0"
@@ -8,7 +8,7 @@
8
8
  "@ai-ecoverse/slicc-capture": "1.4.1",
9
9
  "@ai-ecoverse/slicc-kernel": "1.168.1",
10
10
  "@ai-ecoverse/slicc-spectrum": "1.107.2",
11
- "@ai-ecoverse/wasi-fnox": "1.40.0-1",
11
+ "@ai-ecoverse/wasi-fnox": "1.41.0-1",
12
12
  "@ai-ecoverse/wasi-pnpm": "12.9.1-21",
13
13
  "@ai-ecoverse/wasm-bash": "5.3.0-23",
14
14
  "@ai-ecoverse/wasm-coreutils": "9.12.0-15",
@@ -24,8 +24,8 @@ importers:
24
24
  specifier: 1.107.2
25
25
  version: 1.107.2
26
26
  '@ai-ecoverse/wasi-fnox':
27
- specifier: 1.40.0-1
28
- version: 1.40.0-1
27
+ specifier: 1.41.0-1
28
+ version: 1.41.0-1
29
29
  '@ai-ecoverse/wasi-pnpm':
30
30
  specifier: 12.9.1-21
31
31
  version: 12.9.1-21
@@ -109,8 +109,8 @@ packages:
109
109
  resolution: {integrity: sha512-zN4kW/Ss8X9sAbszs2uwv1dO4UpSfqWutd8Sc4BD3EfmUekYJcPSsqVuKzlkhPtIBlWDVpQu/pgLDYPzQ3r+PA==}
110
110
  engines: {node: '>=24'}
111
111
 
112
- '@ai-ecoverse/wasi-fnox@1.40.0-1':
113
- resolution: {integrity: sha512-/1c/ueKiqih0NfgQdQ96Re/LKYQx6vWz31Od7V3YWAgvAxGr9+BBfWhseM/VP7+bUzSPw0ZmD+CqAQ/vJhihog==}
112
+ '@ai-ecoverse/wasi-fnox@1.41.0-1':
113
+ resolution: {integrity: sha512-76b3bd5lKTbKtCXIHklOLU0nrKQvKqw3r7gyotZQrjSj5HuJ3YxUODViOIav5cxGH+u/C45/Fo9S97tshlOEeg==}
114
114
  engines: {slicc-kernel: '>=1.83.0'}
115
115
 
116
116
  '@ai-ecoverse/wasi-pnpm@12.9.1-21':
@@ -272,7 +272,7 @@ snapshots:
272
272
 
273
273
  '@ai-ecoverse/slicc-spectrum@1.107.2': {}
274
274
 
275
- '@ai-ecoverse/wasi-fnox@1.40.0-1': {}
275
+ '@ai-ecoverse/wasi-fnox@1.41.0-1': {}
276
276
 
277
277
  '@ai-ecoverse/wasi-pnpm@12.9.1-21': {}
278
278