@wenathlan/saddle 2.0.154 → 2.0.155
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 +112 -41
- package/README.md +58 -59
- package/browser.ts +482 -0
- package/cli.ts +274 -0
- package/distribution.ts +731 -0
- package/docker.config +29 -8
- package/docs/artifactavailability.md +2 -2
- package/docs/browser.md +18 -1
- package/docs/{containerplatforms.2.1.0.md → containerplatforms210.md} +1 -1
- package/docs/{documentmap.1.8.12.md → documentmap1812.md} +1 -1
- package/docs/extension.md +13 -2
- package/docs/libraryapi.md +1 -1
- package/docs/{ninety.modalities.md → ninetymodalities.md} +87 -4
- package/docs/{planning.ninety.md → planningninety.md} +6 -6
- package/docs/{releasenotes.1.8.13.md → releasenotes1813.md} +2 -2
- package/docs/{releasenotes.1.8.14.md → releasenotes1814.md} +1 -1
- package/docs/{repo.synthesis.1.8.16.md → reposynthesis1816.md} +1 -1
- 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/execution.ts +677 -0
- package/foundation.ts +314 -0
- package/index.ts +35 -27
- package/isolation.ts +84 -0
- package/modes.ts +170 -0
- package/mttg.config +1 -1
- package/orchestrator.ts +49 -15
- package/package.json +90 -75
- package/qemu.config +2 -2
- package/sandbox.ts +2094 -0
- package/scheduler.ts +1 -1
- package/server.ts +52 -0
- package/tsconfig.json +11 -12
- package/virtual.ts +1105 -0
- package/virtualgpu.ts +1 -1
- package/virtualization.ts +1 -1
- package/workloadlaw.ts +293 -0
- package/dist/App.d.ts +0 -5
- package/dist/App.js +0 -52
- package/dist/Sol/Sol.d.ts +0 -3
- package/dist/Sol/Sol.js +0 -46
- package/dist/Sol/agentbrowser/agentbrowser.d.ts +0 -9
- package/dist/Sol/agentbrowser/agentbrowser.js +0 -121
- package/dist/Sol/architecture/architecture.d.ts +0 -9
- package/dist/Sol/architecture/architecture.js +0 -93
- package/dist/Sol/compute/compute.d.ts +0 -9
- package/dist/Sol/compute/compute.js +0 -22
- package/dist/Sol/console/console.d.ts +0 -15
- package/dist/Sol/console/console.js +0 -292
- package/dist/Sol/dashboard/dashboard.d.ts +0 -10
- package/dist/Sol/dashboard/dashboard.js +0 -181
- package/dist/Sol/docs/docs.d.ts +0 -9
- package/dist/Sol/docs/docs.js +0 -28
- package/dist/Sol/home/home.d.ts +0 -35
- package/dist/Sol/home/home.js +0 -239
- package/dist/Sol/integrations/integrations.d.ts +0 -9
- package/dist/Sol/integrations/integrations.js +0 -83
- package/dist/Sol/intro/intro.d.ts +0 -7
- package/dist/Sol/intro/intro.js +0 -102
- package/dist/Sol/login/login.d.ts +0 -16
- package/dist/Sol/login/login.js +0 -49
- package/dist/Sol/notfound/notfound.d.ts +0 -9
- package/dist/Sol/notfound/notfound.js +0 -15
- package/dist/Sol/onboarding/onboarding.d.ts +0 -25
- package/dist/Sol/onboarding/onboarding.js +0 -60
- package/dist/Sol/playground/playground.d.ts +0 -9
- package/dist/Sol/playground/playground.js +0 -127
- package/dist/Sol/register/register.d.ts +0 -16
- package/dist/Sol/register/register.js +0 -193
- package/dist/Sol/shell/Shell.d.ts +0 -124
- package/dist/Sol/shell/Shell.js +0 -335
- package/dist/Sol/wingets/ComputeBootladder.d.ts +0 -6
- package/dist/Sol/wingets/ComputeBootladder.js +0 -71
- package/dist/Sol/wingets/ComputeModalitycatalog.d.ts +0 -7
- package/dist/Sol/wingets/ComputeModalitycatalog.js +0 -71
- package/dist/Sol/wingets/ConsoleApibadge.d.ts +0 -7
- package/dist/Sol/wingets/ConsoleApibadge.js +0 -5
- package/dist/Sol/wingets/ConsoleEdgelaw.d.ts +0 -6
- package/dist/Sol/wingets/ConsoleEdgelaw.js +0 -36
- package/dist/Sol/wingets/ConsoleEventstimeline.d.ts +0 -19
- package/dist/Sol/wingets/ConsoleEventstimeline.js +0 -12
- package/dist/Sol/wingets/ConsoleSnapshotcontrols.d.ts +0 -8
- package/dist/Sol/wingets/ConsoleSnapshotcontrols.js +0 -8
- package/dist/Sol/wingets/ConsoleSpecpanel.d.ts +0 -21
- package/dist/Sol/wingets/ConsoleSpecpanel.js +0 -75
- package/dist/Sol/wingets/ConsoleTerminal.d.ts +0 -22
- package/dist/Sol/wingets/ConsoleTerminal.js +0 -77
- package/dist/Sol/wingets/DashboardAccountpanel.d.ts +0 -18
- package/dist/Sol/wingets/DashboardAccountpanel.js +0 -65
- package/dist/Sol/wingets/DashboardAdminpanel.d.ts +0 -6
- package/dist/Sol/wingets/DashboardAdminpanel.js +0 -90
- package/dist/Sol/wingets/DashboardAuditlog.d.ts +0 -8
- package/dist/Sol/wingets/DashboardAuditlog.js +0 -50
- package/dist/Sol/wingets/DashboardCreatesandboxform.d.ts +0 -10
- package/dist/Sol/wingets/DashboardCreatesandboxform.js +0 -71
- package/dist/Sol/wingets/DashboardEventstimeline.d.ts +0 -8
- package/dist/Sol/wingets/DashboardEventstimeline.js +0 -83
- package/dist/Sol/wingets/DashboardGlobalsandboxestable.d.ts +0 -8
- package/dist/Sol/wingets/DashboardGlobalsandboxestable.js +0 -57
- package/dist/Sol/wingets/DashboardMeshnodestable.d.ts +0 -8
- package/dist/Sol/wingets/DashboardMeshnodestable.js +0 -103
- package/dist/Sol/wingets/DashboardSandboxlist.d.ts +0 -10
- package/dist/Sol/wingets/DashboardSandboxlist.js +0 -163
- package/dist/Sol/wingets/DashboardUserstable.d.ts +0 -8
- package/dist/Sol/wingets/DashboardUserstable.js +0 -78
- package/dist/Sol/wingets/HomeEntrygate.d.ts +0 -23
- package/dist/Sol/wingets/HomeEntrygate.js +0 -73
- package/dist/Sol/wingets/HomeMetricstrip.d.ts +0 -9
- package/dist/Sol/wingets/HomeMetricstrip.js +0 -4
- package/dist/Sol/wingets/HomeRuntimediagram.d.ts +0 -1
- package/dist/Sol/wingets/HomeRuntimediagram.js +0 -22
- package/dist/Sol/wingets/LoginForm.d.ts +0 -19
- package/dist/Sol/wingets/LoginForm.js +0 -141
- package/dist/Sol/wingets/RegisterPasswordconfirm.d.ts +0 -13
- package/dist/Sol/wingets/RegisterPasswordconfirm.js +0 -16
- package/dist/Sol/wingets/RegisterPasswordmeter.d.ts +0 -19
- package/dist/Sol/wingets/RegisterPasswordmeter.js +0 -65
- package/dist/Sol/wingets/RegisterUsernamerules.d.ts +0 -11
- package/dist/Sol/wingets/RegisterUsernamerules.js +0 -16
- package/dist/Sol/wingets/index.d.ts +0 -39
- package/dist/Sol/wingets/index.js +0 -39
- package/dist/alternatives.d.ts +0 -508
- package/dist/alternatives.js +0 -950
- package/dist/api.d.ts +0 -154
- package/dist/api.js +0 -174
- package/dist/auth.d.ts +0 -268
- package/dist/auth.js +0 -476
- package/dist/automation.d.ts +0 -425
- package/dist/automation.js +0 -566
- package/dist/browser.d.ts +0 -561
- package/dist/browser.js +0 -1058
- package/dist/capacitor.config.d.ts +0 -45
- package/dist/capacitor.config.js +0 -48
- package/dist/catalog.d.ts +0 -43
- package/dist/catalog.js +0 -44
- package/dist/cli.d.ts +0 -16
- package/dist/cli.js +0 -168
- package/dist/communication.d.ts +0 -181
- package/dist/communication.js +0 -376
- package/dist/compute.d.ts +0 -1160
- package/dist/compute.js +0 -2272
- package/dist/dashboardlib.d.ts +0 -58
- package/dist/dashboardlib.js +0 -161
- package/dist/db.d.ts +0 -569
- package/dist/db.js +0 -1080
- package/dist/distribution.d.ts +0 -528
- package/dist/distribution.js +0 -810
- package/dist/drizzle.config.d.ts +0 -20
- package/dist/drizzle.config.js +0 -18
- package/dist/edgelandes.d.ts +0 -70
- package/dist/edgelandes.host.d.ts +0 -26
- package/dist/edgelandes.host.js +0 -1089
- package/dist/edgelandes.inproc.d.ts +0 -27
- package/dist/edgelandes.inproc.js +0 -952
- package/dist/edgelandes.js +0 -1133
- package/dist/edgelandes.ninety.d.ts +0 -31
- package/dist/edgelandes.ninety.js +0 -174
- package/dist/edgelandes.virtual.d.ts +0 -25
- package/dist/edgelandes.virtual.js +0 -629
- package/dist/edgeplane.d.ts +0 -121
- package/dist/edgeplane.js +0 -341
- package/dist/examplelocaljob.d.ts +0 -1
- package/dist/examplelocaljob.js +0 -14
- package/dist/execution.d.ts +0 -529
- package/dist/execution.js +0 -760
- package/dist/family.d.ts +0 -16
- package/dist/family.js +0 -42
- package/dist/familyurl.d.ts +0 -21
- package/dist/familyurl.js +0 -24
- package/dist/format.d.ts +0 -18
- package/dist/format.js +0 -59
- package/dist/foundation.d.ts +0 -172
- package/dist/foundation.js +0 -312
- package/dist/index.d.ts +0 -735
- package/dist/index.js +0 -1020
- package/dist/integration.d.ts +0 -235
- package/dist/integration.js +0 -228
- package/dist/intelligence.d.ts +0 -93
- package/dist/intelligence.js +0 -144
- package/dist/isolation.d.ts +0 -128
- package/dist/isolation.js +0 -95
- package/dist/labels.d.ts +0 -665
- package/dist/labels.js +0 -707
- package/dist/localauth.d.ts +0 -127
- package/dist/localauth.js +0 -413
- package/dist/media.d.ts +0 -343
- package/dist/media.js +0 -985
- package/dist/mesh.d.ts +0 -177
- package/dist/mesh.js +0 -468
- package/dist/modalityregistry.d.ts +0 -109
- package/dist/modalityregistry.js +0 -1386
- package/dist/modes.d.ts +0 -358
- package/dist/modes.js +0 -133
- package/dist/onboardingstate.d.ts +0 -79
- package/dist/onboardingstate.js +0 -282
- package/dist/orchestrator.d.ts +0 -1338
- package/dist/orchestrator.js +0 -4310
- package/dist/packager/targetcli.js +0 -4
- package/dist/paths.d.ts +0 -2
- package/dist/paths.js +0 -14
- package/dist/performance.d.ts +0 -415
- package/dist/performance.js +0 -826
- package/dist/quantum.d.ts +0 -809
- package/dist/quantum.js +0 -2072
- package/dist/render.d.ts +0 -380
- package/dist/render.js +0 -1072
- package/dist/runall.d.ts +0 -2
- package/dist/runall.js +0 -39
- package/dist/runtimeprobe.d.ts +0 -4
- package/dist/runtimeprobe.js +0 -8
- package/dist/sandbox.d.ts +0 -355
- package/dist/sandbox.js +0 -1721
- package/dist/sandboxenvprofile.d.ts +0 -29
- package/dist/sandboxenvprofile.js +0 -89
- package/dist/sandboxprofile.d.ts +0 -137
- package/dist/sandboxprofile.js +0 -241
- package/dist/sandboxqueue.d.ts +0 -108
- package/dist/sandboxqueue.js +0 -201
- package/dist/sandboxquota.d.ts +0 -121
- package/dist/sandboxquota.js +0 -236
- package/dist/scheduler.d.ts +0 -595
- package/dist/scheduler.js +0 -1258
- package/dist/scriptlanes.d.ts +0 -182
- package/dist/scriptlanes.js +0 -660
- package/dist/scripts.buildengine.d.ts +0 -1
- package/dist/scripts.buildengine.js +0 -39
- package/dist/scripts.securitygate.d.ts +0 -1
- package/dist/scripts.securitygate.js +0 -68
- package/dist/scripts.validateflatnative.d.ts +0 -1
- package/dist/scripts.validateflatnative.js +0 -72
- package/dist/security.d.ts +0 -500
- package/dist/security.js +0 -1169
- package/dist/seedcatalog.d.ts +0 -13
- package/dist/seedcatalog.js +0 -46
- package/dist/server.d.ts +0 -20
- package/dist/server.js +0 -53
- package/dist/speccatalog.d.ts +0 -31
- package/dist/speccatalog.js +0 -163
- package/dist/tiers.d.ts +0 -1001
- package/dist/tiers.js +0 -2169
- package/dist/utils.d.ts +0 -2
- package/dist/utils.js +0 -5
- package/dist/vaulthandoff.d.ts +0 -141
- package/dist/vaulthandoff.js +0 -444
- package/dist/virtual.d.ts +0 -640
- package/dist/virtual.js +0 -1284
- package/dist/virtualcpu.d.ts +0 -315
- package/dist/virtualcpu.js +0 -1180
- package/dist/virtualgpu.d.ts +0 -344
- package/dist/virtualgpu.js +0 -1000
- package/dist/virtualization.d.ts +0 -606
- package/dist/virtualization.js +0 -1186
- package/dist/virtualmemory.d.ts +0 -817
- package/dist/virtualmemory.js +0 -1795
- package/dist/vite.config.d.ts +0 -3
- package/dist/vite.config.js +0 -48
- package/dist/vitest.config.d.ts +0 -2
- package/dist/vitest.config.js +0 -25
- package/dist/webserver.d.ts +0 -166
- package/dist/webserver.js +0 -2226
- package/dist/workloadlaw.d.ts +0 -133
- package/dist/workloadlaw.js +0 -193
- package/manifest.json +0 -20
- package/media.ts +0 -1337
- /package/docs/{architecture.1.8.19.md → architecture1819.md} +0 -0
- /package/docs/{architecture.1.8.19.mmd → architecture1819.mmd} +0 -0
- /package/docs/{artifactresearch.1.8.9.md → artifactresearch189.md} +0 -0
- /package/docs/{batches.1816.to.1820.md → batches1816to1820.md} +0 -0
- /package/docs/{brancharchive.2026.08.18.md → brancharchive20260818.md} +0 -0
- /package/docs/{containerplatforms.1.8.17.md → containerplatforms1817.md} +0 -0
- /package/docs/{e2ugh.engine.md → e2ughengine.md} +0 -0
- /package/docs/{flatbuildresearch.1.8.11.md → flatbuildresearch1811.md} +0 -0
- /package/docs/{licenseaudit.1.8.12.md → licenseaudit1812.md} +0 -0
- /package/docs/{mobileconversionresearch.1.8.10.md → mobileconversionresearch1810.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/{planning.1.8.18.md → planning1818.md} +0 -0
- /package/docs/{planning.1.8.19.md → planning1819.md} +0 -0
- /package/docs/{planning.engine.md → planningengine.md} +0 -0
- /package/docs/{releasenotes.1.8.12.md → releasenotes1812.md} +0 -0
- /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.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/{scanningresearch.1.8.11.md → scanningresearch1811.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/{tauri.glib.risk.1.8.11.md → tauriglibrisk1811.md} +0 -0
- /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/{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/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,14 +106,21 @@
|
|
|
106
106
|
"platforms": {
|
|
107
107
|
"architectures": [
|
|
108
108
|
"linux/amd64",
|
|
109
|
+
"linux/amd64/v2",
|
|
109
110
|
"linux/arm64",
|
|
111
|
+
"linux/arm/v7",
|
|
112
|
+
"linux/arm/v6",
|
|
110
113
|
"linux/ppc64le",
|
|
111
|
-
"linux/s390x"
|
|
114
|
+
"linux/s390x",
|
|
115
|
+
"linux/riscv64",
|
|
116
|
+
"linux/386",
|
|
117
|
+
"linux/mips64le",
|
|
118
|
+
"linux/loong64"
|
|
112
119
|
],
|
|
113
120
|
"primary": "linux/amd64",
|
|
114
121
|
"qemuEmulation": true,
|
|
115
122
|
"nativeBuild": true,
|
|
116
|
-
"note": "the
|
|
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"
|
|
117
124
|
},
|
|
118
125
|
"runtimeBase": {
|
|
119
126
|
"nodeImage": "node:26.7.0-alpine",
|
|
@@ -471,11 +478,18 @@
|
|
|
471
478
|
"multiArch": {
|
|
472
479
|
"platforms": [
|
|
473
480
|
"linux/amd64",
|
|
481
|
+
"linux/amd64/v2",
|
|
474
482
|
"linux/arm64",
|
|
483
|
+
"linux/arm/v7",
|
|
484
|
+
"linux/arm/v6",
|
|
475
485
|
"linux/ppc64le",
|
|
476
|
-
"linux/s390x"
|
|
486
|
+
"linux/s390x",
|
|
487
|
+
"linux/riscv64",
|
|
488
|
+
"linux/386",
|
|
489
|
+
"linux/mips64le",
|
|
490
|
+
"linux/loong64"
|
|
477
491
|
],
|
|
478
|
-
"command": "docker buildx build --platform linux/amd64,linux/arm64,linux/ppc64le,linux/s390x --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 ."
|
|
479
493
|
},
|
|
480
494
|
"actionsWorkflowUses": [
|
|
481
495
|
"docker/setup-buildx-action@v4.3.0",
|
|
@@ -623,7 +637,7 @@
|
|
|
623
637
|
"labels": {
|
|
624
638
|
"org.opencontainers.image.title": "saddle-v6",
|
|
625
639
|
"org.opencontainers.image.description": "Saddle v6 virtualization orchestrator with QEMU 11.1.0, Node 22 LTS, Python 3.13.5, MTTG, Passage, OVMF",
|
|
626
|
-
"org.opencontainers.image.version": "2.
|
|
640
|
+
"org.opencontainers.image.version": "2.0.154",
|
|
627
641
|
"org.opencontainers.image.created": "2026-08-22T00:00:00Z",
|
|
628
642
|
"org.opencontainers.image.authors": "Saddle Core <core@saddle.dev>",
|
|
629
643
|
"org.opencontainers.image.url": "https://saddle.dev",
|
|
@@ -635,7 +649,7 @@
|
|
|
635
649
|
"org.opencontainers.image.base.name": "debian:bookworm-slim",
|
|
636
650
|
"org.opencontainers.image.base.digest": "sha256:bookworm-slim-pinned-2026-08-22",
|
|
637
651
|
"saddle": {
|
|
638
|
-
"com.saddle.version": "2.
|
|
652
|
+
"com.saddle.version": "2.0.154",
|
|
639
653
|
"com.saddle.engine": "qemu-11.1.0",
|
|
640
654
|
"com.saddle.modes": "32",
|
|
641
655
|
"com.saddle.forge.mirrors": "github,gitea,forgejo",
|
|
@@ -660,9 +674,16 @@
|
|
|
660
674
|
"target": "runtime-base",
|
|
661
675
|
"platforms": [
|
|
662
676
|
"linux/amd64",
|
|
677
|
+
"linux/amd64/v2",
|
|
663
678
|
"linux/arm64",
|
|
679
|
+
"linux/arm/v7",
|
|
680
|
+
"linux/arm/v6",
|
|
664
681
|
"linux/ppc64le",
|
|
665
|
-
"linux/s390x"
|
|
682
|
+
"linux/s390x",
|
|
683
|
+
"linux/riscv64",
|
|
684
|
+
"linux/386",
|
|
685
|
+
"linux/mips64le",
|
|
686
|
+
"linux/loong64"
|
|
666
687
|
],
|
|
667
688
|
"cacheFrom": [
|
|
668
689
|
"type=gha",
|
|
@@ -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
|
|
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.
|
|
@@ -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
|
|
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/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
|
|
|
@@ -14,7 +14,7 @@ sandbox seat only through the debonair precedent (4 ids).
|
|
|
14
14
|
|
|
15
15
|
## the wiring the wave answered
|
|
16
16
|
|
|
17
|
-
- **
|
|
17
|
+
- **edgelandeshost.ts** (group a, 25 lanes): the sandbox jails
|
|
18
18
|
(bubblewrap, nsjail, chroot with the fakechroot fallback and the
|
|
19
19
|
privilege gate), the container extensions (podman, containerd, runc,
|
|
20
20
|
crun, the docker max/lite/ghcr profiles), the runtimes (clr, workerd),
|
|
@@ -25,7 +25,7 @@ sandbox seat only through the debonair precedent (4 ids).
|
|
|
25
25
|
keygen law) and the storage daemons (minio mc, garage). every lane
|
|
26
26
|
probes its binary, runs under the hard deadline in a private temp dir
|
|
27
27
|
and answers the coded absence when the host carries no runtime.
|
|
28
|
-
- **
|
|
28
|
+
- **edgelandesinproc.ts** (group b, 19 lanes): the ram recipes (tmpfs,
|
|
29
29
|
mmap, overlayfs, loopram, gitram, zram with the real stored-block
|
|
30
30
|
zlib stream, zswap with the lru pool, swapfile) behind the oom-guard
|
|
31
31
|
quota, the delivery protocols (the cdn mirror manifest, the rfc6455
|
|
@@ -34,14 +34,14 @@ sandbox seat only through the debonair precedent (4 ids).
|
|
|
34
34
|
handshake packet, the postgres startup message, the s3 canonical
|
|
35
35
|
signer), the webcontainer seat (the frozen module vm) and the
|
|
36
36
|
local-optin consent gate — pure ts, deterministic, in-process.
|
|
37
|
-
- **
|
|
37
|
+
- **edgelandesvirtual.ts** (group c, 7 lanes): the virtual hardware
|
|
38
38
|
compositions riding the engine's own catalogs — the full machine, the
|
|
39
39
|
vgpu mig slice, the screen with the session otp, the driver surface,
|
|
40
40
|
the kvm plan (the qemu argv through the lazy virtualization domain —
|
|
41
41
|
the .js specifier graph loads inside the executor, never the boot),
|
|
42
42
|
the gpuless mesa render and the virgl context. every report says
|
|
43
43
|
composed, never booted.
|
|
44
|
-
- **
|
|
44
|
+
- **edgelandesninety.ts** (the merge seat): the six heavyweight probes
|
|
45
45
|
(browser-server, mobile-capacitor, mobile-postmarketos, pod-session,
|
|
46
46
|
confidential-sevsnp, confidential-tdx) and the merged lane tables the
|
|
47
47
|
dispatch plane reads — 73 lanes in the plane, every one carrying its
|
|
@@ -106,3 +106,86 @@ planned-only lanes, and the batteries say so.
|
|
|
106
106
|
- the six heavyweight lanes stay host (probe only): the execution
|
|
107
107
|
wiring of a confidential compute seat or a pod session is the next
|
|
108
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.
|
|
@@ -11,14 +11,14 @@ the ladder below — every rung checked before the merge.
|
|
|
11
11
|
|
|
12
12
|
## the groups
|
|
13
13
|
|
|
14
|
-
- group a —
|
|
14
|
+
- group a — edgelandeshost.ts: the host binary lanes (the spawn pattern of
|
|
15
15
|
edgelandes.ts): the sandbox jails, the container extensions, the runtimes,
|
|
16
16
|
the screens, the builds, the ci runners, the network tunnels and the
|
|
17
17
|
storage daemons the host may carry.
|
|
18
|
-
- group b —
|
|
18
|
+
- group b — edgelandesinproc.ts: the in-process pure ts lanes: the ram
|
|
19
19
|
recipes, the delivery protocols, the storage wire protocols, the
|
|
20
20
|
webcontainer lane and the local opt-in gate.
|
|
21
|
-
- group c —
|
|
21
|
+
- group c — edgelandesvirtual.ts: the virtual hardware composition lanes
|
|
22
22
|
that ride the engine's own virtualcpu, virtualgpu and virtualmemory
|
|
23
23
|
payloads (sandbox.ts) — the full machine, the vgpu slice, the screen, the
|
|
24
24
|
drivers, the kvm seat, the gpuless render and the virgl slice.
|
|
@@ -71,7 +71,7 @@ the ladder below — every rung checked before the merge.
|
|
|
71
71
|
|
|
72
72
|
### phase 2a — the host lanes (106)
|
|
73
73
|
|
|
74
|
-
- [x] 2a.007 write the file header and the imports of
|
|
74
|
+
- [x] 2a.007 write the file header and the imports of edgelandeshost.ts
|
|
75
75
|
- [x] 2a.008 export the executor and spec types riding the edgelandes contract
|
|
76
76
|
- [x] 2a.009 sandbox-bubblewrap: the bwrap probe
|
|
77
77
|
- [x] 2a.010 sandbox-bubblewrap: the executor (bwrap --ro-bind / / --unshare-all)
|
|
@@ -174,7 +174,7 @@ the ladder below — every rung checked before the merge.
|
|
|
174
174
|
|
|
175
175
|
### phase 2b — the in-process lanes (82)
|
|
176
176
|
|
|
177
|
-
- [x] 2b.007 write the file header and the imports of
|
|
177
|
+
- [x] 2b.007 write the file header and the imports of edgelandesinproc.ts
|
|
178
178
|
- [x] 2b.008 export the executor and spec types riding the contract
|
|
179
179
|
- [x] 2b.009 ram-tmpfs: the tmpfs mount recipe
|
|
180
180
|
- [x] 2b.010 ram-tmpfs: the executor (the in-memory fs tree)
|
|
@@ -253,7 +253,7 @@ the ladder below — every rung checked before the merge.
|
|
|
253
253
|
|
|
254
254
|
### phase 2c — the virtual hardware lanes (41)
|
|
255
255
|
|
|
256
|
-
- [x] 2c.007 write the file header and the imports of
|
|
256
|
+
- [x] 2c.007 write the file header and the imports of edgelandesvirtual.ts
|
|
257
257
|
- [x] 2c.008 export the executor and spec types riding the contract
|
|
258
258
|
- [x] 2c.009 virtual-full: the complete machine composition
|
|
259
259
|
- [x] 2c.010 virtual-full: the executor (cpu, gpu, memory, boot sequence)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Saddle 1.8.13
|
|
2
2
|
|
|
3
|
-
Saddle 1.8.13 carries the active code and release-facing manifests forward from 1.8.12. The previous [1.8.12 release notes](
|
|
3
|
+
Saddle 1.8.13 carries the active code and release-facing manifests forward from 1.8.12. The previous [1.8.12 release notes](releasenotes1812.md) remain the canonical record for the licensing and artifact baseline. The comparative 1.8.21 research is planning material and is not presented as a shipped feature.
|
|
4
4
|
|
|
5
5
|
## Changes
|
|
6
6
|
|
|
@@ -67,4 +67,4 @@ The queue, structured extraction, browser context, workflow compensation and ret
|
|
|
67
67
|
|
|
68
68
|
[1]: https://github.com/wenathlan/saddle "Saddle source repository"
|
|
69
69
|
[2]: https://github.com/wenathlan/saddle/releases "Saddle release archive"
|
|
70
|
-
[3]: https://github.com/wenathlan/saddle/blob/main/docs/
|
|
70
|
+
[3]: https://github.com/wenathlan/saddle/blob/main/docs/releasenotes1812.md "Saddle 1.8.12 release notes"
|
|
@@ -64,4 +64,4 @@ Local gates passed before the tag was created. Desktop run `31806235468` complet
|
|
|
64
64
|
|
|
65
65
|
[1]: https://github.com/wenathlan/saddle "Saddle source repository"
|
|
66
66
|
[2]: https://github.com/wenathlan/saddle/releases "Saddle release archive"
|
|
67
|
-
[3]: https://github.com/wenathlan/saddle/blob/main/docs/
|
|
67
|
+
[3]: https://github.com/wenathlan/saddle/blob/main/docs/releasenotes1813.md "Saddle 1.8.13 release notes"
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## Scope and evidence boundary
|
|
4
4
|
|
|
5
|
-
This synthesis evaluates the 100 primary repository sources recorded in [
|
|
5
|
+
This synthesis evaluates the 100 primary repository sources recorded in [reporesearch1816.md](./reporesearch1816.md). It does not copy source code, vendor dependencies, credentials, workflow configuration, service setup, operating assumptions, or claims of the reviewed projects. A candidate that lacked successful primary extraction is retained only as a pending source and is not used as implementation evidence.
|
|
6
6
|
|
|
7
7
|
The current baseline is Saddle 1.8.15. It already has deterministic storage pools and budgets, working-set planning, archive inspection, transform cache eligibility, provider-chain selection and cancellation plans, declarative delivery/PWA/surface requirements, release asset generation and local checksum verification. The selected 1.8.16 additions must remain additive, TypeScript-first, root-first, dependency-free, serializable and adapter-owned for all privileged or remote effects.
|
|
8
8
|
|
package/docs/todo.md
CHANGED
|
@@ -696,9 +696,9 @@ The following blocks are the execution order for the complete ecosystem. A block
|
|
|
696
696
|
|
|
697
697
|
- [x] Read the supplied scope references in full, distinguish verified constraints from aspirational proposals, and preserve both files unchanged.
|
|
698
698
|
- [x] Map the active 1.8.14 engine, exports, tests, package surfaces and release rules against the realistic 1.8.15 opportunity set.
|
|
699
|
-
- [x] Create `docs/
|
|
699
|
+
- [x] Create `docs/todo1815.md` with more than 400 individually checkable research, contract, implementation, test, documentation, validation and release steps.
|
|
700
700
|
- [ ] Define a public-repository research rubric and category quota for the 1.8.16 comparative analysis, targeting 100–300 relevant repositories without treating any external implementation as a copy source.
|
|
701
|
-
- [x] Create `docs/
|
|
701
|
+
- [x] Create `docs/todo1816.md` with 600–900 individually checkable steps covering repository research, evidence capture, gap selection, implementation, tests, documentation, release and post-release verification.
|
|
702
702
|
- [x] Review both versioned plans for architectural constraints, security, feasibility, feature ownership and release-gate dependencies before beginning implementation.
|
|
703
703
|
|
|
704
704
|
### Authorized execution order
|
|
@@ -470,7 +470,7 @@
|
|
|
470
470
|
- [ ] Verify all active version manifests remain at 1.8.14 until implementation and release notes are ready.
|
|
471
471
|
- [ ] Bump all active version manifests to 1.8.15 only after the release candidate is validated.
|
|
472
472
|
- [ ] Update the iOS build number to 1008015 only as part of the validated version bump.
|
|
473
|
-
- [ ] Create docs/
|
|
473
|
+
- [ ] Create docs/releasenotes1815.md from verified claims and the real generated artifact inventory.
|
|
474
474
|
- [ ] Update changelog.md with concise, evidence-backed 1.8.15 entries.
|
|
475
475
|
- [ ] Update docs/artifactavailability.md using only post-build and post-release evidence.
|
|
476
476
|
- [ ] Create a commit authored as iakadion after the full local gate passes.
|
|
@@ -541,7 +541,7 @@
|
|
|
541
541
|
- [x] Derive the 1.8.16 verification check for release evidence only after comparative evidence identifies a concrete gap that does not duplicate an existing Saddle capability. Completed by deterministic acceptance, insufficiency, mismatch, and readiness tests in `tests/engine.test.ts`.
|
|
542
542
|
- [ ] Derive the 1.8.16 workflow test for release evidence only after comparative evidence identifies a concrete gap that does not duplicate an existing Saddle capability.
|
|
543
543
|
- [x] Derive the 1.8.16 failure policy for release evidence only after comparative evidence identifies a concrete gap that does not duplicate an existing Saddle capability. Completed by ordered `rejected` and `insufficient` reason codes without positive assurance claims.
|
|
544
|
-
- [x] Derive the 1.8.16 documentation for release evidence only after comparative evidence identifies a concrete gap that does not duplicate an existing Saddle capability. Completed in `docs/enginearchitecture.md` and `docs/
|
|
544
|
+
- [x] Derive the 1.8.16 documentation for release evidence only after comparative evidence identifies a concrete gap that does not duplicate an existing Saddle capability. Completed in `docs/enginearchitecture.md` and `docs/reposynthesis1816.md`.
|
|
545
545
|
- [ ] Derive the 1.8.16 contract for cross-runtime compatibility only after comparative evidence identifies a concrete gap that does not duplicate an existing Saddle capability.
|
|
546
546
|
- [ ] Derive the 1.8.16 capability matrix for cross-runtime compatibility only after comparative evidence identifies a concrete gap that does not duplicate an existing Saddle capability.
|
|
547
547
|
- [ ] Derive the 1.8.16 import graph audit for cross-runtime compatibility only after comparative evidence identifies a concrete gap that does not duplicate an existing Saddle capability.
|
|
@@ -626,15 +626,15 @@
|
|
|
626
626
|
|
|
627
627
|
## 8. Documentation, compatibility, and release execution
|
|
628
628
|
|
|
629
|
-
- [ ] Update docs/
|
|
629
|
+
- [ ] Update docs/reporesearch1816.md with the complete selected repository inventory and source evidence.
|
|
630
630
|
- [ ] Update docs/repo-analysis-1.8.16.json with structured metadata, classification, source paths, and implementation disposition for every analyzed repository.
|
|
631
|
-
- [ ] Update docs/
|
|
631
|
+
- [ ] Update docs/reposynthesis1816.md with feature-gap rankings, accepted patterns, rejected patterns, and implementation rationale.
|
|
632
632
|
- [ ] Update docs/gapmatrix.md only after comparing the implemented result against the final 1.8.16 code and tests.
|
|
633
633
|
- [ ] Update README claims only when a corresponding capability is public, tested, documented, and not caller-owned or speculative.
|
|
634
634
|
- [ ] Update package exports only for stable, explicitly documented additive contracts.
|
|
635
635
|
- [ ] Update type declarations and package-import tests for every export-map change.
|
|
636
636
|
- [ ] Update changelog.md from verified completed work rather than the original research hypothesis.
|
|
637
|
-
- [x] Create docs/
|
|
637
|
+
- [x] Create docs/releasenotes1816.md only after artifact inventory, signing status, workflows, and registry results are known. The final release record lists 38 attached assets and the manual Android fallback state.
|
|
638
638
|
- [x] Update docs/artifactavailability.md only from generated and remotely verified release evidence. The 1.8.15 and 1.8.16 matrices use published release inventories.
|
|
639
639
|
- [x] Run npm test, legacy tests, web typecheck, web build, formatcheck, package dry-run, high-severity audit, and flat-native validation on the final candidate. The candidate passed 136 active and 69 legacy tests with all required gates.
|
|
640
640
|
- [x] Review CI workflows for tag-derived versioning, no hardcoded release version, no exposed secrets, and no unverified publish claim. Tag-triggered registry and asset workflows completed with explicit signing-state boundaries.
|
|
@@ -670,7 +670,7 @@
|
|
|
670
670
|
- [x] Compare requested operating-system and architecture combinations against Docker Buildx, OCI image-index, Node runtime, and runner support.
|
|
671
671
|
- [x] Distinguish publishable Linux OCI variants from Windows container variants that require a compatible Windows base image and Windows runner.
|
|
672
672
|
- [x] Avoid claiming an `unknown` platform as a runnable operating-system or architecture target.
|
|
673
|
-
- [x] Select a supported 1.8.17 Linux multi-architecture matrix and record rejected or deferred combinations with their technical reason in `docs/
|
|
673
|
+
- [x] Select a supported 1.8.17 Linux multi-architecture matrix and record rejected or deferred combinations with their technical reason in `docs/containerplatforms1817.md`.
|
|
674
674
|
- [x] Review the current container workflow, image base, tags, OCI labels, post-push pull, label verification, and smoke test before modifying it.
|
|
675
675
|
- [x] Extend the container workflow only for platform combinations that can build and execute the packaged Saddle runtime: `linux/amd64`, `linux/arm64`, and `linux/ppc64le`.
|
|
676
676
|
- [x] Keep release-tag version derivation, registry credentials, permissions, and the container-first documentation order intact.
|