@ai-ecoverse/slicc-bios 1.51.2 → 1.51.3
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
|
@@ -603,7 +603,7 @@ A running install updates itself from the deployment it was booted from, package
|
|
|
603
603
|
|
|
604
604
|
1. **Notice.** `os/update.js` fetches `packages/pnpm-lock.yaml` from the deployment when the UI starts, whenever the tab becomes visible again, and every 15 minutes. If it differs from `var/lib/slicc/pnpm-lock.yaml` in OPFS, there is an update.
|
|
605
605
|
2. **Install.** It writes the deployment's `package.json` and `pnpm-lock.yaml` to the OPFS root and runs `pnpm install --frozen-lockfile --trust-lockfile` there in the page's kernel. [`@ai-ecoverse/wasi-pnpm`](https://www.npmjs.com/package/@ai-ecoverse/wasi-pnpm) is one of the bootstrap packages, so pnpm is always installed. pnpm's hoisted, copying layout keeps `node_modules/` exactly where the BIOS puts it, and it only rewrites packages whose locked version changed. Its store lives in OPFS under `/home/.local/share/pnpm/`. Only when pnpm succeeds does the updater write the lockfile to `var/lib/slicc/pnpm-lock.yaml`, so an update that fails or is cut short by closing the tab is tried again by the next check.
|
|
606
|
-
3. **Switch over.** Packages are updated in place. A program reads its wasm and glue when it starts, so running processes, the interactive `bash` included, keep the code they started with, and every process started afterwards gets the new version. The page itself keeps the kernel and terminals it loaded. The changed rows of [Install / Update](#install--update) say *Ready to apply*, list what changed and offer **Reload**, which navigates to the BIOS with a view transition. The BIOS then picks up a new `sw.js` and seed, finds every package current (its receipt, or pnpm's `.modules.yaml` and the installed version, match), and goes back to `os/`. Files in OPFS, `/home` included, are not touched.
|
|
606
|
+
3. **Switch over.** Packages are updated in place. pnpm swaps a changed package in with two renames (the old directory aside, the staged one onto its name). From slicc-kernel 1.168.1 on, the kernel holds the package's `slicc-kernel-replacing` lock from the first rename until the second, the lock the installer takes too (boot step 3, at the top), so an exec that starts meanwhile waits and then runs the new version whole ([#663](https://github.com/ai-ecoverse/slicc-bios/issues/663)). A program reads its wasm and glue when it starts, so running processes, the interactive `bash` included, keep the code they started with, and every process started afterwards gets the new version. The page itself keeps the kernel and terminals it loaded. The changed rows of [Install / Update](#install--update) say *Ready to apply*, list what changed and offer **Reload**, which navigates to the BIOS with a view transition. The BIOS then picks up a new `sw.js` and seed, finds every package current (its receipt, or pnpm's `.modules.yaml` and the installed version, match), and goes back to `os/`. Files in OPFS, `/home` included, are not touched.
|
|
607
607
|
|
|
608
608
|
Both the BIOS installer and the updater take the Web Lock `slicc-packages`, so tabs never install at the same time.
|
|
609
609
|
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"private": true,
|
|
4
4
|
"description": "SLICC's agent, which the UI installs with pnpm in the background into /opt/agent in OPFS",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@ai-ecoverse/slicc-agent": "7.8.
|
|
6
|
+
"@ai-ecoverse/slicc-agent": "7.8.9",
|
|
7
7
|
"@ai-ecoverse/slicc-kernel": "1.168.1"
|
|
8
8
|
}
|
|
9
9
|
}
|
|
@@ -14,8 +14,8 @@ importers:
|
|
|
14
14
|
.:
|
|
15
15
|
dependencies:
|
|
16
16
|
'@ai-ecoverse/slicc-agent':
|
|
17
|
-
specifier: 7.8.
|
|
18
|
-
version: 7.8.
|
|
17
|
+
specifier: 7.8.9
|
|
18
|
+
version: 7.8.9(@ai-ecoverse/slicc-kernel@1.168.1)(@aws-sdk/credential-provider-node@3.972.84)(@smithy/signature-v4@5.7.4)(ws@8.22.0)
|
|
19
19
|
'@ai-ecoverse/slicc-kernel':
|
|
20
20
|
specifier: 1.168.1
|
|
21
21
|
version: 1.168.1
|
|
@@ -25,8 +25,8 @@ packages:
|
|
|
25
25
|
'@ai-ecoverse/jerk-oauth@1.3.0':
|
|
26
26
|
resolution: {integrity: sha512-dbCU1KgYns8lP8IUCWbvCxQxCFSiVxuEYViu4CcnxphcrL9gltTvPdBpQOfAduU80GQTU3H4CMjGwuCo6EGNhg==}
|
|
27
27
|
|
|
28
|
-
'@ai-ecoverse/slicc-agent@7.8.
|
|
29
|
-
resolution: {integrity: sha512
|
|
28
|
+
'@ai-ecoverse/slicc-agent@7.8.9':
|
|
29
|
+
resolution: {integrity: sha512-+2inbqY/nsJDo38+qrzbMAOZLKu3EIsK8VJ4jnEI2YvfEmjzPOPV9AdD2tTXUx8q/3/oHugvAGpfMXVzRUIWxg==}
|
|
30
30
|
engines: {node: '>=24'}
|
|
31
31
|
peerDependencies:
|
|
32
32
|
'@ai-ecoverse/slicc-kernel': '>=1.110.0 <2'
|
|
@@ -35,8 +35,8 @@ packages:
|
|
|
35
35
|
'@ai-ecoverse/slicc-spectrum':
|
|
36
36
|
optional: true
|
|
37
37
|
|
|
38
|
-
'@ai-ecoverse/slicc-browsers@1.18.
|
|
39
|
-
resolution: {integrity: sha512-
|
|
38
|
+
'@ai-ecoverse/slicc-browsers@1.18.16':
|
|
39
|
+
resolution: {integrity: sha512-hTXaDzfcpFk/YCs09t6ciWSX3L6w99pcux/EXZsICHtSWxfFp1xk4sWNpFb4rCUgC2CY7ZxVa2bDkfYqAYEcnA==}
|
|
40
40
|
engines: {node: '>=24'}
|
|
41
41
|
|
|
42
42
|
'@ai-ecoverse/slicc-kernel@1.168.1':
|
|
@@ -355,9 +355,9 @@ snapshots:
|
|
|
355
355
|
|
|
356
356
|
'@ai-ecoverse/jerk-oauth@1.3.0': {}
|
|
357
357
|
|
|
358
|
-
'@ai-ecoverse/slicc-agent@7.8.
|
|
358
|
+
'@ai-ecoverse/slicc-agent@7.8.9(@ai-ecoverse/slicc-kernel@1.168.1)(@aws-sdk/credential-provider-node@3.972.84)(@smithy/signature-v4@5.7.4)(ws@8.22.0)':
|
|
359
359
|
dependencies:
|
|
360
|
-
'@ai-ecoverse/slicc-browsers': 1.18.
|
|
360
|
+
'@ai-ecoverse/slicc-browsers': 1.18.16
|
|
361
361
|
'@ai-ecoverse/slicc-kernel': 1.168.1
|
|
362
362
|
'@ai-ecoverse/slicc-vault': 1.17.0
|
|
363
363
|
'@aws-sdk/middleware-websocket': 3.972.54
|
|
@@ -380,7 +380,7 @@ snapshots:
|
|
|
380
380
|
- ws
|
|
381
381
|
- zod
|
|
382
382
|
|
|
383
|
-
'@ai-ecoverse/slicc-browsers@1.18.
|
|
383
|
+
'@ai-ecoverse/slicc-browsers@1.18.16': {}
|
|
384
384
|
|
|
385
385
|
'@ai-ecoverse/slicc-kernel@1.168.1': {}
|
|
386
386
|
|