@wenathlan/saddle 2.1.6 → 2.1.8
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/Dockerfile +170 -66
- package/LICENSE +0 -0
- package/README.md +73 -58
- package/alternatives.ts +0 -0
- package/biome.jsonc +134 -0
- package/boards.json +2 -2
- package/browser.ts +482 -0
- package/cli.ts +274 -0
- package/compute.ts +4 -4
- package/cores.json +2 -2
- package/distribution.ts +731 -0
- package/docker.config +37 -9
- package/docs/.gitkeep +0 -0
- package/docs/actionrecorder.md +0 -0
- package/docs/actionsincident.md +0 -0
- package/docs/alternatives.md +0 -0
- package/docs/architecture.md +0 -0
- package/docs/{architecture-1.8.19.md → architecture1819.md} +0 -0
- package/docs/{architecture-1.8.19.mmd → architecture1819.mmd} +0 -0
- package/docs/artifactavailability.md +2 -2
- package/docs/{artifactresearch-1.8.9.md → artifactresearch189.md} +0 -0
- package/docs/{batches-1816-1820.md → batches1816to1820.md} +0 -0
- package/docs/{brancharchive-2026-08-18.md → brancharchive20260818.md} +0 -0
- package/docs/branchaudit.md +0 -0
- package/docs/browser.md +18 -1
- package/docs/capabilityreport.md +0 -0
- package/docs/comparativeaudit.md +0 -0
- package/docs/consolidation.md +0 -0
- package/docs/{containerplatforms-1.8.17.md → containerplatforms1817.md} +0 -0
- package/docs/{containerplatforms-2.1.0.md → containerplatforms210.md} +1 -1
- package/docs/{documentmap-1.8.12.md → documentmap1812.md} +1 -1
- package/docs/{e2ugh-engine.md → e2ughengine.md} +0 -0
- package/docs/ecosystemplan.md +0 -0
- package/docs/enginearchitecture.md +0 -0
- package/docs/extension.md +13 -2
- package/docs/featureaudit.md +0 -0
- package/docs/{flatbuildresearch-1.8.11.md → flatbuildresearch1811.md} +0 -0
- package/docs/gapmatrix.md +0 -0
- package/docs/hardware.md +0 -0
- package/docs/libraryapi.md +1 -1
- package/docs/{licenseaudit-1.8.12.md → licenseaudit1812.md} +0 -0
- package/docs/logs/examplesession.json +54 -0
- package/docs/memoryengine.md +0 -0
- package/docs/{mobileconversionresearch-1.8.10.md → mobileconversionresearch1810.md} +0 -0
- package/docs/modes.md +0 -0
- package/docs/{nativeidentityresearch-1.8.11.md → nativeidentityresearch1811.md} +0 -0
- package/docs/{native-wrappers.md → nativewrappers.md} +0 -0
- package/docs/ninetymodalities.md +191 -0
- package/docs/optimization.md +0 -0
- package/docs/packageaudit185.md +0 -0
- package/docs/performance.md +0 -0
- package/docs/{planning.1.8.18.md → planning1818.md} +0 -0
- package/docs/{planning.1.8.19.md → planning1819.md} +0 -0
- package/docs/planningengine.md +186 -0
- package/docs/planningninety.md +391 -0
- package/docs/platformpipelineaudit.md +0 -0
- package/docs/platformpipelines.md +0 -0
- package/docs/productindex.md +0 -0
- package/docs/registryresearch.md +0 -0
- package/docs/release.md +0 -0
- package/docs/release17notes.md +0 -0
- package/docs/release181notes.md +0 -0
- package/docs/release182notes.md +0 -0
- package/docs/release184notes.md +0 -0
- package/docs/release185notes.md +0 -0
- package/docs/release18notes.md +0 -0
- package/docs/releaseassets.md +0 -0
- package/docs/{releasenotes-1.8.12.md → releasenotes1812.md} +0 -0
- package/docs/{releasenotes-1.8.13.md → releasenotes1813.md} +2 -2
- package/docs/{releasenotes-1.8.14.md → releasenotes1814.md} +1 -1
- package/docs/{releasenotes-1.8.15.md → releasenotes1815.md} +0 -0
- package/docs/{releasenotes-1.8.16.md → releasenotes1816.md} +0 -0
- package/docs/{releasenotes-1.8.17.md → releasenotes1817.md} +0 -0
- package/docs/{releasenotes-1.8.18.md → releasenotes1818.md} +0 -0
- package/docs/{releasenotes-1.8.19.md → releasenotes1819.md} +0 -0
- package/docs/{reorganization-1.8.8.md → reorganization188.md} +0 -0
- package/docs/{reorganization-1.8.9.md → reorganization189.md} +0 -0
- package/docs/{repo-analysis-1.8.21.json → repoanalysis1821.json} +0 -0
- package/docs/{repo-candidates-1.8.21.jsonl → repocandidates1821.jsonl} +0 -0
- package/docs/{repo-research-1.8.16.md → reporesearch1816.md} +0 -0
- package/docs/{repo-research-1.8.21.md → reporesearch1821.md} +0 -0
- package/docs/{repo-selected-1.8.21.json → reposelected1821.json} +0 -0
- package/docs/{repo-synthesis-1.8.16.md → reposynthesis1816.md} +1 -1
- package/docs/{repo-synthesis-1.8.21.md → reposynthesis1821.md} +0 -0
- package/docs/{research-1.8.18-isolation.md → research1818isolation.md} +0 -0
- package/docs/{research-1.8.19-virtual-browser.md → research1819virtualbrowser.md} +0 -0
- package/docs/roadmapp2p3.md +0 -0
- package/docs/s3compatible.md +0 -0
- package/docs/{scanningresearch-1.8.11.md → scanningresearch1811.md} +0 -0
- package/docs/security.md +0 -0
- package/docs/{securityaudit-1.8.7.md → securityaudit187.md} +0 -0
- package/docs/{securityreferences-1.8.11.md → securityreferences1811.md} +0 -0
- package/docs/{securityresearch-1.8.11.md → securityresearch1811.md} +0 -0
- package/docs/{signingresearch-1.8.12.md → signingresearch1812.md} +0 -0
- package/docs/signingwithoutcertificates.md +0 -0
- package/docs/signpathapplication.md +0 -0
- package/docs/sitemap.md +0 -0
- package/docs/{tauri-glib-risk-1.8.11.md → tauriglibrisk1811.md} +0 -0
- package/docs/todo.md +2 -2
- package/docs/{todo-1.8.15.md → todo1815.md} +1 -1
- package/docs/{todo-1.8.16.md → todo1816.md} +5 -5
- package/docs/{todo-1.8.18.md → todo1818.md} +0 -0
- package/docs/{todo-1.8.19.md → todo1819.md} +0 -0
- package/docs/{toolchainresearch-1.8.9.md → toolchainresearch189.md} +0 -0
- package/docs/toolchains.md +0 -0
- package/docs/usage.md +0 -0
- package/docs/viability.md +0 -0
- package/docs/virtualization.md +0 -0
- package/docs/{web-duplicatecleanup.md → webduplicatecleanup.md} +0 -0
- package/docs/{web-ideas.md → webideas.md} +0 -0
- package/docs/{workflowimprovements-2026-08-19.md → workflowimprovements20260819.md} +0 -0
- package/docs/workflowinputs.md +0 -0
- package/docs/workflowoperations.md +0 -0
- package/docs/workloadlaw.md +104 -0
- package/execution.ts +677 -0
- package/foundation.ts +314 -0
- package/gpumonitor.cpp +0 -0
- package/gpus.json +1 -1
- package/index.ts +38 -29
- package/isolation.ts +84 -0
- package/modalityregistry.ts +1493 -0
- package/{dist/modes.js → modes.ts} +79 -62
- package/mttg.config +1 -1
- package/orchestrator.ts +54 -17
- package/package.json +245 -146
- package/passage.config +0 -0
- package/performance.ts +0 -0
- package/processors.json +1 -1
- package/qemu.config +2 -2
- package/qemubridge.py +0 -0
- package/quantum.ts +0 -0
- package/render.ts +0 -0
- package/sandbox.ts +2035 -0
- package/scheduler.ts +1 -1
- package/security.ts +0 -0
- package/server.ts +52 -0
- package/tiers.ts +9 -3
- package/tsconfig.json +22 -13
- package/virtual.ts +1105 -0
- package/virtualcpu.ts +1 -0
- package/virtualgpu.ts +2 -1
- package/virtualhardware.c +0 -0
- package/virtualhardware.json +2 -2
- package/virtualization.ts +1 -1
- package/virtualizationcore.cpp +0 -0
- package/virtualmemory.ts +0 -0
- package/vm.config.json +2 -2
- package/workloadlaw.ts +293 -0
- package/biome.json +0 -151
- package/dist/acquisition.d.ts +0 -359
- package/dist/acquisition.d.ts.map +0 -1
- package/dist/acquisition.js +0 -629
- package/dist/acquisition.js.map +0 -1
- package/dist/alternatives.d.ts +0 -509
- package/dist/alternatives.d.ts.map +0 -1
- package/dist/alternatives.js +0 -951
- package/dist/alternatives.js.map +0 -1
- package/dist/automation.d.ts +0 -426
- package/dist/automation.d.ts.map +0 -1
- package/dist/automation.js +0 -561
- package/dist/automation.js.map +0 -1
- package/dist/browser.d.ts +0 -562
- package/dist/browser.d.ts.map +0 -1
- package/dist/browser.js +0 -1057
- package/dist/browser.js.map +0 -1
- package/dist/cli.d.ts +0 -17
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -169
- package/dist/cli.js.map +0 -1
- package/dist/communication.d.ts +0 -192
- package/dist/communication.d.ts.map +0 -1
- package/dist/communication.js +0 -418
- package/dist/communication.js.map +0 -1
- package/dist/compute.d.ts +0 -1161
- package/dist/compute.d.ts.map +0 -1
- package/dist/compute.js +0 -2273
- package/dist/compute.js.map +0 -1
- package/dist/distribution.d.ts +0 -529
- package/dist/distribution.d.ts.map +0 -1
- package/dist/distribution.js +0 -811
- package/dist/distribution.js.map +0 -1
- package/dist/docs/example-localjob.d.ts +0 -2
- package/dist/docs/example-localjob.d.ts.map +0 -1
- package/dist/docs/example-localjob.js +0 -15
- package/dist/docs/example-localjob.js.map +0 -1
- package/dist/docs/example-publicapi.d.ts +0 -2
- package/dist/docs/example-publicapi.d.ts.map +0 -1
- package/dist/docs/example-publicapi.js +0 -7
- package/dist/docs/example-publicapi.js.map +0 -1
- package/dist/execution.d.ts +0 -530
- package/dist/execution.d.ts.map +0 -1
- package/dist/execution.js +0 -761
- package/dist/execution.js.map +0 -1
- package/dist/format.d.ts +0 -19
- package/dist/format.d.ts.map +0 -1
- package/dist/format.js +0 -60
- package/dist/format.js.map +0 -1
- package/dist/foundation.d.ts +0 -176
- package/dist/foundation.d.ts.map +0 -1
- package/dist/foundation.js +0 -309
- package/dist/foundation.js.map +0 -1
- package/dist/index.d.ts +0 -735
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -1020
- package/dist/index.js.map +0 -1
- package/dist/integration.d.ts +0 -236
- package/dist/integration.d.ts.map +0 -1
- package/dist/integration.js +0 -236
- package/dist/integration.js.map +0 -1
- package/dist/intelligence.d.ts +0 -94
- package/dist/intelligence.d.ts.map +0 -1
- package/dist/intelligence.js +0 -145
- package/dist/intelligence.js.map +0 -1
- package/dist/isolation.d.ts +0 -129
- package/dist/isolation.d.ts.map +0 -1
- package/dist/isolation.js +0 -96
- package/dist/isolation.js.map +0 -1
- package/dist/media.d.ts +0 -344
- package/dist/media.d.ts.map +0 -1
- package/dist/media.js +0 -986
- package/dist/media.js.map +0 -1
- package/dist/modes.d.ts +0 -359
- package/dist/modes.d.ts.map +0 -1
- package/dist/modes.js.map +0 -1
- package/dist/operations.d.ts +0 -67
- package/dist/operations.d.ts.map +0 -1
- package/dist/operations.js +0 -94
- package/dist/operations.js.map +0 -1
- package/dist/orchestrator.d.ts +0 -1339
- package/dist/orchestrator.d.ts.map +0 -1
- package/dist/orchestrator.js +0 -4308
- package/dist/orchestrator.js.map +0 -1
- package/dist/packager/targetcli.js +0 -4
- package/dist/performance.d.ts +0 -416
- package/dist/performance.d.ts.map +0 -1
- package/dist/performance.js +0 -827
- package/dist/performance.js.map +0 -1
- package/dist/quantum.d.ts +0 -810
- package/dist/quantum.d.ts.map +0 -1
- package/dist/quantum.js +0 -2073
- package/dist/quantum.js.map +0 -1
- package/dist/render.d.ts +0 -381
- package/dist/render.d.ts.map +0 -1
- package/dist/render.js +0 -1073
- package/dist/render.js.map +0 -1
- package/dist/scheduler.d.ts +0 -596
- package/dist/scheduler.d.ts.map +0 -1
- package/dist/scheduler.js +0 -1259
- package/dist/scheduler.js.map +0 -1
- package/dist/security.d.ts +0 -501
- package/dist/security.d.ts.map +0 -1
- package/dist/security.js +0 -1170
- package/dist/security.js.map +0 -1
- package/dist/server.d.ts +0 -21
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js +0 -52
- package/dist/server.js.map +0 -1
- package/dist/tiers.d.ts +0 -1002
- package/dist/tiers.d.ts.map +0 -1
- package/dist/tiers.js +0 -2165
- package/dist/tiers.js.map +0 -1
- package/dist/virtual.d.ts +0 -641
- package/dist/virtual.d.ts.map +0 -1
- package/dist/virtual.js +0 -1285
- package/dist/virtual.js.map +0 -1
- package/dist/virtualcpu.d.ts +0 -316
- package/dist/virtualcpu.d.ts.map +0 -1
- package/dist/virtualcpu.js +0 -1180
- package/dist/virtualcpu.js.map +0 -1
- package/dist/virtualgpu.d.ts +0 -345
- package/dist/virtualgpu.d.ts.map +0 -1
- package/dist/virtualgpu.js +0 -1000
- package/dist/virtualgpu.js.map +0 -1
- package/dist/virtualization.d.ts +0 -607
- package/dist/virtualization.d.ts.map +0 -1
- package/dist/virtualization.js +0 -1187
- package/dist/virtualization.js.map +0 -1
- package/dist/virtualmemory.d.ts +0 -818
- package/dist/virtualmemory.d.ts.map +0 -1
- package/dist/virtualmemory.js +0 -1796
- package/dist/virtualmemory.js.map +0 -1
- package/dist/vitest.config.d.ts +0 -3
- package/dist/vitest.config.d.ts.map +0 -1
- package/dist/vitest.config.js +0 -26
- package/dist/vitest.config.js.map +0 -1
- package/dist/webscrape.d.ts +0 -720
- package/dist/webscrape.d.ts.map +0 -1
- package/dist/webscrape.js +0 -2697
- package/dist/webscrape.js.map +0 -1
- package/docs/CONVERSA.txt +0 -1523
- package/docs/architecture-1.8.19.png +0 -0
- package/docs/assets/architecture.svg +0 -45
- package/docs/assets/saddlemark.svg +0 -13
- package/docs/example-localjob.ts +0 -15
- package/docs/example-publicapi.ts +0 -7
- package/docs/saddle.archive.1.8.17.tar.gz.gpg +0 -0
- package/media.ts +0 -1337
- package/web/manifest.json +0 -30
- package/web/readme.md +0 -383
- package/web/tsconfig.json +0 -25
package/docker.config
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"meta": {
|
|
3
3
|
"name": "docker.config",
|
|
4
4
|
"title": "saddle - Docker Engine and Containerization Configuration",
|
|
5
|
-
"version": "2.
|
|
5
|
+
"version": "2.0.154",
|
|
6
6
|
"date": "2026-08-22",
|
|
7
7
|
"language": "en",
|
|
8
8
|
"sources": [
|
|
@@ -106,11 +106,21 @@
|
|
|
106
106
|
"platforms": {
|
|
107
107
|
"architectures": [
|
|
108
108
|
"linux/amd64",
|
|
109
|
-
"linux/
|
|
109
|
+
"linux/amd64/v2",
|
|
110
|
+
"linux/arm64",
|
|
111
|
+
"linux/arm/v7",
|
|
112
|
+
"linux/arm/v6",
|
|
113
|
+
"linux/ppc64le",
|
|
114
|
+
"linux/s390x",
|
|
115
|
+
"linux/riscv64",
|
|
116
|
+
"linux/386",
|
|
117
|
+
"linux/mips64le",
|
|
118
|
+
"linux/loong64"
|
|
110
119
|
],
|
|
111
120
|
"primary": "linux/amd64",
|
|
112
|
-
"qemuEmulation":
|
|
113
|
-
"nativeBuild": true
|
|
121
|
+
"qemuEmulation": true,
|
|
122
|
+
"nativeBuild": true,
|
|
123
|
+
"note": "the eleven-arch family standard (PR15b: amd64, amd64/v2, arm64, arm/v7, arm/v6, ppc64le, s390x, riscv64, 386, mips64le, loong64 - the complete linux platform surface docker/buildx carries, the owner's law: eleven OS architectures for every container of every application) the one container file and the publish lanes carry; amd64 and amd64/v2 build native, the other nine legs ride QEMU emulation; unknown/* stays rejected as not runnable"
|
|
114
124
|
},
|
|
115
125
|
"runtimeBase": {
|
|
116
126
|
"nodeImage": "node:26.7.0-alpine",
|
|
@@ -468,9 +478,18 @@
|
|
|
468
478
|
"multiArch": {
|
|
469
479
|
"platforms": [
|
|
470
480
|
"linux/amd64",
|
|
471
|
-
"linux/
|
|
481
|
+
"linux/amd64/v2",
|
|
482
|
+
"linux/arm64",
|
|
483
|
+
"linux/arm/v7",
|
|
484
|
+
"linux/arm/v6",
|
|
485
|
+
"linux/ppc64le",
|
|
486
|
+
"linux/s390x",
|
|
487
|
+
"linux/riscv64",
|
|
488
|
+
"linux/386",
|
|
489
|
+
"linux/mips64le",
|
|
490
|
+
"linux/loong64"
|
|
472
491
|
],
|
|
473
|
-
"command": "docker buildx build --platform linux/amd64,linux/arm64 --cache-from type=gha --cache-to type=gha,mode=max --push -t ghcr.io/vhe/sandbox:29.7.2 ."
|
|
492
|
+
"command": "docker buildx build --platform linux/amd64,linux/amd64/v2,linux/arm64,linux/arm/v7,linux/arm/v6,linux/ppc64le,linux/s390x,linux/riscv64,linux/386,linux/mips64le,linux/loong64 --cache-from type=gha --cache-to type=gha,mode=max --push -t ghcr.io/vhe/sandbox:29.7.2 ."
|
|
474
493
|
},
|
|
475
494
|
"actionsWorkflowUses": [
|
|
476
495
|
"docker/setup-buildx-action@v4.3.0",
|
|
@@ -618,7 +637,7 @@
|
|
|
618
637
|
"labels": {
|
|
619
638
|
"org.opencontainers.image.title": "saddle-v6",
|
|
620
639
|
"org.opencontainers.image.description": "Saddle v6 virtualization orchestrator with QEMU 11.1.0, Node 22 LTS, Python 3.13.5, MTTG, Passage, OVMF",
|
|
621
|
-
"org.opencontainers.image.version": "2.
|
|
640
|
+
"org.opencontainers.image.version": "2.0.154",
|
|
622
641
|
"org.opencontainers.image.created": "2026-08-22T00:00:00Z",
|
|
623
642
|
"org.opencontainers.image.authors": "Saddle Core <core@saddle.dev>",
|
|
624
643
|
"org.opencontainers.image.url": "https://saddle.dev",
|
|
@@ -630,7 +649,7 @@
|
|
|
630
649
|
"org.opencontainers.image.base.name": "debian:bookworm-slim",
|
|
631
650
|
"org.opencontainers.image.base.digest": "sha256:bookworm-slim-pinned-2026-08-22",
|
|
632
651
|
"saddle": {
|
|
633
|
-
"com.saddle.version": "2.
|
|
652
|
+
"com.saddle.version": "2.0.154",
|
|
634
653
|
"com.saddle.engine": "qemu-11.1.0",
|
|
635
654
|
"com.saddle.modes": "32",
|
|
636
655
|
"com.saddle.forge.mirrors": "github,gitea,forgejo",
|
|
@@ -655,7 +674,16 @@
|
|
|
655
674
|
"target": "runtime-base",
|
|
656
675
|
"platforms": [
|
|
657
676
|
"linux/amd64",
|
|
658
|
-
"linux/
|
|
677
|
+
"linux/amd64/v2",
|
|
678
|
+
"linux/arm64",
|
|
679
|
+
"linux/arm/v7",
|
|
680
|
+
"linux/arm/v6",
|
|
681
|
+
"linux/ppc64le",
|
|
682
|
+
"linux/s390x",
|
|
683
|
+
"linux/riscv64",
|
|
684
|
+
"linux/386",
|
|
685
|
+
"linux/mips64le",
|
|
686
|
+
"linux/loong64"
|
|
659
687
|
],
|
|
660
688
|
"cacheFrom": [
|
|
661
689
|
"type=gha",
|
package/docs/.gitkeep
CHANGED
|
File without changes
|
package/docs/actionrecorder.md
CHANGED
|
File without changes
|
package/docs/actionsincident.md
CHANGED
|
File without changes
|
package/docs/alternatives.md
CHANGED
|
File without changes
|
package/docs/architecture.md
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -141,7 +141,7 @@ The available metadata files are `manifest.android.1.8.15.json`, `manifest.conta
|
|
|
141
141
|
|
|
142
142
|
## 1.8.16 verified release matrix
|
|
143
143
|
|
|
144
|
-
The published [v1.8.16 release](https://github.com/wenathlan/saddle/releases/tag/v1.8.16) contains 38 attached assets: six Linux desktop artifacts, six Windows desktop artifacts, four macOS desktop artifacts, two Android artifacts, one container archive, one browser extension, nine manifests, and nine checksum files. The asset names match the matrix in [
|
|
144
|
+
The published [v1.8.16 release](https://github.com/wenathlan/saddle/releases/tag/v1.8.16) contains 38 attached assets: six Linux desktop artifacts, six Windows desktop artifacts, four macOS desktop artifacts, two Android artifacts, one container archive, one browser extension, nine manifests, and nine checksum files. The asset names match the matrix in [releasenotes1816.md](releasenotes1816.md).
|
|
145
145
|
|
|
146
146
|
The release-event Android workflow stopped because production signing secrets were not configured. The separately successful manual Android run `31839378707` used the workflow's explicit `ci-test-key` option and attached the APK, AAB, checksum, and manifest. No iOS artifact is claimed because Apple signing, provisioning, and export credentials were not configured. Desktop artifacts remain `unsigned`, the container manifest remains `caller-owned`, and no result is represented as production signing, notarization, registry trust, SBOM validation, or vulnerability status without its own evidence.
|
|
147
147
|
|
|
@@ -151,7 +151,7 @@ The release-evidence API can normalize and evaluate results supplied by complete
|
|
|
151
151
|
|
|
152
152
|
The 1.8.17 candidate keeps the established release asset contract while expanding the GHCR image index to `linux/amd64`, `linux/arm64`, and `linux/ppc64le`. The workflow must inspect the pushed index before this document treats those platform variants as available. The attached `saddle.container.1.8.17.tar.gz` remains one archive artifact and is not evidence of a Windows container variant.
|
|
153
153
|
|
|
154
|
-
`windows/amd64`, `linux/arm/v7`, and `linux/386` are not claimed by this candidate. A Windows image requires its own versioned Windows base, Dockerfile, runner, and compatibility validation; the existing Debian Linux Dockerfile cannot produce it by adding a platform string. `unknown` descriptors are not runnable targets. The platform decision and evidence limits are detailed in [
|
|
154
|
+
`windows/amd64`, `linux/arm/v7`, and `linux/386` are not claimed by this candidate. A Windows image requires its own versioned Windows base, Dockerfile, runner, and compatibility validation; the existing Debian Linux Dockerfile cannot produce it by adding a platform string. `unknown` descriptors are not runnable targets. The platform decision and evidence limits are detailed in [containerplatforms1817.md](containerplatforms1817.md).
|
|
155
155
|
|
|
156
156
|
## 1.8.17 verified container publication
|
|
157
157
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/docs/branchaudit.md
CHANGED
|
File without changes
|
package/docs/browser.md
CHANGED
|
@@ -1,7 +1,24 @@
|
|
|
1
1
|
# Saddle browser surface
|
|
2
2
|
|
|
3
|
-
The root `browser
|
|
3
|
+
The root `browser.ts` carries the transport-neutral browser-agent contracts of the engine: session state, context, snapshots, fingerprints, the virtual-browser request/decision/handoff/receipt family, the optional Playwright adapter, recording and agent orchestration (sections 1-9 of the grand merge). It is library logic and is shared by callers; it is not a second copy of the desktop UI.
|
|
4
4
|
|
|
5
5
|
The user-facing browser application is the existing Tauri shell in `desktop/`, which wraps the compiled `web/dist/public` surface on Windows, Linux and macOS. Android and iOS convert the same web output through Capacitor. This boundary keeps browser behavior in the library and keeps presentation and native packaging in their target surfaces.
|
|
6
6
|
|
|
7
|
+
## The Manifest V3 extension migrated to devthink (wave 2 regrouping)
|
|
8
|
+
|
|
9
|
+
The Chrome Manifest V3 extension surface — the former sections 10-17 of `browser.ts` (`extension/permissions`, `extension/protocol`, `extension/content`, `extension/popup`, `extension/pagebridge`, `extension/worker`, `extension/serviceworker`, `extension/build`) — now lives in **`devthink/browserextension.ts`** with every export under the same name and signature. The family rule that drove the move: the saddle is exclusively the virtualization engine (VM / sandbox / microVM / the ninety modalities / vGPU / vCPU) and never touches the browser, GPU, CPU or storage of the user — every feature that runs in the user's browser is not a VM modality and belongs to devthink, the owner of the family extension product (which already packages its own extension through `packageextension.ts` and `crossbrowser.ts`).
|
|
10
|
+
|
|
11
|
+
What moved with the surface:
|
|
12
|
+
|
|
13
|
+
| former saddle root file | devthink root file |
|
|
14
|
+
| --- | --- |
|
|
15
|
+
| `browser.ts` sections 10-17 | `devthink/browserextension.ts` |
|
|
16
|
+
| `manifest.json` (MV3 bridge manifest) | `devthink/extensionmanifest.json` |
|
|
17
|
+
| `popup.html` | `devthink/extensionpopup.html` |
|
|
18
|
+
| `popup.css` | `devthink/extensionpopup.css` |
|
|
19
|
+
| `icon32.png` / `icon64.png` / `icon128.png` | `devthink/extensionicon32.png` / `extensionicon64.png` / `extensionicon128.png` |
|
|
20
|
+
| `tests/extension.test.ts` | `devthink/tests/browserextension.test.ts` |
|
|
21
|
+
|
|
22
|
+
The tracked assets carry the `extension` prefix at the devthink root because devthink already owns its own extension surface (`manifest.json` of record, `popup.ts`, `design.html`) — no root name collides. The build adapter (section 17 of the migrated module) is self-referential: it extracts the seven script sections from `devthink/browserextension.ts` itself, reads `extensionmanifest.json` for the versioned manifest and copies the extension-prefixed assets into an isolated unpacked artifact (default output `build/browserextension`, so it never touches the `build/extension` directory owned by the devthink extension build). The `@wenathlan/saddle/extension` package export and the `extension:build` script retired with the migration — consumers import the surface from the devthink app.
|
|
23
|
+
|
|
7
24
|
Release filenames identify the user-facing desktop browser with the dotted lowercase pattern `saddle.browser.1.8.14.<format>`. Internal module filenames remain API-compatible unless a deliberate public compatibility migration is documented.
|
package/docs/capabilityreport.md
CHANGED
|
File without changes
|
package/docs/comparativeaudit.md
CHANGED
|
File without changes
|
package/docs/consolidation.md
CHANGED
|
File without changes
|
|
File without changes
|
|
@@ -8,7 +8,7 @@ from a three-platform Linux manifest index to the four-architecture family
|
|
|
8
8
|
surface: `linux/amd64`, `linux/arm64`, `linux/ppc64le`, and `linux/s390x`.
|
|
9
9
|
The selection unifies the container surfaces of the grand merge: the saddle
|
|
10
10
|
lineage shipped amd64/arm64/ppc64le (the 1.8.17 decision, see
|
|
11
|
-
[
|
|
11
|
+
[containerplatforms1817.md](containerplatforms1817.md)) and the e2ugh
|
|
12
12
|
lineage published all four architectures for the virtual-hardware engine
|
|
13
13
|
(`publish ghcr vhe`). One product, one registry, one architecture surface:
|
|
14
14
|
the s390x leg joins the node engine from the e2ugh side of the family.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## Canonical root documents
|
|
4
4
|
|
|
5
|
-
Project policies, notices and contribution guidance remain at the repository root so package consumers and forge interfaces can discover them without entering `docs`. The canonical license is the extensionless `LICENSE` file containing the official unmodified GNU GPL v3.0 text. Human-readable project policies use one Markdown file per context: `
|
|
5
|
+
Project policies, notices and contribution guidance remain at the repository root so package consumers and forge interfaces can discover them without entering `docs`. The canonical license is the extensionless `LICENSE` file containing the official unmodified GNU GPL v3.0 text. Human-readable project policies use one Markdown file per context: `acceptableusepolicy.md`, `authors.md`, `bugreport.md`, `cla.md`, `codeofconduct.md`, `contributing.md`, `copyright.md`, `disclaimer.md`, `eula.md`, `exportcontrol.md`, `governance.md`, `notice.md`, `privacypolicy.md`, `pullrequesttemplate.md`, `security.md`, `support.md`, `termsandconditions.md`, `termsofuse.md`, `thirdpartynotices.md` and `trademarkpolicy.md`.
|
|
6
6
|
|
|
7
7
|
The public scope README remains `/home/ubuntu/upload/README.md` and was not modified. The repository's own `README.md` remains a public project document and can receive release or signing-policy updates separately from the immutable scope reference.
|
|
8
8
|
|
|
File without changes
|
package/docs/ecosystemplan.md
CHANGED
|
File without changes
|
|
File without changes
|
package/docs/extension.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# saddle browser bridge
|
|
2
2
|
|
|
3
|
+
> **Migration note (wave 2 regrouping):** the extension surface moved to
|
|
4
|
+
> `devthink/browserextension.ts` (sections 10-17 of the former
|
|
5
|
+
> `saddle/browser.ts`), with its tracked assets at the devthink root
|
|
6
|
+
> (`extensionmanifest.json`, `extensionpopup.html`, `extensionpopup.css`,
|
|
7
|
+
> `extensionicon32.png`, `extensionicon64.png`, `extensionicon128.png`)
|
|
8
|
+
> and its test battery at `devthink/tests/browserextension.test.ts`. The
|
|
9
|
+
> saddle is exclusively the virtualization engine; everything that runs
|
|
10
|
+
> in the user's browser belongs to devthink, the owner of the family
|
|
11
|
+
> extension product. The notes below describe the bridge design and stay
|
|
12
|
+
> accurate for the migrated surface.
|
|
13
|
+
|
|
3
14
|
This directory contains the first Manifest V3 surface for Saddle. It is a user initiated bridge, not a hidden automation service.
|
|
4
15
|
|
|
5
16
|
## load unpacked
|
|
@@ -7,7 +18,7 @@ This directory contains the first Manifest V3 surface for Saddle. It is a user i
|
|
|
7
18
|
1. Open `chrome://extensions`.
|
|
8
19
|
2. Enable developer mode.
|
|
9
20
|
3. Choose **Load unpacked**.
|
|
10
|
-
4. Select
|
|
21
|
+
4. Select the built artifact directory (the unpacked output of the build adapter below).
|
|
11
22
|
5. Open a page, invoke Saddle from the extension action and choose `Snapshot` or `Read page`.
|
|
12
23
|
|
|
13
24
|
The manifest requests only `activeTab`, `scripting` and `storage`. It does not request broad host permissions, cookies, tabs, webRequest or debugger access. `activeTab` gives temporary access after the user invokes the action for the current tab.
|
|
@@ -20,7 +31,7 @@ The content bridge runs in Chrome's isolated world. It exposes bounded page meta
|
|
|
20
31
|
|
|
21
32
|
## deterministic release artifact
|
|
22
33
|
|
|
23
|
-
The Node-only build adapter creates an isolated unpacked artifact with the release version in its manifest. A caller can run `
|
|
34
|
+
The Node-only build adapter creates an isolated unpacked artifact with the release version in its manifest. A caller can run `node --import tsx ./browserextension.ts --version 1.8.14 --output build/browserextension` from the devthink app root (the retired saddle `extension:build` script went with the migration) and package that directory with the archive tool available in the host environment. The release workflow derives the version from the published tag and attaches `saddle.extension.<version>.zip` without changing the source manifest.
|
|
24
35
|
|
|
25
36
|
## next slices
|
|
26
37
|
|
package/docs/featureaudit.md
CHANGED
|
File without changes
|
|
File without changes
|
package/docs/gapmatrix.md
CHANGED
|
File without changes
|
package/docs/hardware.md
CHANGED
|
File without changes
|
package/docs/libraryapi.md
CHANGED
|
@@ -60,7 +60,7 @@ The `fetcher`, browser adapter, persistence adapter, proxy pool, captcha solver,
|
|
|
60
60
|
|
|
61
61
|
The package exposes explicit subpaths for `./browser`, `./bot`, `./captcha`, `./memory-engine`, `./deploy`, and `./release-evidence`. Desktop, mobile, target-plan and n8n contracts are exported from the root entry; the root entry remains the complete compiled JavaScript API with generated TypeScript declarations for consumers that prefer one import.
|
|
62
62
|
|
|
63
|
-
The `./extension` subpath
|
|
63
|
+
The former `./extension` subpath retired with the wave 2 regrouping: the Chrome Manifest V3 surface (message, snapshot and service-worker routing contracts, the content and page bridges, the popup and the build adapter) runs in the user's browser, so it is not a VM modality of the engine and migrated to `devthink/browserextension.ts` with every export under the same name. The browser surface keeps exposing snapshots, tab/frame context, action results, bounded action batches and recording through `./browser`.
|
|
64
64
|
|
|
65
65
|
The current release exposes `desktopmanifest`, `mobilemanifest`, `desktopadapter`, `mobileadapter`, `n8nnode`, `n8nmatch`, `n8nexecute`, `controlsurface`, `controlservice`, and `workerbridge`. These factories describe surface boundaries and invoke caller-owned handlers; they do not install a native toolkit, start an n8n server, create a dashboard, or store credentials.
|
|
66
66
|
|
|
File without changes
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"session": {
|
|
4
|
+
"id": "examplesession-0001",
|
|
5
|
+
"browser": "brave",
|
|
6
|
+
"seed": "examplesession-seed-0001"
|
|
7
|
+
},
|
|
8
|
+
"events": [
|
|
9
|
+
{
|
|
10
|
+
"t": 140,
|
|
11
|
+
"type": "move",
|
|
12
|
+
"x": 120,
|
|
13
|
+
"y": 90
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"t": 300,
|
|
17
|
+
"type": "move",
|
|
18
|
+
"x": 180,
|
|
19
|
+
"y": 140
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"t": 480,
|
|
23
|
+
"type": "click",
|
|
24
|
+
"x": 180,
|
|
25
|
+
"y": 140
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"t": 680,
|
|
29
|
+
"type": "type",
|
|
30
|
+
"key": "k"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"t": 900,
|
|
34
|
+
"type": "move",
|
|
35
|
+
"x": 240,
|
|
36
|
+
"y": 200
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"t": 1140,
|
|
40
|
+
"type": "click",
|
|
41
|
+
"x": 240,
|
|
42
|
+
"y": 200
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"t": 1400,
|
|
46
|
+
"type": "scroll",
|
|
47
|
+
"dy": 320
|
|
48
|
+
}
|
|
49
|
+
],
|
|
50
|
+
"captcha": {
|
|
51
|
+
"kind": "hcaptcha",
|
|
52
|
+
"passed": true
|
|
53
|
+
}
|
|
54
|
+
}
|
package/docs/memoryengine.md
CHANGED
|
File without changes
|
|
File without changes
|
package/docs/modes.md
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
# ninety.modalities — the wave record
|
|
2
|
+
|
|
3
|
+
the ninety modalities wave (branch waved/ninety.modalities): the saddle
|
|
4
|
+
plane answers the ninety modality plan the owner charged — every planned
|
|
5
|
+
lane of the registry wires an honest executor, every app of the family
|
|
6
|
+
declares the modality its workloads ride, and the report never lies.
|
|
7
|
+
|
|
8
|
+
## the state the wave found
|
|
9
|
+
|
|
10
|
+
the registry carried the ninety records with 30 live, 3 host and 57
|
|
11
|
+
planned — the catalog promised more than the lanes wired. the edge plane
|
|
12
|
+
drove 16 lanes (10 live, 6 host) and every app of the family named its
|
|
13
|
+
sandbox seat only through the debonair precedent (4 ids).
|
|
14
|
+
|
|
15
|
+
## the wiring the wave answered
|
|
16
|
+
|
|
17
|
+
- **edgelandeshost.ts** (group a, 25 lanes): the sandbox jails
|
|
18
|
+
(bubblewrap, nsjail, chroot with the fakechroot fallback and the
|
|
19
|
+
privilege gate), the container extensions (podman, containerd, runc,
|
|
20
|
+
crun, the docker max/lite/ghcr profiles), the runtimes (clr, workerd),
|
|
21
|
+
the screens (xvfb-run, the wayland compositor seat), the mobile
|
|
22
|
+
termux host, the builds (bazel, buck2, turborepo), the ci runners
|
|
23
|
+
(actions-runner, gitlab-runner with the exec-removed refusal), the
|
|
24
|
+
network tunnels (tor with the socks circuit, i2p, wireguard with the
|
|
25
|
+
keygen law) and the storage daemons (minio mc, garage). every lane
|
|
26
|
+
probes its binary, runs under the hard deadline in a private temp dir
|
|
27
|
+
and answers the coded absence when the host carries no runtime.
|
|
28
|
+
- **edgelandesinproc.ts** (group b, 19 lanes): the ram recipes (tmpfs,
|
|
29
|
+
mmap, overlayfs, loopram, gitram, zram with the real stored-block
|
|
30
|
+
zlib stream, zswap with the lru pool, swapfile) behind the oom-guard
|
|
31
|
+
quota, the delivery protocols (the cdn mirror manifest, the rfc6455
|
|
32
|
+
wss frame, the quic datagram, the grpc length prefix, the capnp
|
|
33
|
+
segment), the storage wire speakers (libsql envelope, the mysql
|
|
34
|
+
handshake packet, the postgres startup message, the s3 canonical
|
|
35
|
+
signer), the webcontainer seat (the frozen module vm) and the
|
|
36
|
+
local-optin consent gate — pure ts, deterministic, in-process.
|
|
37
|
+
- **edgelandesvirtual.ts** (group c, 7 lanes): the virtual hardware
|
|
38
|
+
compositions riding the engine's own catalogs — the full machine, the
|
|
39
|
+
vgpu mig slice, the screen with the session otp, the driver surface,
|
|
40
|
+
the kvm plan (the qemu argv through the lazy virtualization domain —
|
|
41
|
+
the .js specifier graph loads inside the executor, never the boot),
|
|
42
|
+
the gpuless mesa render and the virgl context. every report says
|
|
43
|
+
composed, never booted.
|
|
44
|
+
- **edgelandesninety.ts** (the merge seat): the six heavyweight probes
|
|
45
|
+
(browser-server, mobile-capacitor, mobile-postmarketos, pod-session,
|
|
46
|
+
confidential-sevsnp, confidential-tdx) and the merged lane tables the
|
|
47
|
+
dispatch plane reads — 73 lanes in the plane, every one carrying its
|
|
48
|
+
executor, the wiring self-check refusing a gap at boot.
|
|
49
|
+
- **edgeplane.ts**: the lane table rides the merged specs, the dispatch
|
|
50
|
+
reads the merged executors, the visitor law guard holds on every run.
|
|
51
|
+
- **modalityregistry.ts**: the honest flips — 51 planned lanes walk to
|
|
52
|
+
live (the lanes the wave wired), 6 walk to host (the heavyweight
|
|
53
|
+
probes), zero stay planned. the census: **81 live, 9 host, 0 planned,
|
|
54
|
+
90 records.**
|
|
55
|
+
- **the app declarations** (group e): every app of the family names the
|
|
56
|
+
modality its workloads ride — argan (17), cadria (16), cobaia (8),
|
|
57
|
+
devthink (78, the full vocabulary), forge (40), foundry (20), getry
|
|
58
|
+
(13), stealthhead (12), vault (25) and the debonair seat widened 4 →
|
|
59
|
+
23 — every one through the env opt-in (APP_WORKER_MODALITY), the ids
|
|
60
|
+
mirrored as the string contract, zero imports, the visitor law stated
|
|
61
|
+
in every header.
|
|
62
|
+
- **the vendor mirror**: devthink/modalities.ts re-synced byte-identical
|
|
63
|
+
to the engine registry (the single-source law), the census pins of the
|
|
64
|
+
sandboxlane and e2e suites updated to the new truth.
|
|
65
|
+
|
|
66
|
+
## the verification the wave recorded
|
|
67
|
+
|
|
68
|
+
- saddle: 28 files / **414 tests green** (379 base + 35 lane tests)
|
|
69
|
+
- argan 69 · cadria 548 · cobaia 30 · debonair 730 · devthink 194 files /
|
|
70
|
+
3512 · forge 90 · foundry 78 · getry 86 · stealthhead 152 · vault 98
|
|
71
|
+
- family total: **5807 tests green** (5680 base + 127 of the wave)
|
|
72
|
+
- biome zero findings on every file the wave authored
|
|
73
|
+
- the live proof: the webserver answers /api/v1/modalities with
|
|
74
|
+
{plancount: 90, live: 81, host: 9, planned: 0} and /api/v1/edge/lanes
|
|
75
|
+
with the 73 probed lanes (61 live, 12 host)
|
|
76
|
+
|
|
77
|
+
## the reconciliation with the parallel waves
|
|
78
|
+
|
|
79
|
+
the rebase onto main met two waves that landed while this one worked:
|
|
80
|
+
#239 (the tests home — the tests folders pure inside every app) and
|
|
81
|
+
#240 (the workload law — every app declares its lanes through
|
|
82
|
+
sandboxmodality.ts, the family seat with the join resolver and the
|
|
83
|
+
api routes). the reconciliation honored the no-duplication law: this
|
|
84
|
+
wave dropped its own app declaration seats (the modality.ts files of
|
|
85
|
+
group e) in favor of the #240 family seat the main branch pinned, and
|
|
86
|
+
kept everything the parallel waves did not touch — the fifty-seven
|
|
87
|
+
lane wirings, the registry flips, the vendor mirror sync and the
|
|
88
|
+
census pins. the two census rows #240 charged against the planned-only
|
|
89
|
+
gpu wait (the workload battery and the web workloads lane) now answer
|
|
90
|
+
the post-wave truth: the gpu records this wave wired live make the
|
|
91
|
+
stealthhead world-bake dispatchable, the family census carries zero
|
|
92
|
+
planned-only lanes, and the batteries say so.
|
|
93
|
+
|
|
94
|
+
## the honest notes
|
|
95
|
+
|
|
96
|
+
- the host binary lanes of group a name runtimes this host does not
|
|
97
|
+
carry — the lanes answer HOST_RUNTIME_ABSENT naming the runtime (the
|
|
98
|
+
language-ruby precedent: live means the engine drives it when the
|
|
99
|
+
host provides the seat).
|
|
100
|
+
- the kvm lane loads the virtualization domain lazily inside the
|
|
101
|
+
executor: the webserver's plain node host resolves only .ts
|
|
102
|
+
specifiers and the domain re-exports virtualgpu through a .js
|
|
103
|
+
specifier — the family law (a domain the host cannot resolve degrades
|
|
104
|
+
that one lane, never the engine boot) now pins the pattern for every
|
|
105
|
+
future lane that reaches the .js graph.
|
|
106
|
+
- the six heavyweight lanes stay host (probe only): the execution
|
|
107
|
+
wiring of a confidential compute seat or a pod session is the next
|
|
108
|
+
rung, and the registry says so.
|
|
109
|
+
|
|
110
|
+
## the wiring wave (wave four, pr15 — branch wave/ninety.wiring)
|
|
111
|
+
|
|
112
|
+
the wiring wave closed the last gap of the ninety plan: the registry
|
|
113
|
+
carried the ninety records with 81 live and 9 host while the plane
|
|
114
|
+
drove only 73 lanes — seventeen registry-live modalities waited without
|
|
115
|
+
a lane. the wave wired all seventeen, honestly, and the plane table
|
|
116
|
+
now answers the full plan: **90 lanes, 66 live, 24 host.**
|
|
117
|
+
|
|
118
|
+
### the state the wave found
|
|
119
|
+
|
|
120
|
+
- the plane: 73 lanes (61 live, 12 host); the registry live set ahead
|
|
121
|
+
of the lane table by seventeen ids — runner-deno, runner-serverless,
|
|
122
|
+
language-rust, language-cargo, language-v, language-dotnet,
|
|
123
|
+
language-php, language-lua, language-zig, language-nim, runner-wasi,
|
|
124
|
+
fs-gitobjects, storage-sqlite, network-dns, network-doh, build-make
|
|
125
|
+
and build-ninja, every one already live in the registry.
|
|
126
|
+
|
|
127
|
+
### the wiring the wave answered
|
|
128
|
+
|
|
129
|
+
- **edgelandeshost.ts** (group a, +12 lanes): the language toolchains
|
|
130
|
+
(rustc with the compile-then-run seat, cargo with CARGO_HOME and the
|
|
131
|
+
target tree inside the private dir, v with HOME at the temp dir,
|
|
132
|
+
dotnet with the csproj seat and DOTNET_CLI_HOME inside, php, lua, zig
|
|
133
|
+
with the global cache inside, nim with the nimcache inside), the
|
|
134
|
+
runner seats (deno with the scoped read permission and DENO_DIR
|
|
135
|
+
inside, wasi through wasmtime with the base64 module bytes) and the
|
|
136
|
+
build tail (make with the Makefile as the code field, ninja with the
|
|
137
|
+
build.ninja as the code field). every lane probes its binary, runs
|
|
138
|
+
under the hard deadline in the private temp dir and answers the coded
|
|
139
|
+
absence when the host carries no runtime — the twelve ride kind host
|
|
140
|
+
(the runtime probe rung), the twenty-five of the first wave stay kind
|
|
141
|
+
live.
|
|
142
|
+
- **edgelandesinproc.ts** (group b, +5 lanes): the serverless runner
|
|
143
|
+
(the v8 isolate manifest — one fresh node:vm context per run, the
|
|
144
|
+
module fingerprint fnv-1a, the frozen inputs surface), the git
|
|
145
|
+
objects vfs (the loose-object header law and the two-hex-char
|
|
146
|
+
fan-out), the sqlite vault (the hundred-byte page-one header with the
|
|
147
|
+
fnv-1a statement id as the change counter) and the network resolvers
|
|
148
|
+
(the rfc1035 question bytes of dns, the rfc8484 base64url ride of
|
|
149
|
+
doh under the https-only resolver law) — pure ts, deterministic,
|
|
150
|
+
seeded, in-process.
|
|
151
|
+
- **edgelandesninety.ts / edgeplane.ts**: the stale sixty-three
|
|
152
|
+
comments now state the post-wiring truth — ninety lanes, sixty-six
|
|
153
|
+
live, twenty-four host.
|
|
154
|
+
- **the pinned tests**: the host battery 25 → 37 (the twelve wave ids
|
|
155
|
+
in alphabetical order, kind host), the inproc battery 19 → 24 with
|
|
156
|
+
the five samples and the wave four seat laws (the isolate, the
|
|
157
|
+
fan-out, the page and the resolvers), the plane table 61/12 → 66/24,
|
|
158
|
+
and the runner-deno refusal test rewired to the wired truth (a real
|
|
159
|
+
run or the coded absence — the gap it proved is closed).
|
|
160
|
+
|
|
161
|
+
### the verification the wave recorded
|
|
162
|
+
|
|
163
|
+
- saddle: 30 files / **437 tests green** (436 base + 1 seat law test)
|
|
164
|
+
- the build green, dist carrying both lane files
|
|
165
|
+
- biome zero findings on every file the wave touched
|
|
166
|
+
- the live proof: the plane table answers 66 live and 24 host of 90 —
|
|
167
|
+
/api/v1/edge/lanes now reports the ninety probed lanes
|
|
168
|
+
|
|
169
|
+
### the honest notes
|
|
170
|
+
|
|
171
|
+
- the twelve host seats ride kind host with real executors: the plane
|
|
172
|
+
probes the runtime and the executor drives it when the host carries
|
|
173
|
+
it — an absent runtime answers HOST_RUNTIME_ABSENT naming the runtime,
|
|
174
|
+
exactly like the live seats of the first wave (the kind answers the
|
|
175
|
+
rung the table reports, the executor answers the run).
|
|
176
|
+
- the inproc seats stay deterministic: fixed fnv-1a addresses, rfc1035
|
|
177
|
+
big-endian fields and stored hex — no clock, no randomness, the same
|
|
178
|
+
payload answers the same bytes every run.
|
|
179
|
+
- this engine host carries make only: the eleven other runtimes answer
|
|
180
|
+
the coded absence here while the make lane proves a real run — the
|
|
181
|
+
batteries stay green on both kinds of host.
|
|
182
|
+
|
|
183
|
+
## the os nicknames of the owner (reference)
|
|
184
|
+
|
|
185
|
+
sandboxprofile.ts answers five guest os ids — android, grapheneos, linux,
|
|
186
|
+
omarchy, windows — and the owner's spoken names are nicknames of those
|
|
187
|
+
builds, not new ids: marsh (marshmallow) → android, grapenios and grafene
|
|
188
|
+
os → grapheneos, omashi → omarchy, linux normal → linux. the owner's "v"
|
|
189
|
+
names no guest os: it answers the language-v lane of the modality
|
|
190
|
+
registry (the v compiler seat). nothing to add — the vocabulary already
|
|
191
|
+
covers every name the owner used.
|
package/docs/optimization.md
CHANGED
|
File without changes
|
package/docs/packageaudit185.md
CHANGED
|
File without changes
|
package/docs/performance.md
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|